diff --git a/README.md b/README.md index 54c37537e..0484d02f8 100644 --- a/README.md +++ b/README.md @@ -29,16 +29,26 @@ Follow these steps to get started using these resources: #### Supported via GitHub Action (Automated & Always Up-to-Date) -[Arabic](./translations/ar/README.md) | [Bengali](./translations/bn/README.md) | [Bulgarian](./translations/bg/README.md) | [Burmese (Myanmar)](./translations/my/README.md) | [Chinese (Simplified)](./translations/zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](./translations/zh-HK/README.md) | [Chinese (Traditional, Macau)](./translations/zh-MO/README.md) | [Chinese (Traditional, Taiwan)](./translations/zh-TW/README.md) | [Croatian](./translations/hr/README.md) | [Czech](./translations/cs/README.md) | [Danish](./translations/da/README.md) | [Dutch](./translations/nl/README.md) | [Estonian](./translations/et/README.md) | [Finnish](./translations/fi/README.md) | [French](./translations/fr/README.md) | [German](./translations/de/README.md) | [Greek](./translations/el/README.md) | [Hebrew](./translations/he/README.md) | [Hindi](./translations/hi/README.md) | [Hungarian](./translations/hu/README.md) | [Indonesian](./translations/id/README.md) | [Italian](./translations/it/README.md) | [Japanese](./translations/ja/README.md) | [Kannada](./translations/kn/README.md) | [Korean](./translations/ko/README.md) | [Lithuanian](./translations/lt/README.md) | [Malay](./translations/ms/README.md) | [Malayalam](./translations/ml/README.md) | [Marathi](./translations/mr/README.md) | [Nepali](./translations/ne/README.md) | [Nigerian Pidgin](./translations/pcm/README.md) | [Norwegian](./translations/no/README.md) | [Persian (Farsi)](./translations/fa/README.md) | [Polish](./translations/pl/README.md) | [Portuguese (Brazil)](./translations/pt-BR/README.md) | [Portuguese (Portugal)](./translations/pt-PT/README.md) | [Punjabi (Gurmukhi)](./translations/pa/README.md) | [Romanian](./translations/ro/README.md) | [Russian](./translations/ru/README.md) | [Serbian (Cyrillic)](./translations/sr/README.md) | [Slovak](./translations/sk/README.md) | [Slovenian](./translations/sl/README.md) | [Spanish](./translations/es/README.md) | [Swahili](./translations/sw/README.md) | [Swedish](./translations/sv/README.md) | [Tagalog (Filipino)](./translations/tl/README.md) | [Tamil](./translations/ta/README.md) | [Telugu](./translations/te/README.md) | [Thai](./translations/th/README.md) | [Turkish](./translations/tr/README.md) | [Ukrainian](./translations/uk/README.md) | [Urdu](./translations/ur/README.md) | [Vietnamese](./translations/vi/README.md) +[Arabic](./translations/ar/README.md) | [Bengali](./translations/bn/README.md) | [Bulgarian](./translations/bg/README.md) | [Burmese (Myanmar)](./translations/my/README.md) | [Chinese (Simplified)](./translations/zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](./translations/zh-HK/README.md) | [Chinese (Traditional, Macau)](./translations/zh-MO/README.md) | [Chinese (Traditional, Taiwan)](./translations/zh-TW/README.md) | [Croatian](./translations/hr/README.md) | [Czech](./translations/cs/README.md) | [Danish](./translations/da/README.md) | [Dutch](./translations/nl/README.md) | [Estonian](./translations/et/README.md) | [Finnish](./translations/fi/README.md) | [French](./translations/fr/README.md) | [German](./translations/de/README.md) | [Greek](./translations/el/README.md) | [Hebrew](./translations/he/README.md) | [Hindi](./translations/hi/README.md) | [Hungarian](./translations/hu/README.md) | [Indonesian](./translations/id/README.md) | [Italian](./translations/it/README.md) | [Japanese](./translations/ja/README.md) | [Kannada](./translations/kn/README.md) | [Khmer](./translations/km/README.md) | [Korean](./translations/ko/README.md) | [Lithuanian](./translations/lt/README.md) | [Malay](./translations/ms/README.md) | [Malayalam](./translations/ml/README.md) | [Marathi](./translations/mr/README.md) | [Nepali](./translations/ne/README.md) | [Nigerian Pidgin](./translations/pcm/README.md) | [Norwegian](./translations/no/README.md) | [Persian (Farsi)](./translations/fa/README.md) | [Polish](./translations/pl/README.md) | [Portuguese (Brazil)](./translations/pt-BR/README.md) | [Portuguese (Portugal)](./translations/pt-PT/README.md) | [Punjabi (Gurmukhi)](./translations/pa/README.md) | [Romanian](./translations/ro/README.md) | [Russian](./translations/ru/README.md) | [Serbian (Cyrillic)](./translations/sr/README.md) | [Slovak](./translations/sk/README.md) | [Slovenian](./translations/sl/README.md) | [Spanish](./translations/es/README.md) | [Swahili](./translations/sw/README.md) | [Swedish](./translations/sv/README.md) | [Tagalog (Filipino)](./translations/tl/README.md) | [Tamil](./translations/ta/README.md) | [Telugu](./translations/te/README.md) | [Thai](./translations/th/README.md) | [Turkish](./translations/tr/README.md) | [Ukrainian](./translations/uk/README.md) | [Urdu](./translations/ur/README.md) | [Vietnamese](./translations/vi/README.md) > **Prefer to Clone Locally?** - +> > This repository includes 50+ language translations which significantly increases the download size. To clone without translations, use sparse checkout: +> +> **Bash / macOS / Linux:** > ```bash > git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git > cd IoT-For-Beginners > git sparse-checkout set --no-cone '/*' '!translations' '!translated_images' > ``` +> +> **CMD (Windows):** +> ```cmd +> git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git +> cd IoT-For-Beginners +> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" +> ``` +> > This gives you everything you need to complete the course with a much faster download. @@ -166,7 +176,7 @@ Our team produces other curricula! Check out: ### LangChain [![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) [![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) - +[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- ### Azure / Edge / MCP / Agents diff --git a/translated_images/km/.co-op-translator.json b/translated_images/km/.co-op-translator.json new file mode 100644 index 000000000..d1d277aab --- /dev/null +++ b/translated_images/km/.co-op-translator.json @@ -0,0 +1,2198 @@ +{ + "IMG_5305.aa291c8812a9f1e5.webp": { + "original_hash": "fc0711c2be2774ab6089d59dc597260b", + "translation_date": "2026-04-06T20:39:06+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/testing/IMG_5305.png", + "language_code": "km" + }, + "IMG_5306.d575b9ab7025877b.webp": { + "original_hash": "4e37695a9ad976c862b785afb2bb7c2e", + "translation_date": "2026-04-06T20:38:58+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/testing/IMG_5306.png", + "language_code": "km" + }, + "IMG_5307.f9c9b8361a8aa734.webp": { + "original_hash": "cab390c38e0b27852ef90122d6dc4a8a", + "translation_date": "2026-04-06T20:43:57+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5307.png", + "language_code": "km" + }, + "IMG_5308.cbd6ed7007e69060.webp": { + "original_hash": "0ba29462f9494cbdec73138d13555eeb", + "translation_date": "2026-04-06T20:45:44+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5308.png", + "language_code": "km" + }, + "IMG_5309.23fbc3b6667bfb64.webp": { + "original_hash": "489a940aac2fae4a3a1e497781cba5a8", + "translation_date": "2026-04-06T20:43:59+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5309.png", + "language_code": "km" + }, + "IMG_5310.0ee0eb2fbc1c2d0e.webp": { + "original_hash": "44821d181f6a6dfc59fce6430ea543c3", + "translation_date": "2026-04-06T20:45:25+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5310.png", + "language_code": "km" + }, + "IMG_5311.8c90da6446c2d8c2.webp": { + "original_hash": "68d840516ae36a03715a432e9dac3856", + "translation_date": "2026-04-06T20:44:28+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5311.png", + "language_code": "km" + }, + "IMG_5312.a45550ddd8ce8e65.webp": { + "original_hash": "254b4fd54e9fe80a51a191ce9f654c85", + "translation_date": "2026-04-06T20:39:23+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5312.png", + "language_code": "km" + }, + "IMG_5313.ed1b45211271dbd2.webp": { + "original_hash": "86bea69b269add926a2da7a91bd68191", + "translation_date": "2026-04-06T20:39:24+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5313.png", + "language_code": "km" + }, + "IMG_5314.c2203206a05a74b5.webp": { + "original_hash": "168cc384e8f57b7bdd2469769fddced6", + "translation_date": "2026-04-06T20:44:35+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5314.png", + "language_code": "km" + }, + "IMG_5315.f698228e0e031bd4.webp": { + "original_hash": "4975f6e8e46204674362e3686f994433", + "translation_date": "2026-04-06T20:45:23+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5315.png", + "language_code": "km" + }, + "IMG_5316.29dc70d802ce8349.webp": { + "original_hash": "ba7dbbd6975e2bd39c4b37e1a12867da", + "translation_date": "2026-04-06T20:39:13+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5316.png", + "language_code": "km" + }, + "IMG_5317.ed81e4c1ca5046dc.webp": { + "original_hash": "1418135512d05bb5a5e8295c3ca27e4e", + "translation_date": "2026-04-06T20:44:05+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5317.png", + "language_code": "km" + }, + "IMG_5318.15dfffeb7f47abf7.webp": { + "original_hash": "6d55d50694cfb9d88f84167f245a5d51", + "translation_date": "2026-04-06T20:39:21+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5318.png", + "language_code": "km" + }, + "IMG_5319.b549b1fff0dcf143.webp": { + "original_hash": "cd73355ae901d57470404f12f3e14d8f", + "translation_date": "2026-04-06T20:45:17+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5319.png", + "language_code": "km" + }, + "IMG_5320.8268d3f61972f348.webp": { + "original_hash": "a6db3613b3615430929eec1d26541f23", + "translation_date": "2026-04-06T20:45:10+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5320.png", + "language_code": "km" + }, + "IMG_5321.b207cf143a59458d.webp": { + "original_hash": "d5626c8d5686c0fb0b71774b18b5799e", + "translation_date": "2026-04-06T20:39:04+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/testing/IMG_5321.png", + "language_code": "km" + }, + "IMG_5322.974809b9461a9e20.webp": { + "original_hash": "12e8057af8ca375668ac69dd83d3df9e", + "translation_date": "2026-04-06T20:45:21+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5322.png", + "language_code": "km" + }, + "IMG_5323.4939fa17958f291b.webp": { + "original_hash": "e7b6ccd025636efe16234fde1583ac2f", + "translation_date": "2026-04-06T20:45:32+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5323.png", + "language_code": "km" + }, + "IMG_5324.0afbc6f0caceb1a3.webp": { + "original_hash": "2d32f160ad94adf82b14722b5a4750de", + "translation_date": "2026-04-06T20:44:02+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5324.png", + "language_code": "km" + }, + "IMG_5325.9e9d9e9b85a10b06.webp": { + "original_hash": "797e68cbe795ca2b3bcefb017cde1e88", + "translation_date": "2026-04-06T20:44:33+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5325.png", + "language_code": "km" + }, + "IMG_5326.35bbc9e054c704d0.webp": { + "original_hash": "34cd6fb13bd85e2bc35a2113b89aecd1", + "translation_date": "2026-04-06T20:43:55+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5326.png", + "language_code": "km" + }, + "IMG_5327.804b63a605b5a77a.webp": { + "original_hash": "7f20dfc038fa8b756cf381c0d13cc764", + "translation_date": "2026-04-06T20:44:19+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5327.png", + "language_code": "km" + }, + "IMG_5328.925a9da23d96759f.webp": { + "original_hash": "d2038a13e44588a9bfbf8901b11d00e2", + "translation_date": "2026-04-06T20:39:19+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5328.png", + "language_code": "km" + }, + "IMG_5329.27da5fcbc3336773.webp": { + "original_hash": "fd75c4e9e16aeb231b2f10c94d10d608", + "translation_date": "2026-04-06T20:45:29+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5329.png", + "language_code": "km" + }, + "IMG_5330.3db3d5ea01c8cca2.webp": { + "original_hash": "148147aa52a66e9d9e77c17a4b6fb50b", + "translation_date": "2026-04-06T20:44:26+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5330.png", + "language_code": "km" + }, + "IMG_5331.181987d3d094472f.webp": { + "original_hash": "2272482bed9dbf36b7798a41324d008f", + "translation_date": "2026-04-06T20:45:35+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5331.png", + "language_code": "km" + }, + "IMG_5332.4beed56eaa5158e3.webp": { + "original_hash": "445a83687357d2bf3749e23583768407", + "translation_date": "2026-04-06T20:45:39+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5332.png", + "language_code": "km" + }, + "IMG_5333.53c3364c2ee0e7bb.webp": { + "original_hash": "018ac6ada7c30b62d168689b8865c5cd", + "translation_date": "2026-04-06T20:45:13+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5333.png", + "language_code": "km" + }, + "IMG_5334.979472e433948c10.webp": { + "original_hash": "13d55902d7f4025e4c0b4ec92d7e5c38", + "translation_date": "2026-04-06T20:44:37+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5334.png", + "language_code": "km" + }, + "IMG_5335.9f5bfba69a8d5a90.webp": { + "original_hash": "d896d7a763d29c0da589c8dbc77c9ed3", + "translation_date": "2026-04-06T20:44:11+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5335.png", + "language_code": "km" + }, + "IMG_5336.1b46586fdec95767.webp": { + "original_hash": "e40e7f6dcb13a7f78508a3751ce2f071", + "translation_date": "2026-04-06T20:44:07+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5336.png", + "language_code": "km" + }, + "IMG_5337.91c82be4d37029b0.webp": { + "original_hash": "17697be963b005f6961b32d72072d6af", + "translation_date": "2026-04-06T20:44:09+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5337.png", + "language_code": "km" + }, + "IMG_5338.9ab356541448923b.webp": { + "original_hash": "c6112e9cf630cc63b828dcbdde845de3", + "translation_date": "2026-04-06T20:45:42+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5338.png", + "language_code": "km" + }, + "IMG_5340.8440651b3ce1dd35.webp": { + "original_hash": "24b34e210b680dcdd7f84c7b819e5af2", + "translation_date": "2026-04-06T20:39:16+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5340.png", + "language_code": "km" + }, + "IMG_5341.a1aa041c42dbc534.webp": { + "original_hash": "a5bce966ff8f378c7ac2c3ae3263f629", + "translation_date": "2026-04-06T20:44:23+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5341.png", + "language_code": "km" + }, + "IMG_5342.9f3b93d9fab90d3b.webp": { + "original_hash": "5d05e1e08f6e5aaf21891368d22fcfb5", + "translation_date": "2026-04-06T20:44:14+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5342.png", + "language_code": "km" + }, + "IMG_5343.fa30105d3c10cad2.webp": { + "original_hash": "a41290e37e030928a002529f04f9387f", + "translation_date": "2026-04-06T20:39:01+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/testing/IMG_5343.png", + "language_code": "km" + }, + "IMG_5344.acfcd61ee5281321.webp": { + "original_hash": "a376d539df9a174bfdaadbab9dbc1cfd", + "translation_date": "2026-04-06T20:44:20+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5344.png", + "language_code": "km" + }, + "IMG_5345.3d305ee2bb4ee804.webp": { + "original_hash": "a511a224fa17db01684e0e63921ff020", + "translation_date": "2026-04-06T20:39:08+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5345.png", + "language_code": "km" + }, + "IMG_5346.281dcc267f69c70b.webp": { + "original_hash": "4772f5cabda119b12f676ad35147320e", + "translation_date": "2026-04-06T20:45:15+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5346.png", + "language_code": "km" + }, + "IMG_5347.48a4a981e76910ae.webp": { + "original_hash": "7b0d15e3f5e8ec289aff74d74a6dbf6e", + "translation_date": "2026-04-06T20:39:26+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5347.png", + "language_code": "km" + }, + "IMG_5348.3961d3b444537c13.webp": { + "original_hash": "312f940de37e3d8b548a5ff7e0ef59ce", + "translation_date": "2026-04-06T20:44:30+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5348.png", + "language_code": "km" + }, + "IMG_5349.1f0ec7fbf8807b3b.webp": { + "original_hash": "d12db74e18cfb01344a6f47e93341d6e", + "translation_date": "2026-04-06T20:39:09+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/images/training/IMG_5349.png", + "language_code": "km" + }, + "Roadmap.bb1dec285dda0eda.webp": { + "original_hash": "c49112726cdadd69ca0ec203a13e4689", + "translation_date": "2026-04-06T20:35:00+00:00", + "source_file": "sketchnotes/Roadmap.jpg", + "language_code": "km" + }, + "amqp.804bd4fce8330157.webp": { + "original_hash": "692b3edd9d3704d946d527027dd7c551", + "translation_date": "2026-04-06T20:29:28+00:00", + "source_file": "images/amqp.png", + "language_code": "km" + }, + "analog-sensor-voltage.3b6f315392247399.webp": { + "original_hash": "04c17740d5a42b6ee113d71605d6a0a8", + "translation_date": "2026-04-06T20:27:40+00:00", + "source_file": "images/analog-sensor-voltage.png", + "language_code": "km" + }, + "arducam-wio-terminal-connections.a4d5a4049bdb5ab8.webp": { + "original_hash": "01f69e3dc5f29479230a13a7c0f0efe0", + "translation_date": "2026-04-06T20:29:26+00:00", + "source_file": "images/arducam-wio-terminal-connections.png", + "language_code": "km" + }, + "arducam.20e4e4cbb2682965.webp": { + "original_hash": "f17393656663c080b68a3ed2b41c0fc2", + "translation_date": "2026-04-06T20:29:03+00:00", + "source_file": "images/arducam.png", + "language_code": "km" + }, + "arduino-sketch.79590cb837ff7a7c.webp": { + "original_hash": "a1ff6ddb0db8a676992dd9f958c6a5af", + "translation_date": "2026-04-06T20:29:06+00:00", + "source_file": "images/arduino-sketch.png", + "language_code": "km" + }, + "assignment-1-flow.7552a51acb1a5ec8.webp": { + "original_hash": "b3991eeb7b7d7ab00b21d1b95cbbd2c1", + "translation_date": "2026-04-06T20:26:00+00:00", + "source_file": "images/assignment-1-flow.png", + "language_code": "km" + }, + "assignment-1-internet-flow.3256feab5f052fd2.webp": { + "original_hash": "46d80a9e43b81a385c223c1fc12f39c6", + "translation_date": "2026-04-06T20:23:16+00:00", + "source_file": "images/assignment-1-internet-flow.png", + "language_code": "km" + }, + "azure-container-registry-logo.09494206991d4b29.webp": { + "original_hash": "adbc9655bf044bdf906e0f58fb36fbe1", + "translation_date": "2026-04-06T20:25:31+00:00", + "source_file": "images/azure-container-registry-logo.png", + "language_code": "km" + }, + "azure-functions-logo.1cfc8e3204c9c44a.webp": { + "original_hash": "7e62e90fe4cbd4f81b7db92c1f52933a", + "translation_date": "2026-04-06T20:28:12+00:00", + "source_file": "images/azure-functions-logo.png", + "language_code": "km" + }, + "azure-iot-edge-logo.c1c076749b5cba2e.webp": { + "original_hash": "bda41e5883dffedc3baf5efd20f09b49", + "translation_date": "2026-04-06T20:29:05+00:00", + "source_file": "images/azure-iot-edge-logo.png", + "language_code": "km" + }, + "azure-iot-hub-logo.28a19de76d0a1932.webp": { + "original_hash": "25526337ac38c5da2187ec953308a1a0", + "translation_date": "2026-04-06T20:28:36+00:00", + "source_file": "images/azure-iot-hub-logo.png", + "language_code": "km" + }, + "azure-maps-logo.35d01dcfbd81fe61.webp": { + "original_hash": "0b44d4f0596a033eb687e0a23d231428", + "translation_date": "2026-04-06T20:21:31+00:00", + "source_file": "images/azure-maps-logo.png", + "language_code": "km" + }, + "azure-region-existing.73f704604f2aa6cb.webp": { + "original_hash": "663095f6754e78da000aecf8b255f56a", + "translation_date": "2026-04-06T20:26:17+00:00", + "source_file": "images/azure-region-existing.png", + "language_code": "km" + }, + "azure-region-planned-expansion.a5074a1e8af74f15.webp": { + "original_hash": "e7b04b7641a855f6ab0461b9814c5bfa", + "translation_date": "2026-04-06T20:27:48+00:00", + "source_file": "images/azure-region-planned-expansion.png", + "language_code": "km" + }, + "azure-speech-logo.a1f08c4befb0159f.webp": { + "original_hash": "c0515d2fc1d34b7de4da2ae6f6af07e6", + "translation_date": "2026-04-06T20:26:11+00:00", + "source_file": "images/azure-speech-logo.png", + "language_code": "km" + }, + "azure-storage-logo.605c0f602c640d48.webp": { + "original_hash": "1b40b8e787f4058533cbfe7371dc400c", + "translation_date": "2026-04-06T20:24:43+00:00", + "source_file": "images/azure-storage-logo.png", + "language_code": "km" + }, + "azure-translator-logo.c6ed3a4a433edfd2.webp": { + "original_hash": "e6f188b64083c3f1814719c5b31a2128", + "translation_date": "2026-04-06T20:25:15+00:00", + "source_file": "images/azure-translator-logo.png", + "language_code": "km" + }, + "banana-arducam.be1b32d4267a8194.webp": { + "original_hash": "ab405c9f67c6a168e156dd3de2e4c9be", + "translation_date": "2026-04-06T20:29:14+00:00", + "source_file": "images/banana-arducam.jpg", + "language_code": "km" + }, + "banana-picture-compare.174df164dc326a42.webp": { + "original_hash": "1c539ac9dde011622cb841c9d1ac7991", + "translation_date": "2026-04-06T20:25:56+00:00", + "source_file": "images/banana-picture-compare.png", + "language_code": "km" + }, + "banana-ripe-1.6ed72365ffc92300.webp": { + "original_hash": "b669c7b079f11e40ccf403bca27420a6", + "translation_date": "2026-04-06T20:45:44+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/testing/ripe/banana-ripe-1.png", + "language_code": "km" + }, + "banana-ripe-1.780e9be3a60d8879.webp": { + "original_hash": "e1657ae830ee7346983e1ca04f185e0e", + "translation_date": "2026-04-06T20:45:50+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/ripe/banana-ripe-1.png", + "language_code": "km" + }, + "banana-ripe-10.c3d98eb280e7464f.webp": { + "original_hash": "1fd32bdc31ba975c91484494cc3ef395", + "translation_date": "2026-04-06T20:45:50+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/ripe/banana-ripe-10.png", + "language_code": "km" + }, + "banana-ripe-11.3d932f292b95b9a2.webp": { + "original_hash": "10d419a7eb4916eb20ab86a2d5704359", + "translation_date": "2026-04-06T20:45:45+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/ripe/banana-ripe-11.png", + "language_code": "km" + }, + "banana-ripe-12.9f87e663b9da6c85.webp": { + "original_hash": "8e8d0158457b243d442b06713947d089", + "translation_date": "2026-04-06T20:45:49+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/ripe/banana-ripe-12.png", + "language_code": "km" + }, + "banana-ripe-13.b7402e05160f4543.webp": { + "original_hash": "9f3ebf2203aaa657357ba262990bbb21", + "translation_date": "2026-04-06T20:45:46+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/ripe/banana-ripe-13.png", + "language_code": "km" + }, + "banana-ripe-14.85cf309aa702cfa8.webp": { + "original_hash": "c45e36f248a3dace32791bfca32d6aed", + "translation_date": "2026-04-06T20:45:48+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/ripe/banana-ripe-14.png", + "language_code": "km" + }, + "banana-ripe-15.933412eb14a3f8e4.webp": { + "original_hash": "efaa40a12e710aa6bbb1a1d0bb2052a4", + "translation_date": "2026-04-06T20:45:49+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/ripe/banana-ripe-15.png", + "language_code": "km" + }, + "banana-ripe-16.781a68a01401f89e.webp": { + "original_hash": "29f95cc922f22691d9804dae4672b387", + "translation_date": "2026-04-06T20:45:47+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/ripe/banana-ripe-16.png", + "language_code": "km" + }, + "banana-ripe-17.f8e2853a40d3ac45.webp": { + "original_hash": "8f0a9f7b93505876f7bd290b3679099d", + "translation_date": "2026-04-06T20:45:48+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/ripe/banana-ripe-17.png", + "language_code": "km" + }, + "banana-ripe-18.3d05f5f78ecf6f0d.webp": { + "original_hash": "cae1792a648b1486d2e3590866d11980", + "translation_date": "2026-04-06T20:45:47+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/ripe/banana-ripe-18.png", + "language_code": "km" + }, + "banana-ripe-19.ac3b0fc6cf6fdfd5.webp": { + "original_hash": "2390f2cc5023984a9682ec5f96f2bd6e", + "translation_date": "2026-04-06T20:45:49+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/ripe/banana-ripe-19.png", + "language_code": "km" + }, + "banana-ripe-2.8ab96da692df69f1.webp": { + "original_hash": "ae966eeff29fbf1a867a864baa149780", + "translation_date": "2026-04-06T20:45:44+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/testing/ripe/banana-ripe-2.png", + "language_code": "km" + }, + "banana-ripe-2.96ddc53114c5f020.webp": { + "original_hash": "c7c3b976043accf6fff757e50afed132", + "translation_date": "2026-04-06T20:45:46+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/ripe/banana-ripe-2.png", + "language_code": "km" + }, + "banana-ripe-20.a4d0ad33a7e6f037.webp": { + "original_hash": "aa2539f64cd978be437a294ef56b38ec", + "translation_date": "2026-04-06T20:45:47+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/ripe/banana-ripe-20.png", + "language_code": "km" + }, + "banana-ripe-21.07e03d64f265d55d.webp": { + "original_hash": "2c1528b1de4d0572dd8e3813ec38a591", + "translation_date": "2026-04-06T20:45:46+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/ripe/banana-ripe-21.png", + "language_code": "km" + }, + "banana-ripe-22.a63c05aeb7f866fc.webp": { + "original_hash": "1b4c8cac0fb4d88e2fac6e10a401b567", + "translation_date": "2026-04-06T20:45:50+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/ripe/banana-ripe-22.png", + "language_code": "km" + }, + "banana-ripe-23.6f3364afcab19e57.webp": { + "original_hash": "28dcfffcd92c957991aca002f7afb9f5", + "translation_date": "2026-04-06T20:45:48+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/ripe/banana-ripe-23.png", + "language_code": "km" + }, + "banana-ripe-24.ff2c02cc80a9c430.webp": { + "original_hash": "cffff187f53978527516f37fbdb528b6", + "translation_date": "2026-04-06T20:45:49+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/ripe/banana-ripe-24.png", + "language_code": "km" + }, + "banana-ripe-25.65ce63418cdc4de2.webp": { + "original_hash": "773b4a997e31a2a512b75f51941d594d", + "translation_date": "2026-04-06T20:45:46+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/ripe/banana-ripe-25.png", + "language_code": "km" + }, + "banana-ripe-3.4fae05a0a1d2b5f0.webp": { + "original_hash": "4810eae16d8cd35405bd23a7630d4c1c", + "translation_date": "2026-04-06T20:45:48+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/ripe/banana-ripe-3.png", + "language_code": "km" + }, + "banana-ripe-5.c762086879ccec4c.webp": { + "original_hash": "b70a07b7c7fe7a6e38624ecf409ecb39", + "translation_date": "2026-04-06T20:45:45+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/ripe/banana-ripe-5.png", + "language_code": "km" + }, + "banana-ripe-6.5131bcbf492980cb.webp": { + "original_hash": "54da747610520d477d2ce3ab576ac125", + "translation_date": "2026-04-06T20:45:46+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/ripe/banana-ripe-6.png", + "language_code": "km" + }, + "banana-ripe-7.5fc18dfe7b7ae9dc.webp": { + "original_hash": "ab45157090d3fb253fc262e1ac44cd36", + "translation_date": "2026-04-06T20:45:50+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/ripe/banana-ripe-7.png", + "language_code": "km" + }, + "banana-ripe-8.dba1d33bd34d4830.webp": { + "original_hash": "12afa64eebbc95b9536e6f3bbccdb345", + "translation_date": "2026-04-06T20:45:47+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/ripe/banana-ripe-8.png", + "language_code": "km" + }, + "banana-ripe-9.32f91462c8b0e2d3.webp": { + "original_hash": "a380e69917059d3401d09c9e00e289f6", + "translation_date": "2026-04-06T20:45:47+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/ripe/banana-ripe-9.png", + "language_code": "km" + }, + "banana-training-images.530eb203346d73bc.webp": { + "original_hash": "c93a7b2b58562500f7eaf9385e7c0d58", + "translation_date": "2026-04-06T20:24:48+00:00", + "source_file": "images/banana-training-images.png", + "language_code": "km" + }, + "banana-unripe-1.910c8606a300fa20.webp": { + "original_hash": "6d91493fcc6ed717266d0a58ed4ba97d", + "translation_date": "2026-04-06T20:45:56+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/unripe/banana-unripe-1.png", + "language_code": "km" + }, + "banana-unripe-1.b2c7051d9c8a4e61.webp": { + "original_hash": "a4cc0cccd0bd9e129367a314c3d97e3a", + "translation_date": "2026-04-06T20:45:45+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/testing/unripe/banana-unripe-1.png", + "language_code": "km" + }, + "banana-unripe-10.38dab0db918a2487.webp": { + "original_hash": "3fbe312ca683ffb4130c21bb5f8faf67", + "translation_date": "2026-04-06T20:45:52+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/unripe/banana-unripe-10.png", + "language_code": "km" + }, + "banana-unripe-11.ec8d0eefe63e10b9.webp": { + "original_hash": "fafe54a9660b5ea8811d8df8dfe375ad", + "translation_date": "2026-04-06T20:45:57+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/unripe/banana-unripe-11.png", + "language_code": "km" + }, + "banana-unripe-12.b95a088ccae935db.webp": { + "original_hash": "26ff82ce86b8b10f54fc97c7227aa131", + "translation_date": "2026-04-06T20:45:54+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/unripe/banana-unripe-12.png", + "language_code": "km" + }, + "banana-unripe-13.37e5a7cac5aa0920.webp": { + "original_hash": "ad62ee1af2830d972b9d933e94c8f592", + "translation_date": "2026-04-06T20:45:53+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/unripe/banana-unripe-13.png", + "language_code": "km" + }, + "banana-unripe-14.d19ddd6bbf63a259.webp": { + "original_hash": "df691d75f8bdf20269d642704fa81233", + "translation_date": "2026-04-06T20:45:55+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/unripe/banana-unripe-14.png", + "language_code": "km" + }, + "banana-unripe-15.274e48544326077a.webp": { + "original_hash": "1bf43279e1d99527a05e3fd05b6ac035", + "translation_date": "2026-04-06T20:45:56+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/unripe/banana-unripe-15.png", + "language_code": "km" + }, + "banana-unripe-16.bd058f64bd7ec014.webp": { + "original_hash": "a57dba0a4221e68a916b8d6b39ee88b3", + "translation_date": "2026-04-06T20:45:51+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/unripe/banana-unripe-16.png", + "language_code": "km" + }, + "banana-unripe-17.408382d679bfa079.webp": { + "original_hash": "9b487f26ef0c7cfb561c472902c5d96b", + "translation_date": "2026-04-06T20:45:54+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/unripe/banana-unripe-17.png", + "language_code": "km" + }, + "banana-unripe-18.39c0eb79d7b3b9ba.webp": { + "original_hash": "5e5522a34ce418404df666003c42058e", + "translation_date": "2026-04-06T20:45:53+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/unripe/banana-unripe-18.png", + "language_code": "km" + }, + "banana-unripe-19.e61e6d7efaf2d8c8.webp": { + "original_hash": "9412ba91c9eca98b84c86de22b51631f", + "translation_date": "2026-04-06T20:45:54+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/unripe/banana-unripe-19.png", + "language_code": "km" + }, + "banana-unripe-2.43a73b544521afc7.webp": { + "original_hash": "191f77cd53ad268a98fc833365c67fc5", + "translation_date": "2026-04-06T20:45:45+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/testing/unripe/banana-unripe-2.png", + "language_code": "km" + }, + "banana-unripe-2.9591d1a6aa27deeb.webp": { + "original_hash": "b414558382a2640d15611bd29ed8f5f0", + "translation_date": "2026-04-06T20:45:54+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/unripe/banana-unripe-2.png", + "language_code": "km" + }, + "banana-unripe-20.85b7a74eaab5634e.webp": { + "original_hash": "cf0067ebc713ffa4be85f95463639d68", + "translation_date": "2026-04-06T20:45:53+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/unripe/banana-unripe-20.png", + "language_code": "km" + }, + "banana-unripe-21.ccc1333439b344bc.webp": { + "original_hash": "6ee44eae72d211d164828835be1dd7c5", + "translation_date": "2026-04-06T20:45:55+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/unripe/banana-unripe-21.png", + "language_code": "km" + }, + "banana-unripe-22.27dff4b438163080.webp": { + "original_hash": "a9a930c9ba5f72daa2205105248afd86", + "translation_date": "2026-04-06T20:45:52+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/unripe/banana-unripe-22.png", + "language_code": "km" + }, + "banana-unripe-23.c4c9067f23370e90.webp": { + "original_hash": "141fdca6d816f53efd73fe0ae59d0a43", + "translation_date": "2026-04-06T20:45:51+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/unripe/banana-unripe-23.png", + "language_code": "km" + }, + "banana-unripe-24.6f0b781c309da62f.webp": { + "original_hash": "c36781ac98c350de305cc9864e4e4b67", + "translation_date": "2026-04-06T20:45:56+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/unripe/banana-unripe-24.png", + "language_code": "km" + }, + "banana-unripe-25.21d553d84880ac4f.webp": { + "original_hash": "534e54b877de9b3bc7c5e67e6fb426b5", + "translation_date": "2026-04-06T20:45:56+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/unripe/banana-unripe-25.png", + "language_code": "km" + }, + "banana-unripe-26.823c48b61feb1d5c.webp": { + "original_hash": "f541d556eff5be42991bba984ca305f9", + "translation_date": "2026-04-06T20:45:57+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/unripe/banana-unripe-26.png", + "language_code": "km" + }, + "banana-unripe-27.f98fd272deeb02d9.webp": { + "original_hash": "32ffe72a780f2ae97ac1b189d0fb9a44", + "translation_date": "2026-04-06T20:45:51+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/unripe/banana-unripe-27.png", + "language_code": "km" + }, + "banana-unripe-28.5331ba409ce41c07.webp": { + "original_hash": "75f6d0f1ad3d2ca875d31421b8f35deb", + "translation_date": "2026-04-06T20:45:52+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/unripe/banana-unripe-28.png", + "language_code": "km" + }, + "banana-unripe-29.84e126f389bf627e.webp": { + "original_hash": "fad512ccb4e4129d91a10b915bc55829", + "translation_date": "2026-04-06T20:45:55+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/unripe/banana-unripe-29.png", + "language_code": "km" + }, + "banana-unripe-3.896df8fb2c3b8f51.webp": { + "original_hash": "16d53ba9a1f72a431e04901214d53f2e", + "translation_date": "2026-04-06T20:45:53+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/unripe/banana-unripe-3.png", + "language_code": "km" + }, + "banana-unripe-4.483e740d6fd7b5a6.webp": { + "original_hash": "e0ff72cd82b8c7c4595e1beec806b8cb", + "translation_date": "2026-04-06T20:45:51+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/unripe/banana-unripe-4.png", + "language_code": "km" + }, + "banana-unripe-5.e9923cf1ffcfc1c9.webp": { + "original_hash": "c46c19087503e1173c9c214750b06c8f", + "translation_date": "2026-04-06T20:45:55+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/unripe/banana-unripe-5.png", + "language_code": "km" + }, + "banana-unripe-6.e3a73307558caecc.webp": { + "original_hash": "29d58bf3f0290ac98d5c748f467ab900", + "translation_date": "2026-04-06T20:45:51+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/unripe/banana-unripe-6.png", + "language_code": "km" + }, + "banana-unripe-7.634ca89acc17d68f.webp": { + "original_hash": "90677247facc68c33c17c37f03d6531d", + "translation_date": "2026-04-06T20:45:52+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/unripe/banana-unripe-7.png", + "language_code": "km" + }, + "banana-unripe-8.75720b4cdebac8c3.webp": { + "original_hash": "b2c3f312e05c258ea969ea1510c9e8d7", + "translation_date": "2026-04-06T20:45:54+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/unripe/banana-unripe-8.png", + "language_code": "km" + }, + "banana-unripe-9.e8076983351d2f54.webp": { + "original_hash": "93eac8be89da4c1db40c38166f18d515", + "translation_date": "2026-04-06T20:45:56+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/images/training/unripe/banana-unripe-9.png", + "language_code": "km" + }, + "banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64.webp": { + "original_hash": "7351b0cf725cfdc62e6b44d3c25ece0b", + "translation_date": "2026-04-06T20:26:44+00:00", + "source_file": "images/banana-unripe-quick-test-prediction.png", + "language_code": "km" + }, + "bananas-ripe-vs-unripe-predictions.8d0e2034014aa50e.webp": { + "original_hash": "43cbf29c310e7358f9ac1baa54fcf34f", + "translation_date": "2026-04-06T20:29:04+00:00", + "source_file": "images/bananas-ripe-vs-unripe-predictions.png", + "language_code": "km" + }, + "basic-thermostat.a923217fd1f37e5a.webp": { + "original_hash": "50447b3cb751fb0fe9d4d79b89e2b923", + "translation_date": "2026-04-06T20:28:14+00:00", + "source_file": "images/basic-thermostat.png", + "language_code": "km" + }, + "bing-translate.348aa796d6efe2a9.webp": { + "original_hash": "357040ee1345ab2473e9b5284f85e81b", + "translation_date": "2026-04-06T20:21:35+00:00", + "source_file": "images/bing-translate.png", + "language_code": "km" + }, + "bounding-box.1420a7ea0d3d15f7.webp": { + "original_hash": "6e8d5968c9badbf125027b02a8f5cacd", + "translation_date": "2026-04-06T20:28:57+00:00", + "source_file": "images/bounding-box.png", + "language_code": "km" + }, + "bricked-car.dc38f8efadc6c59d.webp": { + "original_hash": "67716470d43e5717406c6ef7ce6f51e4", + "translation_date": "2026-04-06T20:27:57+00:00", + "source_file": "images/bricked-car.png", + "language_code": "km" + }, + "button-with-digital.3749edea8eb885af.webp": { + "original_hash": "c71d7fe1263b112c755f3d0442406df8", + "translation_date": "2026-04-06T20:24:48+00:00", + "source_file": "images/button-with-digital.png", + "language_code": "km" + }, + "button.eadb560b77ac45e5.webp": { + "original_hash": "85b6123798803252b7f30ffce7dc58c8", + "translation_date": "2026-04-06T20:21:28+00:00", + "source_file": "images/button.png", + "language_code": "km" + }, + "chart-soil-moisture-relay.fbb391236d34a64d.webp": { + "original_hash": "2528b9288bbb1201b87058b75d516b0a", + "translation_date": "2026-04-06T20:21:57+00:00", + "source_file": "images/chart-soil-moisture-relay.png", + "language_code": "km" + }, + "chart-soil-moisture.fd6d9d0cdc0b5f75.webp": { + "original_hash": "7dfa7af1913187ec9700073ccfac2d7e", + "translation_date": "2026-04-06T20:25:10+00:00", + "source_file": "images/chart-soil-moisture.png", + "language_code": "km" + }, + "child-watering-garden.9a5d3f1bfe6d0d8d.webp": { + "original_hash": "c547237141a5201756db33e5e977a363", + "translation_date": "2026-04-06T20:22:30+00:00", + "source_file": "images/child-watering-garden.jpg", + "language_code": "km" + }, + "cloud-with-edge.1e26462c62c126fe.webp": { + "original_hash": "5f1262d7eaa6699d85c7b7c89ed6eeb0", + "translation_date": "2026-04-06T20:22:13+00:00", + "source_file": "images/cloud-with-edge.png", + "language_code": "km" + }, + "cloud-without-edge.b4da641f6022c95e.webp": { + "original_hash": "7788335416c9ad8abd402188a02680b2", + "translation_date": "2026-04-06T20:25:43+00:00", + "source_file": "images/cloud-without-edge.png", + "language_code": "km" + }, + "cmos-sensor.75f9cd74decb1371.webp": { + "original_hash": "955bcd3e34765f989cd7c0df5909560d", + "translation_date": "2026-04-06T20:28:33+00:00", + "source_file": "images/cmos-sensor.png", + "language_code": "km" + }, + "commands.d6c06bbbb3a02cce.webp": { + "original_hash": "8390a0fb6de9ed7ea485aa8b7885d107", + "translation_date": "2026-04-06T20:29:45+00:00", + "source_file": "images/commands.png", + "language_code": "km" + }, + "condenser-mic.6f6ed5b76ca19e0e.webp": { + "original_hash": "b1b138069d34d7c5c124b0d8e69a8089", + "translation_date": "2026-04-06T20:26:32+00:00", + "source_file": "images/condenser-mic.jpg", + "language_code": "km" + }, + "consumer-groups.a3262e26fc27ba20.webp": { + "original_hash": "052b922d0ba2c50c83132074572c68e3", + "translation_date": "2026-04-06T20:26:57+00:00", + "source_file": "images/consumer-groups.png", + "language_code": "km" + }, + "container-edge-flow.c246050dd60ceefd.webp": { + "original_hash": "82e97f8c96fa7aa5acddb9e2bace544b", + "translation_date": "2026-04-06T20:25:54+00:00", + "source_file": "images/container-edge-flow.png", + "language_code": "km" + }, + "container-web-browser.4ee81dd4f0d8838c.webp": { + "original_hash": "ed428a4061a9c8a7bd3b46eb92709603", + "translation_date": "2026-04-06T20:24:38+00:00", + "source_file": "images/container-web-browser.png", + "language_code": "km" + }, + "counterfit-camera-options.eb3bd5150a8e7dff.webp": { + "original_hash": "bad454364357d90492676e610b7bfaaf", + "translation_date": "2026-04-06T20:27:10+00:00", + "source_file": "images/counterfit-camera-options.png", + "language_code": "km" + }, + "counterfit-camera.001ec52194c8ee5d.webp": { + "original_hash": "ce27314b8b055207bd6d020cd0f16403", + "translation_date": "2026-04-06T20:26:10+00:00", + "source_file": "images/counterfit-camera.png", + "language_code": "km" + }, + "counterfit-connected.ed30b46d8f79b092.webp": { + "original_hash": "9deaaeb5131e9a263fbbecb01f7997f6", + "translation_date": "2026-04-06T20:27:36+00:00", + "source_file": "images/counterfit-connected.png", + "language_code": "km" + }, + "counterfit-create-camera.a5de97f59c0bd3cb.webp": { + "original_hash": "d90405c8dbb6738e0e11a8ed2fea2b56", + "translation_date": "2026-04-06T20:22:59+00:00", + "source_file": "images/counterfit-create-camera.png", + "language_code": "km" + }, + "counterfit-create-distance-sensor.967c9fb98f27888d.webp": { + "original_hash": "fc393748f2ddbae005330e640d841c41", + "translation_date": "2026-04-06T20:23:19+00:00", + "source_file": "images/counterfit-create-distance-sensor.png", + "language_code": "km" + }, + "counterfit-create-gps-sensor.6385dc9357d85ad1.webp": { + "original_hash": "57eef4bdcf582fa280abe6860d6605c9", + "translation_date": "2026-04-06T20:23:22+00:00", + "source_file": "images/counterfit-create-gps-sensor.png", + "language_code": "km" + }, + "counterfit-create-humidity-sensor.2750e27b6f30e09c.webp": { + "original_hash": "2678e71d9f5f0b887059244ceb0747e2", + "translation_date": "2026-04-06T20:28:40+00:00", + "source_file": "images/counterfit-create-humidity-sensor.png", + "language_code": "km" + }, + "counterfit-create-led.ba9db1c9b8c622a6.webp": { + "original_hash": "748880e7a96e6fe87be2d253398d1d8a", + "translation_date": "2026-04-06T20:24:02+00:00", + "source_file": "images/counterfit-create-led.png", + "language_code": "km" + }, + "counterfit-create-light-sensor.9f36a5e0d4458d8d.webp": { + "original_hash": "8906d361868d0342fccec9bb4952c74b", + "translation_date": "2026-04-06T20:28:05+00:00", + "source_file": "images/counterfit-create-light-sensor.png", + "language_code": "km" + }, + "counterfit-create-relay.fa7c40fd0f2f6afc.webp": { + "original_hash": "69d09420bf11407584ef8f7c2a4b6934", + "translation_date": "2026-04-06T20:25:40+00:00", + "source_file": "images/counterfit-create-relay.png", + "language_code": "km" + }, + "counterfit-create-soil-moisture-sensor.35266135a5e0ae68.webp": { + "original_hash": "0d5b89d4e4a3e0fcd2b30cb15aa9c37f", + "translation_date": "2026-04-06T20:28:22+00:00", + "source_file": "images/counterfit-create-soil-moisture-sensor.png", + "language_code": "km" + }, + "counterfit-create-temperature-sensor.199350ed34f7343d.webp": { + "original_hash": "24a54b9c88c3efc0a31bb9d9db572985", + "translation_date": "2026-04-06T20:24:36+00:00", + "source_file": "images/counterfit-create-temperature-sensor.png", + "language_code": "km" + }, + "counterfit-distance-sensor.079eefeeea0b68af.webp": { + "original_hash": "87337c291c694bf955c4ea27d16b527b", + "translation_date": "2026-04-06T20:22:35+00:00", + "source_file": "images/counterfit-distance-sensor.png", + "language_code": "km" + }, + "counterfit-first-run.433326358b669b31.webp": { + "original_hash": "af69e87134afcc0b94a0ee13d7127e83", + "translation_date": "2026-04-06T20:22:06+00:00", + "source_file": "images/counterfit-first-run.png", + "language_code": "km" + }, + "counterfit-gps-sensor-gpxfile.8310b063ce8a425c.webp": { + "original_hash": "0160890d86b609909702f86540b4d7df", + "translation_date": "2026-04-06T20:23:03+00:00", + "source_file": "images/counterfit-gps-sensor-gpxfile.png", + "language_code": "km" + }, + "counterfit-gps-sensor-latlon.008c867d75464fbe.webp": { + "original_hash": "176d91894e0da37cc78d56aed5858fac", + "translation_date": "2026-04-06T20:27:54+00:00", + "source_file": "images/counterfit-gps-sensor-latlon.png", + "language_code": "km" + }, + "counterfit-gps-sensor-nmea.c62eea442171e17e.webp": { + "original_hash": "afbf9dca4a4c89c0b21abb6a6d163635", + "translation_date": "2026-04-06T20:21:49+00:00", + "source_file": "images/counterfit-gps-sensor-nmea.png", + "language_code": "km" + }, + "counterfit-gps-sensor.3fbb15af0a536756.webp": { + "original_hash": "f5317788426731587cefceac202102ed", + "translation_date": "2026-04-06T20:25:45+00:00", + "source_file": "images/counterfit-gps-sensor.png", + "language_code": "km" + }, + "counterfit-humidity-sensor.7b12f7f339e430cb.webp": { + "original_hash": "7bb1b1afc76c63ba7cf4c7f7bf9a134c", + "translation_date": "2026-04-06T20:29:44+00:00", + "source_file": "images/counterfit-humidity-sensor.png", + "language_code": "km" + }, + "counterfit-led.c0ab02de6d256ad8.webp": { + "original_hash": "c03cf80f7745d1caf7b7ece187e3ac7b", + "translation_date": "2026-04-06T20:29:32+00:00", + "source_file": "images/counterfit-led.png", + "language_code": "km" + }, + "counterfit-light-sensor.5d0f5584df56b90f.webp": { + "original_hash": "938da9f71fb2820061acca73bb053a68", + "translation_date": "2026-04-06T20:23:26+00:00", + "source_file": "images/counterfit-light-sensor.png", + "language_code": "km" + }, + "counterfit-relay.bbf74c1dbdc8b9ac.webp": { + "original_hash": "0a28fe42b27b9898e0eba6e65faef94a", + "translation_date": "2026-04-06T20:29:34+00:00", + "source_file": "images/counterfit-relay.png", + "language_code": "km" + }, + "counterfit-soil-moisture-sensor.81742b2de0e9de60.webp": { + "original_hash": "54613df49c9e3c09be6ddc351dae1875", + "translation_date": "2026-04-06T20:28:42+00:00", + "source_file": "images/counterfit-soil-moisture-sensor.png", + "language_code": "km" + }, + "counterfit-temperature-sensor.f0560236c96a9016.webp": { + "original_hash": "52e9ae650e824d9c36c419fcf6febef7", + "translation_date": "2026-04-06T20:22:30+00:00", + "source_file": "images/counterfit-temperature-sensor.png", + "language_code": "km" + }, + "custom-vision-banana-prediction.30cdff4e1d72db5d.webp": { + "original_hash": "1962f0cce26ba3d8a180acaec2972895", + "translation_date": "2026-04-06T20:28:08+00:00", + "source_file": "images/custom-vision-banana-prediction.png", + "language_code": "km" + }, + "custom-vision-create-object-detector-project.32d4fb9aa8e7e737.webp": { + "original_hash": "052a80c8a99c7f2a0400338775c8c132", + "translation_date": "2026-04-06T20:22:57+00:00", + "source_file": "images/custom-vision-create-object-detector-project.png", + "language_code": "km" + }, + "custom-vision-create-project.cf46325b92d8b131.webp": { + "original_hash": "4471516b6b46ce7920ac178930397ccc", + "translation_date": "2026-04-06T20:24:57+00:00", + "source_file": "images/custom-vision-create-project.png", + "language_code": "km" + }, + "custom-vision-logo.d3d4e7c8a87ec9da.webp": { + "original_hash": "b67626a2dbc98e461f19f42db2de3a5b", + "translation_date": "2026-04-06T20:28:20+00:00", + "source_file": "images/custom-vision-logo.png", + "language_code": "km" + }, + "custom-vision-object-detector-publish-button.34ee379fc650ccb9.webp": { + "original_hash": "dd33f3d305ce96a1831bd1726dc9353b", + "translation_date": "2026-04-06T20:27:29+00:00", + "source_file": "images/custom-vision-object-detector-publish-button.png", + "language_code": "km" + }, + "custom-vision-prediction-key-endpoint.30c569ffd0338864.webp": { + "original_hash": "99d1145bc97ed96e187d6a5590c4332c", + "translation_date": "2026-04-06T20:23:50+00:00", + "source_file": "images/custom-vision-prediction-key-endpoint.png", + "language_code": "km" + }, + "custom-vision-publish-button.b7174e1977b0c33b.webp": { + "original_hash": "60c4e9f0efc81552bf0ad33db2688757", + "translation_date": "2026-04-06T20:23:11+00:00", + "source_file": "images/custom-vision-publish-button.png", + "language_code": "km" + }, + "custom-vision-stock-prediction.942266ab1bcca341.webp": { + "original_hash": "0c70587ccdba9496866b14ffe90cfd7b", + "translation_date": "2026-04-06T20:27:01+00:00", + "source_file": "images/custom-vision-stock-prediction.png", + "language_code": "km" + }, + "dimmable-light.9ceffeb195dec1a8.webp": { + "original_hash": "d64c8b23c012ebdbcacfb9bc0ac88b78", + "translation_date": "2026-04-06T20:27:07+00:00", + "source_file": "images/dimmable-light.png", + "language_code": "km" + }, + "dmac-adc-buffers.4509aee49145c90b.webp": { + "original_hash": "1351cbaad314ff7f81234448cdc5a1c9", + "translation_date": "2026-04-06T20:23:53+00:00", + "source_file": "images/dmac-adc-buffers.png", + "language_code": "km" + }, + "dynamic-mic.8babac890a2d80df.webp": { + "original_hash": "56710f289e88457d2e977fc9d3806569", + "translation_date": "2026-04-06T20:28:26+00:00", + "source_file": "images/dynamic-mic.jpg", + "language_code": "km" + }, + "favicon.37b561214b36d454.webp": { + "original_hash": "228faa6584f8ba1f7e9a75e3200112e9", + "translation_date": "2026-04-06T20:22:30+00:00", + "source_file": "images/favicon.png", + "language_code": "km" + }, + "fetch-decode-execute.2fd6f150f6280392.webp": { + "original_hash": "5bf630278697e98b9d322229d98d403c", + "translation_date": "2026-04-06T20:21:04+00:00", + "source_file": "images/fetch-decode-execute.png", + "language_code": "km" + }, + "fruit-quality-detector-message-flow.adf2a65da8fd8741.webp": { + "original_hash": "a7dab1140d82034626bb8de5f186131e", + "translation_date": "2026-04-06T20:24:12+00:00", + "source_file": "images/fruit-quality-detector-message-flow.png", + "language_code": "km" + }, + "gdd-calculation-corn.64a58b7a7afcd0df.webp": { + "original_hash": "313f7af564decf12984266f48531ca25", + "translation_date": "2026-04-06T20:26:19+00:00", + "source_file": "images/gdd-calculation-corn.png", + "language_code": "km" + }, + "gdd-calculation-strawberries.59f57db94b22adb8.webp": { + "original_hash": "8bbc10fc92e798cafb77786f7fee2fec", + "translation_date": "2026-04-06T20:23:00+00:00", + "source_file": "images/gdd-calculation-strawberries.png", + "language_code": "km" + }, + "gdd-calculation.79b3660f9c5757aa.webp": { + "original_hash": "bf4227ba3a7cfaae2a832050d904960e", + "translation_date": "2026-04-06T20:25:11+00:00", + "source_file": "images/gdd-calculation.png", + "language_code": "km" + }, + "gdd-jupyter-notebook.c5b52cf21094f158.webp": { + "original_hash": "85379646b4bef7edbfb10f7f457a3fda", + "translation_date": "2026-04-06T20:23:46+00:00", + "source_file": "images/gdd-jupyter-notebook.png", + "language_code": "km" + }, + "geofence-crossing-inaccurate-gps.6a3ed911202ad9ca.webp": { + "original_hash": "478511d89755e68ad1b0a8cd6cb72eef", + "translation_date": "2026-04-06T20:27:18+00:00", + "source_file": "images/geofence-crossing-inaccurate-gps.png", + "language_code": "km" + }, + "geofence-examples.172fbc534665769f.webp": { + "original_hash": "e836773107dcaf3aa2dcbf4b072bf1d0", + "translation_date": "2026-04-06T20:22:50+00:00", + "source_file": "images/geofence-examples.png", + "language_code": "km" + }, + "gps-satellites.04acf1148fe25fbf.webp": { + "original_hash": "af44157de12f3de1e84ea34fc9da6647", + "translation_date": "2026-04-06T20:28:43+00:00", + "source_file": "images/gps-satellites.png", + "language_code": "km" + }, + "gps-telemetry-iot-hub-functions.24d3fa5592455e9f.webp": { + "original_hash": "fe6ecba627bb1ac7c0f7123dcdc89c1c", + "translation_date": "2026-04-06T20:21:33+00:00", + "source_file": "images/gps-telemetry-iot-hub-functions.png", + "language_code": "km" + }, + "gps-telemetry-iot-hub.8115335d51cd2c12.webp": { + "original_hash": "594448866b50836b5d5d664571ae8144", + "translation_date": "2026-04-06T20:25:38+00:00", + "source_file": "images/gps-telemetry-iot-hub.png", + "language_code": "km" + }, + "grove-base-hat-ribbon-cable.501fed202fcf73b1.webp": { + "original_hash": "aa2a325edef2b1fbd2d7639853d310fd", + "translation_date": "2026-04-06T20:27:04+00:00", + "source_file": "images/grove-base-hat-ribbon-cable.png", + "language_code": "km" + }, + "grove-button.a70cfbb809a85636.webp": { + "original_hash": "63615c1ec61dcf1763b1c406298bb67c", + "translation_date": "2026-04-06T20:27:16+00:00", + "source_file": "images/grove-button.png", + "language_code": "km" + }, + "grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp": { + "original_hash": "f1a5ee679e4c05c2b3047ef0d69f85f0", + "translation_date": "2026-04-06T20:27:33+00:00", + "source_file": "images/grove-capacitive-soil-moisture-sensor.png", + "language_code": "km" + }, + "grove-dht11.07f8eafceee17004.webp": { + "original_hash": "e66c4f14e29b96bcd1d5a8c86c19288d", + "translation_date": "2026-04-06T20:21:43+00:00", + "source_file": "images/grove-dht11.png", + "language_code": "km" + }, + "grove-gps-sensor.247943bf69b03f0d.webp": { + "original_hash": "2cdf74787c6cf892a6b1a0f1753f8b24", + "translation_date": "2026-04-06T20:24:27+00:00", + "source_file": "images/grove-gps-sensor.png", + "language_code": "km" + }, + "grove-led.6c853be93f473cf2.webp": { + "original_hash": "ccf9fb22df3755582b81bae02335135b", + "translation_date": "2026-04-06T20:27:31+00:00", + "source_file": "images/grove-led.png", + "language_code": "km" + }, + "grove-light-sensor.b8127b7c434e632d.webp": { + "original_hash": "1e6e9a840b1f0b0dd777593c38d31109", + "translation_date": "2026-04-06T20:24:06+00:00", + "source_file": "images/grove-light-sensor.png", + "language_code": "km" + }, + "grove-relay-labelled.293e068f5c3c2a19.webp": { + "original_hash": "b75dcabfa78bcfca34b6cce74323e178", + "translation_date": "2026-04-06T20:22:52+00:00", + "source_file": "images/grove-relay-labelled.png", + "language_code": "km" + }, + "grove-relay.d426958ca210fbd0.webp": { + "original_hash": "ceed414ceb65226b0e91bf1147d1fa01", + "translation_date": "2026-04-06T20:24:18+00:00", + "source_file": "images/grove-relay.png", + "language_code": "km" + }, + "grove-time-of-flight-sensor.d82ff2165bfded9f.webp": { + "original_hash": "dcc2dfd53862a2533a34b9bb7913ae90", + "translation_date": "2026-04-06T20:28:52+00:00", + "source_file": "images/grove-time-of-flight-sensor.png", + "language_code": "km" + }, + "gsm-calculation-example.99f9803b4f29e976.webp": { + "original_hash": "0421a50ee61d76fda1380f899c4fd99c", + "translation_date": "2026-04-06T20:29:08+00:00", + "source_file": "images/gsm-calculation-example.png", + "language_code": "km" + }, + "gsm-calculation.6da38c6201eec14e.webp": { + "original_hash": "9b2287a653a1fd6ee0480021a98bca3b", + "translation_date": "2026-04-06T20:28:51+00:00", + "source_file": "images/gsm-calculation.png", + "language_code": "km" + }, + "i2c.83da845dde02256b.webp": { + "original_hash": "198d21e02d4c69b84028bd69172ffa8e", + "translation_date": "2026-04-06T20:25:36+00:00", + "source_file": "images/i2c.png", + "language_code": "km" + }, + "image-classifier-cashews-tomato.bc2e16ab8f05cf9a.webp": { + "original_hash": "1b245f1520995579839a00cb93a09242", + "translation_date": "2026-04-06T20:28:18+00:00", + "source_file": "images/image-classifier-cashews-tomato.png", + "language_code": "km" + }, + "image-upload-bananas.0751639f3815e0ec.webp": { + "original_hash": "a293096ce03324bb0282c712610f6892", + "translation_date": "2026-04-06T20:26:47+00:00", + "source_file": "images/image-upload-bananas.png", + "language_code": "km" + }, + "image-upload-object-detector.77c7892c3093cb59.webp": { + "original_hash": "d66ff14cd73c4acfbb2ce4b15a256850", + "translation_date": "2026-04-06T20:21:31+00:00", + "source_file": "images/image-upload-object-detector.png", + "language_code": "km" + }, + "iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f.webp": { + "original_hash": "b55ce16301f8b389703a495e87d30f89", + "translation_date": "2026-04-06T20:29:02+00:00", + "source_file": "images/iot-device-and-hacked-device-connecting-encryption.png", + "language_code": "km" + }, + "iot-device-and-hacked-device-connecting.e0671675df74d6d9.webp": { + "original_hash": "4424245692fededc88fa35415899b600", + "translation_date": "2026-04-06T20:28:25+00:00", + "source_file": "images/iot-device-and-hacked-device-connecting.png", + "language_code": "km" + }, + "iot-for-beginners.95958e2ed1900917.webp": { + "original_hash": "0ee1737da60391e3b1d48686e1d7c893", + "translation_date": "2026-04-06T20:22:51+00:00", + "source_file": "images/iot-for-beginners.png", + "language_code": "km" + }, + "iot-hub-cloud-to-device-message.f4f21fea772cc20b.webp": { + "original_hash": "d5e70a4a54a0038278c5bdc2b4988f8e", + "translation_date": "2026-04-06T20:29:46+00:00", + "source_file": "images/iot-hub-cloud-to-device-message.png", + "language_code": "km" + }, + "iot-hub-device-to-cloud-message.e46e584d87f35fd9.webp": { + "original_hash": "f080414808052183955ae04971260ebb", + "translation_date": "2026-04-06T20:29:31+00:00", + "source_file": "images/iot-hub-device-to-cloud-message.png", + "language_code": "km" + }, + "iot-hub-device-twins.7055a60fc5e2331c.webp": { + "original_hash": "ddaade630edadb655820875bc6a7a398", + "translation_date": "2026-04-06T20:21:51+00:00", + "source_file": "images/iot-hub-device-twins.png", + "language_code": "km" + }, + "iot-hub-direct-method-request.86a5026e91f4ca18.webp": { + "original_hash": "8940e81543500cb4f065eed262888ba0", + "translation_date": "2026-04-06T20:28:30+00:00", + "source_file": "images/iot-hub-direct-method-request.png", + "language_code": "km" + }, + "iot-messages-to-serverless.0194da1cc0732bb7.webp": { + "original_hash": "b845f5d76ec996b99ee19d76c7254e4f", + "translation_date": "2026-04-06T20:24:22+00:00", + "source_file": "images/iot-messages-to-serverless.png", + "language_code": "km" + }, + "iot-reference-architecture-azure.0b8d2161af924cb1.webp": { + "original_hash": "cf394dd153db645ed55d362824b4beff", + "translation_date": "2026-04-06T20:25:25+00:00", + "source_file": "images/iot-reference-architecture-azure.png", + "language_code": "km" + }, + "iot-reference-architecture-fruit-quality.cc705f121c3b6fa7.webp": { + "original_hash": "23d41791f8c62c0f91da0979160cada7", + "translation_date": "2026-04-06T20:23:32+00:00", + "source_file": "images/iot-reference-architecture-fruit-quality.png", + "language_code": "km" + }, + "iot-reference-architecture.2278b98b55c6d4e8.webp": { + "original_hash": "a06f575f400e2323f68d231b4867cee4", + "translation_date": "2026-04-06T20:26:50+00:00", + "source_file": "images/iot-reference-architecture.png", + "language_code": "km" + }, + "iot-service-allowed-denied-connection.818b0063ac213fb8.webp": { + "original_hash": "e39609b2a6e0a6f3a09f869f30654e4c", + "translation_date": "2026-04-06T20:28:28+00:00", + "source_file": "images/iot-service-allowed-denied-connection.png", + "language_code": "km" + }, + "iot-service-connectivity.7e873847921a5d6f.webp": { + "original_hash": "b69786f576a7862abc86d0d03a68ebb7", + "translation_date": "2026-04-06T20:24:51+00:00", + "source_file": "images/iot-service-connectivity.png", + "language_code": "km" + }, + "latitude-equator.feccc3214b7d9fb1.webp": { + "original_hash": "56a4f9ad1e573c57538578c32f9d86da", + "translation_date": "2026-04-06T20:24:13+00:00", + "source_file": "images/latitude-equator.png", + "language_code": "km" + }, + "latitude-lines.11d8d91dfb2014a5.webp": { + "original_hash": "a0c885ec44be899480f5e591ff23f911", + "translation_date": "2026-04-06T20:22:09+00:00", + "source_file": "images/latitude-lines.png", + "language_code": "km" + }, + "led-digital-control.13b9be14077ea49f.webp": { + "original_hash": "48875cd4b26e07780599d8a068c0bf83", + "translation_date": "2026-04-06T20:26:31+00:00", + "source_file": "images/led-digital-control.png", + "language_code": "km" + }, + "led.ec6d94f66676a174.webp": { + "original_hash": "8dd1438a3970c2bd893f35af372b1a60", + "translation_date": "2026-04-06T20:27:57+00:00", + "source_file": "images/led.png", + "language_code": "km" + }, + "lesson-1.2606670fa61ee904.webp": { + "original_hash": "84859c69fb3a2f18ffbe095a2102d7f6", + "translation_date": "2026-04-06T20:38:46+00:00", + "source_file": "sketchnotes/lesson-1.jpg", + "language_code": "km" + }, + "lesson-10.829c86b80b9403bb.webp": { + "original_hash": "d01fb71820808d72515cf0b7d68bab41", + "translation_date": "2026-04-06T20:38:49+00:00", + "source_file": "sketchnotes/lesson-10.jpg", + "language_code": "km" + }, + "lesson-11.9fddbac4b664c6d5.webp": { + "original_hash": "b1f802eab377a9252f62e9309f8e592a", + "translation_date": "2026-04-06T20:38:57+00:00", + "source_file": "sketchnotes/lesson-11.jpg", + "language_code": "km" + }, + "lesson-12.ca7f53039712a3ec.webp": { + "original_hash": "967e8e3853bc164050b097ea16490057", + "translation_date": "2026-04-06T20:35:19+00:00", + "source_file": "sketchnotes/lesson-12.jpg", + "language_code": "km" + }, + "lesson-13.a259db1485021be7.webp": { + "original_hash": "49048659f9a44917256f7b4b7f864f62", + "translation_date": "2026-04-06T20:35:02+00:00", + "source_file": "sketchnotes/lesson-13.jpg", + "language_code": "km" + }, + "lesson-14.63980c5150ae3c15.webp": { + "original_hash": "b6ce8e2bb49d1616057ee45f2e37fe8f", + "translation_date": "2026-04-06T20:37:36+00:00", + "source_file": "sketchnotes/lesson-14.jpg", + "language_code": "km" + }, + "lesson-15.843d21afdc6fb2bb.webp": { + "original_hash": "c44ff172164fdfbafabf0c806f5e8593", + "translation_date": "2026-04-06T20:29:56+00:00", + "source_file": "sketchnotes/lesson-15.jpg", + "language_code": "km" + }, + "lesson-16.215daf18b00631fb.webp": { + "original_hash": "0bd07a79a71954ad4f5b585972d4deb9", + "translation_date": "2026-04-06T20:35:23+00:00", + "source_file": "sketchnotes/lesson-16.jpg", + "language_code": "km" + }, + "lesson-17.bc333c3c35ba8e42.webp": { + "original_hash": "5f7d869576300be85ed519ef16ff6a39", + "translation_date": "2026-04-06T20:35:11+00:00", + "source_file": "sketchnotes/lesson-17.jpg", + "language_code": "km" + }, + "lesson-18.92c32ed1d354caa5.webp": { + "original_hash": "89d2f47ae6201d70aec617d32cd09f53", + "translation_date": "2026-04-06T20:38:54+00:00", + "source_file": "sketchnotes/lesson-18.jpg", + "language_code": "km" + }, + "lesson-19.cf6973cecadf080c.webp": { + "original_hash": "7e8769bcee6aeb9ebbb9c1752847f908", + "translation_date": "2026-04-06T20:31:16+00:00", + "source_file": "sketchnotes/lesson-19.jpg", + "language_code": "km" + }, + "lesson-2.324b0580d620c25e.webp": { + "original_hash": "ec89ab3c7a4154d500a4249e4b611ce3", + "translation_date": "2026-04-06T20:37:32+00:00", + "source_file": "sketchnotes/lesson-2.jpg", + "language_code": "km" + }, + "lesson-20.0211df9551a8abb3.webp": { + "original_hash": "6955631846f6c3a04436440cbe55ec9e", + "translation_date": "2026-04-06T20:29:54+00:00", + "source_file": "sketchnotes/lesson-20.jpg", + "language_code": "km" + }, + "lesson-21.e34de51354d6606f.webp": { + "original_hash": "918fab6c83b650cf67a39f5a9e740609", + "translation_date": "2026-04-06T20:35:04+00:00", + "source_file": "sketchnotes/lesson-21.jpg", + "language_code": "km" + }, + "lesson-22.6148ea28500d9e00.webp": { + "original_hash": "744a23c671043c5538445857370ea60e", + "translation_date": "2026-04-06T20:35:07+00:00", + "source_file": "sketchnotes/lesson-22.jpg", + "language_code": "km" + }, + "lesson-23.f38483e1d4df4828.webp": { + "original_hash": "cef842f7b80b336838233fcf1be1029c", + "translation_date": "2026-04-06T20:37:42+00:00", + "source_file": "sketchnotes/lesson-23.jpg", + "language_code": "km" + }, + "lesson-24.4246968ed058510a.webp": { + "original_hash": "08ff9d2f7cd0d595eb30e96375add9f3", + "translation_date": "2026-04-06T20:35:16+00:00", + "source_file": "sketchnotes/lesson-24.jpg", + "language_code": "km" + }, + "lesson-3.cc3b7b4cd646de59.webp": { + "original_hash": "4ef30b3fb0ed4914bfc4753db2e99a7b", + "translation_date": "2026-04-06T20:31:12+00:00", + "source_file": "sketchnotes/lesson-3.jpg", + "language_code": "km" + }, + "lesson-4.7344e074ea68fa54.webp": { + "original_hash": "8fec62a3c5722c6c9adeb713c30d685c", + "translation_date": "2026-04-06T20:36:23+00:00", + "source_file": "sketchnotes/lesson-4.jpg", + "language_code": "km" + }, + "lesson-5.42b234299279d263.webp": { + "original_hash": "691cf783fe7ef6b40bf300481e7326d2", + "translation_date": "2026-04-06T20:29:58+00:00", + "source_file": "sketchnotes/lesson-5.jpg", + "language_code": "km" + }, + "lesson-6.3e493b60eee85adc.webp": { + "original_hash": "94d827c7b07c857cf86360f7a42734e0", + "translation_date": "2026-04-06T20:37:34+00:00", + "source_file": "sketchnotes/lesson-6.jpg", + "language_code": "km" + }, + "lesson-7.30b5f577d3cb8e03.webp": { + "original_hash": "65e26ac18d8f2455e8c5241431133288", + "translation_date": "2026-04-06T20:29:50+00:00", + "source_file": "sketchnotes/lesson-7.jpg", + "language_code": "km" + }, + "lesson-8.3f21f3c11159e6a0.webp": { + "original_hash": "43f49f9a260610f3e5493dfdc6dc0d7f", + "translation_date": "2026-04-06T20:35:21+00:00", + "source_file": "sketchnotes/lesson-8.jpg", + "language_code": "km" + }, + "lesson-9.dfe99c8e891f48e1.webp": { + "original_hash": "7d6641c90a95897e05e60033cf61367f", + "translation_date": "2026-04-06T20:37:39+00:00", + "source_file": "sketchnotes/lesson-9.jpg", + "language_code": "km" + }, + "light-switch.760317ad6ab8bd6d.webp": { + "original_hash": "41d49f69f3e43729085745abb67167b8", + "translation_date": "2026-04-06T20:21:06+00:00", + "source_file": "images/light-switch.png", + "language_code": "km" + }, + "lines-of-longitude-and-latitude.032aca9d3e402c4e.webp": { + "original_hash": "f8604251b9319c765df2a2046e4d5f93", + "translation_date": "2026-04-06T20:28:14+00:00", + "source_file": "images/lines-of-longitude-and-latitude.png", + "language_code": "km" + }, + "longitude-meridians.ab4ef1c91c064586.webp": { + "original_hash": "dc8d5df51066d4009ed1696d40ae016d", + "translation_date": "2026-04-06T20:23:24+00:00", + "source_file": "images/longitude-meridians.png", + "language_code": "km" + }, + "longitude-prime-meridian.33b01b41ce615f9d.webp": { + "original_hash": "470be2d3dacf49b2a2a6ce93ac32169a", + "translation_date": "2026-04-06T20:28:51+00:00", + "source_file": "images/longitude-prime-meridian.png", + "language_code": "km" + }, + "luis-intent-examples.25716580b2d2723c.webp": { + "original_hash": "10c4351eab0a8d50545a8ae5dab7e893", + "translation_date": "2026-04-06T20:25:49+00:00", + "source_file": "images/luis-intent-examples.png", + "language_code": "km" + }, + "luis-logo.5cb4f3e88c020ee6.webp": { + "original_hash": "501332df88cd55536be18754a26caffd", + "translation_date": "2026-04-06T20:25:21+00:00", + "source_file": "images/luis-logo.png", + "language_code": "km" + }, + "map-image.8fb2c53eb23ef39c.webp": { + "original_hash": "77c5609ccd32add2358d07375e1fb4ae", + "translation_date": "2026-04-06T20:28:50+00:00", + "source_file": "images/map-image.png", + "language_code": "km" + }, + "map-path.896832e72dc696ff.webp": { + "original_hash": "208641a804743048d5172bdcb674c6ce", + "translation_date": "2026-04-06T20:29:39+00:00", + "source_file": "images/map-path.png", + "language_code": "km" + }, + "mems-microphone.80574019e1f5e4d9.webp": { + "original_hash": "9fcdab93cb1a5f075fd7a7b87ee53ebd", + "translation_date": "2026-04-06T20:25:13+00:00", + "source_file": "images/mems-microphone.png", + "language_code": "km" + }, + "microsoft-gps-location-world.a321d481b010f6ad.webp": { + "original_hash": "deb0e7f79cc481afac238c73149d2f22", + "translation_date": "2026-04-06T20:22:25+00:00", + "source_file": "images/microsoft-gps-location-world.png", + "language_code": "km" + }, + "microsoft-gps-location.9eb77a13b22b7e70.webp": { + "original_hash": "657b30303221896c044fd9e1b9477c95", + "translation_date": "2026-04-06T20:24:34+00:00", + "source_file": "images/microsoft-gps-location.png", + "language_code": "km" + }, + "mobile-controlled-thermostat.4a994010473d8d6a.webp": { + "original_hash": "e5d3e7697b231ed03c0c9fcb05a79862", + "translation_date": "2026-04-06T20:29:42+00:00", + "source_file": "images/mobile-controlled-thermostat.png", + "language_code": "km" + }, + "mqtt.cbf7f21d9adc3e17.webp": { + "original_hash": "2622674075f6379bb851806552374257", + "translation_date": "2026-04-06T20:29:10+00:00", + "source_file": "images/mqtt.png", + "language_code": "km" + }, + "noqsl-database.62d24ccf5b73f60d.webp": { + "original_hash": "64109b6306a3c464b6e2b8bfb6a45665", + "translation_date": "2026-04-06T20:25:32+00:00", + "source_file": "images/noqsl-database.png", + "language_code": "km" + }, + "object-detector-cashews-tomato.1af7c26686b4db0e.webp": { + "original_hash": "3cb4f511cff4896b333181b8c0d19aa1", + "translation_date": "2026-04-06T20:28:12+00:00", + "source_file": "images/object-detector-cashews-tomato.png", + "language_code": "km" + }, + "object-detector-detected-tomato-paste.52656fe87af4c37b.webp": { + "original_hash": "5957b9bcae573e01c045354fc978f5e8", + "translation_date": "2026-04-06T20:25:05+00:00", + "source_file": "images/object-detector-detected-tomato-paste.png", + "language_code": "km" + }, + "object-detector-tag-tomato-paste.f47c362fb0f0eb58.webp": { + "original_hash": "453f6250e67659d363e7933e3999cd64", + "translation_date": "2026-04-06T20:25:30+00:00", + "source_file": "images/object-detector-tag-tomato-paste.png", + "language_code": "km" + }, + "optical-tomato-sorting.61aa134bdda4e5b1.webp": { + "original_hash": "ded722d4e89f50699032f038b439866d", + "translation_date": "2026-04-06T20:21:08+00:00", + "source_file": "images/optical-tomato-sorting.png", + "language_code": "km" + }, + "overlap-object-detection.d431e03cae75072a.webp": { + "original_hash": "9948ca331a7cbbf2ac9d7bb692603b20", + "translation_date": "2026-04-06T20:26:54+00:00", + "source_file": "images/overlap-object-detection.png", + "language_code": "km" + }, + "pi-button.c7a1a4f55943341c.webp": { + "original_hash": "94a08cd32cf5d198961e75bfb4ccd2d1", + "translation_date": "2026-04-06T20:25:19+00:00", + "source_file": "images/pi-button.png", + "language_code": "km" + }, + "pi-camera-module.4278753c31bd6e75.webp": { + "original_hash": "296dbc7764a334c9eea6e07d2bdf5228", + "translation_date": "2026-04-06T20:26:30+00:00", + "source_file": "images/pi-camera-module.png", + "language_code": "km" + }, + "pi-camera-ribbon-cable.0bf82acd251611c2.webp": { + "original_hash": "3ac274f1a38658e40c3c392746941cbd", + "translation_date": "2026-04-06T20:25:55+00:00", + "source_file": "images/pi-camera-ribbon-cable.png", + "language_code": "km" + }, + "pi-camera-socket-ribbon-cable.a18309920b118009.webp": { + "original_hash": "b34d7c3590218945fe8ac3cae8e30a50", + "translation_date": "2026-04-06T20:22:33+00:00", + "source_file": "images/pi-camera-socket-ribbon-cable.png", + "language_code": "km" + }, + "pi-camera-upside-down.5376961ba3145988.webp": { + "original_hash": "b242672b0a16425dc0c42e3458102e8c", + "translation_date": "2026-04-06T20:28:55+00:00", + "source_file": "images/pi-camera-upside-down.png", + "language_code": "km" + }, + "pi-gps-sensor.1f99ee2b2f652891.webp": { + "original_hash": "8096ac9ce04e5268b552024983283a21", + "translation_date": "2026-04-06T20:25:15+00:00", + "source_file": "images/pi-gps-sensor.png", + "language_code": "km" + }, + "pi-hardware-kit.26dbadaedb7dd44c.webp": { + "original_hash": "ff01874bf7ab355748ac69e0d18cc3a8", + "translation_date": "2026-04-06T20:22:02+00:00", + "source_file": "images/pi-hardware-kit.png", + "language_code": "km" + }, + "pi-led.97f1d474981dc35d.webp": { + "original_hash": "8c9c44daca0bb84fff271932128548e7", + "translation_date": "2026-04-06T20:26:20+00:00", + "source_file": "images/pi-led.png", + "language_code": "km" + }, + "pi-light-sensor.66cc1e31fa48cd7d.webp": { + "original_hash": "24c2a1d065061a13b890b6808abf158f", + "translation_date": "2026-04-06T20:25:37+00:00", + "source_file": "images/pi-light-sensor.png", + "language_code": "km" + }, + "pi-relay-and-soil-moisture-sensor.02f3198975b8c53e.webp": { + "original_hash": "dc129413981ef906b6edd50f837a9e01", + "translation_date": "2026-04-06T20:23:14+00:00", + "source_file": "images/pi-relay-and-soil-moisture-sensor.png", + "language_code": "km" + }, + "pi-respeaker-hat.f00fabe7dd039a93.webp": { + "original_hash": "831331e5010f14df7262034ca67a316d", + "translation_date": "2026-04-06T20:22:37+00:00", + "source_file": "images/pi-respeaker-hat.png", + "language_code": "km" + }, + "pi-soil-moisture-sensor.fdd7eb2393792cf6.webp": { + "original_hash": "c50b9b78b749af1958d574aa38253e66", + "translation_date": "2026-04-06T20:26:52+00:00", + "source_file": "images/pi-soil-moisture-sensor.png", + "language_code": "km" + }, + "pi-temperature-sensor.3ff82fff672c8e56.webp": { + "original_hash": "feb99d03e3c82faf6a583cafea990fba", + "translation_date": "2026-04-06T20:27:58+00:00", + "source_file": "images/pi-temperature-sensor.png", + "language_code": "km" + }, + "pi-time-of-flight-sensor.58c8dc04eb3bfb57.webp": { + "original_hash": "ddc354c7922b02d7be67a7bbca792ad8", + "translation_date": "2026-04-06T20:27:41+00:00", + "source_file": "images/pi-time-of-flight-sensor.png", + "language_code": "km" + }, + "plant-growth-temp-graph copy.65baa28afd9b7f5f.webp": { + "original_hash": "af7d47772297c3a84f2c2f4c519a98ee", + "translation_date": "2026-04-06T20:22:03+00:00", + "source_file": "images/plant-growth-temp-graph copy.png", + "language_code": "km" + }, + "plant-growth-temp-graph.c6d69c9478e6ca83.webp": { + "original_hash": "af7d47772297c3a84f2c2f4c519a98ee", + "translation_date": "2026-04-06T20:28:35+00:00", + "source_file": "images/plant-growth-temp-graph.png", + "language_code": "km" + }, + "polygon-points.302193da381cb415.webp": { + "original_hash": "01b6fa2d97b4fecb638b5162873f5ea9", + "translation_date": "2026-04-06T20:24:45+00:00", + "source_file": "images/polygon-points.png", + "language_code": "km" + }, + "potentiometer.35a348b9ce22f6ec.webp": { + "original_hash": "1fb25de33028ef905bf4cce330a9e6df", + "translation_date": "2026-04-06T20:29:21+00:00", + "source_file": "images/potentiometer.png", + "language_code": "km" + }, + "proximity-sensor.f5cd752c77fb62fe.webp": { + "original_hash": "46a4e21d2d633afa6120896b66b1b1f3", + "translation_date": "2026-04-06T20:29:15+00:00", + "source_file": "images/proximity-sensor.png", + "language_code": "km" + }, + "pub-sub.7c7ed43fe9fd15d4.webp": { + "original_hash": "e5ec0def10a72676eb757b830b8ae56e", + "translation_date": "2026-04-06T20:27:35+00:00", + "source_file": "images/pub-sub.png", + "language_code": "km" + }, + "pump-wired-to-relay.66c5cfc0d8918990.webp": { + "original_hash": "84a8c5f06d634c142ee4764b91ec4f59", + "translation_date": "2026-04-06T20:29:11+00:00", + "source_file": "images/pump-wired-to-relay.png", + "language_code": "km" + }, + "pwm-motor-150rpm.83347ac04ca38482.webp": { + "original_hash": "f829c583c9b05918631c9afec52dfad9", + "translation_date": "2026-04-06T20:24:41+00:00", + "source_file": "images/pwm-motor-150rpm.png", + "language_code": "km" + }, + "pwm-motor-75rpm.a5e4c939934b6e14.webp": { + "original_hash": "27174930eae0dd1d408ca7474099ebed", + "translation_date": "2026-04-06T20:27:19+00:00", + "source_file": "images/pwm-motor-75rpm.png", + "language_code": "km" + }, + "ram-comparison.6beb73541b42ac6f.webp": { + "original_hash": "178bedf746f370deb9b3600fe15afeb1", + "translation_date": "2026-04-06T20:24:44+00:00", + "source_file": "images/ram-comparison.png", + "language_code": "km" + }, + "raspberry-pi-4.fd4590d308c3d456.webp": { + "original_hash": "a6546a4c48ae28af3154546daeec43b2", + "translation_date": "2026-04-06T20:21:05+00:00", + "source_file": "images/raspberry-pi-4.jpg", + "language_code": "km" + }, + "raspberry-pi-imager.24aedeab9e233d84.webp": { + "original_hash": "d60a21f44e34a41ca0b925837b7822d2", + "translation_date": "2026-04-06T20:26:29+00:00", + "source_file": "images/raspberry-pi-imager.png", + "language_code": "km" + }, + "raspberry-pi-logo.4efaa16605cee054.webp": { + "original_hash": "6dc3ec9908411f01f40bdb144eb0352d", + "translation_date": "2026-04-06T20:28:13+00:00", + "source_file": "images/raspberry-pi-logo.png", + "language_code": "km" + }, + "raspberry-pi-zero.f7a4133e1e7d54bb.webp": { + "original_hash": "a65b4f80e337bb75907ba9668d0ec4ec", + "translation_date": "2026-04-06T20:26:06+00:00", + "source_file": "images/raspberry-pi-zero.jpg", + "language_code": "km" + }, + "relay-off.c34a178a2960fecd.webp": { + "original_hash": "695bf246ae769e65b44448d48b762bd1", + "translation_date": "2026-04-06T20:21:26+00:00", + "source_file": "images/relay-off.png", + "language_code": "km" + }, + "relay-on.4db16a0fd6b66926.webp": { + "original_hash": "9845f9c1489a850aa549e224cbe72d2a", + "translation_date": "2026-04-06T20:22:08+00:00", + "source_file": "images/relay-on.png", + "language_code": "km" + }, + "resistive-soil-moisture-sensor.728a138a3d109e06.webp": { + "original_hash": "10868a092da0bc909f5cc4639401c811", + "translation_date": "2026-04-06T20:27:21+00:00", + "source_file": "images/resistive-soil-moisture-sensor.png", + "language_code": "km" + }, + "respeaker-35mm-speaker.ad79ef4f128c7751.webp": { + "original_hash": "8df5ce34dedc6d09c1b32061af983e1a", + "translation_date": "2026-04-06T20:28:03+00:00", + "source_file": "images/respeaker-35mm-speaker.png", + "language_code": "km" + }, + "respeaker-jst-speaker.a441d177809df945.webp": { + "original_hash": "c4dff6a9a83d65415477d8b77818c184", + "translation_date": "2026-04-06T20:26:04+00:00", + "source_file": "images/respeaker-jst-speaker.png", + "language_code": "km" + }, + "respeaker.f5d19d1c6b14ab16.webp": { + "original_hash": "f096205f8ed79a62c0b3223ca9760485", + "translation_date": "2026-04-06T20:21:54+00:00", + "source_file": "images/respeaker.png", + "language_code": "km" + }, + "ribbon-mic.eacc8e092c7441ca.webp": { + "original_hash": "2d5dac0dede2c3bee039d05cb8d5eb01", + "translation_date": "2026-04-06T20:23:17+00:00", + "source_file": "images/ribbon-mic.jpg", + "language_code": "km" + }, + "rpi-stock-with-bounding-boxes.b5540e2ecb7cd49f.webp": { + "original_hash": "d801ce817c0839b0f611e0b73bf4f05d", + "translation_date": "2026-04-06T20:26:13+00:00", + "source_file": "images/rpi-stock-with-bounding-boxes.jpg", + "language_code": "km" + }, + "sampling.6f4fadb3f2d9dfe7.webp": { + "original_hash": "0873e1919ecfcd1fac59791d08b2458f", + "translation_date": "2026-04-06T20:27:54+00:00", + "source_file": "images/sampling.png", + "language_code": "km" + }, + "save-telemetry-database.ddc9c6bea0c5ba39.webp": { + "original_hash": "161b3f7c079d04498fbc0d900788510e", + "translation_date": "2026-04-06T20:29:24+00:00", + "source_file": "images/save-telemetry-database.png", + "language_code": "km" + }, + "save-telemetry-to-storage-from-functions.ed3b1820980097f1.webp": { + "original_hash": "a03847815181206801649c4168cec3a1", + "translation_date": "2026-04-06T20:27:51+00:00", + "source_file": "images/save-telemetry-to-storage-from-functions.png", + "language_code": "km" + }, + "search-buffer-and-distance.e6a79af3898183c7.webp": { + "original_hash": "4fa75893d571e0dd38a6d9835877b318", + "translation_date": "2026-04-06T20:29:18+00:00", + "source_file": "images/search-buffer-and-distance.png", + "language_code": "km" + }, + "seeed-logo.74732b6b482b6e8e.webp": { + "original_hash": "c7479fe98cfdb3be95dda1ceee7a2b0f", + "translation_date": "2026-04-06T20:27:37+00:00", + "source_file": "images/seeed-logo.png", + "language_code": "km" + }, + "select-the-random-checkbox-and-set-a-range.32cf4bc7c12e797f.webp": { + "original_hash": "38727cd537789a1b4e18ca8277ee85b1", + "translation_date": "2026-04-06T20:29:41+00:00", + "source_file": "images/select-the-random-checkbox-and-set-a-range.png", + "language_code": "km" + }, + "send-message-asymmetric.7abe327c62615b8c.webp": { + "original_hash": "0873f3deafa225ede589e282db569fd3", + "translation_date": "2026-04-06T20:27:06+00:00", + "source_file": "images/send-message-asymmetric.png", + "language_code": "km" + }, + "send-message-certificate.9cc576ac1e46b76e.webp": { + "original_hash": "df8c0a10f8e11172061fb4bbde04cec0", + "translation_date": "2026-04-06T20:24:01+00:00", + "source_file": "images/send-message-certificate.png", + "language_code": "km" + }, + "send-message-symmetric-key-hacker.e7cb53db1707adfb.webp": { + "original_hash": "da84d1704f66fc3573b68394cd8d63ab", + "translation_date": "2026-04-06T20:26:16+00:00", + "source_file": "images/send-message-symmetric-key-hacker.png", + "language_code": "km" + }, + "send-message-symmetric-key.a2e8ad0d495896ff.webp": { + "original_hash": "ea8f8a45fea06564fb75f7444db90d6d", + "translation_date": "2026-04-06T20:24:21+00:00", + "source_file": "images/send-message-symmetric-key.png", + "language_code": "km" + }, + "sentence-as-intent-entities.301401696f992259.webp": { + "original_hash": "20bc069192582a5b8ba4a45d60362dd1", + "translation_date": "2026-04-06T20:28:37+00:00", + "source_file": "images/sentence-as-intent-entities.png", + "language_code": "km" + }, + "serverless-scaling.f8c769adf0413fd1.webp": { + "original_hash": "bfa04832aefaa493dbb81bda0fe64bf8", + "translation_date": "2026-04-06T20:21:22+00:00", + "source_file": "images/serverless-scaling.png", + "language_code": "km" + }, + "shapes-to-images.1a309f0ea88dd66f.webp": { + "original_hash": "4673701d4985ae9110e41a793f89d7a2", + "translation_date": "2026-04-06T20:29:07+00:00", + "source_file": "images/shapes-to-images.png", + "language_code": "km" + }, + "smarter-thermostat.a75855f15d2d9e63.webp": { + "original_hash": "7e07ad6473af5b68b49b1fb8b18be243", + "translation_date": "2026-04-06T20:29:29+00:00", + "source_file": "images/smarter-thermostat.png", + "language_code": "km" + }, + "soil-moisture-delay.865f3fae206db01d.webp": { + "original_hash": "2fbb54ffd35ea4b7bab4232986add7ff", + "translation_date": "2026-04-06T20:26:03+00:00", + "source_file": "images/soil-moisture-delay.png", + "language_code": "km" + }, + "soil-moisture-sensor-in-soil.bfad91002bda5e96.webp": { + "original_hash": "2b3a8b0115e4a957fc188dcd60aecbae", + "translation_date": "2026-04-06T20:25:27+00:00", + "source_file": "images/soil-moisture-sensor-in-soil.png", + "language_code": "km" + }, + "soil-moisture-to-voltage-with-reading.681cb3e1f8b68caf.webp": { + "original_hash": "feedc1062e7650b1033eae28a4718f5c", + "translation_date": "2026-04-06T20:27:39+00:00", + "source_file": "images/soil-moisture-to-voltage-with-reading.png", + "language_code": "km" + }, + "soil-moisture-to-voltage.df86d80cda158700.webp": { + "original_hash": "a8deda9a89889040b0802aacaf02c0db", + "translation_date": "2026-04-06T20:25:22+00:00", + "source_file": "images/soil-moisture-to-voltage.png", + "language_code": "km" + }, + "soil-moisture-travel.a0e31af222cf1438.webp": { + "original_hash": "dacaf2385f73dadd43abdacd4812399d", + "translation_date": "2026-04-06T20:28:19+00:00", + "source_file": "images/soil-moisture-travel.png", + "language_code": "km" + }, + "spi.297431d6f98b386b.webp": { + "original_hash": "69b6cd30118f966b9a2646d6ec34944f", + "translation_date": "2026-04-06T20:25:17+00:00", + "source_file": "images/spi.png", + "language_code": "km" + }, + "sql-database.be160f12bfccefd3.webp": { + "original_hash": "eab9c93e1f46ee7f1520b61a9486c9c0", + "translation_date": "2026-04-06T20:29:20+00:00", + "source_file": "images/sql-database.png", + "language_code": "km" + }, + "stock-7-cans-tomato-paste.f86059cc573d7bec.webp": { + "original_hash": "01dac6278467a7ebc669ccde8d957954", + "translation_date": "2026-04-06T20:21:19+00:00", + "source_file": "images/stock-7-cans-tomato-paste.png", + "language_code": "km" + }, + "stock-rogue-corn.be1f3ada8c457854.webp": { + "original_hash": "76a508a11e7a91138b7a515e6c1cd93c", + "translation_date": "2026-04-06T20:26:40+00:00", + "source_file": "images/stock-rogue-corn.png", + "language_code": "km" + }, + "strawberry-with-pump.b410fc72ac6aabad.webp": { + "original_hash": "af6fbb23fcab01f826392b6944dea49e", + "translation_date": "2026-04-06T20:25:30+00:00", + "source_file": "images/strawberry-with-pump.png", + "language_code": "km" + }, + "telemetry.21e5d8b97649d2eb.webp": { + "original_hash": "65fa3e3b915dbebffbab7d72f200e4e7", + "translation_date": "2026-04-06T20:23:26+00:00", + "source_file": "images/telemetry.png", + "language_code": "km" + }, + "temperature-as-digital.85004491b977bae1.webp": { + "original_hash": "cd1fed630adeb671a51171136afe0a11", + "translation_date": "2026-04-06T20:26:07+00:00", + "source_file": "images/temperature-as-digital.png", + "language_code": "km" + }, + "time-of-flight-banana.079921ad8b1496e4.webp": { + "original_hash": "2617486ad1d365e9272698f6c8e80523", + "translation_date": "2026-04-06T20:27:11+00:00", + "source_file": "images/time-of-flight-banana.png", + "language_code": "km" + }, + "traditional-vs-ml.5c20c169621fa539.webp": { + "original_hash": "7ba80f8ce61fc58a79619972640123b7", + "translation_date": "2026-04-06T20:24:40+00:00", + "source_file": "images/traditional-vs-ml.png", + "language_code": "km" + }, + "translated-smart-timer.08ac20057fdc5c37.webp": { + "original_hash": "f0bc8a93e3e880f4362f14db64377b44", + "translation_date": "2026-04-06T20:24:25+00:00", + "source_file": "images/translated-smart-timer.png", + "language_code": "km" + }, + "transpiration.b735aa34e4372e65.webp": { + "original_hash": "cdaa5c2392fbae09e27cecbd2163fead", + "translation_date": "2026-04-06T20:28:33+00:00", + "source_file": "images/transpiration.png", + "language_code": "km" + }, + "tts-overview.193843cf3f5ee09f.webp": { + "original_hash": "60bcfe389948c72835cba3d41cc92643", + "translation_date": "2026-04-06T20:28:00+00:00", + "source_file": "images/tts-overview.png", + "language_code": "km" + }, + "uart.d0dbd3fb9e3728c6.webp": { + "original_hash": "69f7d23a9049bf351ed17aaf49400cce", + "translation_date": "2026-04-06T20:27:10+00:00", + "source_file": "images/uart.png", + "language_code": "km" + }, + "vscode-azure-functions-init-notification.bd19b49229963edb.webp": { + "original_hash": "631bfd744e57eadbdf63c0bf59b5addf", + "translation_date": "2026-04-06T20:29:13+00:00", + "source_file": "images/vscode-azure-functions-init-notification.png", + "language_code": "km" + }, + "vscode-kill-terminal.1cc4de7c6f25ee08.webp": { + "original_hash": "b22d79cb8cfc5bfb5adea2ab797d1498", + "translation_date": "2026-04-06T20:26:10+00:00", + "source_file": "images/vscode-kill-terminal.png", + "language_code": "km" + }, + "vscode-new-file-button.182702340fe6723c.webp": { + "original_hash": "f53b77090608588ce1aea6e28ac7534b", + "translation_date": "2026-04-06T20:27:49+00:00", + "source_file": "images/vscode-new-file-button.png", + "language_code": "km" + }, + "vscode-new-terminal.77db8fc0f9cd3182.webp": { + "original_hash": "a692e413071b4224d251842fc4a95050", + "translation_date": "2026-04-06T20:24:09+00:00", + "source_file": "images/vscode-new-terminal.png", + "language_code": "km" + }, + "vscode-open-nightlight-remote.d3d2a4011e30d535.webp": { + "original_hash": "863d50888f94713346469b8afa0a56b3", + "translation_date": "2026-04-06T20:21:42+00:00", + "source_file": "images/vscode-open-nightlight-remote.png", + "language_code": "km" + }, + "vscode-platformio-build-command-palette.7708e7ec7d75d7ee.webp": { + "original_hash": "24236a76bf00a861dbf80d37b29265ce", + "translation_date": "2026-04-06T20:24:28+00:00", + "source_file": "images/vscode-platformio-build-command-palette.png", + "language_code": "km" + }, + "vscode-platformio-home-open.3f9a41bfd3f4da1c.webp": { + "original_hash": "68285f83d33fcd0a4b1e3141ef0afead", + "translation_date": "2026-04-06T20:23:05+00:00", + "source_file": "images/vscode-platformio-home-open.png", + "language_code": "km" + }, + "vscode-platformio-menu.297be26b9733e5c4.webp": { + "original_hash": "690ba1bf727223328bae1da7aef65b59", + "translation_date": "2026-04-06T20:24:49+00:00", + "source_file": "images/vscode-platformio-menu.png", + "language_code": "km" + }, + "vscode-platformio-nightlight-project-wizard.5c64db4da6037420.webp": { + "original_hash": "d55f8f702d005d082ea301248f7b70f9", + "translation_date": "2026-04-06T20:23:58+00:00", + "source_file": "images/vscode-platformio-nightlight-project-wizard.png", + "language_code": "km" + }, + "vscode-platformio-serial-monitor-command-palette.b348ec841b8a1c14.webp": { + "original_hash": "02340f15877c75b8ca3f08222c32b679", + "translation_date": "2026-04-06T20:27:32+00:00", + "source_file": "images/vscode-platformio-serial-monitor-command-palette.png", + "language_code": "km" + }, + "vscode-platformio-upload-command-palette.9e0f49cf80d1f1c3.webp": { + "original_hash": "ad07a4dbd27f86bd480dcfbbc1a56a01", + "translation_date": "2026-04-06T20:25:50+00:00", + "source_file": "images/vscode-platformio-upload-command-palette.png", + "language_code": "km" + }, + "vscode-platformio-welcome-new-button.ba6fc8a4c7b78cc8.webp": { + "original_hash": "c3bd57b44fe7628cc688f4d4fd814416", + "translation_date": "2026-04-06T20:21:45+00:00", + "source_file": "images/vscode-platformio-welcome-new-button.png", + "language_code": "km" + }, + "vscode-virtual-env.8ba42e04c3d533cf.webp": { + "original_hash": "f79cd090b385dfdfe774452b7d89eb84", + "translation_date": "2026-04-06T20:25:45+00:00", + "source_file": "images/vscode-virtual-env.png", + "language_code": "km" + }, + "what-is-azure-video-thumbnail.20174db09e03bbb8.webp": { + "original_hash": "ca9324cf5205832042b050d641f904b3", + "translation_date": "2026-04-06T20:23:29+00:00", + "source_file": "images/what-is-azure-video-thumbnail.png", + "language_code": "km" + }, + "wio-gps-sensor.19fd52b81ce58095.webp": { + "original_hash": "71ac9146b7ea28e48f6ee5b636cd1109", + "translation_date": "2026-04-06T20:25:34+00:00", + "source_file": "images/wio-gps-sensor.png", + "language_code": "km" + }, + "wio-hardware-kit.4c70c48b85e4283a.webp": { + "original_hash": "e428f5e0754412af1a8664ea7baff212", + "translation_date": "2026-04-06T20:27:15+00:00", + "source_file": "images/wio-hardware-kit.png", + "language_code": "km" + }, + "wio-led.265a1897e72d7f21.webp": { + "original_hash": "047202c8d9ddd146add1c33301f91d0e", + "translation_date": "2026-04-06T20:29:30+00:00", + "source_file": "images/wio-led.png", + "language_code": "km" + }, + "wio-light-sensor.b1f529f3c95f5165.webp": { + "original_hash": "7d3c253db81dc7f1b0fcd4554ae4bb1f", + "translation_date": "2026-04-06T20:25:58+00:00", + "source_file": "images/wio-light-sensor.png", + "language_code": "km" + }, + "wio-mic.3f8c843dbe8ad917.webp": { + "original_hash": "eb90afd4b3953d38218422601ae677b5", + "translation_date": "2026-04-06T20:24:09+00:00", + "source_file": "images/wio-mic.png", + "language_code": "km" + }, + "wio-relay-and-soil-moisture-sensor.ed722202d42babe0.webp": { + "original_hash": "ca90c734c88176a89d703b243c280333", + "translation_date": "2026-04-06T20:21:24+00:00", + "source_file": "images/wio-relay-and-soil-moisture-sensor.png", + "language_code": "km" + }, + "wio-respeaker-hat.bd54917d446e6f6f.webp": { + "original_hash": "040868428b85d90d767351cbbc89a23d", + "translation_date": "2026-04-06T20:27:48+00:00", + "source_file": "images/wio-respeaker-hat.png", + "language_code": "km" + }, + "wio-respeaker-wiring-0.767f80aa65081038.webp": { + "original_hash": "47daeac252937c129a4000dd216c04d8", + "translation_date": "2026-04-06T20:27:48+00:00", + "source_file": "images/wio-respeaker-wiring-0.png", + "language_code": "km" + }, + "wio-respeaker-wiring-1.8d894727f2ba2400.webp": { + "original_hash": "192d03a7a2cd1eab078ef6afa28a39c9", + "translation_date": "2026-04-06T20:25:26+00:00", + "source_file": "images/wio-respeaker-wiring-1.png", + "language_code": "km" + }, + "wio-respeaker-wiring-2.329e1cbd306e754f.webp": { + "original_hash": "76a795bfad251f217e7822f14ebd85e3", + "translation_date": "2026-04-06T20:26:55+00:00", + "source_file": "images/wio-respeaker-wiring-2.png", + "language_code": "km" + }, + "wio-respeaker-wiring-3.75b0be447e2fa930.webp": { + "original_hash": "430c8ab68fc9ee2c6bedae1d41325002", + "translation_date": "2026-04-06T20:24:04+00:00", + "source_file": "images/wio-respeaker-wiring-3.png", + "language_code": "km" + }, + "wio-respeaker-wiring-4.aa9cd434d8779437.webp": { + "original_hash": "c8febc847beb4a69180b745d5e718281", + "translation_date": "2026-04-06T20:21:08+00:00", + "source_file": "images/wio-respeaker-wiring-4.png", + "language_code": "km" + }, + "wio-respeaker-wiring-5.af117c20acf622f3.webp": { + "original_hash": "1953600b09247d9302e7011dceed8f28", + "translation_date": "2026-04-06T20:25:35+00:00", + "source_file": "images/wio-respeaker-wiring-5.png", + "language_code": "km" + }, + "wio-sd-card.acdcbe322fa4ee7f.webp": { + "original_hash": "88bd7dd4bc8b4c181e7b3743945a2edd", + "translation_date": "2026-04-06T20:23:05+00:00", + "source_file": "images/wio-sd-card.png", + "language_code": "km" + }, + "wio-soil-moisture-sensor.46919b61c3f6cb74.webp": { + "original_hash": "19186ea8705744d6f7ef80dd49a31037", + "translation_date": "2026-04-06T20:24:52+00:00", + "source_file": "images/wio-soil-moisture-sensor.png", + "language_code": "km" + }, + "wio-temperature-sensor.2934928f38c7f79a.webp": { + "original_hash": "9e8e3bc7a39149547dcfcce2493e151e", + "translation_date": "2026-04-06T20:26:00+00:00", + "source_file": "images/wio-temperature-sensor.png", + "language_code": "km" + }, + "wio-terminal-c-button.73df3cb1c1445ea0.webp": { + "original_hash": "7e8c595998491210a3ffd21ee338afe6", + "translation_date": "2026-04-06T20:26:00+00:00", + "source_file": "images/wio-terminal-c-button.png", + "language_code": "km" + }, + "wio-terminal-pin-sticker.b90b1535937b84bd.webp": { + "original_hash": "beeae0399efc567f78b9771eb986710a", + "translation_date": "2026-04-06T20:24:16+00:00", + "source_file": "images/wio-terminal-pin-sticker.png", + "language_code": "km" + }, + "wio-terminal.b8299ee16587db9a.webp": { + "original_hash": "e031f14d743539d41b871e8da6c516f7", + "translation_date": "2026-04-06T20:21:54+00:00", + "source_file": "images/wio-terminal.png", + "language_code": "km" + }, + "wio-time-of-flight-sensor.c4c182131d2ea73d.webp": { + "original_hash": "fe6b9bb1afee16f03bab8f6ddc3512b3", + "translation_date": "2026-04-06T20:24:42+00:00", + "source_file": "images/wio-time-of-flight-sensor.png", + "language_code": "km" + } +} \ No newline at end of file diff --git a/translated_images/km/IMG_5305.aa291c8812a9f1e5.webp b/translated_images/km/IMG_5305.aa291c8812a9f1e5.webp new file mode 100644 index 000000000..b3e9f3bcf Binary files /dev/null and b/translated_images/km/IMG_5305.aa291c8812a9f1e5.webp differ diff --git a/translated_images/km/IMG_5306.d575b9ab7025877b.webp b/translated_images/km/IMG_5306.d575b9ab7025877b.webp new file mode 100644 index 000000000..52b0bc8ee Binary files /dev/null and b/translated_images/km/IMG_5306.d575b9ab7025877b.webp differ diff --git a/translated_images/km/IMG_5307.f9c9b8361a8aa734.webp b/translated_images/km/IMG_5307.f9c9b8361a8aa734.webp new file mode 100644 index 000000000..b5be9267a Binary files /dev/null and b/translated_images/km/IMG_5307.f9c9b8361a8aa734.webp differ diff --git a/translated_images/km/IMG_5308.cbd6ed7007e69060.webp b/translated_images/km/IMG_5308.cbd6ed7007e69060.webp new file mode 100644 index 000000000..b7f2f5164 Binary files /dev/null and b/translated_images/km/IMG_5308.cbd6ed7007e69060.webp differ diff --git a/translated_images/km/IMG_5309.23fbc3b6667bfb64.webp b/translated_images/km/IMG_5309.23fbc3b6667bfb64.webp new file mode 100644 index 000000000..811ef5364 Binary files /dev/null and b/translated_images/km/IMG_5309.23fbc3b6667bfb64.webp differ diff --git a/translated_images/km/IMG_5310.0ee0eb2fbc1c2d0e.webp b/translated_images/km/IMG_5310.0ee0eb2fbc1c2d0e.webp new file mode 100644 index 000000000..b1ec07d86 Binary files /dev/null and b/translated_images/km/IMG_5310.0ee0eb2fbc1c2d0e.webp differ diff --git a/translated_images/km/IMG_5311.8c90da6446c2d8c2.webp b/translated_images/km/IMG_5311.8c90da6446c2d8c2.webp new file mode 100644 index 000000000..389588810 Binary files /dev/null and b/translated_images/km/IMG_5311.8c90da6446c2d8c2.webp differ diff --git a/translated_images/km/IMG_5312.a45550ddd8ce8e65.webp b/translated_images/km/IMG_5312.a45550ddd8ce8e65.webp new file mode 100644 index 000000000..e5479c9a7 Binary files /dev/null and b/translated_images/km/IMG_5312.a45550ddd8ce8e65.webp differ diff --git a/translated_images/km/IMG_5313.ed1b45211271dbd2.webp b/translated_images/km/IMG_5313.ed1b45211271dbd2.webp new file mode 100644 index 000000000..10b1f86de Binary files /dev/null and b/translated_images/km/IMG_5313.ed1b45211271dbd2.webp differ diff --git a/translated_images/km/IMG_5314.c2203206a05a74b5.webp b/translated_images/km/IMG_5314.c2203206a05a74b5.webp new file mode 100644 index 000000000..7f0b15cf0 Binary files /dev/null and b/translated_images/km/IMG_5314.c2203206a05a74b5.webp differ diff --git a/translated_images/km/IMG_5315.f698228e0e031bd4.webp b/translated_images/km/IMG_5315.f698228e0e031bd4.webp new file mode 100644 index 000000000..d44eaf019 Binary files /dev/null and b/translated_images/km/IMG_5315.f698228e0e031bd4.webp differ diff --git a/translated_images/km/IMG_5316.29dc70d802ce8349.webp b/translated_images/km/IMG_5316.29dc70d802ce8349.webp new file mode 100644 index 000000000..554c313b9 Binary files /dev/null and b/translated_images/km/IMG_5316.29dc70d802ce8349.webp differ diff --git a/translated_images/km/IMG_5317.ed81e4c1ca5046dc.webp b/translated_images/km/IMG_5317.ed81e4c1ca5046dc.webp new file mode 100644 index 000000000..dab33c5cf Binary files /dev/null and b/translated_images/km/IMG_5317.ed81e4c1ca5046dc.webp differ diff --git a/translated_images/km/IMG_5318.15dfffeb7f47abf7.webp b/translated_images/km/IMG_5318.15dfffeb7f47abf7.webp new file mode 100644 index 000000000..58d8b22f0 Binary files /dev/null and b/translated_images/km/IMG_5318.15dfffeb7f47abf7.webp differ diff --git a/translated_images/km/IMG_5319.b549b1fff0dcf143.webp b/translated_images/km/IMG_5319.b549b1fff0dcf143.webp new file mode 100644 index 000000000..e41051e8f Binary files /dev/null and b/translated_images/km/IMG_5319.b549b1fff0dcf143.webp differ diff --git a/translated_images/km/IMG_5320.8268d3f61972f348.webp b/translated_images/km/IMG_5320.8268d3f61972f348.webp new file mode 100644 index 000000000..b6ae14ee7 Binary files /dev/null and b/translated_images/km/IMG_5320.8268d3f61972f348.webp differ diff --git a/translated_images/km/IMG_5321.b207cf143a59458d.webp b/translated_images/km/IMG_5321.b207cf143a59458d.webp new file mode 100644 index 000000000..2235deac3 Binary files /dev/null and b/translated_images/km/IMG_5321.b207cf143a59458d.webp differ diff --git a/translated_images/km/IMG_5322.974809b9461a9e20.webp b/translated_images/km/IMG_5322.974809b9461a9e20.webp new file mode 100644 index 000000000..6694d6f7d Binary files /dev/null and b/translated_images/km/IMG_5322.974809b9461a9e20.webp differ diff --git a/translated_images/km/IMG_5323.4939fa17958f291b.webp b/translated_images/km/IMG_5323.4939fa17958f291b.webp new file mode 100644 index 000000000..50b3ee67f Binary files /dev/null and b/translated_images/km/IMG_5323.4939fa17958f291b.webp differ diff --git a/translated_images/km/IMG_5324.0afbc6f0caceb1a3.webp b/translated_images/km/IMG_5324.0afbc6f0caceb1a3.webp new file mode 100644 index 000000000..2aa65a350 Binary files /dev/null and b/translated_images/km/IMG_5324.0afbc6f0caceb1a3.webp differ diff --git a/translated_images/km/IMG_5325.9e9d9e9b85a10b06.webp b/translated_images/km/IMG_5325.9e9d9e9b85a10b06.webp new file mode 100644 index 000000000..9488cc9ac Binary files /dev/null and b/translated_images/km/IMG_5325.9e9d9e9b85a10b06.webp differ diff --git a/translated_images/km/IMG_5326.35bbc9e054c704d0.webp b/translated_images/km/IMG_5326.35bbc9e054c704d0.webp new file mode 100644 index 000000000..378b47653 Binary files /dev/null and b/translated_images/km/IMG_5326.35bbc9e054c704d0.webp differ diff --git a/translated_images/km/IMG_5327.804b63a605b5a77a.webp b/translated_images/km/IMG_5327.804b63a605b5a77a.webp new file mode 100644 index 000000000..f60c0bda4 Binary files /dev/null and b/translated_images/km/IMG_5327.804b63a605b5a77a.webp differ diff --git a/translated_images/km/IMG_5328.925a9da23d96759f.webp b/translated_images/km/IMG_5328.925a9da23d96759f.webp new file mode 100644 index 000000000..51fba2807 Binary files /dev/null and b/translated_images/km/IMG_5328.925a9da23d96759f.webp differ diff --git a/translated_images/km/IMG_5329.27da5fcbc3336773.webp b/translated_images/km/IMG_5329.27da5fcbc3336773.webp new file mode 100644 index 000000000..2688147d3 Binary files /dev/null and b/translated_images/km/IMG_5329.27da5fcbc3336773.webp differ diff --git a/translated_images/km/IMG_5330.3db3d5ea01c8cca2.webp b/translated_images/km/IMG_5330.3db3d5ea01c8cca2.webp new file mode 100644 index 000000000..3d786326a Binary files /dev/null and b/translated_images/km/IMG_5330.3db3d5ea01c8cca2.webp differ diff --git a/translated_images/km/IMG_5331.181987d3d094472f.webp b/translated_images/km/IMG_5331.181987d3d094472f.webp new file mode 100644 index 000000000..ad7687bc1 Binary files /dev/null and b/translated_images/km/IMG_5331.181987d3d094472f.webp differ diff --git a/translated_images/km/IMG_5332.4beed56eaa5158e3.webp b/translated_images/km/IMG_5332.4beed56eaa5158e3.webp new file mode 100644 index 000000000..bcd451f58 Binary files /dev/null and b/translated_images/km/IMG_5332.4beed56eaa5158e3.webp differ diff --git a/translated_images/km/IMG_5333.53c3364c2ee0e7bb.webp b/translated_images/km/IMG_5333.53c3364c2ee0e7bb.webp new file mode 100644 index 000000000..840f5e8cd Binary files /dev/null and b/translated_images/km/IMG_5333.53c3364c2ee0e7bb.webp differ diff --git a/translated_images/km/IMG_5334.979472e433948c10.webp b/translated_images/km/IMG_5334.979472e433948c10.webp new file mode 100644 index 000000000..5a6dd4193 Binary files /dev/null and b/translated_images/km/IMG_5334.979472e433948c10.webp differ diff --git a/translated_images/km/IMG_5335.9f5bfba69a8d5a90.webp b/translated_images/km/IMG_5335.9f5bfba69a8d5a90.webp new file mode 100644 index 000000000..c0a598a04 Binary files /dev/null and b/translated_images/km/IMG_5335.9f5bfba69a8d5a90.webp differ diff --git a/translated_images/km/IMG_5336.1b46586fdec95767.webp b/translated_images/km/IMG_5336.1b46586fdec95767.webp new file mode 100644 index 000000000..77ad21b13 Binary files /dev/null and b/translated_images/km/IMG_5336.1b46586fdec95767.webp differ diff --git a/translated_images/km/IMG_5337.91c82be4d37029b0.webp b/translated_images/km/IMG_5337.91c82be4d37029b0.webp new file mode 100644 index 000000000..3e4fbb061 Binary files /dev/null and b/translated_images/km/IMG_5337.91c82be4d37029b0.webp differ diff --git a/translated_images/km/IMG_5338.9ab356541448923b.webp b/translated_images/km/IMG_5338.9ab356541448923b.webp new file mode 100644 index 000000000..5c9cd96ca Binary files /dev/null and b/translated_images/km/IMG_5338.9ab356541448923b.webp differ diff --git a/translated_images/km/IMG_5340.8440651b3ce1dd35.webp b/translated_images/km/IMG_5340.8440651b3ce1dd35.webp new file mode 100644 index 000000000..157baa71a Binary files /dev/null and b/translated_images/km/IMG_5340.8440651b3ce1dd35.webp differ diff --git a/translated_images/km/IMG_5341.a1aa041c42dbc534.webp b/translated_images/km/IMG_5341.a1aa041c42dbc534.webp new file mode 100644 index 000000000..ba2306a00 Binary files /dev/null and b/translated_images/km/IMG_5341.a1aa041c42dbc534.webp differ diff --git a/translated_images/km/IMG_5342.9f3b93d9fab90d3b.webp b/translated_images/km/IMG_5342.9f3b93d9fab90d3b.webp new file mode 100644 index 000000000..a00bd0935 Binary files /dev/null and b/translated_images/km/IMG_5342.9f3b93d9fab90d3b.webp differ diff --git a/translated_images/km/IMG_5343.fa30105d3c10cad2.webp b/translated_images/km/IMG_5343.fa30105d3c10cad2.webp new file mode 100644 index 000000000..530bbeb0f Binary files /dev/null and b/translated_images/km/IMG_5343.fa30105d3c10cad2.webp differ diff --git a/translated_images/km/IMG_5344.acfcd61ee5281321.webp b/translated_images/km/IMG_5344.acfcd61ee5281321.webp new file mode 100644 index 000000000..7c057d528 Binary files /dev/null and b/translated_images/km/IMG_5344.acfcd61ee5281321.webp differ diff --git a/translated_images/km/IMG_5345.3d305ee2bb4ee804.webp b/translated_images/km/IMG_5345.3d305ee2bb4ee804.webp new file mode 100644 index 000000000..f9774b8f8 Binary files /dev/null and b/translated_images/km/IMG_5345.3d305ee2bb4ee804.webp differ diff --git a/translated_images/km/IMG_5346.281dcc267f69c70b.webp b/translated_images/km/IMG_5346.281dcc267f69c70b.webp new file mode 100644 index 000000000..39d9231c4 Binary files /dev/null and b/translated_images/km/IMG_5346.281dcc267f69c70b.webp differ diff --git a/translated_images/km/IMG_5347.48a4a981e76910ae.webp b/translated_images/km/IMG_5347.48a4a981e76910ae.webp new file mode 100644 index 000000000..a91333da7 Binary files /dev/null and b/translated_images/km/IMG_5347.48a4a981e76910ae.webp differ diff --git a/translated_images/km/IMG_5348.3961d3b444537c13.webp b/translated_images/km/IMG_5348.3961d3b444537c13.webp new file mode 100644 index 000000000..64144ae22 Binary files /dev/null and b/translated_images/km/IMG_5348.3961d3b444537c13.webp differ diff --git a/translated_images/km/IMG_5349.1f0ec7fbf8807b3b.webp b/translated_images/km/IMG_5349.1f0ec7fbf8807b3b.webp new file mode 100644 index 000000000..c7727e4f7 Binary files /dev/null and b/translated_images/km/IMG_5349.1f0ec7fbf8807b3b.webp differ diff --git a/translated_images/km/Roadmap.bb1dec285dda0eda.webp b/translated_images/km/Roadmap.bb1dec285dda0eda.webp new file mode 100644 index 000000000..5cb7f38b2 Binary files /dev/null and b/translated_images/km/Roadmap.bb1dec285dda0eda.webp differ diff --git a/translated_images/km/amqp.804bd4fce8330157.webp b/translated_images/km/amqp.804bd4fce8330157.webp new file mode 100644 index 000000000..4b3be6351 Binary files /dev/null and b/translated_images/km/amqp.804bd4fce8330157.webp differ diff --git a/translated_images/km/analog-sensor-voltage.3b6f315392247399.webp b/translated_images/km/analog-sensor-voltage.3b6f315392247399.webp new file mode 100644 index 000000000..0bc426f0e Binary files /dev/null and b/translated_images/km/analog-sensor-voltage.3b6f315392247399.webp differ diff --git a/translated_images/km/arducam-wio-terminal-connections.a4d5a4049bdb5ab8.webp b/translated_images/km/arducam-wio-terminal-connections.a4d5a4049bdb5ab8.webp new file mode 100644 index 000000000..7eded3d51 Binary files /dev/null and b/translated_images/km/arducam-wio-terminal-connections.a4d5a4049bdb5ab8.webp differ diff --git a/translated_images/km/arducam.20e4e4cbb2682965.webp b/translated_images/km/arducam.20e4e4cbb2682965.webp new file mode 100644 index 000000000..5a361fb45 Binary files /dev/null and b/translated_images/km/arducam.20e4e4cbb2682965.webp differ diff --git a/translated_images/km/arduino-sketch.79590cb837ff7a7c.webp b/translated_images/km/arduino-sketch.79590cb837ff7a7c.webp new file mode 100644 index 000000000..b3d8fb035 Binary files /dev/null and b/translated_images/km/arduino-sketch.79590cb837ff7a7c.webp differ diff --git a/translated_images/km/assignment-1-flow.7552a51acb1a5ec8.webp b/translated_images/km/assignment-1-flow.7552a51acb1a5ec8.webp new file mode 100644 index 000000000..43e2df57e Binary files /dev/null and b/translated_images/km/assignment-1-flow.7552a51acb1a5ec8.webp differ diff --git a/translated_images/km/assignment-1-internet-flow.3256feab5f052fd2.webp b/translated_images/km/assignment-1-internet-flow.3256feab5f052fd2.webp new file mode 100644 index 000000000..6ef5d074e Binary files /dev/null and b/translated_images/km/assignment-1-internet-flow.3256feab5f052fd2.webp differ diff --git a/translated_images/km/azure-container-registry-logo.09494206991d4b29.webp b/translated_images/km/azure-container-registry-logo.09494206991d4b29.webp new file mode 100644 index 000000000..29241cf36 Binary files /dev/null and b/translated_images/km/azure-container-registry-logo.09494206991d4b29.webp differ diff --git a/translated_images/km/azure-functions-logo.1cfc8e3204c9c44a.webp b/translated_images/km/azure-functions-logo.1cfc8e3204c9c44a.webp new file mode 100644 index 000000000..ed6d2f701 Binary files /dev/null and b/translated_images/km/azure-functions-logo.1cfc8e3204c9c44a.webp differ diff --git a/translated_images/km/azure-iot-edge-logo.c1c076749b5cba2e.webp b/translated_images/km/azure-iot-edge-logo.c1c076749b5cba2e.webp new file mode 100644 index 000000000..2f18bc7ae Binary files /dev/null and b/translated_images/km/azure-iot-edge-logo.c1c076749b5cba2e.webp differ diff --git a/translated_images/km/azure-iot-hub-logo.28a19de76d0a1932.webp b/translated_images/km/azure-iot-hub-logo.28a19de76d0a1932.webp new file mode 100644 index 000000000..2a8893540 Binary files /dev/null and b/translated_images/km/azure-iot-hub-logo.28a19de76d0a1932.webp differ diff --git a/translated_images/km/azure-maps-logo.35d01dcfbd81fe61.webp b/translated_images/km/azure-maps-logo.35d01dcfbd81fe61.webp new file mode 100644 index 000000000..abba021a5 Binary files /dev/null and b/translated_images/km/azure-maps-logo.35d01dcfbd81fe61.webp differ diff --git a/translated_images/km/azure-region-existing.73f704604f2aa6cb.webp b/translated_images/km/azure-region-existing.73f704604f2aa6cb.webp new file mode 100644 index 000000000..7d94e2e20 Binary files /dev/null and b/translated_images/km/azure-region-existing.73f704604f2aa6cb.webp differ diff --git a/translated_images/km/azure-region-planned-expansion.a5074a1e8af74f15.webp b/translated_images/km/azure-region-planned-expansion.a5074a1e8af74f15.webp new file mode 100644 index 000000000..e0ee60053 Binary files /dev/null and b/translated_images/km/azure-region-planned-expansion.a5074a1e8af74f15.webp differ diff --git a/translated_images/km/azure-speech-logo.a1f08c4befb0159f.webp b/translated_images/km/azure-speech-logo.a1f08c4befb0159f.webp new file mode 100644 index 000000000..9ef375565 Binary files /dev/null and b/translated_images/km/azure-speech-logo.a1f08c4befb0159f.webp differ diff --git a/translated_images/km/azure-storage-logo.605c0f602c640d48.webp b/translated_images/km/azure-storage-logo.605c0f602c640d48.webp new file mode 100644 index 000000000..060d12303 Binary files /dev/null and b/translated_images/km/azure-storage-logo.605c0f602c640d48.webp differ diff --git a/translated_images/km/azure-translator-logo.c6ed3a4a433edfd2.webp b/translated_images/km/azure-translator-logo.c6ed3a4a433edfd2.webp new file mode 100644 index 000000000..613b5cec9 Binary files /dev/null and b/translated_images/km/azure-translator-logo.c6ed3a4a433edfd2.webp differ diff --git a/translated_images/km/banana-arducam.be1b32d4267a8194.webp b/translated_images/km/banana-arducam.be1b32d4267a8194.webp new file mode 100644 index 000000000..e0e788e08 Binary files /dev/null and b/translated_images/km/banana-arducam.be1b32d4267a8194.webp differ diff --git a/translated_images/km/banana-picture-compare.174df164dc326a42.webp b/translated_images/km/banana-picture-compare.174df164dc326a42.webp new file mode 100644 index 000000000..85618ec5d Binary files /dev/null and b/translated_images/km/banana-picture-compare.174df164dc326a42.webp differ diff --git a/translated_images/km/banana-ripe-1.6ed72365ffc92300.webp b/translated_images/km/banana-ripe-1.6ed72365ffc92300.webp new file mode 100644 index 000000000..c0714bbc3 Binary files /dev/null and b/translated_images/km/banana-ripe-1.6ed72365ffc92300.webp differ diff --git a/translated_images/km/banana-ripe-1.780e9be3a60d8879.webp b/translated_images/km/banana-ripe-1.780e9be3a60d8879.webp new file mode 100644 index 000000000..8075dc4ab Binary files /dev/null and b/translated_images/km/banana-ripe-1.780e9be3a60d8879.webp differ diff --git a/translated_images/km/banana-ripe-10.c3d98eb280e7464f.webp b/translated_images/km/banana-ripe-10.c3d98eb280e7464f.webp new file mode 100644 index 000000000..6d828b371 Binary files /dev/null and b/translated_images/km/banana-ripe-10.c3d98eb280e7464f.webp differ diff --git a/translated_images/km/banana-ripe-11.3d932f292b95b9a2.webp b/translated_images/km/banana-ripe-11.3d932f292b95b9a2.webp new file mode 100644 index 000000000..7dfafb15a Binary files /dev/null and b/translated_images/km/banana-ripe-11.3d932f292b95b9a2.webp differ diff --git a/translated_images/km/banana-ripe-12.9f87e663b9da6c85.webp b/translated_images/km/banana-ripe-12.9f87e663b9da6c85.webp new file mode 100644 index 000000000..f0e9b2d77 Binary files /dev/null and b/translated_images/km/banana-ripe-12.9f87e663b9da6c85.webp differ diff --git a/translated_images/km/banana-ripe-13.b7402e05160f4543.webp b/translated_images/km/banana-ripe-13.b7402e05160f4543.webp new file mode 100644 index 000000000..3d0ed4bb1 Binary files /dev/null and b/translated_images/km/banana-ripe-13.b7402e05160f4543.webp differ diff --git a/translated_images/km/banana-ripe-14.85cf309aa702cfa8.webp b/translated_images/km/banana-ripe-14.85cf309aa702cfa8.webp new file mode 100644 index 000000000..bdb2f1b6a Binary files /dev/null and b/translated_images/km/banana-ripe-14.85cf309aa702cfa8.webp differ diff --git a/translated_images/km/banana-ripe-15.933412eb14a3f8e4.webp b/translated_images/km/banana-ripe-15.933412eb14a3f8e4.webp new file mode 100644 index 000000000..4ecc1c8d5 Binary files /dev/null and b/translated_images/km/banana-ripe-15.933412eb14a3f8e4.webp differ diff --git a/translated_images/km/banana-ripe-16.781a68a01401f89e.webp b/translated_images/km/banana-ripe-16.781a68a01401f89e.webp new file mode 100644 index 000000000..b77a66a97 Binary files /dev/null and b/translated_images/km/banana-ripe-16.781a68a01401f89e.webp differ diff --git a/translated_images/km/banana-ripe-17.f8e2853a40d3ac45.webp b/translated_images/km/banana-ripe-17.f8e2853a40d3ac45.webp new file mode 100644 index 000000000..9ffb20deb Binary files /dev/null and b/translated_images/km/banana-ripe-17.f8e2853a40d3ac45.webp differ diff --git a/translated_images/km/banana-ripe-18.3d05f5f78ecf6f0d.webp b/translated_images/km/banana-ripe-18.3d05f5f78ecf6f0d.webp new file mode 100644 index 000000000..733a99b5a Binary files /dev/null and b/translated_images/km/banana-ripe-18.3d05f5f78ecf6f0d.webp differ diff --git a/translated_images/km/banana-ripe-19.ac3b0fc6cf6fdfd5.webp b/translated_images/km/banana-ripe-19.ac3b0fc6cf6fdfd5.webp new file mode 100644 index 000000000..aa4e5e453 Binary files /dev/null and b/translated_images/km/banana-ripe-19.ac3b0fc6cf6fdfd5.webp differ diff --git a/translated_images/km/banana-ripe-2.8ab96da692df69f1.webp b/translated_images/km/banana-ripe-2.8ab96da692df69f1.webp new file mode 100644 index 000000000..debf28d24 Binary files /dev/null and b/translated_images/km/banana-ripe-2.8ab96da692df69f1.webp differ diff --git a/translated_images/km/banana-ripe-2.96ddc53114c5f020.webp b/translated_images/km/banana-ripe-2.96ddc53114c5f020.webp new file mode 100644 index 000000000..5262b2b85 Binary files /dev/null and b/translated_images/km/banana-ripe-2.96ddc53114c5f020.webp differ diff --git a/translated_images/km/banana-ripe-20.a4d0ad33a7e6f037.webp b/translated_images/km/banana-ripe-20.a4d0ad33a7e6f037.webp new file mode 100644 index 000000000..9f6572948 Binary files /dev/null and b/translated_images/km/banana-ripe-20.a4d0ad33a7e6f037.webp differ diff --git a/translated_images/km/banana-ripe-21.07e03d64f265d55d.webp b/translated_images/km/banana-ripe-21.07e03d64f265d55d.webp new file mode 100644 index 000000000..958809792 Binary files /dev/null and b/translated_images/km/banana-ripe-21.07e03d64f265d55d.webp differ diff --git a/translated_images/km/banana-ripe-22.a63c05aeb7f866fc.webp b/translated_images/km/banana-ripe-22.a63c05aeb7f866fc.webp new file mode 100644 index 000000000..07de2a760 Binary files /dev/null and b/translated_images/km/banana-ripe-22.a63c05aeb7f866fc.webp differ diff --git a/translated_images/km/banana-ripe-23.6f3364afcab19e57.webp b/translated_images/km/banana-ripe-23.6f3364afcab19e57.webp new file mode 100644 index 000000000..e1656d2f0 Binary files /dev/null and b/translated_images/km/banana-ripe-23.6f3364afcab19e57.webp differ diff --git a/translated_images/km/banana-ripe-24.ff2c02cc80a9c430.webp b/translated_images/km/banana-ripe-24.ff2c02cc80a9c430.webp new file mode 100644 index 000000000..fda478f0f Binary files /dev/null and b/translated_images/km/banana-ripe-24.ff2c02cc80a9c430.webp differ diff --git a/translated_images/km/banana-ripe-25.65ce63418cdc4de2.webp b/translated_images/km/banana-ripe-25.65ce63418cdc4de2.webp new file mode 100644 index 000000000..50a1e1b38 Binary files /dev/null and b/translated_images/km/banana-ripe-25.65ce63418cdc4de2.webp differ diff --git a/translated_images/km/banana-ripe-3.4fae05a0a1d2b5f0.webp b/translated_images/km/banana-ripe-3.4fae05a0a1d2b5f0.webp new file mode 100644 index 000000000..9baa7684d Binary files /dev/null and b/translated_images/km/banana-ripe-3.4fae05a0a1d2b5f0.webp differ diff --git a/translated_images/km/banana-ripe-5.c762086879ccec4c.webp b/translated_images/km/banana-ripe-5.c762086879ccec4c.webp new file mode 100644 index 000000000..9e996d31d Binary files /dev/null and b/translated_images/km/banana-ripe-5.c762086879ccec4c.webp differ diff --git a/translated_images/km/banana-ripe-6.5131bcbf492980cb.webp b/translated_images/km/banana-ripe-6.5131bcbf492980cb.webp new file mode 100644 index 000000000..5c8d85b0c Binary files /dev/null and b/translated_images/km/banana-ripe-6.5131bcbf492980cb.webp differ diff --git a/translated_images/km/banana-ripe-7.5fc18dfe7b7ae9dc.webp b/translated_images/km/banana-ripe-7.5fc18dfe7b7ae9dc.webp new file mode 100644 index 000000000..a90c4fe6c Binary files /dev/null and b/translated_images/km/banana-ripe-7.5fc18dfe7b7ae9dc.webp differ diff --git a/translated_images/km/banana-ripe-8.dba1d33bd34d4830.webp b/translated_images/km/banana-ripe-8.dba1d33bd34d4830.webp new file mode 100644 index 000000000..48f5aab3d Binary files /dev/null and b/translated_images/km/banana-ripe-8.dba1d33bd34d4830.webp differ diff --git a/translated_images/km/banana-ripe-9.32f91462c8b0e2d3.webp b/translated_images/km/banana-ripe-9.32f91462c8b0e2d3.webp new file mode 100644 index 000000000..5e86630cd Binary files /dev/null and b/translated_images/km/banana-ripe-9.32f91462c8b0e2d3.webp differ diff --git a/translated_images/km/banana-training-images.530eb203346d73bc.webp b/translated_images/km/banana-training-images.530eb203346d73bc.webp new file mode 100644 index 000000000..5e012ab99 Binary files /dev/null and b/translated_images/km/banana-training-images.530eb203346d73bc.webp differ diff --git a/translated_images/km/banana-unripe-1.910c8606a300fa20.webp b/translated_images/km/banana-unripe-1.910c8606a300fa20.webp new file mode 100644 index 000000000..e045a73db Binary files /dev/null and b/translated_images/km/banana-unripe-1.910c8606a300fa20.webp differ diff --git a/translated_images/km/banana-unripe-1.b2c7051d9c8a4e61.webp b/translated_images/km/banana-unripe-1.b2c7051d9c8a4e61.webp new file mode 100644 index 000000000..5e88485a0 Binary files /dev/null and b/translated_images/km/banana-unripe-1.b2c7051d9c8a4e61.webp differ diff --git a/translated_images/km/banana-unripe-10.38dab0db918a2487.webp b/translated_images/km/banana-unripe-10.38dab0db918a2487.webp new file mode 100644 index 000000000..d863e575b Binary files /dev/null and b/translated_images/km/banana-unripe-10.38dab0db918a2487.webp differ diff --git a/translated_images/km/banana-unripe-11.ec8d0eefe63e10b9.webp b/translated_images/km/banana-unripe-11.ec8d0eefe63e10b9.webp new file mode 100644 index 000000000..d77f907da Binary files /dev/null and b/translated_images/km/banana-unripe-11.ec8d0eefe63e10b9.webp differ diff --git a/translated_images/km/banana-unripe-12.b95a088ccae935db.webp b/translated_images/km/banana-unripe-12.b95a088ccae935db.webp new file mode 100644 index 000000000..39fe8050a Binary files /dev/null and b/translated_images/km/banana-unripe-12.b95a088ccae935db.webp differ diff --git a/translated_images/km/banana-unripe-13.37e5a7cac5aa0920.webp b/translated_images/km/banana-unripe-13.37e5a7cac5aa0920.webp new file mode 100644 index 000000000..4991d4f65 Binary files /dev/null and b/translated_images/km/banana-unripe-13.37e5a7cac5aa0920.webp differ diff --git a/translated_images/km/banana-unripe-14.d19ddd6bbf63a259.webp b/translated_images/km/banana-unripe-14.d19ddd6bbf63a259.webp new file mode 100644 index 000000000..eff19a63b Binary files /dev/null and b/translated_images/km/banana-unripe-14.d19ddd6bbf63a259.webp differ diff --git a/translated_images/km/banana-unripe-15.274e48544326077a.webp b/translated_images/km/banana-unripe-15.274e48544326077a.webp new file mode 100644 index 000000000..e16197d1f Binary files /dev/null and b/translated_images/km/banana-unripe-15.274e48544326077a.webp differ diff --git a/translated_images/km/banana-unripe-16.bd058f64bd7ec014.webp b/translated_images/km/banana-unripe-16.bd058f64bd7ec014.webp new file mode 100644 index 000000000..4abdad3e5 Binary files /dev/null and b/translated_images/km/banana-unripe-16.bd058f64bd7ec014.webp differ diff --git a/translated_images/km/banana-unripe-17.408382d679bfa079.webp b/translated_images/km/banana-unripe-17.408382d679bfa079.webp new file mode 100644 index 000000000..81be6d428 Binary files /dev/null and b/translated_images/km/banana-unripe-17.408382d679bfa079.webp differ diff --git a/translated_images/km/banana-unripe-18.39c0eb79d7b3b9ba.webp b/translated_images/km/banana-unripe-18.39c0eb79d7b3b9ba.webp new file mode 100644 index 000000000..a012cd4eb Binary files /dev/null and b/translated_images/km/banana-unripe-18.39c0eb79d7b3b9ba.webp differ diff --git a/translated_images/km/banana-unripe-19.e61e6d7efaf2d8c8.webp b/translated_images/km/banana-unripe-19.e61e6d7efaf2d8c8.webp new file mode 100644 index 000000000..da22c29fe Binary files /dev/null and b/translated_images/km/banana-unripe-19.e61e6d7efaf2d8c8.webp differ diff --git a/translated_images/km/banana-unripe-2.43a73b544521afc7.webp b/translated_images/km/banana-unripe-2.43a73b544521afc7.webp new file mode 100644 index 000000000..10a0ab56d Binary files /dev/null and b/translated_images/km/banana-unripe-2.43a73b544521afc7.webp differ diff --git a/translated_images/km/banana-unripe-2.9591d1a6aa27deeb.webp b/translated_images/km/banana-unripe-2.9591d1a6aa27deeb.webp new file mode 100644 index 000000000..049459245 Binary files /dev/null and b/translated_images/km/banana-unripe-2.9591d1a6aa27deeb.webp differ diff --git a/translated_images/km/banana-unripe-20.85b7a74eaab5634e.webp b/translated_images/km/banana-unripe-20.85b7a74eaab5634e.webp new file mode 100644 index 000000000..80c5effcb Binary files /dev/null and b/translated_images/km/banana-unripe-20.85b7a74eaab5634e.webp differ diff --git a/translated_images/km/banana-unripe-21.ccc1333439b344bc.webp b/translated_images/km/banana-unripe-21.ccc1333439b344bc.webp new file mode 100644 index 000000000..a99702656 Binary files /dev/null and b/translated_images/km/banana-unripe-21.ccc1333439b344bc.webp differ diff --git a/translated_images/km/banana-unripe-22.27dff4b438163080.webp b/translated_images/km/banana-unripe-22.27dff4b438163080.webp new file mode 100644 index 000000000..87a3ab30c Binary files /dev/null and b/translated_images/km/banana-unripe-22.27dff4b438163080.webp differ diff --git a/translated_images/km/banana-unripe-23.c4c9067f23370e90.webp b/translated_images/km/banana-unripe-23.c4c9067f23370e90.webp new file mode 100644 index 000000000..8c554da6d Binary files /dev/null and b/translated_images/km/banana-unripe-23.c4c9067f23370e90.webp differ diff --git a/translated_images/km/banana-unripe-24.6f0b781c309da62f.webp b/translated_images/km/banana-unripe-24.6f0b781c309da62f.webp new file mode 100644 index 000000000..7998990dc Binary files /dev/null and b/translated_images/km/banana-unripe-24.6f0b781c309da62f.webp differ diff --git a/translated_images/km/banana-unripe-25.21d553d84880ac4f.webp b/translated_images/km/banana-unripe-25.21d553d84880ac4f.webp new file mode 100644 index 000000000..be2233b77 Binary files /dev/null and b/translated_images/km/banana-unripe-25.21d553d84880ac4f.webp differ diff --git a/translated_images/km/banana-unripe-26.823c48b61feb1d5c.webp b/translated_images/km/banana-unripe-26.823c48b61feb1d5c.webp new file mode 100644 index 000000000..ab902dbf6 Binary files /dev/null and b/translated_images/km/banana-unripe-26.823c48b61feb1d5c.webp differ diff --git a/translated_images/km/banana-unripe-27.f98fd272deeb02d9.webp b/translated_images/km/banana-unripe-27.f98fd272deeb02d9.webp new file mode 100644 index 000000000..ec3f75024 Binary files /dev/null and b/translated_images/km/banana-unripe-27.f98fd272deeb02d9.webp differ diff --git a/translated_images/km/banana-unripe-28.5331ba409ce41c07.webp b/translated_images/km/banana-unripe-28.5331ba409ce41c07.webp new file mode 100644 index 000000000..addfa4127 Binary files /dev/null and b/translated_images/km/banana-unripe-28.5331ba409ce41c07.webp differ diff --git a/translated_images/km/banana-unripe-29.84e126f389bf627e.webp b/translated_images/km/banana-unripe-29.84e126f389bf627e.webp new file mode 100644 index 000000000..0a17c8f7b Binary files /dev/null and b/translated_images/km/banana-unripe-29.84e126f389bf627e.webp differ diff --git a/translated_images/km/banana-unripe-3.896df8fb2c3b8f51.webp b/translated_images/km/banana-unripe-3.896df8fb2c3b8f51.webp new file mode 100644 index 000000000..b9c30fe66 Binary files /dev/null and b/translated_images/km/banana-unripe-3.896df8fb2c3b8f51.webp differ diff --git a/translated_images/km/banana-unripe-4.483e740d6fd7b5a6.webp b/translated_images/km/banana-unripe-4.483e740d6fd7b5a6.webp new file mode 100644 index 000000000..eefb7b624 Binary files /dev/null and b/translated_images/km/banana-unripe-4.483e740d6fd7b5a6.webp differ diff --git a/translated_images/km/banana-unripe-5.e9923cf1ffcfc1c9.webp b/translated_images/km/banana-unripe-5.e9923cf1ffcfc1c9.webp new file mode 100644 index 000000000..acfe59606 Binary files /dev/null and b/translated_images/km/banana-unripe-5.e9923cf1ffcfc1c9.webp differ diff --git a/translated_images/km/banana-unripe-6.e3a73307558caecc.webp b/translated_images/km/banana-unripe-6.e3a73307558caecc.webp new file mode 100644 index 000000000..72ae0174f Binary files /dev/null and b/translated_images/km/banana-unripe-6.e3a73307558caecc.webp differ diff --git a/translated_images/km/banana-unripe-7.634ca89acc17d68f.webp b/translated_images/km/banana-unripe-7.634ca89acc17d68f.webp new file mode 100644 index 000000000..283cae548 Binary files /dev/null and b/translated_images/km/banana-unripe-7.634ca89acc17d68f.webp differ diff --git a/translated_images/km/banana-unripe-8.75720b4cdebac8c3.webp b/translated_images/km/banana-unripe-8.75720b4cdebac8c3.webp new file mode 100644 index 000000000..f09e18518 Binary files /dev/null and b/translated_images/km/banana-unripe-8.75720b4cdebac8c3.webp differ diff --git a/translated_images/km/banana-unripe-9.e8076983351d2f54.webp b/translated_images/km/banana-unripe-9.e8076983351d2f54.webp new file mode 100644 index 000000000..c7f53d90f Binary files /dev/null and b/translated_images/km/banana-unripe-9.e8076983351d2f54.webp differ diff --git a/translated_images/km/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64.webp b/translated_images/km/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64.webp new file mode 100644 index 000000000..9e56bc1ea Binary files /dev/null and b/translated_images/km/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64.webp differ diff --git a/translated_images/km/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50e.webp b/translated_images/km/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50e.webp new file mode 100644 index 000000000..aea5ed7eb Binary files /dev/null and b/translated_images/km/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50e.webp differ diff --git a/translated_images/km/basic-thermostat.a923217fd1f37e5a.webp b/translated_images/km/basic-thermostat.a923217fd1f37e5a.webp new file mode 100644 index 000000000..b112cc52e Binary files /dev/null and b/translated_images/km/basic-thermostat.a923217fd1f37e5a.webp differ diff --git a/translated_images/km/bing-translate.348aa796d6efe2a9.webp b/translated_images/km/bing-translate.348aa796d6efe2a9.webp new file mode 100644 index 000000000..b56f09596 Binary files /dev/null and b/translated_images/km/bing-translate.348aa796d6efe2a9.webp differ diff --git a/translated_images/km/bounding-box.1420a7ea0d3d15f7.webp b/translated_images/km/bounding-box.1420a7ea0d3d15f7.webp new file mode 100644 index 000000000..e98647579 Binary files /dev/null and b/translated_images/km/bounding-box.1420a7ea0d3d15f7.webp differ diff --git a/translated_images/km/bricked-car.dc38f8efadc6c59d.webp b/translated_images/km/bricked-car.dc38f8efadc6c59d.webp new file mode 100644 index 000000000..1e175f622 Binary files /dev/null and b/translated_images/km/bricked-car.dc38f8efadc6c59d.webp differ diff --git a/translated_images/km/button-with-digital.3749edea8eb885af.webp b/translated_images/km/button-with-digital.3749edea8eb885af.webp new file mode 100644 index 000000000..45eeb7f3e Binary files /dev/null and b/translated_images/km/button-with-digital.3749edea8eb885af.webp differ diff --git a/translated_images/km/button.eadb560b77ac45e5.webp b/translated_images/km/button.eadb560b77ac45e5.webp new file mode 100644 index 000000000..d76845eec Binary files /dev/null and b/translated_images/km/button.eadb560b77ac45e5.webp differ diff --git a/translated_images/km/chart-soil-moisture-relay.fbb391236d34a64d.webp b/translated_images/km/chart-soil-moisture-relay.fbb391236d34a64d.webp new file mode 100644 index 000000000..b67f6500a Binary files /dev/null and b/translated_images/km/chart-soil-moisture-relay.fbb391236d34a64d.webp differ diff --git a/translated_images/km/chart-soil-moisture.fd6d9d0cdc0b5f75.webp b/translated_images/km/chart-soil-moisture.fd6d9d0cdc0b5f75.webp new file mode 100644 index 000000000..6e6506c11 Binary files /dev/null and b/translated_images/km/chart-soil-moisture.fd6d9d0cdc0b5f75.webp differ diff --git a/translated_images/km/child-watering-garden.9a5d3f1bfe6d0d8d.webp b/translated_images/km/child-watering-garden.9a5d3f1bfe6d0d8d.webp new file mode 100644 index 000000000..5aee7f4c6 Binary files /dev/null and b/translated_images/km/child-watering-garden.9a5d3f1bfe6d0d8d.webp differ diff --git a/translated_images/km/cloud-with-edge.1e26462c62c126fe.webp b/translated_images/km/cloud-with-edge.1e26462c62c126fe.webp new file mode 100644 index 000000000..022afb5e8 Binary files /dev/null and b/translated_images/km/cloud-with-edge.1e26462c62c126fe.webp differ diff --git a/translated_images/km/cloud-without-edge.b4da641f6022c95e.webp b/translated_images/km/cloud-without-edge.b4da641f6022c95e.webp new file mode 100644 index 000000000..d1bbae8f8 Binary files /dev/null and b/translated_images/km/cloud-without-edge.b4da641f6022c95e.webp differ diff --git a/translated_images/km/cmos-sensor.75f9cd74decb1371.webp b/translated_images/km/cmos-sensor.75f9cd74decb1371.webp new file mode 100644 index 000000000..7bc905896 Binary files /dev/null and b/translated_images/km/cmos-sensor.75f9cd74decb1371.webp differ diff --git a/translated_images/km/commands.d6c06bbbb3a02cce.webp b/translated_images/km/commands.d6c06bbbb3a02cce.webp new file mode 100644 index 000000000..5ce548847 Binary files /dev/null and b/translated_images/km/commands.d6c06bbbb3a02cce.webp differ diff --git a/translated_images/km/condenser-mic.6f6ed5b76ca19e0e.webp b/translated_images/km/condenser-mic.6f6ed5b76ca19e0e.webp new file mode 100644 index 000000000..0e6030fd5 Binary files /dev/null and b/translated_images/km/condenser-mic.6f6ed5b76ca19e0e.webp differ diff --git a/translated_images/km/consumer-groups.a3262e26fc27ba20.webp b/translated_images/km/consumer-groups.a3262e26fc27ba20.webp new file mode 100644 index 000000000..5e3263754 Binary files /dev/null and b/translated_images/km/consumer-groups.a3262e26fc27ba20.webp differ diff --git a/translated_images/km/container-edge-flow.c246050dd60ceefd.webp b/translated_images/km/container-edge-flow.c246050dd60ceefd.webp new file mode 100644 index 000000000..4b7e23618 Binary files /dev/null and b/translated_images/km/container-edge-flow.c246050dd60ceefd.webp differ diff --git a/translated_images/km/container-web-browser.4ee81dd4f0d8838c.webp b/translated_images/km/container-web-browser.4ee81dd4f0d8838c.webp new file mode 100644 index 000000000..d9e07c29f Binary files /dev/null and b/translated_images/km/container-web-browser.4ee81dd4f0d8838c.webp differ diff --git a/translated_images/km/counterfit-camera-options.eb3bd5150a8e7dff.webp b/translated_images/km/counterfit-camera-options.eb3bd5150a8e7dff.webp new file mode 100644 index 000000000..c823b7c1b Binary files /dev/null and b/translated_images/km/counterfit-camera-options.eb3bd5150a8e7dff.webp differ diff --git a/translated_images/km/counterfit-camera.001ec52194c8ee5d.webp b/translated_images/km/counterfit-camera.001ec52194c8ee5d.webp new file mode 100644 index 000000000..6345087e5 Binary files /dev/null and b/translated_images/km/counterfit-camera.001ec52194c8ee5d.webp differ diff --git a/translated_images/km/counterfit-connected.ed30b46d8f79b092.webp b/translated_images/km/counterfit-connected.ed30b46d8f79b092.webp new file mode 100644 index 000000000..125b693a4 Binary files /dev/null and b/translated_images/km/counterfit-connected.ed30b46d8f79b092.webp differ diff --git a/translated_images/km/counterfit-create-camera.a5de97f59c0bd3cb.webp b/translated_images/km/counterfit-create-camera.a5de97f59c0bd3cb.webp new file mode 100644 index 000000000..b2eda35d2 Binary files /dev/null and b/translated_images/km/counterfit-create-camera.a5de97f59c0bd3cb.webp differ diff --git a/translated_images/km/counterfit-create-distance-sensor.967c9fb98f27888d.webp b/translated_images/km/counterfit-create-distance-sensor.967c9fb98f27888d.webp new file mode 100644 index 000000000..17ef5f53e Binary files /dev/null and b/translated_images/km/counterfit-create-distance-sensor.967c9fb98f27888d.webp differ diff --git a/translated_images/km/counterfit-create-gps-sensor.6385dc9357d85ad1.webp b/translated_images/km/counterfit-create-gps-sensor.6385dc9357d85ad1.webp new file mode 100644 index 000000000..711f54e89 Binary files /dev/null and b/translated_images/km/counterfit-create-gps-sensor.6385dc9357d85ad1.webp differ diff --git a/translated_images/km/counterfit-create-humidity-sensor.2750e27b6f30e09c.webp b/translated_images/km/counterfit-create-humidity-sensor.2750e27b6f30e09c.webp new file mode 100644 index 000000000..6a8bf2542 Binary files /dev/null and b/translated_images/km/counterfit-create-humidity-sensor.2750e27b6f30e09c.webp differ diff --git a/translated_images/km/counterfit-create-led.ba9db1c9b8c622a6.webp b/translated_images/km/counterfit-create-led.ba9db1c9b8c622a6.webp new file mode 100644 index 000000000..5333c7913 Binary files /dev/null and b/translated_images/km/counterfit-create-led.ba9db1c9b8c622a6.webp differ diff --git a/translated_images/km/counterfit-create-light-sensor.9f36a5e0d4458d8d.webp b/translated_images/km/counterfit-create-light-sensor.9f36a5e0d4458d8d.webp new file mode 100644 index 000000000..b8f4b82c6 Binary files /dev/null and b/translated_images/km/counterfit-create-light-sensor.9f36a5e0d4458d8d.webp differ diff --git a/translated_images/km/counterfit-create-relay.fa7c40fd0f2f6afc.webp b/translated_images/km/counterfit-create-relay.fa7c40fd0f2f6afc.webp new file mode 100644 index 000000000..d4df24ea0 Binary files /dev/null and b/translated_images/km/counterfit-create-relay.fa7c40fd0f2f6afc.webp differ diff --git a/translated_images/km/counterfit-create-soil-moisture-sensor.35266135a5e0ae68.webp b/translated_images/km/counterfit-create-soil-moisture-sensor.35266135a5e0ae68.webp new file mode 100644 index 000000000..9230e024c Binary files /dev/null and b/translated_images/km/counterfit-create-soil-moisture-sensor.35266135a5e0ae68.webp differ diff --git a/translated_images/km/counterfit-create-temperature-sensor.199350ed34f7343d.webp b/translated_images/km/counterfit-create-temperature-sensor.199350ed34f7343d.webp new file mode 100644 index 000000000..8932c92de Binary files /dev/null and b/translated_images/km/counterfit-create-temperature-sensor.199350ed34f7343d.webp differ diff --git a/translated_images/km/counterfit-distance-sensor.079eefeeea0b68af.webp b/translated_images/km/counterfit-distance-sensor.079eefeeea0b68af.webp new file mode 100644 index 000000000..15752996a Binary files /dev/null and b/translated_images/km/counterfit-distance-sensor.079eefeeea0b68af.webp differ diff --git a/translated_images/km/counterfit-first-run.433326358b669b31.webp b/translated_images/km/counterfit-first-run.433326358b669b31.webp new file mode 100644 index 000000000..670b99ff1 Binary files /dev/null and b/translated_images/km/counterfit-first-run.433326358b669b31.webp differ diff --git a/translated_images/km/counterfit-gps-sensor-gpxfile.8310b063ce8a425c.webp b/translated_images/km/counterfit-gps-sensor-gpxfile.8310b063ce8a425c.webp new file mode 100644 index 000000000..95e3b8bcc Binary files /dev/null and b/translated_images/km/counterfit-gps-sensor-gpxfile.8310b063ce8a425c.webp differ diff --git a/translated_images/km/counterfit-gps-sensor-latlon.008c867d75464fbe.webp b/translated_images/km/counterfit-gps-sensor-latlon.008c867d75464fbe.webp new file mode 100644 index 000000000..36045c95d Binary files /dev/null and b/translated_images/km/counterfit-gps-sensor-latlon.008c867d75464fbe.webp differ diff --git a/translated_images/km/counterfit-gps-sensor-nmea.c62eea442171e17e.webp b/translated_images/km/counterfit-gps-sensor-nmea.c62eea442171e17e.webp new file mode 100644 index 000000000..900aed45e Binary files /dev/null and b/translated_images/km/counterfit-gps-sensor-nmea.c62eea442171e17e.webp differ diff --git a/translated_images/km/counterfit-gps-sensor.3fbb15af0a536756.webp b/translated_images/km/counterfit-gps-sensor.3fbb15af0a536756.webp new file mode 100644 index 000000000..bd6c049f0 Binary files /dev/null and b/translated_images/km/counterfit-gps-sensor.3fbb15af0a536756.webp differ diff --git a/translated_images/km/counterfit-humidity-sensor.7b12f7f339e430cb.webp b/translated_images/km/counterfit-humidity-sensor.7b12f7f339e430cb.webp new file mode 100644 index 000000000..071fe556b Binary files /dev/null and b/translated_images/km/counterfit-humidity-sensor.7b12f7f339e430cb.webp differ diff --git a/translated_images/km/counterfit-led.c0ab02de6d256ad8.webp b/translated_images/km/counterfit-led.c0ab02de6d256ad8.webp new file mode 100644 index 000000000..67fd0f318 Binary files /dev/null and b/translated_images/km/counterfit-led.c0ab02de6d256ad8.webp differ diff --git a/translated_images/km/counterfit-light-sensor.5d0f5584df56b90f.webp b/translated_images/km/counterfit-light-sensor.5d0f5584df56b90f.webp new file mode 100644 index 000000000..20cf0cb14 Binary files /dev/null and b/translated_images/km/counterfit-light-sensor.5d0f5584df56b90f.webp differ diff --git a/translated_images/km/counterfit-relay.bbf74c1dbdc8b9ac.webp b/translated_images/km/counterfit-relay.bbf74c1dbdc8b9ac.webp new file mode 100644 index 000000000..79a499c86 Binary files /dev/null and b/translated_images/km/counterfit-relay.bbf74c1dbdc8b9ac.webp differ diff --git a/translated_images/km/counterfit-soil-moisture-sensor.81742b2de0e9de60.webp b/translated_images/km/counterfit-soil-moisture-sensor.81742b2de0e9de60.webp new file mode 100644 index 000000000..e65c4b041 Binary files /dev/null and b/translated_images/km/counterfit-soil-moisture-sensor.81742b2de0e9de60.webp differ diff --git a/translated_images/km/counterfit-temperature-sensor.f0560236c96a9016.webp b/translated_images/km/counterfit-temperature-sensor.f0560236c96a9016.webp new file mode 100644 index 000000000..bd8ae2f6c Binary files /dev/null and b/translated_images/km/counterfit-temperature-sensor.f0560236c96a9016.webp differ diff --git a/translated_images/km/custom-vision-banana-prediction.30cdff4e1d72db5d.webp b/translated_images/km/custom-vision-banana-prediction.30cdff4e1d72db5d.webp new file mode 100644 index 000000000..5c19312e7 Binary files /dev/null and b/translated_images/km/custom-vision-banana-prediction.30cdff4e1d72db5d.webp differ diff --git a/translated_images/km/custom-vision-create-object-detector-project.32d4fb9aa8e7e737.webp b/translated_images/km/custom-vision-create-object-detector-project.32d4fb9aa8e7e737.webp new file mode 100644 index 000000000..a1bf9ee74 Binary files /dev/null and b/translated_images/km/custom-vision-create-object-detector-project.32d4fb9aa8e7e737.webp differ diff --git a/translated_images/km/custom-vision-create-project.cf46325b92d8b131.webp b/translated_images/km/custom-vision-create-project.cf46325b92d8b131.webp new file mode 100644 index 000000000..55bf3beaa Binary files /dev/null and b/translated_images/km/custom-vision-create-project.cf46325b92d8b131.webp differ diff --git a/translated_images/km/custom-vision-logo.d3d4e7c8a87ec9da.webp b/translated_images/km/custom-vision-logo.d3d4e7c8a87ec9da.webp new file mode 100644 index 000000000..80ead745b Binary files /dev/null and b/translated_images/km/custom-vision-logo.d3d4e7c8a87ec9da.webp differ diff --git a/translated_images/km/custom-vision-object-detector-publish-button.34ee379fc650ccb9.webp b/translated_images/km/custom-vision-object-detector-publish-button.34ee379fc650ccb9.webp new file mode 100644 index 000000000..7a823e256 Binary files /dev/null and b/translated_images/km/custom-vision-object-detector-publish-button.34ee379fc650ccb9.webp differ diff --git a/translated_images/km/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp b/translated_images/km/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp new file mode 100644 index 000000000..c3c3b6148 Binary files /dev/null and b/translated_images/km/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp differ diff --git a/translated_images/km/custom-vision-publish-button.b7174e1977b0c33b.webp b/translated_images/km/custom-vision-publish-button.b7174e1977b0c33b.webp new file mode 100644 index 000000000..7d1a735f3 Binary files /dev/null and b/translated_images/km/custom-vision-publish-button.b7174e1977b0c33b.webp differ diff --git a/translated_images/km/custom-vision-stock-prediction.942266ab1bcca341.webp b/translated_images/km/custom-vision-stock-prediction.942266ab1bcca341.webp new file mode 100644 index 000000000..253dca06c Binary files /dev/null and b/translated_images/km/custom-vision-stock-prediction.942266ab1bcca341.webp differ diff --git a/translated_images/km/dimmable-light.9ceffeb195dec1a8.webp b/translated_images/km/dimmable-light.9ceffeb195dec1a8.webp new file mode 100644 index 000000000..aefe83151 Binary files /dev/null and b/translated_images/km/dimmable-light.9ceffeb195dec1a8.webp differ diff --git a/translated_images/km/dmac-adc-buffers.4509aee49145c90b.webp b/translated_images/km/dmac-adc-buffers.4509aee49145c90b.webp new file mode 100644 index 000000000..3ebef5048 Binary files /dev/null and b/translated_images/km/dmac-adc-buffers.4509aee49145c90b.webp differ diff --git a/translated_images/km/dynamic-mic.8babac890a2d80df.webp b/translated_images/km/dynamic-mic.8babac890a2d80df.webp new file mode 100644 index 000000000..fd565ee47 Binary files /dev/null and b/translated_images/km/dynamic-mic.8babac890a2d80df.webp differ diff --git a/translated_images/km/favicon.37b561214b36d454.webp b/translated_images/km/favicon.37b561214b36d454.webp new file mode 100644 index 000000000..48a53960d Binary files /dev/null and b/translated_images/km/favicon.37b561214b36d454.webp differ diff --git a/translated_images/km/fetch-decode-execute.2fd6f150f6280392.webp b/translated_images/km/fetch-decode-execute.2fd6f150f6280392.webp new file mode 100644 index 000000000..84fa3e9c1 Binary files /dev/null and b/translated_images/km/fetch-decode-execute.2fd6f150f6280392.webp differ diff --git a/translated_images/km/fruit-quality-detector-message-flow.adf2a65da8fd8741.webp b/translated_images/km/fruit-quality-detector-message-flow.adf2a65da8fd8741.webp new file mode 100644 index 000000000..39e7a330d Binary files /dev/null and b/translated_images/km/fruit-quality-detector-message-flow.adf2a65da8fd8741.webp differ diff --git a/translated_images/km/gdd-calculation-corn.64a58b7a7afcd0df.webp b/translated_images/km/gdd-calculation-corn.64a58b7a7afcd0df.webp new file mode 100644 index 000000000..c39379de7 Binary files /dev/null and b/translated_images/km/gdd-calculation-corn.64a58b7a7afcd0df.webp differ diff --git a/translated_images/km/gdd-calculation-strawberries.59f57db94b22adb8.webp b/translated_images/km/gdd-calculation-strawberries.59f57db94b22adb8.webp new file mode 100644 index 000000000..4d95505e5 Binary files /dev/null and b/translated_images/km/gdd-calculation-strawberries.59f57db94b22adb8.webp differ diff --git a/translated_images/km/gdd-calculation.79b3660f9c5757aa.webp b/translated_images/km/gdd-calculation.79b3660f9c5757aa.webp new file mode 100644 index 000000000..19224e262 Binary files /dev/null and b/translated_images/km/gdd-calculation.79b3660f9c5757aa.webp differ diff --git a/translated_images/km/gdd-jupyter-notebook.c5b52cf21094f158.webp b/translated_images/km/gdd-jupyter-notebook.c5b52cf21094f158.webp new file mode 100644 index 000000000..14af60714 Binary files /dev/null and b/translated_images/km/gdd-jupyter-notebook.c5b52cf21094f158.webp differ diff --git a/translated_images/km/geofence-crossing-inaccurate-gps.6a3ed911202ad9ca.webp b/translated_images/km/geofence-crossing-inaccurate-gps.6a3ed911202ad9ca.webp new file mode 100644 index 000000000..a6f4b42fe Binary files /dev/null and b/translated_images/km/geofence-crossing-inaccurate-gps.6a3ed911202ad9ca.webp differ diff --git a/translated_images/km/geofence-examples.172fbc534665769f.webp b/translated_images/km/geofence-examples.172fbc534665769f.webp new file mode 100644 index 000000000..3fa8086e5 Binary files /dev/null and b/translated_images/km/geofence-examples.172fbc534665769f.webp differ diff --git a/translated_images/km/gps-satellites.04acf1148fe25fbf.webp b/translated_images/km/gps-satellites.04acf1148fe25fbf.webp new file mode 100644 index 000000000..406ccbc09 Binary files /dev/null and b/translated_images/km/gps-satellites.04acf1148fe25fbf.webp differ diff --git a/translated_images/km/gps-telemetry-iot-hub-functions.24d3fa5592455e9f.webp b/translated_images/km/gps-telemetry-iot-hub-functions.24d3fa5592455e9f.webp new file mode 100644 index 000000000..07aff8aad Binary files /dev/null and b/translated_images/km/gps-telemetry-iot-hub-functions.24d3fa5592455e9f.webp differ diff --git a/translated_images/km/gps-telemetry-iot-hub.8115335d51cd2c12.webp b/translated_images/km/gps-telemetry-iot-hub.8115335d51cd2c12.webp new file mode 100644 index 000000000..6be267af7 Binary files /dev/null and b/translated_images/km/gps-telemetry-iot-hub.8115335d51cd2c12.webp differ diff --git a/translated_images/km/grove-base-hat-ribbon-cable.501fed202fcf73b1.webp b/translated_images/km/grove-base-hat-ribbon-cable.501fed202fcf73b1.webp new file mode 100644 index 000000000..ed5652fee Binary files /dev/null and b/translated_images/km/grove-base-hat-ribbon-cable.501fed202fcf73b1.webp differ diff --git a/translated_images/km/grove-button.a70cfbb809a85636.webp b/translated_images/km/grove-button.a70cfbb809a85636.webp new file mode 100644 index 000000000..83a150907 Binary files /dev/null and b/translated_images/km/grove-button.a70cfbb809a85636.webp differ diff --git a/translated_images/km/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp b/translated_images/km/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp new file mode 100644 index 000000000..74547c073 Binary files /dev/null and b/translated_images/km/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp differ diff --git a/translated_images/km/grove-dht11.07f8eafceee17004.webp b/translated_images/km/grove-dht11.07f8eafceee17004.webp new file mode 100644 index 000000000..6a4f7666c Binary files /dev/null and b/translated_images/km/grove-dht11.07f8eafceee17004.webp differ diff --git a/translated_images/km/grove-gps-sensor.247943bf69b03f0d.webp b/translated_images/km/grove-gps-sensor.247943bf69b03f0d.webp new file mode 100644 index 000000000..8a66bb0c3 Binary files /dev/null and b/translated_images/km/grove-gps-sensor.247943bf69b03f0d.webp differ diff --git a/translated_images/km/grove-led.6c853be93f473cf2.webp b/translated_images/km/grove-led.6c853be93f473cf2.webp new file mode 100644 index 000000000..dc76a7b13 Binary files /dev/null and b/translated_images/km/grove-led.6c853be93f473cf2.webp differ diff --git a/translated_images/km/grove-light-sensor.b8127b7c434e632d.webp b/translated_images/km/grove-light-sensor.b8127b7c434e632d.webp new file mode 100644 index 000000000..b60d1a4e7 Binary files /dev/null and b/translated_images/km/grove-light-sensor.b8127b7c434e632d.webp differ diff --git a/translated_images/km/grove-relay-labelled.293e068f5c3c2a19.webp b/translated_images/km/grove-relay-labelled.293e068f5c3c2a19.webp new file mode 100644 index 000000000..12f3e44ed Binary files /dev/null and b/translated_images/km/grove-relay-labelled.293e068f5c3c2a19.webp differ diff --git a/translated_images/km/grove-relay.d426958ca210fbd0.webp b/translated_images/km/grove-relay.d426958ca210fbd0.webp new file mode 100644 index 000000000..6a01f1c4c Binary files /dev/null and b/translated_images/km/grove-relay.d426958ca210fbd0.webp differ diff --git a/translated_images/km/grove-time-of-flight-sensor.d82ff2165bfded9f.webp b/translated_images/km/grove-time-of-flight-sensor.d82ff2165bfded9f.webp new file mode 100644 index 000000000..701381e21 Binary files /dev/null and b/translated_images/km/grove-time-of-flight-sensor.d82ff2165bfded9f.webp differ diff --git a/translated_images/km/gsm-calculation-example.99f9803b4f29e976.webp b/translated_images/km/gsm-calculation-example.99f9803b4f29e976.webp new file mode 100644 index 000000000..8606b95fb Binary files /dev/null and b/translated_images/km/gsm-calculation-example.99f9803b4f29e976.webp differ diff --git a/translated_images/km/gsm-calculation.6da38c6201eec14e.webp b/translated_images/km/gsm-calculation.6da38c6201eec14e.webp new file mode 100644 index 000000000..7a1372191 Binary files /dev/null and b/translated_images/km/gsm-calculation.6da38c6201eec14e.webp differ diff --git a/translated_images/km/i2c.83da845dde02256b.webp b/translated_images/km/i2c.83da845dde02256b.webp new file mode 100644 index 000000000..cd1d4a600 Binary files /dev/null and b/translated_images/km/i2c.83da845dde02256b.webp differ diff --git a/translated_images/km/image-classifier-cashews-tomato.bc2e16ab8f05cf9a.webp b/translated_images/km/image-classifier-cashews-tomato.bc2e16ab8f05cf9a.webp new file mode 100644 index 000000000..936eb5e5f Binary files /dev/null and b/translated_images/km/image-classifier-cashews-tomato.bc2e16ab8f05cf9a.webp differ diff --git a/translated_images/km/image-upload-bananas.0751639f3815e0ec.webp b/translated_images/km/image-upload-bananas.0751639f3815e0ec.webp new file mode 100644 index 000000000..106af0445 Binary files /dev/null and b/translated_images/km/image-upload-bananas.0751639f3815e0ec.webp differ diff --git a/translated_images/km/image-upload-object-detector.77c7892c3093cb59.webp b/translated_images/km/image-upload-object-detector.77c7892c3093cb59.webp new file mode 100644 index 000000000..2f5acd9b3 Binary files /dev/null and b/translated_images/km/image-upload-object-detector.77c7892c3093cb59.webp differ diff --git a/translated_images/km/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f.webp b/translated_images/km/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f.webp new file mode 100644 index 000000000..9d9f2ba1a Binary files /dev/null and b/translated_images/km/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f.webp differ diff --git a/translated_images/km/iot-device-and-hacked-device-connecting.e0671675df74d6d9.webp b/translated_images/km/iot-device-and-hacked-device-connecting.e0671675df74d6d9.webp new file mode 100644 index 000000000..3b66a8190 Binary files /dev/null and b/translated_images/km/iot-device-and-hacked-device-connecting.e0671675df74d6d9.webp differ diff --git a/translated_images/km/iot-for-beginners.95958e2ed1900917.webp b/translated_images/km/iot-for-beginners.95958e2ed1900917.webp new file mode 100644 index 000000000..7c49805f0 Binary files /dev/null and b/translated_images/km/iot-for-beginners.95958e2ed1900917.webp differ diff --git a/translated_images/km/iot-hub-cloud-to-device-message.f4f21fea772cc20b.webp b/translated_images/km/iot-hub-cloud-to-device-message.f4f21fea772cc20b.webp new file mode 100644 index 000000000..a1f4ea602 Binary files /dev/null and b/translated_images/km/iot-hub-cloud-to-device-message.f4f21fea772cc20b.webp differ diff --git a/translated_images/km/iot-hub-device-to-cloud-message.e46e584d87f35fd9.webp b/translated_images/km/iot-hub-device-to-cloud-message.e46e584d87f35fd9.webp new file mode 100644 index 000000000..61aae6f98 Binary files /dev/null and b/translated_images/km/iot-hub-device-to-cloud-message.e46e584d87f35fd9.webp differ diff --git a/translated_images/km/iot-hub-device-twins.7055a60fc5e2331c.webp b/translated_images/km/iot-hub-device-twins.7055a60fc5e2331c.webp new file mode 100644 index 000000000..9e7ea16ce Binary files /dev/null and b/translated_images/km/iot-hub-device-twins.7055a60fc5e2331c.webp differ diff --git a/translated_images/km/iot-hub-direct-method-request.86a5026e91f4ca18.webp b/translated_images/km/iot-hub-direct-method-request.86a5026e91f4ca18.webp new file mode 100644 index 000000000..ab51d8a14 Binary files /dev/null and b/translated_images/km/iot-hub-direct-method-request.86a5026e91f4ca18.webp differ diff --git a/translated_images/km/iot-messages-to-serverless.0194da1cc0732bb7.webp b/translated_images/km/iot-messages-to-serverless.0194da1cc0732bb7.webp new file mode 100644 index 000000000..cde131e20 Binary files /dev/null and b/translated_images/km/iot-messages-to-serverless.0194da1cc0732bb7.webp differ diff --git a/translated_images/km/iot-reference-architecture-azure.0b8d2161af924cb1.webp b/translated_images/km/iot-reference-architecture-azure.0b8d2161af924cb1.webp new file mode 100644 index 000000000..cace618aa Binary files /dev/null and b/translated_images/km/iot-reference-architecture-azure.0b8d2161af924cb1.webp differ diff --git a/translated_images/km/iot-reference-architecture-fruit-quality.cc705f121c3b6fa7.webp b/translated_images/km/iot-reference-architecture-fruit-quality.cc705f121c3b6fa7.webp new file mode 100644 index 000000000..63c54cfc5 Binary files /dev/null and b/translated_images/km/iot-reference-architecture-fruit-quality.cc705f121c3b6fa7.webp differ diff --git a/translated_images/km/iot-reference-architecture.2278b98b55c6d4e8.webp b/translated_images/km/iot-reference-architecture.2278b98b55c6d4e8.webp new file mode 100644 index 000000000..ff09082ef Binary files /dev/null and b/translated_images/km/iot-reference-architecture.2278b98b55c6d4e8.webp differ diff --git a/translated_images/km/iot-service-allowed-denied-connection.818b0063ac213fb8.webp b/translated_images/km/iot-service-allowed-denied-connection.818b0063ac213fb8.webp new file mode 100644 index 000000000..a101f5e30 Binary files /dev/null and b/translated_images/km/iot-service-allowed-denied-connection.818b0063ac213fb8.webp differ diff --git a/translated_images/km/iot-service-connectivity.7e873847921a5d6f.webp b/translated_images/km/iot-service-connectivity.7e873847921a5d6f.webp new file mode 100644 index 000000000..eb666fe68 Binary files /dev/null and b/translated_images/km/iot-service-connectivity.7e873847921a5d6f.webp differ diff --git a/translated_images/km/latitude-equator.feccc3214b7d9fb1.webp b/translated_images/km/latitude-equator.feccc3214b7d9fb1.webp new file mode 100644 index 000000000..a1fe083b3 Binary files /dev/null and b/translated_images/km/latitude-equator.feccc3214b7d9fb1.webp differ diff --git a/translated_images/km/latitude-lines.11d8d91dfb2014a5.webp b/translated_images/km/latitude-lines.11d8d91dfb2014a5.webp new file mode 100644 index 000000000..55865c0c4 Binary files /dev/null and b/translated_images/km/latitude-lines.11d8d91dfb2014a5.webp differ diff --git a/translated_images/km/led-digital-control.13b9be14077ea49f.webp b/translated_images/km/led-digital-control.13b9be14077ea49f.webp new file mode 100644 index 000000000..768359f2e Binary files /dev/null and b/translated_images/km/led-digital-control.13b9be14077ea49f.webp differ diff --git a/translated_images/km/led.ec6d94f66676a174.webp b/translated_images/km/led.ec6d94f66676a174.webp new file mode 100644 index 000000000..cbd5b440d Binary files /dev/null and b/translated_images/km/led.ec6d94f66676a174.webp differ diff --git a/translated_images/km/lesson-1.2606670fa61ee904.webp b/translated_images/km/lesson-1.2606670fa61ee904.webp new file mode 100644 index 000000000..56c9074e7 Binary files /dev/null and b/translated_images/km/lesson-1.2606670fa61ee904.webp differ diff --git a/translated_images/km/lesson-10.829c86b80b9403bb.webp b/translated_images/km/lesson-10.829c86b80b9403bb.webp new file mode 100644 index 000000000..6cc222bca Binary files /dev/null and b/translated_images/km/lesson-10.829c86b80b9403bb.webp differ diff --git a/translated_images/km/lesson-11.9fddbac4b664c6d5.webp b/translated_images/km/lesson-11.9fddbac4b664c6d5.webp new file mode 100644 index 000000000..3c71bb466 Binary files /dev/null and b/translated_images/km/lesson-11.9fddbac4b664c6d5.webp differ diff --git a/translated_images/km/lesson-12.ca7f53039712a3ec.webp b/translated_images/km/lesson-12.ca7f53039712a3ec.webp new file mode 100644 index 000000000..d1bec41ab Binary files /dev/null and b/translated_images/km/lesson-12.ca7f53039712a3ec.webp differ diff --git a/translated_images/km/lesson-13.a259db1485021be7.webp b/translated_images/km/lesson-13.a259db1485021be7.webp new file mode 100644 index 000000000..2cff06978 Binary files /dev/null and b/translated_images/km/lesson-13.a259db1485021be7.webp differ diff --git a/translated_images/km/lesson-14.63980c5150ae3c15.webp b/translated_images/km/lesson-14.63980c5150ae3c15.webp new file mode 100644 index 000000000..70c6edefc Binary files /dev/null and b/translated_images/km/lesson-14.63980c5150ae3c15.webp differ diff --git a/translated_images/km/lesson-15.843d21afdc6fb2bb.webp b/translated_images/km/lesson-15.843d21afdc6fb2bb.webp new file mode 100644 index 000000000..4cd8a47b3 Binary files /dev/null and b/translated_images/km/lesson-15.843d21afdc6fb2bb.webp differ diff --git a/translated_images/km/lesson-16.215daf18b00631fb.webp b/translated_images/km/lesson-16.215daf18b00631fb.webp new file mode 100644 index 000000000..1d1e99bd5 Binary files /dev/null and b/translated_images/km/lesson-16.215daf18b00631fb.webp differ diff --git a/translated_images/km/lesson-17.bc333c3c35ba8e42.webp b/translated_images/km/lesson-17.bc333c3c35ba8e42.webp new file mode 100644 index 000000000..4590de2ed Binary files /dev/null and b/translated_images/km/lesson-17.bc333c3c35ba8e42.webp differ diff --git a/translated_images/km/lesson-18.92c32ed1d354caa5.webp b/translated_images/km/lesson-18.92c32ed1d354caa5.webp new file mode 100644 index 000000000..477adf50e Binary files /dev/null and b/translated_images/km/lesson-18.92c32ed1d354caa5.webp differ diff --git a/translated_images/km/lesson-19.cf6973cecadf080c.webp b/translated_images/km/lesson-19.cf6973cecadf080c.webp new file mode 100644 index 000000000..ef35c0a93 Binary files /dev/null and b/translated_images/km/lesson-19.cf6973cecadf080c.webp differ diff --git a/translated_images/km/lesson-2.324b0580d620c25e.webp b/translated_images/km/lesson-2.324b0580d620c25e.webp new file mode 100644 index 000000000..fea867f2f Binary files /dev/null and b/translated_images/km/lesson-2.324b0580d620c25e.webp differ diff --git a/translated_images/km/lesson-20.0211df9551a8abb3.webp b/translated_images/km/lesson-20.0211df9551a8abb3.webp new file mode 100644 index 000000000..060306382 Binary files /dev/null and b/translated_images/km/lesson-20.0211df9551a8abb3.webp differ diff --git a/translated_images/km/lesson-21.e34de51354d6606f.webp b/translated_images/km/lesson-21.e34de51354d6606f.webp new file mode 100644 index 000000000..711d1a272 Binary files /dev/null and b/translated_images/km/lesson-21.e34de51354d6606f.webp differ diff --git a/translated_images/km/lesson-22.6148ea28500d9e00.webp b/translated_images/km/lesson-22.6148ea28500d9e00.webp new file mode 100644 index 000000000..c0699f397 Binary files /dev/null and b/translated_images/km/lesson-22.6148ea28500d9e00.webp differ diff --git a/translated_images/km/lesson-23.f38483e1d4df4828.webp b/translated_images/km/lesson-23.f38483e1d4df4828.webp new file mode 100644 index 000000000..d4f8f1520 Binary files /dev/null and b/translated_images/km/lesson-23.f38483e1d4df4828.webp differ diff --git a/translated_images/km/lesson-24.4246968ed058510a.webp b/translated_images/km/lesson-24.4246968ed058510a.webp new file mode 100644 index 000000000..da64f5a2e Binary files /dev/null and b/translated_images/km/lesson-24.4246968ed058510a.webp differ diff --git a/translated_images/km/lesson-3.cc3b7b4cd646de59.webp b/translated_images/km/lesson-3.cc3b7b4cd646de59.webp new file mode 100644 index 000000000..1e606499e Binary files /dev/null and b/translated_images/km/lesson-3.cc3b7b4cd646de59.webp differ diff --git a/translated_images/km/lesson-4.7344e074ea68fa54.webp b/translated_images/km/lesson-4.7344e074ea68fa54.webp new file mode 100644 index 000000000..bfe18057f Binary files /dev/null and b/translated_images/km/lesson-4.7344e074ea68fa54.webp differ diff --git a/translated_images/km/lesson-5.42b234299279d263.webp b/translated_images/km/lesson-5.42b234299279d263.webp new file mode 100644 index 000000000..a7fa75d7a Binary files /dev/null and b/translated_images/km/lesson-5.42b234299279d263.webp differ diff --git a/translated_images/km/lesson-6.3e493b60eee85adc.webp b/translated_images/km/lesson-6.3e493b60eee85adc.webp new file mode 100644 index 000000000..6e6e51ff5 Binary files /dev/null and b/translated_images/km/lesson-6.3e493b60eee85adc.webp differ diff --git a/translated_images/km/lesson-7.30b5f577d3cb8e03.webp b/translated_images/km/lesson-7.30b5f577d3cb8e03.webp new file mode 100644 index 000000000..5b651a772 Binary files /dev/null and b/translated_images/km/lesson-7.30b5f577d3cb8e03.webp differ diff --git a/translated_images/km/lesson-8.3f21f3c11159e6a0.webp b/translated_images/km/lesson-8.3f21f3c11159e6a0.webp new file mode 100644 index 000000000..da4b69e92 Binary files /dev/null and b/translated_images/km/lesson-8.3f21f3c11159e6a0.webp differ diff --git a/translated_images/km/lesson-9.dfe99c8e891f48e1.webp b/translated_images/km/lesson-9.dfe99c8e891f48e1.webp new file mode 100644 index 000000000..66557dd0a Binary files /dev/null and b/translated_images/km/lesson-9.dfe99c8e891f48e1.webp differ diff --git a/translated_images/km/light-switch.760317ad6ab8bd6d.webp b/translated_images/km/light-switch.760317ad6ab8bd6d.webp new file mode 100644 index 000000000..e64456c6c Binary files /dev/null and b/translated_images/km/light-switch.760317ad6ab8bd6d.webp differ diff --git a/translated_images/km/lines-of-longitude-and-latitude.032aca9d3e402c4e.webp b/translated_images/km/lines-of-longitude-and-latitude.032aca9d3e402c4e.webp new file mode 100644 index 000000000..3cef5eac2 Binary files /dev/null and b/translated_images/km/lines-of-longitude-and-latitude.032aca9d3e402c4e.webp differ diff --git a/translated_images/km/longitude-meridians.ab4ef1c91c064586.webp b/translated_images/km/longitude-meridians.ab4ef1c91c064586.webp new file mode 100644 index 000000000..e8268dd7d Binary files /dev/null and b/translated_images/km/longitude-meridians.ab4ef1c91c064586.webp differ diff --git a/translated_images/km/longitude-prime-meridian.33b01b41ce615f9d.webp b/translated_images/km/longitude-prime-meridian.33b01b41ce615f9d.webp new file mode 100644 index 000000000..e43377a99 Binary files /dev/null and b/translated_images/km/longitude-prime-meridian.33b01b41ce615f9d.webp differ diff --git a/translated_images/km/luis-intent-examples.25716580b2d2723c.webp b/translated_images/km/luis-intent-examples.25716580b2d2723c.webp new file mode 100644 index 000000000..71a5f65c7 Binary files /dev/null and b/translated_images/km/luis-intent-examples.25716580b2d2723c.webp differ diff --git a/translated_images/km/luis-logo.5cb4f3e88c020ee6.webp b/translated_images/km/luis-logo.5cb4f3e88c020ee6.webp new file mode 100644 index 000000000..3e7e3711b Binary files /dev/null and b/translated_images/km/luis-logo.5cb4f3e88c020ee6.webp differ diff --git a/translated_images/km/map-image.8fb2c53eb23ef39c.webp b/translated_images/km/map-image.8fb2c53eb23ef39c.webp new file mode 100644 index 000000000..0cb9bdb2a Binary files /dev/null and b/translated_images/km/map-image.8fb2c53eb23ef39c.webp differ diff --git a/translated_images/km/map-path.896832e72dc696ff.webp b/translated_images/km/map-path.896832e72dc696ff.webp new file mode 100644 index 000000000..25c162a8f Binary files /dev/null and b/translated_images/km/map-path.896832e72dc696ff.webp differ diff --git a/translated_images/km/mems-microphone.80574019e1f5e4d9.webp b/translated_images/km/mems-microphone.80574019e1f5e4d9.webp new file mode 100644 index 000000000..e9c296bde Binary files /dev/null and b/translated_images/km/mems-microphone.80574019e1f5e4d9.webp differ diff --git a/translated_images/km/microsoft-gps-location-world.a321d481b010f6ad.webp b/translated_images/km/microsoft-gps-location-world.a321d481b010f6ad.webp new file mode 100644 index 000000000..73f3e744b Binary files /dev/null and b/translated_images/km/microsoft-gps-location-world.a321d481b010f6ad.webp differ diff --git a/translated_images/km/microsoft-gps-location.9eb77a13b22b7e70.webp b/translated_images/km/microsoft-gps-location.9eb77a13b22b7e70.webp new file mode 100644 index 000000000..72a679fd2 Binary files /dev/null and b/translated_images/km/microsoft-gps-location.9eb77a13b22b7e70.webp differ diff --git a/translated_images/km/mobile-controlled-thermostat.4a994010473d8d6a.webp b/translated_images/km/mobile-controlled-thermostat.4a994010473d8d6a.webp new file mode 100644 index 000000000..a44e76b36 Binary files /dev/null and b/translated_images/km/mobile-controlled-thermostat.4a994010473d8d6a.webp differ diff --git a/translated_images/km/mqtt.cbf7f21d9adc3e17.webp b/translated_images/km/mqtt.cbf7f21d9adc3e17.webp new file mode 100644 index 000000000..66b52374a Binary files /dev/null and b/translated_images/km/mqtt.cbf7f21d9adc3e17.webp differ diff --git a/translated_images/km/noqsl-database.62d24ccf5b73f60d.webp b/translated_images/km/noqsl-database.62d24ccf5b73f60d.webp new file mode 100644 index 000000000..1ea8392ef Binary files /dev/null and b/translated_images/km/noqsl-database.62d24ccf5b73f60d.webp differ diff --git a/translated_images/km/object-detector-cashews-tomato.1af7c26686b4db0e.webp b/translated_images/km/object-detector-cashews-tomato.1af7c26686b4db0e.webp new file mode 100644 index 000000000..f9637e7d0 Binary files /dev/null and b/translated_images/km/object-detector-cashews-tomato.1af7c26686b4db0e.webp differ diff --git a/translated_images/km/object-detector-detected-tomato-paste.52656fe87af4c37b.webp b/translated_images/km/object-detector-detected-tomato-paste.52656fe87af4c37b.webp new file mode 100644 index 000000000..bed1fa034 Binary files /dev/null and b/translated_images/km/object-detector-detected-tomato-paste.52656fe87af4c37b.webp differ diff --git a/translated_images/km/object-detector-tag-tomato-paste.f47c362fb0f0eb58.webp b/translated_images/km/object-detector-tag-tomato-paste.f47c362fb0f0eb58.webp new file mode 100644 index 000000000..5511ea262 Binary files /dev/null and b/translated_images/km/object-detector-tag-tomato-paste.f47c362fb0f0eb58.webp differ diff --git a/translated_images/km/optical-tomato-sorting.61aa134bdda4e5b1.webp b/translated_images/km/optical-tomato-sorting.61aa134bdda4e5b1.webp new file mode 100644 index 000000000..ee3227193 Binary files /dev/null and b/translated_images/km/optical-tomato-sorting.61aa134bdda4e5b1.webp differ diff --git a/translated_images/km/overlap-object-detection.d431e03cae75072a.webp b/translated_images/km/overlap-object-detection.d431e03cae75072a.webp new file mode 100644 index 000000000..59d8cd3a3 Binary files /dev/null and b/translated_images/km/overlap-object-detection.d431e03cae75072a.webp differ diff --git a/translated_images/km/pi-button.c7a1a4f55943341c.webp b/translated_images/km/pi-button.c7a1a4f55943341c.webp new file mode 100644 index 000000000..44dbf4b2a Binary files /dev/null and b/translated_images/km/pi-button.c7a1a4f55943341c.webp differ diff --git a/translated_images/km/pi-camera-module.4278753c31bd6e75.webp b/translated_images/km/pi-camera-module.4278753c31bd6e75.webp new file mode 100644 index 000000000..eb4e7c9b0 Binary files /dev/null and b/translated_images/km/pi-camera-module.4278753c31bd6e75.webp differ diff --git a/translated_images/km/pi-camera-ribbon-cable.0bf82acd251611c2.webp b/translated_images/km/pi-camera-ribbon-cable.0bf82acd251611c2.webp new file mode 100644 index 000000000..916e1a1eb Binary files /dev/null and b/translated_images/km/pi-camera-ribbon-cable.0bf82acd251611c2.webp differ diff --git a/translated_images/km/pi-camera-socket-ribbon-cable.a18309920b118009.webp b/translated_images/km/pi-camera-socket-ribbon-cable.a18309920b118009.webp new file mode 100644 index 000000000..34eec3038 Binary files /dev/null and b/translated_images/km/pi-camera-socket-ribbon-cable.a18309920b118009.webp differ diff --git a/translated_images/km/pi-camera-upside-down.5376961ba3145988.webp b/translated_images/km/pi-camera-upside-down.5376961ba3145988.webp new file mode 100644 index 000000000..64672ac4b Binary files /dev/null and b/translated_images/km/pi-camera-upside-down.5376961ba3145988.webp differ diff --git a/translated_images/km/pi-gps-sensor.1f99ee2b2f652891.webp b/translated_images/km/pi-gps-sensor.1f99ee2b2f652891.webp new file mode 100644 index 000000000..46fb28835 Binary files /dev/null and b/translated_images/km/pi-gps-sensor.1f99ee2b2f652891.webp differ diff --git a/translated_images/km/pi-hardware-kit.26dbadaedb7dd44c.webp b/translated_images/km/pi-hardware-kit.26dbadaedb7dd44c.webp new file mode 100644 index 000000000..f1609b047 Binary files /dev/null and b/translated_images/km/pi-hardware-kit.26dbadaedb7dd44c.webp differ diff --git a/translated_images/km/pi-led.97f1d474981dc35d.webp b/translated_images/km/pi-led.97f1d474981dc35d.webp new file mode 100644 index 000000000..4476147fd Binary files /dev/null and b/translated_images/km/pi-led.97f1d474981dc35d.webp differ diff --git a/translated_images/km/pi-light-sensor.66cc1e31fa48cd7d.webp b/translated_images/km/pi-light-sensor.66cc1e31fa48cd7d.webp new file mode 100644 index 000000000..b1496bcce Binary files /dev/null and b/translated_images/km/pi-light-sensor.66cc1e31fa48cd7d.webp differ diff --git a/translated_images/km/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e.webp b/translated_images/km/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e.webp new file mode 100644 index 000000000..4bf2a3257 Binary files /dev/null and b/translated_images/km/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e.webp differ diff --git a/translated_images/km/pi-respeaker-hat.f00fabe7dd039a93.webp b/translated_images/km/pi-respeaker-hat.f00fabe7dd039a93.webp new file mode 100644 index 000000000..509b300d5 Binary files /dev/null and b/translated_images/km/pi-respeaker-hat.f00fabe7dd039a93.webp differ diff --git a/translated_images/km/pi-soil-moisture-sensor.fdd7eb2393792cf6.webp b/translated_images/km/pi-soil-moisture-sensor.fdd7eb2393792cf6.webp new file mode 100644 index 000000000..6199cc245 Binary files /dev/null and b/translated_images/km/pi-soil-moisture-sensor.fdd7eb2393792cf6.webp differ diff --git a/translated_images/km/pi-temperature-sensor.3ff82fff672c8e56.webp b/translated_images/km/pi-temperature-sensor.3ff82fff672c8e56.webp new file mode 100644 index 000000000..8e4de261f Binary files /dev/null and b/translated_images/km/pi-temperature-sensor.3ff82fff672c8e56.webp differ diff --git a/translated_images/km/pi-time-of-flight-sensor.58c8dc04eb3bfb57.webp b/translated_images/km/pi-time-of-flight-sensor.58c8dc04eb3bfb57.webp new file mode 100644 index 000000000..95d012e07 Binary files /dev/null and b/translated_images/km/pi-time-of-flight-sensor.58c8dc04eb3bfb57.webp differ diff --git a/translated_images/km/plant-growth-temp-graph copy.65baa28afd9b7f5f.webp b/translated_images/km/plant-growth-temp-graph copy.65baa28afd9b7f5f.webp new file mode 100644 index 000000000..a26b701c3 Binary files /dev/null and b/translated_images/km/plant-growth-temp-graph copy.65baa28afd9b7f5f.webp differ diff --git a/translated_images/km/plant-growth-temp-graph.c6d69c9478e6ca83.webp b/translated_images/km/plant-growth-temp-graph.c6d69c9478e6ca83.webp new file mode 100644 index 000000000..9fbf9e5d9 Binary files /dev/null and b/translated_images/km/plant-growth-temp-graph.c6d69c9478e6ca83.webp differ diff --git a/translated_images/km/polygon-points.302193da381cb415.webp b/translated_images/km/polygon-points.302193da381cb415.webp new file mode 100644 index 000000000..9f47da7e4 Binary files /dev/null and b/translated_images/km/polygon-points.302193da381cb415.webp differ diff --git a/translated_images/km/potentiometer.35a348b9ce22f6ec.webp b/translated_images/km/potentiometer.35a348b9ce22f6ec.webp new file mode 100644 index 000000000..1c6b0d863 Binary files /dev/null and b/translated_images/km/potentiometer.35a348b9ce22f6ec.webp differ diff --git a/translated_images/km/proximity-sensor.f5cd752c77fb62fe.webp b/translated_images/km/proximity-sensor.f5cd752c77fb62fe.webp new file mode 100644 index 000000000..35843b210 Binary files /dev/null and b/translated_images/km/proximity-sensor.f5cd752c77fb62fe.webp differ diff --git a/translated_images/km/pub-sub.7c7ed43fe9fd15d4.webp b/translated_images/km/pub-sub.7c7ed43fe9fd15d4.webp new file mode 100644 index 000000000..38ff4528c Binary files /dev/null and b/translated_images/km/pub-sub.7c7ed43fe9fd15d4.webp differ diff --git a/translated_images/km/pump-wired-to-relay.66c5cfc0d8918990.webp b/translated_images/km/pump-wired-to-relay.66c5cfc0d8918990.webp new file mode 100644 index 000000000..3954889bf Binary files /dev/null and b/translated_images/km/pump-wired-to-relay.66c5cfc0d8918990.webp differ diff --git a/translated_images/km/pwm-motor-150rpm.83347ac04ca38482.webp b/translated_images/km/pwm-motor-150rpm.83347ac04ca38482.webp new file mode 100644 index 000000000..c1197084e Binary files /dev/null and b/translated_images/km/pwm-motor-150rpm.83347ac04ca38482.webp differ diff --git a/translated_images/km/pwm-motor-75rpm.a5e4c939934b6e14.webp b/translated_images/km/pwm-motor-75rpm.a5e4c939934b6e14.webp new file mode 100644 index 000000000..368b6578c Binary files /dev/null and b/translated_images/km/pwm-motor-75rpm.a5e4c939934b6e14.webp differ diff --git a/translated_images/km/ram-comparison.6beb73541b42ac6f.webp b/translated_images/km/ram-comparison.6beb73541b42ac6f.webp new file mode 100644 index 000000000..a74c03c94 Binary files /dev/null and b/translated_images/km/ram-comparison.6beb73541b42ac6f.webp differ diff --git a/translated_images/km/raspberry-pi-4.fd4590d308c3d456.webp b/translated_images/km/raspberry-pi-4.fd4590d308c3d456.webp new file mode 100644 index 000000000..a31e8a0a4 Binary files /dev/null and b/translated_images/km/raspberry-pi-4.fd4590d308c3d456.webp differ diff --git a/translated_images/km/raspberry-pi-imager.24aedeab9e233d84.webp b/translated_images/km/raspberry-pi-imager.24aedeab9e233d84.webp new file mode 100644 index 000000000..c8eed6a47 Binary files /dev/null and b/translated_images/km/raspberry-pi-imager.24aedeab9e233d84.webp differ diff --git a/translated_images/km/raspberry-pi-logo.4efaa16605cee054.webp b/translated_images/km/raspberry-pi-logo.4efaa16605cee054.webp new file mode 100644 index 000000000..f943ff624 Binary files /dev/null and b/translated_images/km/raspberry-pi-logo.4efaa16605cee054.webp differ diff --git a/translated_images/km/raspberry-pi-zero.f7a4133e1e7d54bb.webp b/translated_images/km/raspberry-pi-zero.f7a4133e1e7d54bb.webp new file mode 100644 index 000000000..2be6f59f7 Binary files /dev/null and b/translated_images/km/raspberry-pi-zero.f7a4133e1e7d54bb.webp differ diff --git a/translated_images/km/relay-off.c34a178a2960fecd.webp b/translated_images/km/relay-off.c34a178a2960fecd.webp new file mode 100644 index 000000000..e92c9b885 Binary files /dev/null and b/translated_images/km/relay-off.c34a178a2960fecd.webp differ diff --git a/translated_images/km/relay-on.4db16a0fd6b66926.webp b/translated_images/km/relay-on.4db16a0fd6b66926.webp new file mode 100644 index 000000000..d06a8caed Binary files /dev/null and b/translated_images/km/relay-on.4db16a0fd6b66926.webp differ diff --git a/translated_images/km/resistive-soil-moisture-sensor.728a138a3d109e06.webp b/translated_images/km/resistive-soil-moisture-sensor.728a138a3d109e06.webp new file mode 100644 index 000000000..d145640ab Binary files /dev/null and b/translated_images/km/resistive-soil-moisture-sensor.728a138a3d109e06.webp differ diff --git a/translated_images/km/respeaker-35mm-speaker.ad79ef4f128c7751.webp b/translated_images/km/respeaker-35mm-speaker.ad79ef4f128c7751.webp new file mode 100644 index 000000000..ad11d1555 Binary files /dev/null and b/translated_images/km/respeaker-35mm-speaker.ad79ef4f128c7751.webp differ diff --git a/translated_images/km/respeaker-jst-speaker.a441d177809df945.webp b/translated_images/km/respeaker-jst-speaker.a441d177809df945.webp new file mode 100644 index 000000000..3b8338f3d Binary files /dev/null and b/translated_images/km/respeaker-jst-speaker.a441d177809df945.webp differ diff --git a/translated_images/km/respeaker.f5d19d1c6b14ab16.webp b/translated_images/km/respeaker.f5d19d1c6b14ab16.webp new file mode 100644 index 000000000..92c18ec18 Binary files /dev/null and b/translated_images/km/respeaker.f5d19d1c6b14ab16.webp differ diff --git a/translated_images/km/ribbon-mic.eacc8e092c7441ca.webp b/translated_images/km/ribbon-mic.eacc8e092c7441ca.webp new file mode 100644 index 000000000..eb6a73927 Binary files /dev/null and b/translated_images/km/ribbon-mic.eacc8e092c7441ca.webp differ diff --git a/translated_images/km/rpi-stock-with-bounding-boxes.b5540e2ecb7cd49f.webp b/translated_images/km/rpi-stock-with-bounding-boxes.b5540e2ecb7cd49f.webp new file mode 100644 index 000000000..9636e8a4c Binary files /dev/null and b/translated_images/km/rpi-stock-with-bounding-boxes.b5540e2ecb7cd49f.webp differ diff --git a/translated_images/km/sampling.6f4fadb3f2d9dfe7.webp b/translated_images/km/sampling.6f4fadb3f2d9dfe7.webp new file mode 100644 index 000000000..6970fbdb2 Binary files /dev/null and b/translated_images/km/sampling.6f4fadb3f2d9dfe7.webp differ diff --git a/translated_images/km/save-telemetry-database.ddc9c6bea0c5ba39.webp b/translated_images/km/save-telemetry-database.ddc9c6bea0c5ba39.webp new file mode 100644 index 000000000..20af82f09 Binary files /dev/null and b/translated_images/km/save-telemetry-database.ddc9c6bea0c5ba39.webp differ diff --git a/translated_images/km/save-telemetry-to-storage-from-functions.ed3b1820980097f1.webp b/translated_images/km/save-telemetry-to-storage-from-functions.ed3b1820980097f1.webp new file mode 100644 index 000000000..43f3d6369 Binary files /dev/null and b/translated_images/km/save-telemetry-to-storage-from-functions.ed3b1820980097f1.webp differ diff --git a/translated_images/km/search-buffer-and-distance.e6a79af3898183c7.webp b/translated_images/km/search-buffer-and-distance.e6a79af3898183c7.webp new file mode 100644 index 000000000..abc12625b Binary files /dev/null and b/translated_images/km/search-buffer-and-distance.e6a79af3898183c7.webp differ diff --git a/translated_images/km/seeed-logo.74732b6b482b6e8e.webp b/translated_images/km/seeed-logo.74732b6b482b6e8e.webp new file mode 100644 index 000000000..5a2397d02 Binary files /dev/null and b/translated_images/km/seeed-logo.74732b6b482b6e8e.webp differ diff --git a/translated_images/km/select-the-random-checkbox-and-set-a-range.32cf4bc7c12e797f.webp b/translated_images/km/select-the-random-checkbox-and-set-a-range.32cf4bc7c12e797f.webp new file mode 100644 index 000000000..06d688cb2 Binary files /dev/null and b/translated_images/km/select-the-random-checkbox-and-set-a-range.32cf4bc7c12e797f.webp differ diff --git a/translated_images/km/send-message-asymmetric.7abe327c62615b8c.webp b/translated_images/km/send-message-asymmetric.7abe327c62615b8c.webp new file mode 100644 index 000000000..17ec5dc2d Binary files /dev/null and b/translated_images/km/send-message-asymmetric.7abe327c62615b8c.webp differ diff --git a/translated_images/km/send-message-certificate.9cc576ac1e46b76e.webp b/translated_images/km/send-message-certificate.9cc576ac1e46b76e.webp new file mode 100644 index 000000000..2ff426ee1 Binary files /dev/null and b/translated_images/km/send-message-certificate.9cc576ac1e46b76e.webp differ diff --git a/translated_images/km/send-message-symmetric-key-hacker.e7cb53db1707adfb.webp b/translated_images/km/send-message-symmetric-key-hacker.e7cb53db1707adfb.webp new file mode 100644 index 000000000..23a1723d2 Binary files /dev/null and b/translated_images/km/send-message-symmetric-key-hacker.e7cb53db1707adfb.webp differ diff --git a/translated_images/km/send-message-symmetric-key.a2e8ad0d495896ff.webp b/translated_images/km/send-message-symmetric-key.a2e8ad0d495896ff.webp new file mode 100644 index 000000000..1ec843a21 Binary files /dev/null and b/translated_images/km/send-message-symmetric-key.a2e8ad0d495896ff.webp differ diff --git a/translated_images/km/sentence-as-intent-entities.301401696f992259.webp b/translated_images/km/sentence-as-intent-entities.301401696f992259.webp new file mode 100644 index 000000000..5f82ce1f7 Binary files /dev/null and b/translated_images/km/sentence-as-intent-entities.301401696f992259.webp differ diff --git a/translated_images/km/serverless-scaling.f8c769adf0413fd1.webp b/translated_images/km/serverless-scaling.f8c769adf0413fd1.webp new file mode 100644 index 000000000..3ad57d537 Binary files /dev/null and b/translated_images/km/serverless-scaling.f8c769adf0413fd1.webp differ diff --git a/translated_images/km/shapes-to-images.1a309f0ea88dd66f.webp b/translated_images/km/shapes-to-images.1a309f0ea88dd66f.webp new file mode 100644 index 000000000..365a702df Binary files /dev/null and b/translated_images/km/shapes-to-images.1a309f0ea88dd66f.webp differ diff --git a/translated_images/km/smarter-thermostat.a75855f15d2d9e63.webp b/translated_images/km/smarter-thermostat.a75855f15d2d9e63.webp new file mode 100644 index 000000000..d872c6a6e Binary files /dev/null and b/translated_images/km/smarter-thermostat.a75855f15d2d9e63.webp differ diff --git a/translated_images/km/soil-moisture-delay.865f3fae206db01d.webp b/translated_images/km/soil-moisture-delay.865f3fae206db01d.webp new file mode 100644 index 000000000..432233d5c Binary files /dev/null and b/translated_images/km/soil-moisture-delay.865f3fae206db01d.webp differ diff --git a/translated_images/km/soil-moisture-sensor-in-soil.bfad91002bda5e96.webp b/translated_images/km/soil-moisture-sensor-in-soil.bfad91002bda5e96.webp new file mode 100644 index 000000000..5990e3c87 Binary files /dev/null and b/translated_images/km/soil-moisture-sensor-in-soil.bfad91002bda5e96.webp differ diff --git a/translated_images/km/soil-moisture-to-voltage-with-reading.681cb3e1f8b68caf.webp b/translated_images/km/soil-moisture-to-voltage-with-reading.681cb3e1f8b68caf.webp new file mode 100644 index 000000000..e14bf2a44 Binary files /dev/null and b/translated_images/km/soil-moisture-to-voltage-with-reading.681cb3e1f8b68caf.webp differ diff --git a/translated_images/km/soil-moisture-to-voltage.df86d80cda158700.webp b/translated_images/km/soil-moisture-to-voltage.df86d80cda158700.webp new file mode 100644 index 000000000..629b72bbe Binary files /dev/null and b/translated_images/km/soil-moisture-to-voltage.df86d80cda158700.webp differ diff --git a/translated_images/km/soil-moisture-travel.a0e31af222cf1438.webp b/translated_images/km/soil-moisture-travel.a0e31af222cf1438.webp new file mode 100644 index 000000000..6610ea4bc Binary files /dev/null and b/translated_images/km/soil-moisture-travel.a0e31af222cf1438.webp differ diff --git a/translated_images/km/spi.297431d6f98b386b.webp b/translated_images/km/spi.297431d6f98b386b.webp new file mode 100644 index 000000000..74e9f110b Binary files /dev/null and b/translated_images/km/spi.297431d6f98b386b.webp differ diff --git a/translated_images/km/sql-database.be160f12bfccefd3.webp b/translated_images/km/sql-database.be160f12bfccefd3.webp new file mode 100644 index 000000000..b48d09cec Binary files /dev/null and b/translated_images/km/sql-database.be160f12bfccefd3.webp differ diff --git a/translated_images/km/stock-7-cans-tomato-paste.f86059cc573d7bec.webp b/translated_images/km/stock-7-cans-tomato-paste.f86059cc573d7bec.webp new file mode 100644 index 000000000..8b6da11e2 Binary files /dev/null and b/translated_images/km/stock-7-cans-tomato-paste.f86059cc573d7bec.webp differ diff --git a/translated_images/km/stock-rogue-corn.be1f3ada8c457854.webp b/translated_images/km/stock-rogue-corn.be1f3ada8c457854.webp new file mode 100644 index 000000000..e35cdb9ba Binary files /dev/null and b/translated_images/km/stock-rogue-corn.be1f3ada8c457854.webp differ diff --git a/translated_images/km/strawberry-with-pump.b410fc72ac6aabad.webp b/translated_images/km/strawberry-with-pump.b410fc72ac6aabad.webp new file mode 100644 index 000000000..749a908d4 Binary files /dev/null and b/translated_images/km/strawberry-with-pump.b410fc72ac6aabad.webp differ diff --git a/translated_images/km/telemetry.21e5d8b97649d2eb.webp b/translated_images/km/telemetry.21e5d8b97649d2eb.webp new file mode 100644 index 000000000..250f80824 Binary files /dev/null and b/translated_images/km/telemetry.21e5d8b97649d2eb.webp differ diff --git a/translated_images/km/temperature-as-digital.85004491b977bae1.webp b/translated_images/km/temperature-as-digital.85004491b977bae1.webp new file mode 100644 index 000000000..a773dc39b Binary files /dev/null and b/translated_images/km/temperature-as-digital.85004491b977bae1.webp differ diff --git a/translated_images/km/time-of-flight-banana.079921ad8b1496e4.webp b/translated_images/km/time-of-flight-banana.079921ad8b1496e4.webp new file mode 100644 index 000000000..b2e7dc67d Binary files /dev/null and b/translated_images/km/time-of-flight-banana.079921ad8b1496e4.webp differ diff --git a/translated_images/km/traditional-vs-ml.5c20c169621fa539.webp b/translated_images/km/traditional-vs-ml.5c20c169621fa539.webp new file mode 100644 index 000000000..5d97b6193 Binary files /dev/null and b/translated_images/km/traditional-vs-ml.5c20c169621fa539.webp differ diff --git a/translated_images/km/translated-smart-timer.08ac20057fdc5c37.webp b/translated_images/km/translated-smart-timer.08ac20057fdc5c37.webp new file mode 100644 index 000000000..e94693905 Binary files /dev/null and b/translated_images/km/translated-smart-timer.08ac20057fdc5c37.webp differ diff --git a/translated_images/km/transpiration.b735aa34e4372e65.webp b/translated_images/km/transpiration.b735aa34e4372e65.webp new file mode 100644 index 000000000..6fce06f1b Binary files /dev/null and b/translated_images/km/transpiration.b735aa34e4372e65.webp differ diff --git a/translated_images/km/tts-overview.193843cf3f5ee09f.webp b/translated_images/km/tts-overview.193843cf3f5ee09f.webp new file mode 100644 index 000000000..4d833a259 Binary files /dev/null and b/translated_images/km/tts-overview.193843cf3f5ee09f.webp differ diff --git a/translated_images/km/uart.d0dbd3fb9e3728c6.webp b/translated_images/km/uart.d0dbd3fb9e3728c6.webp new file mode 100644 index 000000000..086394479 Binary files /dev/null and b/translated_images/km/uart.d0dbd3fb9e3728c6.webp differ diff --git a/translated_images/km/vscode-azure-functions-init-notification.bd19b49229963edb.webp b/translated_images/km/vscode-azure-functions-init-notification.bd19b49229963edb.webp new file mode 100644 index 000000000..f7d0a642b Binary files /dev/null and b/translated_images/km/vscode-azure-functions-init-notification.bd19b49229963edb.webp differ diff --git a/translated_images/km/vscode-kill-terminal.1cc4de7c6f25ee08.webp b/translated_images/km/vscode-kill-terminal.1cc4de7c6f25ee08.webp new file mode 100644 index 000000000..49acb87e1 Binary files /dev/null and b/translated_images/km/vscode-kill-terminal.1cc4de7c6f25ee08.webp differ diff --git a/translated_images/km/vscode-new-file-button.182702340fe6723c.webp b/translated_images/km/vscode-new-file-button.182702340fe6723c.webp new file mode 100644 index 000000000..03e37860e Binary files /dev/null and b/translated_images/km/vscode-new-file-button.182702340fe6723c.webp differ diff --git a/translated_images/km/vscode-new-terminal.77db8fc0f9cd3182.webp b/translated_images/km/vscode-new-terminal.77db8fc0f9cd3182.webp new file mode 100644 index 000000000..f1905b1ee Binary files /dev/null and b/translated_images/km/vscode-new-terminal.77db8fc0f9cd3182.webp differ diff --git a/translated_images/km/vscode-open-nightlight-remote.d3d2a4011e30d535.webp b/translated_images/km/vscode-open-nightlight-remote.d3d2a4011e30d535.webp new file mode 100644 index 000000000..79ebe2270 Binary files /dev/null and b/translated_images/km/vscode-open-nightlight-remote.d3d2a4011e30d535.webp differ diff --git a/translated_images/km/vscode-platformio-build-command-palette.7708e7ec7d75d7ee.webp b/translated_images/km/vscode-platformio-build-command-palette.7708e7ec7d75d7ee.webp new file mode 100644 index 000000000..00896babc Binary files /dev/null and b/translated_images/km/vscode-platformio-build-command-palette.7708e7ec7d75d7ee.webp differ diff --git a/translated_images/km/vscode-platformio-home-open.3f9a41bfd3f4da1c.webp b/translated_images/km/vscode-platformio-home-open.3f9a41bfd3f4da1c.webp new file mode 100644 index 000000000..fb27ccee1 Binary files /dev/null and b/translated_images/km/vscode-platformio-home-open.3f9a41bfd3f4da1c.webp differ diff --git a/translated_images/km/vscode-platformio-menu.297be26b9733e5c4.webp b/translated_images/km/vscode-platformio-menu.297be26b9733e5c4.webp new file mode 100644 index 000000000..a8a475a07 Binary files /dev/null and b/translated_images/km/vscode-platformio-menu.297be26b9733e5c4.webp differ diff --git a/translated_images/km/vscode-platformio-nightlight-project-wizard.5c64db4da6037420.webp b/translated_images/km/vscode-platformio-nightlight-project-wizard.5c64db4da6037420.webp new file mode 100644 index 000000000..aef198e8d Binary files /dev/null and b/translated_images/km/vscode-platformio-nightlight-project-wizard.5c64db4da6037420.webp differ diff --git a/translated_images/km/vscode-platformio-serial-monitor-command-palette.b348ec841b8a1c14.webp b/translated_images/km/vscode-platformio-serial-monitor-command-palette.b348ec841b8a1c14.webp new file mode 100644 index 000000000..a934938db Binary files /dev/null and b/translated_images/km/vscode-platformio-serial-monitor-command-palette.b348ec841b8a1c14.webp differ diff --git a/translated_images/km/vscode-platformio-upload-command-palette.9e0f49cf80d1f1c3.webp b/translated_images/km/vscode-platformio-upload-command-palette.9e0f49cf80d1f1c3.webp new file mode 100644 index 000000000..8cb30e7ac Binary files /dev/null and b/translated_images/km/vscode-platformio-upload-command-palette.9e0f49cf80d1f1c3.webp differ diff --git a/translated_images/km/vscode-platformio-welcome-new-button.ba6fc8a4c7b78cc8.webp b/translated_images/km/vscode-platformio-welcome-new-button.ba6fc8a4c7b78cc8.webp new file mode 100644 index 000000000..07c08f130 Binary files /dev/null and b/translated_images/km/vscode-platformio-welcome-new-button.ba6fc8a4c7b78cc8.webp differ diff --git a/translated_images/km/vscode-virtual-env.8ba42e04c3d533cf.webp b/translated_images/km/vscode-virtual-env.8ba42e04c3d533cf.webp new file mode 100644 index 000000000..3512f7825 Binary files /dev/null and b/translated_images/km/vscode-virtual-env.8ba42e04c3d533cf.webp differ diff --git a/translated_images/km/what-is-azure-video-thumbnail.20174db09e03bbb8.webp b/translated_images/km/what-is-azure-video-thumbnail.20174db09e03bbb8.webp new file mode 100644 index 000000000..c95aace62 Binary files /dev/null and b/translated_images/km/what-is-azure-video-thumbnail.20174db09e03bbb8.webp differ diff --git a/translated_images/km/wio-gps-sensor.19fd52b81ce58095.webp b/translated_images/km/wio-gps-sensor.19fd52b81ce58095.webp new file mode 100644 index 000000000..f36f7c631 Binary files /dev/null and b/translated_images/km/wio-gps-sensor.19fd52b81ce58095.webp differ diff --git a/translated_images/km/wio-hardware-kit.4c70c48b85e4283a.webp b/translated_images/km/wio-hardware-kit.4c70c48b85e4283a.webp new file mode 100644 index 000000000..711866c27 Binary files /dev/null and b/translated_images/km/wio-hardware-kit.4c70c48b85e4283a.webp differ diff --git a/translated_images/km/wio-led.265a1897e72d7f21.webp b/translated_images/km/wio-led.265a1897e72d7f21.webp new file mode 100644 index 000000000..a73c0a32d Binary files /dev/null and b/translated_images/km/wio-led.265a1897e72d7f21.webp differ diff --git a/translated_images/km/wio-light-sensor.b1f529f3c95f5165.webp b/translated_images/km/wio-light-sensor.b1f529f3c95f5165.webp new file mode 100644 index 000000000..d213c5936 Binary files /dev/null and b/translated_images/km/wio-light-sensor.b1f529f3c95f5165.webp differ diff --git a/translated_images/km/wio-mic.3f8c843dbe8ad917.webp b/translated_images/km/wio-mic.3f8c843dbe8ad917.webp new file mode 100644 index 000000000..56ece147e Binary files /dev/null and b/translated_images/km/wio-mic.3f8c843dbe8ad917.webp differ diff --git a/translated_images/km/wio-relay-and-soil-moisture-sensor.ed722202d42babe0.webp b/translated_images/km/wio-relay-and-soil-moisture-sensor.ed722202d42babe0.webp new file mode 100644 index 000000000..6fdc70114 Binary files /dev/null and b/translated_images/km/wio-relay-and-soil-moisture-sensor.ed722202d42babe0.webp differ diff --git a/translated_images/km/wio-respeaker-hat.bd54917d446e6f6f.webp b/translated_images/km/wio-respeaker-hat.bd54917d446e6f6f.webp new file mode 100644 index 000000000..e28fc51b7 Binary files /dev/null and b/translated_images/km/wio-respeaker-hat.bd54917d446e6f6f.webp differ diff --git a/translated_images/km/wio-respeaker-wiring-0.767f80aa65081038.webp b/translated_images/km/wio-respeaker-wiring-0.767f80aa65081038.webp new file mode 100644 index 000000000..268bc6042 Binary files /dev/null and b/translated_images/km/wio-respeaker-wiring-0.767f80aa65081038.webp differ diff --git a/translated_images/km/wio-respeaker-wiring-1.8d894727f2ba2400.webp b/translated_images/km/wio-respeaker-wiring-1.8d894727f2ba2400.webp new file mode 100644 index 000000000..e21cb4005 Binary files /dev/null and b/translated_images/km/wio-respeaker-wiring-1.8d894727f2ba2400.webp differ diff --git a/translated_images/km/wio-respeaker-wiring-2.329e1cbd306e754f.webp b/translated_images/km/wio-respeaker-wiring-2.329e1cbd306e754f.webp new file mode 100644 index 000000000..9593e0fa5 Binary files /dev/null and b/translated_images/km/wio-respeaker-wiring-2.329e1cbd306e754f.webp differ diff --git a/translated_images/km/wio-respeaker-wiring-3.75b0be447e2fa930.webp b/translated_images/km/wio-respeaker-wiring-3.75b0be447e2fa930.webp new file mode 100644 index 000000000..ddc9b062a Binary files /dev/null and b/translated_images/km/wio-respeaker-wiring-3.75b0be447e2fa930.webp differ diff --git a/translated_images/km/wio-respeaker-wiring-4.aa9cd434d8779437.webp b/translated_images/km/wio-respeaker-wiring-4.aa9cd434d8779437.webp new file mode 100644 index 000000000..c8b223f85 Binary files /dev/null and b/translated_images/km/wio-respeaker-wiring-4.aa9cd434d8779437.webp differ diff --git a/translated_images/km/wio-respeaker-wiring-5.af117c20acf622f3.webp b/translated_images/km/wio-respeaker-wiring-5.af117c20acf622f3.webp new file mode 100644 index 000000000..7687eb1dc Binary files /dev/null and b/translated_images/km/wio-respeaker-wiring-5.af117c20acf622f3.webp differ diff --git a/translated_images/km/wio-sd-card.acdcbe322fa4ee7f.webp b/translated_images/km/wio-sd-card.acdcbe322fa4ee7f.webp new file mode 100644 index 000000000..6691aef09 Binary files /dev/null and b/translated_images/km/wio-sd-card.acdcbe322fa4ee7f.webp differ diff --git a/translated_images/km/wio-soil-moisture-sensor.46919b61c3f6cb74.webp b/translated_images/km/wio-soil-moisture-sensor.46919b61c3f6cb74.webp new file mode 100644 index 000000000..a7f078a29 Binary files /dev/null and b/translated_images/km/wio-soil-moisture-sensor.46919b61c3f6cb74.webp differ diff --git a/translated_images/km/wio-temperature-sensor.2934928f38c7f79a.webp b/translated_images/km/wio-temperature-sensor.2934928f38c7f79a.webp new file mode 100644 index 000000000..64bd38365 Binary files /dev/null and b/translated_images/km/wio-temperature-sensor.2934928f38c7f79a.webp differ diff --git a/translated_images/km/wio-terminal-c-button.73df3cb1c1445ea0.webp b/translated_images/km/wio-terminal-c-button.73df3cb1c1445ea0.webp new file mode 100644 index 000000000..946a7ce5b Binary files /dev/null and b/translated_images/km/wio-terminal-c-button.73df3cb1c1445ea0.webp differ diff --git a/translated_images/km/wio-terminal-pin-sticker.b90b1535937b84bd.webp b/translated_images/km/wio-terminal-pin-sticker.b90b1535937b84bd.webp new file mode 100644 index 000000000..d2fd162c5 Binary files /dev/null and b/translated_images/km/wio-terminal-pin-sticker.b90b1535937b84bd.webp differ diff --git a/translated_images/km/wio-terminal.b8299ee16587db9a.webp b/translated_images/km/wio-terminal.b8299ee16587db9a.webp new file mode 100644 index 000000000..439d1e984 Binary files /dev/null and b/translated_images/km/wio-terminal.b8299ee16587db9a.webp differ diff --git a/translated_images/km/wio-time-of-flight-sensor.c4c182131d2ea73d.webp b/translated_images/km/wio-time-of-flight-sensor.c4c182131d2ea73d.webp new file mode 100644 index 000000000..7d0b1af71 Binary files /dev/null and b/translated_images/km/wio-time-of-flight-sensor.c4c182131d2ea73d.webp differ diff --git a/translations/ar/.co-op-translator.json b/translations/ar/.co-op-translator.json index 9be0769cb..fdee30cfa 100644 --- a/translations/ar/.co-op-translator.json +++ b/translations/ar/.co-op-translator.json @@ -738,8 +738,8 @@ "language_code": "ar" }, "README.md": { - "original_hash": "3fcc056cd3837e33d2bdf79f9c359fcf", - "translation_date": "2026-01-30T01:09:20+00:00", + "original_hash": "accf69391fa4450eadbf492ca024cccf", + "translation_date": "2026-04-06T16:43:39+00:00", "source_file": "README.md", "language_code": "ar" }, diff --git a/translations/ar/1-getting-started/lessons/1-introduction-to-iot/README.md b/translations/ar/1-getting-started/lessons/1-introduction-to-iot/README.md index de553b3fa..48b9898b6 100644 --- a/translations/ar/1-getting-started/lessons/1-introduction-to-iot/README.md +++ b/translations/ar/1-getting-started/lessons/1-introduction-to-iot/README.md @@ -1,6 +1,6 @@ # مقدمة إلى إنترنت الأشياء -![رسم تخطيطي للدرس](../../../../../translated_images/ar/lesson-1.2606670fa61ee904687da5d6fa4e726639d524d064c895117da1b95b9ff6251d.jpg) +![رسم تخطيطي للدرس](../../../../../translated_images/ar/lesson-1.2606670fa61ee904.webp) > رسم تخطيطي بواسطة [نيتيا ناراسيمهان](https://github.com/nitya). اضغط على الصورة للحصول على نسخة أكبر. diff --git a/translations/ar/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md b/translations/ar/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md index 9248f3c8a..85345ce30 100644 --- a/translations/ar/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md +++ b/translations/ar/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md @@ -203,7 +203,7 @@ سيبدأ التطبيق في التشغيل ويفتح في متصفح الويب الخاص بك: - ![The Counter Fit app running in a browser](../../../../../translated_images/ar/counterfit-first-run.433326358b669b31d0e99c3513cb01bfbb13724d162c99cdcc8f51ecf5f9c779.png) + ![The Counter Fit app running in a browser](../../../../../translated_images/ar/counterfit-first-run.433326358b669b31.webp) سيتم تصنيفه كـ *Disconnected*، مع إطفاء LED في الزاوية العلوية اليمنى. @@ -224,7 +224,7 @@ 1. في هذه الطرفية الجديدة، قم بتشغيل ملف `app.py` كما كان من قبل. ستتغير حالة CounterFit إلى **Connected** وسيضيء LED. - ![Counter Fit showing as connected](../../../../../translated_images/ar/counterfit-connected.ed30b46d8f79b0921f3fc70be10366e596a89dca3f80c2224a9d9fc98fccf884.png) + ![Counter Fit showing as connected](../../../../../translated_images/ar/counterfit-connected.ed30b46d8f79b092.webp) > 💁 يمكنك العثور على هذا الكود في مجلد [code/virtual-device](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/virtual-device). diff --git a/translations/ar/1-getting-started/lessons/2-deeper-dive/README.md b/translations/ar/1-getting-started/lessons/2-deeper-dive/README.md index 605d0a207..70f4e837f 100644 --- a/translations/ar/1-getting-started/lessons/2-deeper-dive/README.md +++ b/translations/ar/1-getting-started/lessons/2-deeper-dive/README.md @@ -1,6 +1,6 @@ # نظرة أعمق على إنترنت الأشياء -![رسم توضيحي لهذه الدرس](../../../../../translated_images/ar/lesson-2.324b0580d620c25e0a24fb7fddfc0b29a846dd4b82c08e7a9466d580ee78ce51.jpg) +![رسم توضيحي لهذه الدرس](../../../../../translated_images/ar/lesson-2.324b0580d620c25e.webp) > رسم توضيحي من [نيتيا ناراسيمهان](https://github.com/nitya). انقر على الصورة للحصول على نسخة أكبر. @@ -38,7 +38,7 @@ تتفاعل هذه الأجهزة مع العالم المادي إما باستخدام مستشعرات لجمع البيانات من البيئة المحيطة أو عن طريق التحكم في المخرجات أو المشغلات لإحداث تغييرات مادية. المثال النموذجي على ذلك هو منظم الحرارة الذكي - جهاز يحتوي على مستشعر درجة حرارة، ووسيلة لتحديد درجة الحرارة المطلوبة مثل قرص أو شاشة تعمل باللمس، واتصال بنظام تدفئة أو تبريد يمكن تشغيله عندما تكون درجة الحرارة المكتشفة خارج النطاق المطلوب. يكتشف مستشعر درجة الحرارة أن الغرفة باردة جدًا، ويقوم المشغل بتشغيل التدفئة. -![رسم بياني يظهر درجة الحرارة وقرصًا كمدخلات لجهاز إنترنت الأشياء، والتحكم في المدفأة كمخرج](../../../../../translated_images/ar/basic-thermostat.a923217fd1f37e5a6f3390396a65c22a387419ea2dd17e518ec24315ba6ae9a8.png) +![رسم بياني يظهر درجة الحرارة وقرصًا كمدخلات لجهاز إنترنت الأشياء، والتحكم في المدفأة كمخرج](../../../../../translated_images/ar/basic-thermostat.a923217fd1f37e5a.webp) هناك مجموعة كبيرة من الأجهزة التي يمكن أن تعمل كأجهزة إنترنت الأشياء، بدءًا من الأجهزة المخصصة التي تستشعر شيئًا واحدًا، إلى الأجهزة متعددة الأغراض، وحتى هاتفك الذكي! يمكن للهاتف الذكي استخدام المستشعرات لاكتشاف العالم من حوله، والمشغلات للتفاعل مع العالم - على سبيل المثال باستخدام مستشعر GPS لاكتشاف موقعك ومكبر صوت لإعطائك تعليمات التنقل إلى وجهة. @@ -54,7 +54,7 @@ في مثال منظم الحرارة الذكي، يتصل المنظم باستخدام WiFi المنزلي بخدمة سحابية تعمل في السحابة. يرسل بيانات درجة الحرارة إلى هذه الخدمة السحابية، ومن هناك يتم كتابتها إلى قاعدة بيانات من نوع ما مما يسمح لصاحب المنزل بالتحقق من درجات الحرارة الحالية والسابقة باستخدام تطبيق الهاتف. ستعرف خدمة أخرى في السحابة درجة الحرارة التي يريدها صاحب المنزل، وترسل رسائل مرة أخرى إلى جهاز إنترنت الأشياء عبر الخدمة السحابية لإخبار نظام التدفئة بالتشغيل أو الإيقاف. -![رسم بياني يظهر درجة الحرارة وقرصًا كمدخلات لجهاز إنترنت الأشياء، الجهاز مع اتصال ثنائي الاتجاه بالسحابة، والتي بدورها لديها اتصال ثنائي الاتجاه مع الهاتف، والتحكم في المدفأة كمخرج من جهاز إنترنت الأشياء](../../../../../translated_images/ar/mobile-controlled-thermostat.4a994010473d8d6a52ba68c67e5f02dc8928c717e93ca4b9bc55525aa75bbb60.png) +![رسم بياني يظهر درجة الحرارة وقرصًا كمدخلات لجهاز إنترنت الأشياء، الجهاز مع اتصال ثنائي الاتجاه بالسحابة، والتي بدورها لديها اتصال ثنائي الاتجاه مع الهاتف، والتحكم في المدفأة كمخرج من جهاز إنترنت الأشياء](../../../../../translated_images/ar/mobile-controlled-thermostat.4a994010473d8d6a.webp) يمكن أن يكون الإصدار الأكثر ذكاءً يستخدم الذكاء الاصطناعي في السحابة مع بيانات من مستشعرات أخرى متصلة بأجهزة إنترنت الأشياء الأخرى مثل مستشعرات الإشغال التي تكتشف الغرف المستخدمة، بالإضافة إلى بيانات مثل الطقس وحتى تقويمك، لاتخاذ قرارات حول كيفية ضبط درجة الحرارة بطريقة ذكية. على سبيل المثال، يمكنه إيقاف التدفئة إذا قرأ من تقويمك أنك في إجازة، أو إيقاف التدفئة على أساس كل غرفة على حدة بناءً على الغرف التي تستخدمها، متعلمًا من البيانات ليصبح أكثر دقة بمرور الوقت. @@ -94,7 +94,7 @@ > 💁 تنفذ وحدات المعالجة المركزية البرامج باستخدام [دورة الجلب-الترجمة-التنفيذ](https://wikipedia.org/wiki/Instruction_cycle). لكل نبضة ساعة، تقوم وحدة المعالجة المركزية بجلب التعليمات التالية من الذاكرة، وترجمتها، ثم تنفيذها مثل استخدام وحدة الحساب والمنطق (ALU) لإضافة رقمين. تستغرق بعض التعليمات عدة نبضات للتنفيذ، لذا ستعمل الدورة التالية عند النبضة التالية بعد اكتمال التعليمات. -![دورة الجلب-الترجمة-التنفيذ تظهر الجلب كتعليمات من البرنامج المخزن في ذاكرة الوصول العشوائي، ثم الترجمة والتنفيذ على وحدة المعالجة المركزية](../../../../../translated_images/ar/fetch-decode-execute.2fd6f150f6280392807f4475382319abd0cee0b90058e1735444d6baa6f2078c.png) +![دورة الجلب-الترجمة-التنفيذ تظهر الجلب كتعليمات من البرنامج المخزن في ذاكرة الوصول العشوائي، ثم الترجمة والتنفيذ على وحدة المعالجة المركزية](../../../../../translated_images/ar/fetch-decode-execute.2fd6f150f6280392.webp) تعمل المتحكمات الدقيقة بسرعات أقل بكثير من أجهزة الكمبيوتر المكتبية أو المحمولة، أو حتى معظم الهواتف الذكية. على سبيل المثال، يحتوي Wio Terminal على وحدة معالجة مركزية تعمل بسرعة 120 ميجاهرتز أو 120,000,000 دورة في الثانية. @@ -182,7 +182,7 @@ تكتب كود الإعداد الخاص بك في وظيفة `setup`، مثل الاتصال بشبكة WiFi وخدمات السحابة أو تهيئة الدبابيس للإدخال والإخراج. يحتوي كود الحلقة الخاص بك على كود المعالجة، مثل قراءة البيانات من مستشعر وإرسال القيمة إلى السحابة. عادةً ما تضيف تأخيرًا في كل حلقة، على سبيل المثال، إذا كنت تريد إرسال بيانات المستشعر كل 10 ثوانٍ فقط، تضيف تأخيرًا لمدة 10 ثوانٍ في نهاية الحلقة حتى يتمكن المتحكم الدقيق من النوم، مما يوفر الطاقة، ثم تشغيل الحلقة مرة أخرى عند الحاجة بعد 10 ثوانٍ. -![سكيتش أردوينو يقوم بتشغيل الإعداد أولاً، ثم تشغيل الحلقة بشكل متكرر](../../../../../translated_images/ar/arduino-sketch.79590cb837ff7a7c6a68d1afda6cab83fd53d3bb1bd9a8bf2eaf8d693a4d3ea6.png) +![سكيتش أردوينو يقوم بتشغيل الإعداد أولاً، ثم تشغيل الحلقة بشكل متكرر](../../../../../translated_images/ar/arduino-sketch.79590cb837ff7a7c.webp) ✅ تُعرف هذه البنية البرمجية باسم *حلقة الأحداث* أو *حلقة الرسائل*. تستخدم العديد من التطبيقات هذا النمط في الخلفية وهو المعيار لمعظم تطبيقات سطح المكتب التي تعمل على أنظمة تشغيل مثل Windows أو macOS أو Linux. تستمع وظيفة `loop` للرسائل من مكونات واجهة المستخدم مثل الأزرار، أو الأجهزة مثل لوحة المفاتيح، وتستجيب لها. يمكنك قراءة المزيد في [مقالة عن حلقة الأحداث](https://wikipedia.org/wiki/Event_loop). diff --git a/translations/ar/1-getting-started/lessons/3-sensors-and-actuators/README.md b/translations/ar/1-getting-started/lessons/3-sensors-and-actuators/README.md index 5eaaf28a0..e95c5ecb0 100644 --- a/translations/ar/1-getting-started/lessons/3-sensors-and-actuators/README.md +++ b/translations/ar/1-getting-started/lessons/3-sensors-and-actuators/README.md @@ -1,6 +1,6 @@ # التفاعل مع العالم المادي باستخدام المستشعرات والمحركات -![نظرة عامة على الدرس في شكل رسم تخطيطي](../../../../../translated_images/ar/lesson-3.cc3b7b4cd646de598698cce043c0393fd62ef42bac2eaf60e61272cd844250f4.jpg) +![نظرة عامة على الدرس في شكل رسم تخطيطي](../../../../../translated_images/ar/lesson-3.cc3b7b4cd646de59.webp) > رسم تخطيطي بواسطة [نيتيا ناراسيمهان](https://github.com/nitya). انقر على الصورة للحصول على نسخة أكبر. @@ -92,7 +92,7 @@ أبسط مستشعر رقمي هو زر أو مفتاح. هذا مستشعر بحالتين، تشغيل أو إيقاف. -![زر يتم إرسال 5 فولت إليه. عندما لا يتم الضغط عليه يعيد 0 فولت، وعندما يتم الضغط عليه يعيد 5 فولت](../../../../../translated_images/ar/button.eadb560b77ac45e56f523d9d8876e40444f63b419e33eb820082d461fa79490b.png) +![زر يتم إرسال 5 فولت إليه. عندما لا يتم الضغط عليه يعيد 0 فولت، وعندما يتم الضغط عليه يعيد 5 فولت](../../../../../translated_images/ar/button.eadb560b77ac45e5.webp) يمكن لدبابيس أجهزة إنترنت الأشياء مثل دبابيس GPIO قياس هذه الإشارة مباشرة كـ 0 أو 1. إذا كان الجهد المرسل هو نفسه الجهد المعاد، فإن القيمة المقروءة هي 1، وإلا فإن القيمة المقروءة هي 0. لا حاجة لتحويل الإشارة، يمكن أن تكون فقط 1 أو 0. @@ -125,7 +125,7 @@ اتبع الدليل المناسب أدناه لإضافة محرك إلى جهاز إنترنت الأشياء الخاص بك، يتم التحكم فيه بواسطة المستشعر، لبناء ضوء ليلي إنترنت الأشياء. سيقوم بجمع مستويات الضوء من مستشعر الضوء، واستخدام محرك في شكل LED لإصدار الضوء عندما يكون مستوى الضوء المكتشف منخفضًا جدًا. -![مخطط تدفق المهمة يظهر مستويات الضوء التي يتم قراءتها وفحصها، والتحكم في LED](../../../../../translated_images/ar/assignment-1-flow.7552a51acb1a5ec858dca6e855cdbb44206434006df8ba3799a25afcdab1665d.png) +![مخطط تدفق المهمة يظهر مستويات الضوء التي يتم قراءتها وفحصها، والتحكم في LED](../../../../../translated_images/ar/assignment-1-flow.7552a51acb1a5ec8.webp) * [Arduino - Wio Terminal](wio-terminal-actuator.md) * [كمبيوتر أحادي اللوحة - Raspberry Pi](pi-actuator.md) @@ -140,7 +140,7 @@ المحركات التناظرية تأخذ إشارة تناظرية وتحولها إلى نوع من التفاعل، حيث يتغير التفاعل بناءً على الجهد المقدم. أحد الأمثلة هو الضوء القابل للتعتيم، مثل تلك الموجودة في منزلك. كمية الجهد المقدم للضوء تحدد مدى سطوعه. -![ضوء خافت عند جهد منخفض وأكثر سطوعًا عند جهد أعلى](../../../../../translated_images/ar/dimmable-light.9ceffeb195dec1a849da718b2d71b32c35171ff7dfea9c07bbf82646a67acf6b.png) +![ضوء خافت عند جهد منخفض وأكثر سطوعًا عند جهد أعلى](../../../../../translated_images/ar/dimmable-light.9ceffeb195dec1a8.webp) كما هو الحال مع المستشعرات، تعمل أجهزة إنترنت الأشياء الفعلية بالإشارات الرقمية وليس التناظرية. هذا يعني أنه لإرسال إشارة تناظرية، يحتاج جهاز إنترنت الأشياء إلى محول رقمي إلى تناظري (DAC)، إما على جهاز إنترنت الأشياء مباشرةً أو على لوحة توصيل. يقوم هذا المحول بتحويل الإشارات الرقمية (0 و 1) من جهاز إنترنت الأشياء إلى جهد تناظري يمكن للمشغل استخدامه. @@ -187,7 +187,7 @@ أحد المشغلات الرقمية البسيطة هو LED. عندما يرسل الجهاز إشارة رقمية بقيمة 1، يتم إرسال جهد مرتفع يضيء LED. وعندما يتم إرسال إشارة رقمية بقيمة 0، ينخفض الجهد إلى 0 فولت وينطفئ LED. -![LED مطفأ عند 0 فولت ومضاء عند 5 فولت](../../../../../translated_images/ar/led.ec6d94f66676a174ad06d9fa9ea49c2ee89beb18b312d5c6476467c66375b07f.png) +![LED مطفأ عند 0 فولت ومضاء عند 5 فولت](../../../../../translated_images/ar/led.ec6d94f66676a174.webp) ✅ ما هي المشغلات الأخرى ذات الحالتين البسيطة التي يمكنك التفكير فيها؟ أحد الأمثلة هو الملف اللولبي، وهو مغناطيس كهربائي يمكن تنشيطه للقيام بأشياء مثل تحريك مزلاج الباب لقفل/فتح الباب. diff --git a/translations/ar/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md b/translations/ar/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md index e96363719..93d7a0ce7 100644 --- a/translations/ar/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md +++ b/translations/ar/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md @@ -26,7 +26,7 @@ Otherwise قم بتوصيل الـ LED. -![مصباح Grove LED](../../../../../translated_images/ar/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![مصباح Grove LED](../../../../../translated_images/ar/grove-led.6c853be93f473cf2.webp) 1. اختر مصباح LED المفضل لديك وأدخل الأرجل في الفتحتين الموجودتين على وحدة الـ LED. @@ -40,7 +40,7 @@ Otherwise 1. مع إيقاف تشغيل Raspberry Pi، قم بتوصيل الطرف الآخر من كابل Grove بالمقبس الرقمي المميز بعلامة **D5** على قبعة Grove Base المثبتة على Pi. هذا المقبس هو الثاني من اليسار، في صف المقابس بجانب دبابيس GPIO. -![مصباح Grove LED متصل بالمقبس D5](../../../../../translated_images/ar/pi-led.97f1d474981dc35d1c7996c7b17de355d3d0a6bc9606d79fa5f89df933415122.png) +![مصباح Grove LED متصل بالمقبس D5](../../../../../translated_images/ar/pi-led.97f1d474981dc35d.webp) ## برمجة المصباح الليلي diff --git a/translations/ar/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md b/translations/ar/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md index 2a8f9caa4..ad38befdc 100644 --- a/translations/ar/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md +++ b/translations/ar/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md @@ -16,13 +16,13 @@ قم بتوصيل مستشعر الضوء -![مستشعر الضوء من نوع Grove](../../../../../translated_images/ar/grove-light-sensor.b8127b7c434e632d6bcdb57587a14e9ef69a268a22df95d08628f62b8fa5505c.png) +![مستشعر الضوء من نوع Grove](../../../../../translated_images/ar/grove-light-sensor.b8127b7c434e632d.webp) 1. أدخل أحد طرفي كابل Grove في المقبس الموجود على وحدة مستشعر الضوء. يمكن إدخاله في اتجاه واحد فقط. 1. مع إيقاف تشغيل Raspberry Pi، قم بتوصيل الطرف الآخر من كابل Grove بالمقبس التناظري المسمى **A0** على قبعة قاعدة Grove المثبتة على Pi. هذا المقبس هو الثاني من اليمين، في صف المقابس بجانب دبابيس GPIO. -![مستشعر الضوء من نوع Grove متصل بالمقبس A0](../../../../../translated_images/ar/pi-light-sensor.66cc1e31fa48cd7d5f23400d4b2119aa41508275cb7c778053a7923b4e972d7e.png) +![مستشعر الضوء من نوع Grove متصل بالمقبس A0](../../../../../translated_images/ar/pi-light-sensor.66cc1e31fa48cd7d.webp) ## برمجة مستشعر الضوء diff --git a/translations/ar/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md b/translations/ar/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md index c012bbadd..26eac0d72 100644 --- a/translations/ar/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md +++ b/translations/ar/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md @@ -36,11 +36,11 @@ Otherwise 1. اختر زر **إضافة** لإنشاء مصباح LED على Pin 5. - ![إعدادات مصباح LED](../../../../../translated_images/ar/counterfit-create-led.ba9db1c9b8c622a635d6dfae5cdc4e70c2b250635bd4f0601c6cf0bd22b7ba46.png) + ![إعدادات مصباح LED](../../../../../translated_images/ar/counterfit-create-led.ba9db1c9b8c622a6.webp) سيتم إنشاء مصباح LED وسيظهر في قائمة المشغلات. - ![مصباح LED تم إنشاؤه](../../../../../translated_images/ar/counterfit-led.c0ab02de6d256ad84d9bad4d67a7faa709f0ea83e410cfe9b5561ef0cef30b1c.png) + ![مصباح LED تم إنشاؤه](../../../../../translated_images/ar/counterfit-led.c0ab02de6d256ad8.webp) بمجرد إنشاء مصباح LED، يمكنك تغيير اللون باستخدام منتقي *اللون*. اختر زر **تعيين** لتغيير اللون بعد تحديده. diff --git a/translations/ar/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md b/translations/ar/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md index b14f268a6..3351d2ad5 100644 --- a/translations/ar/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md +++ b/translations/ar/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md @@ -28,11 +28,11 @@ 1. اضغط على زر **إضافة** لإنشاء مستشعر الضوء على الدبوس 0. - ![إعدادات مستشعر الضوء](../../../../../translated_images/ar/counterfit-create-light-sensor.9f36a5e0d4458d8d554d54b34d2c806d56093d6e49fddcda2d20f6fef7f5cce1.png) + ![إعدادات مستشعر الضوء](../../../../../translated_images/ar/counterfit-create-light-sensor.9f36a5e0d4458d8d.webp) سيتم إنشاء مستشعر الضوء وسيظهر في قائمة المستشعرات. - ![تم إنشاء مستشعر الضوء](../../../../../translated_images/ar/counterfit-light-sensor.5d0f5584df56b90f6b2561910d9cb20dfbd73eeff2177c238d38f4de54aefae1.png) + ![تم إنشاء مستشعر الضوء](../../../../../translated_images/ar/counterfit-light-sensor.5d0f5584df56b90f.webp) ## برمجة مستشعر الضوء diff --git a/translations/ar/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md b/translations/ar/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md index b15e282aa..3d4a34fa9 100644 --- a/translations/ar/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md +++ b/translations/ar/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md @@ -26,7 +26,7 @@ Otherwise قم بتوصيل الـ LED. -![صورة لـ Grove LED](../../../../../translated_images/ar/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![صورة لـ Grove LED](../../../../../translated_images/ar/grove-led.6c853be93f473cf2.webp) 1. اختر الـ LED المفضل لديك وأدخل الأرجل في الثقبين الموجودين على وحدة الـ LED. diff --git a/translations/ar/1-getting-started/lessons/4-connect-internet/README.md b/translations/ar/1-getting-started/lessons/4-connect-internet/README.md index df8af2383..db88835f2 100644 --- a/translations/ar/1-getting-started/lessons/4-connect-internet/README.md +++ b/translations/ar/1-getting-started/lessons/4-connect-internet/README.md @@ -1,6 +1,6 @@ # قم بتوصيل جهازك بالإنترنت -![رسم توضيحي لهذا الدرس](../../../../../translated_images/ar/lesson-4.7344e074ea68fa545fd320b12dce36d72dd62d28c3b4596cb26cf315f434b98f.jpg) +![رسم توضيحي لهذا الدرس](../../../../../translated_images/ar/lesson-4.7344e074ea68fa54.webp) > رسم توضيحي بواسطة [نيتيا ناراسيمهان](https://github.com/nitya). اضغط على الصورة للحصول على نسخة أكبر. @@ -47,7 +47,7 @@ MQTT هو البروتوكول الأكثر شيوعًا لأجهزة إنترن يحتوي MQTT على وسيط واحد وعدة عملاء. يتصل جميع العملاء بالوسيط، ويقوم الوسيط بتوجيه الرسائل إلى العملاء المعنيين. يتم توجيه الرسائل باستخدام مواضيع مسماة، بدلاً من إرسالها مباشرة إلى عميل معين. يمكن للعميل النشر في موضوع معين، وأي عملاء يشتركون في هذا الموضوع سيتلقون الرسالة. -![جهاز إنترنت الأشياء ينشر القياسات عن بُعد في موضوع /telemetry، وخدمة السحابة تشترك في هذا الموضوع](../../../../../translated_images/ar/mqtt.cbf7f21d9adc3e17548b359444cc11bb4bf2010543e32ece9a47becf54438c23.png) +![جهاز إنترنت الأشياء ينشر القياسات عن بُعد في موضوع /telemetry، وخدمة السحابة تشترك في هذا الموضوع](../../../../../translated_images/ar/mqtt.cbf7f21d9adc3e17.webp) ✅ قم ببعض البحث. إذا كان لديك العديد من أجهزة إنترنت الأشياء، كيف يمكنك ضمان أن وسيط MQTT يمكنه التعامل مع جميع الرسائل؟ @@ -69,7 +69,7 @@ MQTT هو البروتوكول الأكثر شيوعًا لأجهزة إنترن > 💁 هذا الوسيط التجريبي عام وغير آمن. يمكن لأي شخص الاستماع إلى ما تنشره، لذا لا ينبغي استخدامه مع أي بيانات تحتاج إلى الحفاظ على خصوصيتها. -![مخطط تدفق المهمة يظهر مستويات الضوء التي يتم قراءتها وفحصها، والتحكم في LED](../../../../../translated_images/ar/assignment-1-internet-flow.3256feab5f052fd273bf4e331157c574c2c3fa42e479836fc9c3586f41db35a5.png) +![مخطط تدفق المهمة يظهر مستويات الضوء التي يتم قراءتها وفحصها، والتحكم في LED](../../../../../translated_images/ar/assignment-1-internet-flow.3256feab5f052fd2.webp) اتبع الخطوة المناسبة أدناه لتوصيل جهازك بوسيط MQTT: @@ -350,7 +350,7 @@ MQTT هو البروتوكول الأكثر شيوعًا لأجهزة إنترن يجب على مصممي أجهزة IoT أيضًا التفكير فيما إذا كان يمكن استخدام جهاز IoT أثناء انقطاع الإنترنت أو فقدان الإشارة بسبب الموقع. يجب أن يكون الثرموستات الذكي قادرًا على اتخاذ بعض القرارات المحدودة للتحكم في التدفئة إذا لم يتمكن من إرسال القياسات إلى السحابة بسبب انقطاع. -[![تعطل سيارة فيراري لأن شخصًا ما حاول تحديثها تحت الأرض حيث لا يوجد استقبال خلوي](../../../../../translated_images/ar/bricked-car.dc38f8efadc6c59d76211f981a521efb300939283dee468f79503aae3ec67615.png)](https://twitter.com/internetofshit/status/1315736960082808832) +[![تعطل سيارة فيراري لأن شخصًا ما حاول تحديثها تحت الأرض حيث لا يوجد استقبال خلوي](../../../../../translated_images/ar/bricked-car.dc38f8efadc6c59d.webp)](https://twitter.com/internetofshit/status/1315736960082808832) لـ MQTT للتعامل مع فقدان الاتصال، يجب أن يكون كود الجهاز والخادم مسؤولاً عن ضمان تسليم الرسائل إذا لزم الأمر، على سبيل المثال من خلال طلب أن يتم الرد على جميع الرسائل المرسلة برسائل إضافية على موضوع رد، وإذا لم يتم ذلك، يتم وضعها في قائمة انتظار يدويًا ليتم إعادة تشغيلها لاحقًا. @@ -358,7 +358,7 @@ MQTT هو البروتوكول الأكثر شيوعًا لأجهزة إنترن الأوامر هي رسائل يتم إرسالها من السحابة إلى الجهاز، تطلب منه القيام بشيء ما. في معظم الأحيان، يتضمن ذلك إعطاء نوع من الإخراج عبر مشغل، ولكن يمكن أن يكون تعليمات للجهاز نفسه، مثل إعادة التشغيل، أو جمع قياسات إضافية وإعادتها كاستجابة للأمر. -![ثرموستات متصل بالإنترنت يتلقى أمرًا لتشغيل التدفئة](../../../../../translated_images/ar/commands.d6c06bbbb3a02cce95f2831a1c331daf6dedd4e470c4aa2b0ae54f332016e504.png) +![ثرموستات متصل بالإنترنت يتلقى أمرًا لتشغيل التدفئة](../../../../../translated_images/ar/commands.d6c06bbbb3a02cce.webp) يمكن أن يتلقى الثرموستات أمرًا من السحابة لتشغيل التدفئة. بناءً على بيانات القياسات من جميع المستشعرات، إذا قررت خدمة السحابة أن التدفئة يجب أن تكون قيد التشغيل، فإنها ترسل الأمر المناسب. diff --git a/translations/ar/2-farm/lessons/1-predict-plant-growth/README.md b/translations/ar/2-farm/lessons/1-predict-plant-growth/README.md index 556fed751..f2fbc9aa7 100644 --- a/translations/ar/2-farm/lessons/1-predict-plant-growth/README.md +++ b/translations/ar/2-farm/lessons/1-predict-plant-growth/README.md @@ -1,6 +1,6 @@ # توقع نمو النباتات باستخدام إنترنت الأشياء -![نظرة عامة على الدرس](../../../../../translated_images/ar/lesson-5.42b234299279d263143148b88ab4583861a32ddb03110c6c1120e41bb88b2592.jpg) +![نظرة عامة على الدرس](../../../../../translated_images/ar/lesson-5.42b234299279d263.webp) > رسم توضيحي بواسطة [نيتيا ناراسيمهان](https://github.com/nitya). اضغط على الصورة للحصول على نسخة أكبر. @@ -90,7 +90,7 @@ الصيغة الكاملة لحساب GDD معقدة قليلاً، ولكن هناك معادلة مبسطة تُستخدم غالباً كتقريب جيد: -![GDD = T max + T min divided by 2, all minus T base](../../../../../translated_images/ar/gdd-calculation.79b3660f9c5757aa92dc2dd2cdde75344e2d2c1565c4b3151640f7887edc0275.png) +![GDD = T max + T min divided by 2, all minus T base](../../../../../translated_images/ar/gdd-calculation.79b3660f9c5757aa.webp) * **GDD** - هذا هو عدد أيام درجة النمو * **T max** - هذه هي درجة الحرارة اليومية القصوى بالدرجة المئوية @@ -118,7 +118,7 @@ هذا يعطي حساباً: -![GDD = 16 + 12 divided by 2, all minus 10, giving an answer of 4](../../../../../translated_images/ar/gdd-calculation-corn.64a58b7a7afcd0dfd46ff733996d939f17f4f3feac9f0d1c632be3523e51ebd9.png) +![GDD = 16 + 12 divided by 2, all minus 10, giving an answer of 4](../../../../../translated_images/ar/gdd-calculation-corn.64a58b7a7afcd0df.webp) حصلت الذرة على 4 GDD في ذلك اليوم. بافتراض نوع من الذرة يحتاج إلى 800 GDD للنضج، ستحتاج إلى 796 GDD إضافية للوصول إلى النضج. @@ -239,7 +239,7 @@ على سبيل المثال، إذا كانت أعلى درجة حرارة لليوم هي 25°C، وأدنى درجة حرارة هي 12°C: -![GDD = 25 + 12 مقسومة على 2، ثم طرح 10 من النتيجة ليصبح الناتج 8.5](../../../../../translated_images/ar/gdd-calculation-strawberries.59f57db94b22adb8ff6efb951ace33af104a1c6ccca3ffb0f8169c14cb160c90.png) +![GDD = 25 + 12 مقسومة على 2، ثم طرح 10 من النتيجة ليصبح الناتج 8.5](../../../../../translated_images/ar/gdd-calculation-strawberries.59f57db94b22adb8.webp) * 25 + 12 = 37 * 37 / 2 = 18.5 diff --git a/translations/ar/2-farm/lessons/1-predict-plant-growth/assignment.md b/translations/ar/2-farm/lessons/1-predict-plant-growth/assignment.md index c5229b307..69bedb16c 100644 --- a/translations/ar/2-farm/lessons/1-predict-plant-growth/assignment.md +++ b/translations/ar/2-farm/lessons/1-predict-plant-growth/assignment.md @@ -33,7 +33,7 @@ سيبدأ Jupyter ويقوم بفتح الدفتر في متصفحك. اعمل من خلال التعليمات الموجودة في الدفتر لتصور درجات الحرارة التي تم قياسها، وحساب أيام درجة النمو. - ![دفتر Jupyter](../../../../../translated_images/ar/gdd-jupyter-notebook.c5b52cf21094f158a61f47f455490fd95f1729777ff90861a4521820bf354cdc.png) + ![دفتر Jupyter](../../../../../translated_images/ar/gdd-jupyter-notebook.c5b52cf21094f158.webp) ## التقييم diff --git a/translations/ar/2-farm/lessons/1-predict-plant-growth/pi-temp.md b/translations/ar/2-farm/lessons/1-predict-plant-growth/pi-temp.md index 3f6dd6859..3c3301929 100644 --- a/translations/ar/2-farm/lessons/1-predict-plant-growth/pi-temp.md +++ b/translations/ar/2-farm/lessons/1-predict-plant-growth/pi-temp.md @@ -16,13 +16,13 @@ قم بتوصيل مستشعر درجة الحرارة -![مستشعر درجة الحرارة من نوع Grove](../../../../../translated_images/ar/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![مستشعر درجة الحرارة من نوع Grove](../../../../../translated_images/ar/grove-dht11.07f8eafceee17004.webp) 1. أدخل أحد طرفي كابل Grove في المقبس الموجود على مستشعر الرطوبة ودرجة الحرارة. يمكن إدخاله في اتجاه واحد فقط. 1. مع إيقاف تشغيل Raspberry Pi، قم بتوصيل الطرف الآخر من كابل Grove بالمقبس الرقمي المسمى **D5** على قبعة Grove Base المثبتة على Raspberry Pi. هذا المقبس هو الثاني من اليسار في صف المقابس بجانب دبابيس GPIO. -![مستشعر درجة الحرارة من نوع Grove متصل بالمقبس A0](../../../../../translated_images/ar/pi-temperature-sensor.3ff82fff672c8e565ef25a39d26d111de006b825a7e0867227ef4e7fbff8553c.png) +![مستشعر درجة الحرارة من نوع Grove متصل بالمقبس A0](../../../../../translated_images/ar/pi-temperature-sensor.3ff82fff672c8e56.webp) ## برمجة مستشعر درجة الحرارة diff --git a/translations/ar/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md b/translations/ar/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md index 26b273023..2a2d23e04 100644 --- a/translations/ar/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md +++ b/translations/ar/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md @@ -38,11 +38,11 @@ 1. انقر على زر **إضافة** لإنشاء مستشعر الرطوبة على الدبوس 5. - ![إعدادات مستشعر الرطوبة](../../../../../translated_images/ar/counterfit-create-humidity-sensor.2750e27b6f30e09cf4e22101defd5252710717620816ab41ba688f91f757c49a.png) + ![إعدادات مستشعر الرطوبة](../../../../../translated_images/ar/counterfit-create-humidity-sensor.2750e27b6f30e09c.webp) سيتم إنشاء مستشعر الرطوبة وسيظهر في قائمة المستشعرات. - ![تم إنشاء مستشعر الرطوبة](../../../../../translated_images/ar/counterfit-humidity-sensor.7b12f7f339e430cb26c8211d2dba4ef75261b353a01da0932698b5bebd693f27.png) + ![تم إنشاء مستشعر الرطوبة](../../../../../translated_images/ar/counterfit-humidity-sensor.7b12f7f339e430cb.webp) 1. قم بإنشاء مستشعر درجة حرارة: @@ -54,11 +54,11 @@ 1. انقر على زر **إضافة** لإنشاء مستشعر درجة الحرارة على الدبوس 6. - ![إعدادات مستشعر درجة الحرارة](../../../../../translated_images/ar/counterfit-create-temperature-sensor.199350ed34f7343d79dccbe95eaf6c11d2121f03d1c35ab9613b330c23f39b29.png) + ![إعدادات مستشعر درجة الحرارة](../../../../../translated_images/ar/counterfit-create-temperature-sensor.199350ed34f7343d.webp) سيتم إنشاء مستشعر درجة الحرارة وسيظهر في قائمة المستشعرات. - ![تم إنشاء مستشعر درجة الحرارة](../../../../../translated_images/ar/counterfit-temperature-sensor.f0560236c96a9016bafce7f6f792476fe3367bc6941a1f7d5811d144d4bcbfff.png) + ![تم إنشاء مستشعر درجة الحرارة](../../../../../translated_images/ar/counterfit-temperature-sensor.f0560236c96a9016.webp) ## برمجة تطبيق مستشعر درجة الحرارة diff --git a/translations/ar/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md b/translations/ar/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md index 46551dd6f..483a1c10c 100644 --- a/translations/ar/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md +++ b/translations/ar/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md @@ -18,7 +18,7 @@ قم بتوصيل مستشعر درجة الحرارة. -![مستشعر درجة الحرارة Grove](../../../../../translated_images/ar/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![مستشعر درجة الحرارة Grove](../../../../../translated_images/ar/grove-dht11.07f8eafceee17004.webp) 1. أدخل أحد طرفي كابل Grove في المقبس الموجود على مستشعر الرطوبة ودرجة الحرارة. لن يدخل إلا في اتجاه واحد. diff --git a/translations/ar/2-farm/lessons/2-detect-soil-moisture/README.md b/translations/ar/2-farm/lessons/2-detect-soil-moisture/README.md index 21f798110..e98c38481 100644 --- a/translations/ar/2-farm/lessons/2-detect-soil-moisture/README.md +++ b/translations/ar/2-farm/lessons/2-detect-soil-moisture/README.md @@ -13,7 +13,7 @@ I²C يحتوي على ناقل يتكون من سلكين رئيسيين، با | VCC | جامع الجهد المشترك | مصدر الطاقة للأجهزة. يتم توصيله بأسلاك SDA وSCL لتوفير طاقتها عبر مقاوم رفع يقوم بإيقاف الإشارة عندما لا يكون هناك جهاز يعمل كمتحكم. | | GND | الأرض | يوفر أرضية مشتركة للدائرة الكهربائية. | -![ناقل I2C مع 3 أجهزة متصلة بأسلاك SDA وSCL، تشترك في سلك أرضي مشترك](../../../../../translated_images/ar/i2c.83da845dde02256bdd462dbe0d5145461416b74930571b89d1ae142841eeb584.png) +![ناقل I2C مع 3 أجهزة متصلة بأسلاك SDA وSCL، تشترك في سلك أرضي مشترك](../../../../../translated_images/ar/i2c.83da845dde02256b.webp) لإرسال البيانات، يقوم أحد الأجهزة بإصدار شرط البدء للإشارة إلى أنه جاهز لإرسال البيانات. بعد ذلك يصبح الجهاز متحكمًا. يقوم المتحكم بإرسال عنوان الجهاز الذي يريد التواصل معه، بالإضافة إلى ما إذا كان يريد قراءة أو كتابة البيانات. بعد نقل البيانات، يقوم المتحكم بإرسال شرط التوقف للإشارة إلى أنه انتهى. بعد ذلك يمكن لجهاز آخر أن يصبح المتحكم ويرسل أو يستقبل البيانات. diff --git a/translations/ar/2-farm/lessons/2-detect-soil-moisture/assignment.md b/translations/ar/2-farm/lessons/2-detect-soil-moisture/assignment.md index 2e8b80485..1e428b294 100644 --- a/translations/ar/2-farm/lessons/2-detect-soil-moisture/assignment.md +++ b/translations/ar/2-farm/lessons/2-detect-soil-moisture/assignment.md @@ -20,7 +20,7 @@ يتم حساب رطوبة التربة الجاذبية كالتالي: -![نسبة رطوبة التربة هي وزن التربة الرطبة ناقص وزن التربة الجافة، مقسومًا على وزن التربة الجافة، مضروبًا في 100](../../../../../translated_images/ar/gsm-calculation.6da38c6201eec14e7573bb2647aa18892883193553d23c9d77e5dc681522dfb2.png) +![نسبة رطوبة التربة هي وزن التربة الرطبة ناقص وزن التربة الجافة، مقسومًا على وزن التربة الجافة، مضروبًا في 100](../../../../../translated_images/ar/gsm-calculation.6da38c6201eec14e.webp) * W - وزن التربة الرطبة @@ -29,7 +29,7 @@ على سبيل المثال، لديك عينة تربة وزنها 212 جرام وهي رطبة، و197 جرام وهي جافة. -![الحساب مكتمل](../../../../../translated_images/ar/gsm-calculation-example.99f9803b4f29e97668e7c15412136c0c399ab12dbba0b89596fdae9d8aedb6fb.png) +![الحساب مكتمل](../../../../../translated_images/ar/gsm-calculation-example.99f9803b4f29e976.webp) * W = 212g * W = 197g diff --git a/translations/ar/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md b/translations/ar/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md index a0621d2a7..30481887c 100644 --- a/translations/ar/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md +++ b/translations/ar/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md @@ -18,13 +18,13 @@ قم بتوصيل مستشعر رطوبة التربة. -![مستشعر رطوبة التربة من نوع Grove](../../../../../translated_images/ar/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![مستشعر رطوبة التربة من نوع Grove](../../../../../translated_images/ar/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. أدخل أحد طرفي كابل Grove في المقبس الموجود على مستشعر رطوبة التربة. لن يدخل إلا في اتجاه واحد. 1. مع إيقاف تشغيل Raspberry Pi، قم بتوصيل الطرف الآخر من كابل Grove بالمقبس التناظري المسمى **A0** على قبعة Grove Base المثبتة على Raspberry Pi. هذا المقبس هو الثاني من اليمين، في صف المقابس بجانب دبابيس GPIO. -![مستشعر رطوبة التربة متصل بالمقبس A0](../../../../../translated_images/ar/pi-soil-moisture-sensor.fdd7eb2393792cf6739cacf1985d9f55beda16d372f30d0b5a51d586f978a870.png) +![مستشعر رطوبة التربة متصل بالمقبس A0](../../../../../translated_images/ar/pi-soil-moisture-sensor.fdd7eb2393792cf6.webp) 1. أدخل مستشعر رطوبة التربة في التربة. يحتوي المستشعر على "خط أعلى موضع" - وهو خط أبيض عبر المستشعر. أدخل المستشعر حتى هذا الخط ولكن لا تتجاوزه. diff --git a/translations/ar/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md b/translations/ar/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md index f1816953e..642543456 100644 --- a/translations/ar/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md +++ b/translations/ar/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md @@ -34,11 +34,11 @@ 1. اختر زر **إضافة** لإنشاء مستشعر *رطوبة التربة* على الدبوس 0. - ![إعدادات مستشعر رطوبة التربة](../../../../../translated_images/ar/counterfit-create-soil-moisture-sensor.35266135a5e0ae68b29a684d7db0d2933a8098b2307d197f7c71577b724603aa.png) + ![إعدادات مستشعر رطوبة التربة](../../../../../translated_images/ar/counterfit-create-soil-moisture-sensor.35266135a5e0ae68.webp) سيتم إنشاء مستشعر رطوبة التربة وسيظهر في قائمة المستشعرات. - ![تم إنشاء مستشعر رطوبة التربة](../../../../../translated_images/ar/counterfit-soil-moisture-sensor.81742b2de0e9de60a3b3b9a2ff8ecc686d428eb6d71820f27a693be26e5aceee.png) + ![تم إنشاء مستشعر رطوبة التربة](../../../../../translated_images/ar/counterfit-soil-moisture-sensor.81742b2de0e9de60.webp) ## برمجة تطبيق مستشعر رطوبة التربة diff --git a/translations/ar/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md b/translations/ar/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md index fdc19633b..6ac90d952 100644 --- a/translations/ar/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md +++ b/translations/ar/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md @@ -18,7 +18,7 @@ قم بتوصيل مستشعر رطوبة التربة. -![مستشعر رطوبة التربة Grove](../../../../../translated_images/ar/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![مستشعر رطوبة التربة Grove](../../../../../translated_images/ar/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. أدخل أحد طرفي كابل Grove في المقبس الموجود على مستشعر رطوبة التربة. يمكن إدخاله في اتجاه واحد فقط. diff --git a/translations/ar/2-farm/lessons/3-automated-plant-watering/README.md b/translations/ar/2-farm/lessons/3-automated-plant-watering/README.md index 0716e0079..94db5ea72 100644 --- a/translations/ar/2-farm/lessons/3-automated-plant-watering/README.md +++ b/translations/ar/2-farm/lessons/3-automated-plant-watering/README.md @@ -1,6 +1,6 @@ # الريّ الآلي للنباتات -![نظرة عامة على هذا الدرس](../../../../../translated_images/ar/lesson-7.30b5f577d3cb8e031238751475cb519c7d6dbaea261b5df4643d086ffb2a03bb.jpg) +![نظرة عامة على هذا الدرس](../../../../../translated_images/ar/lesson-7.30b5f577d3cb8e03.webp) > رسم توضيحي بواسطة [نيتيا ناراسيمهان](https://github.com/nitya). اضغط على الصورة للحصول على نسخة أكبر. @@ -32,7 +32,7 @@ الحل هو توصيل المضخة بمصدر طاقة خارجي واستخدام مشغل لتشغيل المضخة، مشابه لكيفية تشغيل الضوء باستخدام مفتاح. يتطلب الأمر كمية صغيرة جدًا من الطاقة (على شكل طاقة في جسمك) لتحريك إصبعك لتشغيل المفتاح، وهذا يربط الضوء بالكهرباء الرئيسية التي تعمل بجهد 110 فولت/240 فولت. -![مفتاح الضوء يشغل الطاقة للضوء](../../../../../translated_images/ar/light-switch.760317ad6ab8bd6d611da5352dfe9c73a94a0822ccec7df3c8bae35da18e1658.png) +![مفتاح الضوء يشغل الطاقة للضوء](../../../../../translated_images/ar/light-switch.760317ad6ab8bd6d.webp) > 🎓 [الكهرباء الرئيسية](https://wikipedia.org/wiki/Mains_electricity) تشير إلى الكهرباء التي يتم توصيلها إلى المنازل والأعمال عبر البنية التحتية الوطنية في العديد من أنحاء العالم. @@ -72,7 +72,7 @@ لا يحتاج المغناطيس الكهربائي إلى الكثير من الطاقة للتفعيل وسحب الذراع، يمكن التحكم فيه باستخدام خرج 3.3 فولت أو 5 فولت من مجموعة تطوير إنترنت الأشياء. يمكن لدائرة الإخراج أن تحمل طاقة أكبر بكثير، اعتمادًا على الريليه، بما في ذلك الجهد الرئيسي أو حتى مستويات طاقة أعلى للاستخدام الصناعي. بهذه الطريقة يمكن لمجموعة تطوير إنترنت الأشياء التحكم في نظام الريّ، من مضخة صغيرة لنبات واحد، وصولًا إلى نظام صناعي ضخم لمزرعة تجارية كاملة. -![ريليه Grove مع دائرة التحكم، دائرة الإخراج والريليه موضحة](../../../../../translated_images/ar/grove-relay-labelled.293e068f5c3c2a199bd7892f2661fdc9e10c920b535cfed317fbd6d1d4ae1168.png) +![ريليه Grove مع دائرة التحكم، دائرة الإخراج والريليه موضحة](../../../../../translated_images/ar/grove-relay-labelled.293e068f5c3c2a19.webp) الصورة أعلاه تظهر ريليه Grove. دائرة التحكم تتصل بجهاز إنترنت الأشياء وتقوم بتشغيل الريليه أو إيقافه باستخدام 3.3 فولت أو 5 فولت. دائرة الإخراج تحتوي على طرفين، يمكن لأي منهما أن يكون الطاقة أو الأرض. دائرة الإخراج يمكنها التعامل مع ما يصل إلى 250 فولت عند 10 أمبير، وهو ما يكفي لمجموعة من الأجهزة التي تعمل بالطاقة الرئيسية. يمكنك الحصول على ريليه يمكنه التعامل مع مستويات طاقة أعلى. diff --git a/translations/ar/2-farm/lessons/3-automated-plant-watering/pi-relay.md b/translations/ar/2-farm/lessons/3-automated-plant-watering/pi-relay.md index ea36bbc08..c58b18ab8 100644 --- a/translations/ar/2-farm/lessons/3-automated-plant-watering/pi-relay.md +++ b/translations/ar/2-farm/lessons/3-automated-plant-watering/pi-relay.md @@ -18,13 +18,13 @@ قم بتوصيل الريليه. -![ريليه Grove](../../../../../translated_images/ar/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) +![ريليه Grove](../../../../../translated_images/ar/grove-relay.d426958ca210fbd0.webp) 1. أدخل أحد طرفي كابل Grove في المقبس الموجود على الريليه. لن يدخل إلا بطريقة واحدة. 1. مع إيقاف تشغيل Raspberry Pi، قم بتوصيل الطرف الآخر من كابل Grove بالمقبس الرقمي المسمى **D5** على قبعة Grove Base المثبتة على Pi. هذا المقبس هو الثاني من اليسار، في صف المقابس بجانب دبابيس GPIO. اترك مستشعر رطوبة التربة متصلاً بالمقبس **A0**. -![ريليه Grove متصل بمقبس D5 ومستشعر رطوبة التربة متصل بمقبس A0](../../../../../translated_images/ar/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e69ec716cd2719ce117700bd1fc933eaf93476c103c57939b.png) +![ريليه Grove متصل بمقبس D5 ومستشعر رطوبة التربة متصل بمقبس A0](../../../../../translated_images/ar/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e.webp) 1. أدخل مستشعر رطوبة التربة في التربة، إذا لم يكن بالفعل من الدرس السابق. diff --git a/translations/ar/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md b/translations/ar/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md index e96aef3f7..78feef432 100644 --- a/translations/ar/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md +++ b/translations/ar/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md @@ -28,11 +28,11 @@ 1. اضغط على زر **Add** لإنشاء المرحل على Pin 5. - ![إعدادات المرحل](../../../../../translated_images/ar/counterfit-create-relay.fa7c40fd0f2f6afc33b35ea94fcb235085be4861e14e3fe6b9b7bcfc82d1c888.png) + ![إعدادات المرحل](../../../../../translated_images/ar/counterfit-create-relay.fa7c40fd0f2f6afc.webp) سيتم إنشاء المرحل وسيظهر في قائمة المشغلات. - ![المرحل الذي تم إنشاؤه](../../../../../translated_images/ar/counterfit-relay.bbf74c1dbdc8b9acd983367fcbd06703a402aefef6af54ddb28e11307ba8a12c.png) + ![المرحل الذي تم إنشاؤه](../../../../../translated_images/ar/counterfit-relay.bbf74c1dbdc8b9ac.webp) ## برمجة المرحل diff --git a/translations/ar/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md b/translations/ar/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md index 4d1e52496..a78e33c2e 100644 --- a/translations/ar/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md +++ b/translations/ar/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md @@ -18,7 +18,7 @@ قم بتوصيل المرحل. -![مرحل Grove](../../../../../translated_images/ar/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) +![مرحل Grove](../../../../../translated_images/ar/grove-relay.d426958ca210fbd0.webp) 1. أدخل أحد طرفي كابل Grove في المقبس الموجود على المرحل. لن يدخل إلا بطريقة واحدة. diff --git a/translations/ar/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md b/translations/ar/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md index 70b3abd68..124cadbfb 100644 --- a/translations/ar/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md +++ b/translations/ar/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md @@ -1,6 +1,6 @@ # انقل نباتك إلى السحابة -![رسم توضيحي لهذه الدرس](../../../../../translated_images/ar/lesson-8.3f21f3c11159e6a0a376351973ea5724d5de68fa23b4288853a174bed9ac48c3.jpg) +![رسم توضيحي لهذه الدرس](../../../../../translated_images/ar/lesson-8.3f21f3c11159e6a0.webp) > رسم توضيحي بواسطة [نيتيا ناراسيمهان](https://github.com/nitya). انقر على الصورة للحصول على نسخة أكبر. @@ -46,8 +46,8 @@ غالبًا ما يُشار إلى السحابة مازحًا بأنها "حاسوب شخص آخر". كانت الفكرة الأولية بسيطة - بدلاً من شراء الحواسيب، يمكنك استئجار حاسوب شخص آخر. يقوم مزود خدمات السحابة بإدارة مراكز بيانات ضخمة. يكونون مسؤولين عن شراء وتثبيت الأجهزة، وإدارة الطاقة والتبريد، والشبكات، وأمان المباني، وتحديثات الأجهزة والبرمجيات، وكل شيء. كعميل، يمكنك استئجار الحواسيب التي تحتاجها، واستئجار المزيد عند زيادة الطلب، ثم تقليل العدد عند انخفاض الطلب. تنتشر مراكز البيانات السحابية هذه في جميع أنحاء العالم. -![مركز بيانات سحابي من مايكروسوفت](../../../../../translated_images/ar/azure-region-existing.73f704604f2aa6cb9b5a49ed40e93d4fd81ae3f4e6af4a8ca504023902832f56.png) -![توسعة مخططة لمركز بيانات سحابي من مايكروسوفت](../../../../../translated_images/ar/azure-region-planned-expansion.a5074a1e8af74f156a73552d502429e5b126ea5019274d767ecb4b9afdad442b.png) +![مركز بيانات سحابي من مايكروسوفت](../../../../../translated_images/ar/azure-region-existing.73f704604f2aa6cb.webp) +![توسعة مخططة لمركز بيانات سحابي من مايكروسوفت](../../../../../translated_images/ar/azure-region-planned-expansion.a5074a1e8af74f15.webp) يمكن أن تكون هذه المراكز بمساحة عدة كيلومترات مربعة. الصور أعلاه تم التقاطها قبل بضع سنوات في مركز بيانات سحابي من مايكروسوفت، وتُظهر الحجم الأولي، إلى جانب توسعة مخططة. المنطقة المخصصة للتوسعة تزيد عن 5 كيلومترات مربعة. @@ -108,11 +108,11 @@ Azure هي السحابة المخصصة للمطورين من مايكروسو تتصل أجهزة إنترنت الأشياء بخدمة سحابية إما باستخدام SDK خاص بالجهاز (مكتبة توفر كودًا للعمل مع ميزات الخدمة)، أو مباشرة عبر بروتوكول اتصال مثل MQTT أو HTTP. عادةً ما يكون استخدام SDK هو الطريق الأسهل لأنه يتولى كل شيء نيابة عنك، مثل معرفة المواضيع التي يجب النشر أو الاشتراك فيها، وكيفية التعامل مع الأمان. -![الأجهزة تتصل بالخدمة باستخدام SDK خاص بالجهاز. الكود الخادم يتصل أيضًا بالخدمة عبر SDK](../../../../../translated_images/ar/iot-service-connectivity.7e873847921a5d6fd60d0ba3a943210194518cee0d4e362476624316443275c3.png) +![الأجهزة تتصل بالخدمة باستخدام SDK خاص بالجهاز. الكود الخادم يتصل أيضًا بالخدمة عبر SDK](../../../../../translated_images/ar/iot-service-connectivity.7e873847921a5d6f.webp) يتواصل جهازك بعد ذلك مع أجزاء أخرى من تطبيقك عبر هذه الخدمة - مشابهة للطريقة التي أرسلت بها البيانات واستقبلت الأوامر عبر MQTT. يتم ذلك عادةً باستخدام SDK خاص بالخدمة أو مكتبة مشابهة. تصل الرسائل من جهازك إلى الخدمة حيث يمكن لأجزاء أخرى من تطبيقك قراءتها، ويمكن إرسال الرسائل مرة أخرى إلى جهازك. -![الأجهزة التي لا تمتلك مفتاحًا سريًا صالحًا لا يمكنها الاتصال بخدمة إنترنت الأشياء](../../../../../translated_images/ar/iot-service-allowed-denied-connection.818b0063ac213fb84204a7229303764d9b467ca430fb822b4ac2fca267d56726.png) +![الأجهزة التي لا تمتلك مفتاحًا سريًا صالحًا لا يمكنها الاتصال بخدمة إنترنت الأشياء](../../../../../translated_images/ar/iot-service-allowed-denied-connection.818b0063ac213fb8.webp) تقوم هذه الخدمات بتنفيذ الأمان من خلال معرفة جميع الأجهزة التي يمكنها الاتصال وإرسال البيانات، إما عن طريق تسجيل الأجهزة مسبقًا مع الخدمة، أو من خلال إعطاء الأجهزة مفاتيح سرية أو شهادات يمكنها استخدامها لتسجيل نفسها مع الخدمة عند الاتصال لأول مرة. الأجهزة غير المعروفة لا يمكنها الاتصال، وإذا حاولت، ترفض الخدمة الاتصال وتتجاهل الرسائل المرسلة منها. @@ -124,7 +124,7 @@ Azure هي السحابة المخصصة للمطورين من مايكروسو الآن بعد أن أصبح لديك اشتراك في Azure، يمكنك التسجيل للحصول على خدمة إنترنت الأشياء. خدمة إنترنت الأشياء من Microsoft تُسمى Azure IoT Hub. -![شعار Azure IoT Hub](../../../../../translated_images/ar/azure-iot-hub-logo.28a19de76d0a1932464d858f7558712bcdace3e5ec69c434d482ed7ce41c3a26.png) +![شعار Azure IoT Hub](../../../../../translated_images/ar/azure-iot-hub-logo.28a19de76d0a1932.webp) الفيديو أدناه يقدم نظرة عامة قصيرة عن Azure IoT Hub: diff --git a/translations/ar/2-farm/lessons/5-migrate-application-to-the-cloud/README.md b/translations/ar/2-farm/lessons/5-migrate-application-to-the-cloud/README.md index c7bf751c0..66800390f 100644 --- a/translations/ar/2-farm/lessons/5-migrate-application-to-the-cloud/README.md +++ b/translations/ar/2-farm/lessons/5-migrate-application-to-the-cloud/README.md @@ -1,6 +1,6 @@ # نقل منطق تطبيقك إلى السحابة -![رسم توضيحي لهذه الدرس](../../../../../translated_images/ar/lesson-9.dfe99c8e891f48e179724520da9f5794392cf9a625079281ccdcbf09bd85e1b6.jpg) +![رسم توضيحي لهذه الدرس](../../../../../translated_images/ar/lesson-9.dfe99c8e891f48e1.webp) > رسم توضيحي من [نيتيا ناراسيمهان](https://github.com/nitya). انقر على الصورة لعرض نسخة أكبر. @@ -28,7 +28,7 @@ الوظائف بدون خادم، أو الحوسبة بدون خادم، تتضمن إنشاء كتل صغيرة من الكود يتم تشغيلها في السحابة استجابة لأنواع مختلفة من الأحداث. عندما يحدث الحدث، يتم تشغيل الكود الخاص بك ويتم تمرير بيانات حول الحدث إليه. يمكن أن تأتي هذه الأحداث من أشياء متعددة، بما في ذلك طلبات الويب، الرسائل الموضوعة في قائمة انتظار، تغييرات البيانات في قاعدة بيانات، أو الرسائل المرسلة إلى خدمة إنترنت الأشياء من أجهزة إنترنت الأشياء. -![الأحداث المرسلة من خدمة إنترنت الأشياء إلى خدمة بدون خادم، تتم معالجتها جميعًا في نفس الوقت بواسطة وظائف متعددة](../../../../../translated_images/ar/iot-messages-to-serverless.0194da1cc0732bb7d0f823aed3fce54735c6b1ad3bf36089804d8aaefc0a774f.png) +![الأحداث المرسلة من خدمة إنترنت الأشياء إلى خدمة بدون خادم، تتم معالجتها جميعًا في نفس الوقت بواسطة وظائف متعددة](../../../../../translated_images/ar/iot-messages-to-serverless.0194da1cc0732bb7.webp) > 💁 إذا كنت قد استخدمت مشغلات قواعد البيانات من قبل، يمكنك التفكير في هذا على أنه نفس الشيء، حيث يتم تشغيل الكود بواسطة حدث مثل إدخال صف. @@ -54,7 +54,7 @@ خدمة الحوسبة بدون خادم من مايكروسوفت تُعرف باسم Azure Functions. -![شعار Azure Functions](../../../../../translated_images/ar/azure-functions-logo.1cfc8e3204c9c44aaf80fcf406fc8544d80d7f00f8d3e8ed6fed764563e17564.png) +![شعار Azure Functions](../../../../../translated_images/ar/azure-functions-logo.1cfc8e3204c9c44a.webp) الفيديو القصير أدناه يقدم نظرة عامة على Azure Functions: diff --git a/translations/ar/2-farm/lessons/6-keep-your-plant-secure/README.md b/translations/ar/2-farm/lessons/6-keep-your-plant-secure/README.md index a710436da..2da8dd691 100644 --- a/translations/ar/2-farm/lessons/6-keep-your-plant-secure/README.md +++ b/translations/ar/2-farm/lessons/6-keep-your-plant-secure/README.md @@ -1,6 +1,6 @@ # حافظ على أمان جهازك النباتي -![رسم توضيحي لهذا الدرس](../../../../../translated_images/ar/lesson-10.829c86b80b9403bb770929ee553a1d293afe50dc23121aaf9be144673ae012cc.jpg) +![رسم توضيحي لهذا الدرس](../../../../../translated_images/ar/lesson-10.829c86b80b9403bb.webp) > رسم توضيحي بواسطة [نيتيا ناراسيمهان](https://github.com/nitya). انقر على الصورة للحصول على نسخة أكبر. @@ -52,11 +52,11 @@ عندما يتصل جهاز بخدمة إنترنت الأشياء، فإنه يستخدم معرفًا لتحديد هويته. المشكلة هي أن هذا المعرف يمكن نسخه - يمكن للقراصنة إعداد جهاز ضار يستخدم نفس المعرف كجهاز حقيقي ولكنه يرسل بيانات مزيفة. -![يمكن لكل من الأجهزة الصالحة والضارة استخدام نفس المعرف لإرسال البيانات](../../../../../translated_images/ar/iot-device-and-hacked-device-connecting.e0671675df74d6d99eb1dedb5a670e606f698efa6202b1ad4c8ae548db299cc6.png) +![يمكن لكل من الأجهزة الصالحة والضارة استخدام نفس المعرف لإرسال البيانات](../../../../../translated_images/ar/iot-device-and-hacked-device-connecting.e0671675df74d6d9.webp) الحل هو تحويل البيانات المرسلة إلى صيغة مشفرة باستخدام قيمة معينة معروفة فقط للجهاز والسحابة. تُعرف هذه العملية باسم *التشفير*، وتُسمى القيمة المستخدمة لتشفير البيانات *مفتاح التشفير*. -![إذا تم استخدام التشفير، فسيتم قبول الرسائل المشفرة فقط، وسيتم رفض الرسائل الأخرى](../../../../../translated_images/ar/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f979e46f2849b573564eeb4a4dc5b52f669f62745397492fb.png) +![إذا تم استخدام التشفير، فسيتم قبول الرسائل المشفرة فقط، وسيتم رفض الرسائل الأخرى](../../../../../translated_images/ar/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f.webp) يمكن لخدمة السحابة بعد ذلك تحويل البيانات مرة أخرى إلى صيغة قابلة للقراءة باستخدام عملية تُعرف باسم *فك التشفير*، باستخدام نفس مفتاح التشفير أو *مفتاح فك التشفير*. إذا لم تتمكن الرسالة المشفرة من فك تشفيرها باستخدام المفتاح، فهذا يعني أن الجهاز قد تم اختراقه وسيتم رفض الرسالة. diff --git a/translations/ar/3-transport/lessons/1-location-tracking/README.md b/translations/ar/3-transport/lessons/1-location-tracking/README.md index d65168e8b..4d58f7690 100644 --- a/translations/ar/3-transport/lessons/1-location-tracking/README.md +++ b/translations/ar/3-transport/lessons/1-location-tracking/README.md @@ -1,6 +1,6 @@ # تتبع المواقع -![رسم توضيحي لهذه الدرس](../../../../../translated_images/ar/lesson-11.9fddbac4b664c6d50ab7ac9bb32f1fc3f945f03760e72f7f43938073762fb017.jpg) +![رسم توضيحي لهذه الدرس](../../../../../translated_images/ar/lesson-11.9fddbac4b664c6d5.webp) > رسم توضيحي من [نيتيا ناراسيمهان](https://github.com/nitya). انقر على الصورة للحصول على نسخة أكبر. @@ -63,13 +63,13 @@ > 💁 لا أحد يعرف السبب الأصلي لتقسيم الدوائر إلى 360 درجة. تغطي صفحة [الدرجة (زاوية) على ويكيبيديا](https://wikipedia.org/wiki/Degree_(angle)) بعض الأسباب المحتملة. -![خطوط العرض من 90° عند القطب الشمالي، 45° في منتصف الطريق بين القطب الشمالي وخط الاستواء، 0° عند خط الاستواء، -45° في منتصف الطريق بين خط الاستواء والقطب الجنوبي، و -90° عند القطب الجنوبي](../../../../../translated_images/ar/latitude-lines.11d8d91dfb2014a57437272d7db7fd6607243098e8685f06e0c5f1ec984cb7eb.png) +![خطوط العرض من 90° عند القطب الشمالي، 45° في منتصف الطريق بين القطب الشمالي وخط الاستواء، 0° عند خط الاستواء، -45° في منتصف الطريق بين خط الاستواء والقطب الجنوبي، و -90° عند القطب الجنوبي](../../../../../translated_images/ar/latitude-lines.11d8d91dfb2014a5.webp) يتم قياس خطوط العرض باستخدام خطوط تدور حول الأرض وتوازي خط الاستواء، وتقسم نصفي الكرة الشمالي والجنوبي إلى 90° لكل منهما. خط الاستواء عند 0°، والقطب الشمالي عند 90°، المعروف أيضًا بـ 90° شمالًا، والقطب الجنوبي عند -90°، أو 90° جنوبًا. يتم قياس خطوط الطول كعدد الدرجات شرقًا وغربًا. نقطة الأصل عند 0° تُعرف باسم *خط الطول الرئيسي*، وتم تحديدها في عام 1884 كخط يمتد من القطب الشمالي إلى القطب الجنوبي ويمر عبر [المرصد الملكي البريطاني في غرينتش، إنجلترا](https://wikipedia.org/wiki/Royal_Observatory,_Greenwich). -![خطوط الطول التي تمتد من -180° إلى الغرب من خط الطول الرئيسي، إلى 0° على خط الطول الرئيسي، إلى 180° شرق خط الطول الرئيسي](../../../../../translated_images/ar/longitude-meridians.ab4ef1c91c064586b0185a3c8d39e585903696c6a7d28c098a93a629cddb5d20.png) +![خطوط الطول التي تمتد من -180° إلى الغرب من خط الطول الرئيسي، إلى 0° على خط الطول الرئيسي، إلى 180° شرق خط الطول الرئيسي](../../../../../translated_images/ar/longitude-meridians.ab4ef1c91c064586.webp) > 🎓 خط الطول هو خط وهمي مستقيم يمتد من القطب الشمالي إلى القطب الجنوبي، مكونًا نصف دائرة. @@ -100,7 +100,7 @@ * خط عرض 47.6423109 (47.6423109 درجة شمال خط الاستواء) * خط طول -122.1390293 (122.1390293 درجة غرب خط الطول الرئيسي). -![مقر مايكروسوفت عند 47.6423109,-122.117198](../../../../../translated_images/ar/microsoft-gps-location-world.a321d481b010f6adfcca139b2ba0adc53b79f58a540495b8e2ce7f779ea64bfe.png) +![مقر مايكروسوفت عند 47.6423109,-122.117198](../../../../../translated_images/ar/microsoft-gps-location-world.a321d481b010f6ad.webp) ## أنظمة تحديد المواقع العالمية (GPS) @@ -112,7 +112,7 @@ > 💁 تحتاج مستشعرات GPS إلى هوائيات لاكتشاف موجات الراديو. الهوائيات المدمجة في الشاحنات والسيارات المزودة بنظام GPS مثبتة للحصول على إشارة جيدة، عادةً على الزجاج الأمامي أو السقف. إذا كنت تستخدم نظام GPS منفصلًا، مثل هاتف ذكي أو جهاز إنترنت الأشياء، فيجب التأكد من أن الهوائي المدمج في النظام أو الهاتف لديه رؤية واضحة للسماء، مثل التثبيت على الزجاج الأمامي. -![من خلال معرفة المسافة بين المستشعر وعدة أقمار صناعية، يمكن حساب الموقع](../../../../../translated_images/ar/gps-satellites.04acf1148fe25fbf1586bc2e8ba698e8d79b79a50c36824b38417dd13372b90f.png) +![من خلال معرفة المسافة بين المستشعر وعدة أقمار صناعية، يمكن حساب الموقع](../../../../../translated_images/ar/gps-satellites.04acf1148fe25fbf.webp) تدور أقمار GPS حول الأرض، وليست في نقطة ثابتة فوق المستشعر، لذا تتضمن بيانات الموقع الارتفاع فوق مستوى سطح البحر بالإضافة إلى خطوط العرض والطول. diff --git a/translations/ar/3-transport/lessons/1-location-tracking/pi-gps-sensor.md b/translations/ar/3-transport/lessons/1-location-tracking/pi-gps-sensor.md index 6bf80c1cc..8f4034a66 100644 --- a/translations/ar/3-transport/lessons/1-location-tracking/pi-gps-sensor.md +++ b/translations/ar/3-transport/lessons/1-location-tracking/pi-gps-sensor.md @@ -18,13 +18,13 @@ قم بتوصيل مستشعر GPS. -![مستشعر Grove GPS](../../../../../translated_images/ar/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![مستشعر Grove GPS](../../../../../translated_images/ar/grove-gps-sensor.247943bf69b03f0d.webp) 1. أدخل أحد طرفي كابل Grove في المقبس الموجود على مستشعر GPS. لن يدخل إلا في اتجاه واحد. 1. مع إيقاف تشغيل Raspberry Pi، قم بتوصيل الطرف الآخر من كابل Grove بمقبس UART المسمى **UART** على قبعة Grove Base المثبتة على Pi. يوجد هذا المقبس في الصف الأوسط، على الجانب الأقرب إلى فتحة بطاقة SD، في الطرف الآخر من منافذ USB ومقبس الإيثرنت. - ![مستشعر Grove GPS متصل بمقبس UART](../../../../../translated_images/ar/pi-gps-sensor.1f99ee2b2f6528915047ec78967bd362e0e4ee0ed594368a3837b9cf9cdaca64.png) + ![مستشعر Grove GPS متصل بمقبس UART](../../../../../translated_images/ar/pi-gps-sensor.1f99ee2b2f652891.webp) 1. ضع مستشعر GPS بحيث يكون الهوائي المتصل به مرئيًا للسماء - من الأفضل أن يكون بجانب نافذة مفتوحة أو في الخارج. من الأسهل الحصول على إشارة واضحة بدون وجود عوائق أمام الهوائي. diff --git a/translations/ar/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md b/translations/ar/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md index 4e2464df3..85f63b2cd 100644 --- a/translations/ar/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md +++ b/translations/ar/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md @@ -38,11 +38,11 @@ 1. اختر زر **إضافة** لإنشاء مستشعر GPS على المنفذ `/dev/ttyAMA0`. - ![إعدادات مستشعر GPS](../../../../../translated_images/ar/counterfit-create-gps-sensor.6385dc9357d85ad1d47b4abb2525e7651fd498917d25eefc5a72feab09eedc70.png) + ![إعدادات مستشعر GPS](../../../../../translated_images/ar/counterfit-create-gps-sensor.6385dc9357d85ad1.webp) سيتم إنشاء مستشعر GPS وسيظهر في قائمة المستشعرات. - ![تم إنشاء مستشعر GPS](../../../../../translated_images/ar/counterfit-gps-sensor.3fbb15af0a5367566f2f11324ef5a6f30861cdf2b497071a5e002b7aa473550e.png) + ![تم إنشاء مستشعر GPS](../../../../../translated_images/ar/counterfit-gps-sensor.3fbb15af0a536756.webp) ## برمجة مستشعر GPS @@ -102,17 +102,17 @@ * ضبط **المصدر** على `Lat/Lon`، وتعيين خط عرض وخط طول وعدد الأقمار الصناعية المستخدمة للحصول على تثبيت GPS. سيتم إرسال هذه القيمة مرة واحدة فقط، لذا تحقق من مربع **التكرار** لتكرار البيانات كل ثانية. - ![مستشعر GPS مع تحديد lat lon](../../../../../translated_images/ar/counterfit-gps-sensor-latlon.008c867d75464fbe7f84107cc57040df565ac07cb57d2f21db37d087d470197d.png) + ![مستشعر GPS مع تحديد lat lon](../../../../../translated_images/ar/counterfit-gps-sensor-latlon.008c867d75464fbe.webp) * ضبط **المصدر** على `NMEA` وإضافة بعض جمل NMEA في مربع النص. سيتم إرسال جميع هذه القيم، مع تأخير قدره ثانية واحدة قبل قراءة كل جملة GGA (تثبيت الموقع). - ![مستشعر GPS مع إعداد جمل NMEA](../../../../../translated_images/ar/counterfit-gps-sensor-nmea.c62eea442171e17e19528b051b104cfcecdc9cd18db7bc72920f29821ae63f73.png) + ![مستشعر GPS مع إعداد جمل NMEA](../../../../../translated_images/ar/counterfit-gps-sensor-nmea.c62eea442171e17e.webp) يمكنك استخدام أداة مثل [nmeagen.org](https://www.nmeagen.org) لإنشاء هذه الجمل عن طريق الرسم على الخريطة. سيتم إرسال هذه القيم مرة واحدة فقط، لذا تحقق من مربع **التكرار** لتكرار البيانات بعد ثانية واحدة من إرسالها جميعًا. * ضبط **المصدر** على ملف GPX، وتحميل ملف GPX يحتوي على مواقع المسار. يمكنك تنزيل ملفات GPX من عدد من مواقع الخرائط والمشي الشهيرة، مثل [AllTrails](https://www.alltrails.com/). تحتوي هذه الملفات على مواقع GPS متعددة كمسار، وسيعيد مستشعر GPS كل موقع جديد بفاصل زمني قدره ثانية واحدة. - ![مستشعر GPS مع إعداد ملف GPX](../../../../../translated_images/ar/counterfit-gps-sensor-gpxfile.8310b063ce8a425ccc8ebeec8306aeac5e8e55207f007d52c6e1194432a70cd9.png) + ![مستشعر GPS مع إعداد ملف GPX](../../../../../translated_images/ar/counterfit-gps-sensor-gpxfile.8310b063ce8a425c.webp) سيتم إرسال هذه القيم مرة واحدة فقط، لذا تحقق من مربع **التكرار** لتكرار البيانات بعد ثانية واحدة من إرسالها جميعًا. diff --git a/translations/ar/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md b/translations/ar/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md index 128926758..b8e92d942 100644 --- a/translations/ar/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md +++ b/translations/ar/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md @@ -18,7 +18,7 @@ قم بتوصيل مستشعر GPS. -![مستشعر GPS من نوع Grove](../../../../../translated_images/ar/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![مستشعر GPS من نوع Grove](../../../../../translated_images/ar/grove-gps-sensor.247943bf69b03f0d.webp) 1. أدخل أحد طرفي كابل Grove في المقبس الموجود على مستشعر GPS. لن يدخل إلا في اتجاه واحد. diff --git a/translations/ar/3-transport/lessons/2-store-location-data/README.md b/translations/ar/3-transport/lessons/2-store-location-data/README.md index e6521ebe3..2d582425b 100644 --- a/translations/ar/3-transport/lessons/2-store-location-data/README.md +++ b/translations/ar/3-transport/lessons/2-store-location-data/README.md @@ -1,6 +1,6 @@ # تخزين بيانات الموقع -![رسم توضيحي لهذا الدرس](../../../../../translated_images/ar/lesson-12.ca7f53039712a3ec14ad6474d8445361c84adab643edc53fa6269b77895606bb.jpg) +![رسم توضيحي لهذا الدرس](../../../../../translated_images/ar/lesson-12.ca7f53039712a3ec.webp) > رسم توضيحي بواسطة [نيتيا ناراسيمهان](https://github.com/nitya). انقر على الصورة للحصول على نسخة أكبر. @@ -75,7 +75,7 @@ > 💁 على الرغم من اسمها، تسمح بعض قواعد بيانات NoSQL باستخدام SQL لاستعلام البيانات. -![وثائق في مجلدات داخل قاعدة بيانات NoSQL](../../../../../translated_images/ar/noqsl-database.62d24ccf5b73f60d35c245a8533f1c7147c0928e955b82cb290b2e184bb434df.png) +![وثائق في مجلدات داخل قاعدة بيانات NoSQL](../../../../../translated_images/ar/noqsl-database.62d24ccf5b73f60d.webp) لا تحتوي قواعد بيانات NoSQL على مخطط محدد مسبقًا يحد من كيفية تخزين البيانات، بل يمكنك إدخال أي بيانات غير مهيكلة، عادةً باستخدام وثائق JSON. يمكن تنظيم هذه الوثائق في مجلدات، مشابهة للملفات على جهاز الكمبيوتر الخاص بك. يمكن أن تحتوي كل وثيقة على حقول مختلفة عن الوثائق الأخرى - على سبيل المثال، إذا كنت تخزن بيانات إنترنت الأشياء من مركبات المزرعة، فقد تحتوي بعضها على حقول لبيانات التسارع والسرعة، وقد تحتوي أخرى على حقول لدرجة الحرارة في المقطورة. إذا كنت تريد إضافة نوع جديد من الشاحنات، مثل شاحنة مزودة بموازين مدمجة لتتبع وزن المنتجات المحملة، يمكن لجهاز إنترنت الأشياء الخاص بك إضافة هذا الحقل الجديد ويمكن تخزينه دون أي تغييرات على قاعدة البيانات. @@ -89,7 +89,7 @@ في الدرس السابق، قمت بالتقاط بيانات GPS من مستشعر GPS متصل بجهاز إنترنت الأشياء الخاص بك. لتخزين هذه البيانات في السحابة، تحتاج إلى إرسالها إلى خدمة إنترنت الأشياء. مرة أخرى، ستستخدم Azure IoT Hub، نفس خدمة إنترنت الأشياء السحابية التي استخدمتها في المشروع السابق. -![إرسال بيانات GPS من جهاز إنترنت الأشياء إلى IoT Hub](../../../../../translated_images/ar/gps-telemetry-iot-hub.8115335d51cd2c1285d20e9d1b18cf685e59a8e093e7797291ef173445af6f3d.png) +![إرسال بيانات GPS من جهاز إنترنت الأشياء إلى IoT Hub](../../../../../translated_images/ar/gps-telemetry-iot-hub.8115335d51cd2c12.webp) ### المهمة - إرسال بيانات GPS إلى IoT Hub @@ -171,7 +171,7 @@ message = Message(json.dumps(message_json)) بمجرد تدفق البيانات إلى IoT Hub، يمكنك كتابة بعض الكود بدون خادم للاستماع إلى الأحداث المنشورة إلى نقطة النهاية المتوافقة مع Event-Hub. هذا هو المسار الدافئ - سيتم تخزين هذه البيانات واستخدامها في الدرس التالي للتقارير عن الرحلة. -![إرسال بيانات GPS من جهاز إنترنت الأشياء إلى IoT Hub، ثم إلى Azure Functions عبر مشغل Event Hub](../../../../../translated_images/ar/gps-telemetry-iot-hub-functions.24d3fa5592455e9f4e2fe73856b40c3915a292b90263c31d652acfd976cfedd8.png) +![إرسال بيانات GPS من جهاز إنترنت الأشياء إلى IoT Hub، ثم إلى Azure Functions عبر مشغل Event Hub](../../../../../translated_images/ar/gps-telemetry-iot-hub-functions.24d3fa5592455e9f.webp) ### المهمة - معالجة أحداث GPS باستخدام الكود بدون خادم @@ -193,7 +193,7 @@ message = Message(json.dumps(message_json)) ## حسابات تخزين Azure -![شعار تخزين Azure](../../../../../translated_images/ar/azure-storage-logo.605c0f602c640d482a80f1b35a2629a32d595711b7ab1d7ceea843250615ff32.png) +![شعار تخزين Azure](../../../../../translated_images/ar/azure-storage-logo.605c0f602c640d48.webp) حسابات تخزين Azure هي خدمة تخزين متعددة الأغراض يمكنها تخزين البيانات بطرق متنوعة. يمكنك تخزين البيانات كـ blobs، في قوائم انتظار، في جداول، أو كملفات، وكل ذلك في نفس الوقت. diff --git a/translations/ar/3-transport/lessons/3-visualize-location-data/README.md b/translations/ar/3-transport/lessons/3-visualize-location-data/README.md index 39dcb3ebf..758925404 100644 --- a/translations/ar/3-transport/lessons/3-visualize-location-data/README.md +++ b/translations/ar/3-transport/lessons/3-visualize-location-data/README.md @@ -1,6 +1,6 @@ # تصور بيانات الموقع -![رسم توضيحي لهذا الدرس](../../../../../translated_images/ar/lesson-13.a259db1485021be7d7c72e90842fbe0ab977529e8684c179b5fb1ea75e92b3ef.jpg) +![رسم توضيحي لهذا الدرس](../../../../../translated_images/ar/lesson-13.a259db1485021be7.webp) > رسم توضيحي بواسطة [نيتيا ناراسيمهان](https://github.com/nitya). انقر على الصورة للحصول على نسخة أكبر. @@ -64,11 +64,11 @@ بالنسبة للبشر، قد يكون فهم هذه البيانات صعبًا. إنها مجرد أرقام بدون معنى. كخطوة أولى لتصور هذه البيانات، يمكن رسمها على مخطط خطي: -![مخطط خطي للبيانات أعلاه](../../../../../translated_images/ar/chart-soil-moisture.fd6d9d0cdc0b5f75e78038ecb8945dfc84b38851359de99d84b16e3336d6d7c2.png) +![مخطط خطي للبيانات أعلاه](../../../../../translated_images/ar/chart-soil-moisture.fd6d9d0cdc0b5f75.webp) يمكن تحسين هذا المخطط بإضافة خط يشير إلى وقت تشغيل نظام الري التلقائي عند قراءة رطوبة التربة 450: -![مخطط خطي لرطوبة التربة مع خط عند 450](../../../../../translated_images/ar/chart-soil-moisture-relay.fbb391236d34a64d0abf1df396e9197e0a24df14150620b9cc820a64a55c9326.png) +![مخطط خطي لرطوبة التربة مع خط عند 450](../../../../../translated_images/ar/chart-soil-moisture-relay.fbb391236d34a64d.webp) يوضح هذا المخطط بسرعة ليس فقط مستويات رطوبة التربة، ولكن أيضًا النقاط التي تم فيها تشغيل نظام الري. @@ -84,7 +84,7 @@ العمل مع الخرائط هو تمرين مثير للاهتمام، وهناك العديد من الخيارات مثل Bing Maps، وLeaflet، وOpen Street Maps، وGoogle Maps. في هذا الدرس، ستتعلم عن [Azure Maps](https://azure.microsoft.com/services/azure-maps/?WT.mc_id=academic-17441-jabenn) وكيف يمكنها عرض بيانات GPS الخاصة بك. -![شعار Azure Maps](../../../../../translated_images/ar/azure-maps-logo.35d01dcfbd81fe6140e94257aaa1538f785a58c91576d14e0ebe7a2f6c694b99.png) +![شعار Azure Maps](../../../../../translated_images/ar/azure-maps-logo.35d01dcfbd81fe61.webp) Azure Maps هي "مجموعة من الخدمات الجغرافية المكانية وSDKs التي تستخدم بيانات خرائط حديثة لتوفير سياق جغرافي لتطبيقات الويب والجوال." يتم تزويد المطورين بأدوات لإنشاء خرائط تفاعلية وجميلة يمكنها القيام بأشياء مثل توفير مسارات المرور الموصى بها، تقديم معلومات عن حوادث المرور، التنقل الداخلي، قدرات البحث، معلومات الارتفاع، خدمات الطقس والمزيد. @@ -185,7 +185,7 @@ Azure Maps هي "مجموعة من الخدمات الجغرافية المكا إذا فتحت صفحة `index.html` الخاصة بك في متصفح ويب، يجب أن ترى خريطة محملة ومركزة على منطقة سياتل. - ![خريطة تظهر سياتل، مدينة في ولاية واشنطن، الولايات المتحدة](../../../../../translated_images/ar/map-image.8fb2c53eb23ef39c1c0a4410a5282e879b3b452b707eb066ff04c5488d3d72b7.png) + ![خريطة تظهر سياتل، مدينة في ولاية واشنطن، الولايات المتحدة](../../../../../translated_images/ar/map-image.8fb2c53eb23ef39c.webp) ✅ جرب معلمات التكبير والتوسيط لتغيير عرض الخريطة. يمكنك إضافة إحداثيات مختلفة تتوافق مع خطوط الطول والعرض لبياناتك لإعادة توسيط الخريطة. @@ -319,7 +319,7 @@ Azure Maps هي "مجموعة من الخدمات الجغرافية المكا 1. قم بتحميل صفحة HTML في متصفحك. ستقوم بتحميل الخريطة، ثم تحميل جميع بيانات GPS من التخزين وعرضها على الخريطة. - ![خريطة لمنتزه Saint Edward State Park بالقرب من سياتل، مع دوائر تظهر مسارًا حول حافة المنتزه](../../../../../translated_images/ar/map-path.896832e72dc696ffe20650e4051027d4855442d955f93fdbb80bb417ca8a406f.png) + ![خريطة لمنتزه Saint Edward State Park بالقرب من سياتل، مع دوائر تظهر مسارًا حول حافة المنتزه](../../../../../translated_images/ar/map-path.896832e72dc696ff.webp) > 💁 يمكنك العثور على هذا الكود في [المجلد](../../../../../3-transport/lessons/3-visualize-location-data/code). diff --git a/translations/ar/3-transport/lessons/4-geofences/README.md b/translations/ar/3-transport/lessons/4-geofences/README.md index a99cb8538..4f5c9c85d 100644 --- a/translations/ar/3-transport/lessons/4-geofences/README.md +++ b/translations/ar/3-transport/lessons/4-geofences/README.md @@ -1,6 +1,6 @@ # الأسوار الجغرافية -![رسم توضيحي لهذه الدرس](../../../../../translated_images/ar/lesson-14.63980c5150ae3c153e770fb71d044c1845dce79248d86bed9fc525adf3ede73c.jpg) +![رسم توضيحي لهذه الدرس](../../../../../translated_images/ar/lesson-14.63980c5150ae3c15.webp) > رسم توضيحي من [نيتيا ناراسيمهان](https://github.com/nitya). اضغط على الصورة لعرض نسخة أكبر. @@ -35,7 +35,7 @@ السور الجغرافي هو حدود افتراضية لمنطقة جغرافية حقيقية. يمكن أن تكون الأسوار الجغرافية دوائر محددة كنقطة ونصف قطر (على سبيل المثال دائرة بعرض 100 متر حول مبنى)، أو مضلعات تغطي منطقة مثل منطقة مدرسة، حدود مدينة، أو حرم جامعي أو مكتبي. -![بعض أمثلة الأسوار الجغرافية تظهر سورًا دائريًا حول متجر شركة Microsoft، وسورًا مضلعًا حول الحرم الغربي لشركة Microsoft](../../../../../translated_images/ar/geofence-examples.172fbc534665769f6e1a1ddcf75e3b25183cd10354c80cc603ba44b635390e1a.png) +![بعض أمثلة الأسوار الجغرافية تظهر سورًا دائريًا حول متجر شركة Microsoft، وسورًا مضلعًا حول الحرم الغربي لشركة Microsoft](../../../../../translated_images/ar/geofence-examples.172fbc534665769f.webp) > 💁 ربما تكون قد استخدمت الأسوار الجغرافية بالفعل دون أن تدرك ذلك. إذا قمت بتعيين تذكير باستخدام تطبيق التذكيرات على iOS أو Google Keep بناءً على موقع، فقد استخدمت سورًا جغرافيًا. تقوم هذه التطبيقات بإنشاء سور جغرافي بناءً على الموقع المحدد وتنبهك عندما يدخل هاتفك السور الجغرافي. @@ -212,7 +212,7 @@ على سبيل المثال، تخيل قراءات GPS تظهر مركبة تسير على طريق ينتهي بجوار سور جغرافي. إذا كانت قيمة GPS واحدة غير دقيقة وتضع المركبة داخل السور الجغرافي، على الرغم من عدم وجود وصول للمركبات، فيمكن تجاهلها. -![مسار GPS يظهر مركبة تمر بجانب حرم Microsoft على الطريق 520، مع قراءات GPS على طول الطريق باستثناء واحدة داخل الحرم، داخل سور جغرافي](../../../../../translated_images/ar/geofence-crossing-inaccurate-gps.6a3ed911202ad9cabb66d3964888cec03a42c61d5b8f536ad5bdc99716b370f5.png) +![مسار GPS يظهر مركبة تمر بجانب حرم Microsoft على الطريق 520، مع قراءات GPS على طول الطريق باستثناء واحدة داخل الحرم، داخل سور جغرافي](../../../../../translated_images/ar/geofence-crossing-inaccurate-gps.6a3ed911202ad9ca.webp) في الصورة أعلاه، هناك سياج جغرافي يغطي جزءًا من حرم مايكروسوفت. الخط الأحمر يُظهر شاحنة تسير على طول الطريق 520، مع دوائر تُظهر قراءات GPS. معظم هذه القراءات دقيقة وتقع على طول الطريق 520، باستثناء قراءة واحدة غير دقيقة داخل السياج الجغرافي. من المستحيل أن تكون هذه القراءة صحيحة - لا توجد طرق يمكن للشاحنة أن تنحرف فجأة من الطريق 520 إلى الحرم الجامعي ثم تعود إلى الطريق 520. الكود الذي يتحقق من هذا السياج الجغرافي سيحتاج إلى أخذ القراءات السابقة بعين الاعتبار قبل اتخاذ أي إجراء بناءً على نتائج اختبار السياج الجغرافي. ✅ ما البيانات الإضافية التي تحتاج إلى التحقق منها لمعرفة ما إذا كانت قراءة GPS يمكن اعتبارها صحيحة؟ @@ -284,7 +284,7 @@ الإجابة هي أنه لا يمكنه ذلك! بدلاً من ذلك، يمكنك تعريف اتصالات منفصلة متعددة لقراءة الأحداث، وكل واحدة يمكنها إدارة إعادة تشغيل الرسائل غير المقروءة. تُعرف هذه باسم *مجموعات المستهلكين*. عند الاتصال بنقطة النهاية، يمكنك تحديد مجموعة المستهلكين التي تريد الاتصال بها. كل مكون من تطبيقك سيتصل بمجموعة مستهلكين مختلفة. -![IoT Hub واحد مع 3 مجموعات مستهلكين توزع نفس الرسائل على 3 تطبيقات وظائف مختلفة](../../../../../translated_images/ar/consumer-groups.a3262e26fc27ba2092863678ad57af15c7223416e388a23f330c058cf4358630.png) +![IoT Hub واحد مع 3 مجموعات مستهلكين توزع نفس الرسائل على 3 تطبيقات وظائف مختلفة](../../../../../translated_images/ar/consumer-groups.a3262e26fc27ba20.webp) نظريًا، يمكن لما يصل إلى 5 تطبيقات الاتصال بكل مجموعة مستهلكين، وستتلقى جميعها الرسائل عند وصولها. من الأفضل أن يكون لكل تطبيق وصول إلى مجموعة مستهلكين واحدة فقط لتجنب معالجة الرسائل المكررة، وضمان معالجة جميع الرسائل المعلقة بشكل صحيح عند إعادة التشغيل. على سبيل المثال، إذا قمت بتشغيل تطبيق Functions الخاص بك محليًا بالإضافة إلى تشغيله في السحابة، فسيقوم كلاهما بمعالجة الرسائل، مما يؤدي إلى تخزين كتل مكررة في حساب التخزين. diff --git a/translations/ar/4-manufacturing/lessons/1-train-fruit-detector/README.md b/translations/ar/4-manufacturing/lessons/1-train-fruit-detector/README.md index 50637db65..012e6bd6b 100644 --- a/translations/ar/4-manufacturing/lessons/1-train-fruit-detector/README.md +++ b/translations/ar/4-manufacturing/lessons/1-train-fruit-detector/README.md @@ -1,6 +1,6 @@ # تدريب كاشف جودة الفاكهة -![نظرة عامة على هذا الدرس](../../../../../translated_images/ar/lesson-15.843d21afdc6fb2bba70cd9db7b7d2f91598859fafda2078b0bdc44954194b6c0.jpg) +![نظرة عامة على هذا الدرس](../../../../../translated_images/ar/lesson-15.843d21afdc6fb2bb.webp) > رسم توضيحي بواسطة [نيتيا ناراسيمهان](https://github.com/nitya). انقر على الصورة للحصول على نسخة أكبر. @@ -38,7 +38,7 @@ مع تطور الحصاد الآلي، انتقل فرز المنتجات من الحقل إلى المصنع. كانت الأغذية تسير على أحزمة ناقلة طويلة مع فرق من الأشخاص يفرزون المنتجات ويزيلون أي شيء لا يفي بمعايير الجودة المطلوبة. أصبح الحصاد أرخص بفضل الآلات، ولكن لا تزال هناك تكلفة لفرز الطعام يدويًا. -![إذا تم اكتشاف طماطم حمراء، تستمر في رحلتها دون انقطاع. إذا تم اكتشاف طماطم خضراء، يتم دفعها إلى سلة النفايات بواسطة ذراع](../../../../../translated_images/ar/optical-tomato-sorting.61aa134bdda4e5b1bfb16a212c1e35a6ef0c426cbb8b1c975f79d7bfbf48d068.png) +![إذا تم اكتشاف طماطم حمراء، تستمر في رحلتها دون انقطاع. إذا تم اكتشاف طماطم خضراء، يتم دفعها إلى سلة النفايات بواسطة ذراع](../../../../../translated_images/ar/optical-tomato-sorting.61aa134bdda4e5b1.webp) التطور التالي كان استخدام الآلات للفرز، سواء كانت مدمجة في الحصادة أو في مصانع المعالجة. الجيل الأول من هذه الآلات استخدم مستشعرات بصرية للكشف عن الألوان، حيث تتحكم في المشغلات لدفع الطماطم الخضراء إلى سلة النفايات باستخدام أذرع أو نفثات هواء، تاركة الطماطم الحمراء لتستمر في شبكة من الأحزمة الناقلة. @@ -62,7 +62,7 @@ > 🎓 نتائج نماذج التعلم الآلي تسمى *التوقعات* -![موزتان، واحدة ناضجة مع توقع بنسبة 99.7% ناضجة، 0.3% غير ناضجة، والأخرى غير ناضجة مع توقع بنسبة 1.4% ناضجة، 98.6% غير ناضجة](../../../../../translated_images/ar/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50ece4e4589e724b142da0681f35470fe3db3f7d51240f69c85.png) +![موزتان، واحدة ناضجة مع توقع بنسبة 99.7% ناضجة، 0.3% غير ناضجة، والأخرى غير ناضجة مع توقع بنسبة 1.4% ناضجة، 98.6% غير ناضجة](../../../../../translated_images/ar/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50e.webp) نماذج التعلم الآلي لا تعطي إجابة ثنائية، بل تعطي احتمالات. على سبيل المثال، قد يتم إعطاء نموذج صورة لموزة ويتوقع أنها `ناضجة` بنسبة 99.7% و`غير ناضجة` بنسبة 0.3%. ستقوم الكود الخاص بك باختيار أفضل توقع وتحديد أن الموزة ناضجة. @@ -90,7 +90,7 @@ الرؤية المخصصة هي أداة سحابية لتدريب مصنفي الصور. تتيح لك تدريب مصنف باستخدام عدد قليل فقط من الصور. يمكنك تحميل الصور عبر بوابة ويب، واجهة برمجة التطبيقات أو SDK، مع إعطاء كل صورة *علامة* تحتوي على تصنيف تلك الصورة. ثم تقوم بتدريب النموذج، واختباره لمعرفة مدى أدائه. بمجرد أن تكون راضيًا عن النموذج، يمكنك نشر إصدارات منه يمكن الوصول إليها عبر واجهة برمجة التطبيقات أو SDK. -![شعار Azure Custom Vision](../../../../../translated_images/ar/custom-vision-logo.d3d4e7c8a87ec9daf825e72e210576c3cbf60312577be7a139e22dd97ab7f1e6.png) +![شعار Azure Custom Vision](../../../../../translated_images/ar/custom-vision-logo.d3d4e7c8a87ec9da.webp) > 💁 يمكنك تدريب نموذج رؤية مخصص باستخدام 5 صور فقط لكل تصنيف، ولكن المزيد أفضل. يمكنك الحصول على نتائج أفضل مع ما لا يقل عن 30 صورة. @@ -146,7 +146,7 @@ عند إنشاء مشروعك، تأكد من استخدام مورد `fruit-quality-detector-training` الذي أنشأته سابقًا. استخدم نوع مشروع *تصنيف*، نوع تصنيف *متعدد الفئات*، و*مجال الطعام*. - ![إعدادات مشروع الرؤية المخصصة مع الاسم مضبوط على fruit-quality-detector، بدون وصف، المورد مضبوط على fruit-quality-detector-training، نوع المشروع مضبوط على التصنيف، نوع التصنيف مضبوط على متعدد الفئات والمجالات مضبوط على الطعام](../../../../../translated_images/ar/custom-vision-create-project.cf46325b92d8b131089f6647cf5e07b664cb77850e106d66e3c057b6b69756c6.png) + ![إعدادات مشروع الرؤية المخصصة مع الاسم مضبوط على fruit-quality-detector، بدون وصف، المورد مضبوط على fruit-quality-detector-training، نوع المشروع مضبوط على التصنيف، نوع التصنيف مضبوط على متعدد الفئات والمجالات مضبوط على الطعام](../../../../../translated_images/ar/custom-vision-create-project.cf46325b92d8b131.webp) ✅ خذ بعض الوقت لاستكشاف واجهة المستخدم للرؤية المخصصة لمصنف الصور الخاص بك. @@ -164,7 +164,7 @@ * باستخدام موزتين ناضجتين، التقط بعض الصور لكل واحدة من زوايا مختلفة، مع التقاط ما لا يقل عن 7 صور (5 للتدريب، 2 للاختبار)، ولكن يُفضل أكثر. - ![صور لموزتين مختلفتين](../../../../../translated_images/ar/banana-training-images.530eb203346d73bc23b8b990fb4609470bf4ff7c942ccc13d4cfffeed9be1ad4.png) + ![صور لموزتين مختلفتين](../../../../../translated_images/ar/banana-training-images.530eb203346d73bc.webp) * كرر نفس العملية باستخدام موزتين غير ناضجتين. @@ -174,7 +174,7 @@ 1. اتبع [قسم تحميل الصور ووضع العلامات في دليل البدء السريع لبناء مصنف على مستندات Microsoft](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`. - ![حوارات التحميل التي تعرض تحميل صور الموز الناضج وغير الناضج](../../../../../translated_images/ar/image-upload-bananas.0751639f3815e0ec42bdbc6254d1e4357a185834d1ae10c9948a0e7d6d336695.png) + ![حوارات التحميل التي تعرض تحميل صور الموز الناضج وغير الناضج](../../../../../translated_images/ar/image-upload-bananas.0751639f3815e0ec.webp) 1. اتبع [قسم تدريب المصنف في دليل البدء السريع لبناء مصنف على مستندات Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#train-the-classifier) لتدريب مصنف الصور على الصور التي قمت بتحميلها. @@ -192,7 +192,7 @@ 1. اتبع [وثائق اختبار النموذج على مستندات Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/test-your-model?WT.mc_id=academic-17441-jabenn#test-your-model) لاختبار مصنف الصور الخاص بك. استخدم الصور الاختبارية التي أنشأتها سابقًا، وليس أيًا من الصور التي استخدمتها للتدريب. - ![موزة غير ناضجة تم التنبؤ بها كغير ناضجة بنسبة 98.9%، وناضجة بنسبة 1.1%](../../../../../translated_images/ar/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64886422438850ea14f0be6ac918c217ea3b255c685abfabe7.png) + ![موزة غير ناضجة تم التنبؤ بها كغير ناضجة بنسبة 98.9%، وناضجة بنسبة 1.1%](../../../../../translated_images/ar/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64.webp) 1. جرب جميع الصور الاختبارية التي لديك وراقب الاحتمالات. diff --git a/translations/ar/4-manufacturing/lessons/2-check-fruit-from-device/README.md b/translations/ar/4-manufacturing/lessons/2-check-fruit-from-device/README.md index 9193d95eb..1e01227f6 100644 --- a/translations/ar/4-manufacturing/lessons/2-check-fruit-from-device/README.md +++ b/translations/ar/4-manufacturing/lessons/2-check-fruit-from-device/README.md @@ -1,6 +1,6 @@ # التحقق من جودة الفاكهة باستخدام جهاز إنترنت الأشياء -![رسم توضيحي لهذه الدرس](../../../../../translated_images/ar/lesson-16.215daf18b00631fbdfd64c6fc2dc6044dff5d544288825d8076f9fb83d964c23.jpg) +![رسم توضيحي لهذه الدرس](../../../../../translated_images/ar/lesson-16.215daf18b00631fb.webp) > رسم توضيحي بواسطة [نيتيا ناراسيمهان](https://github.com/nitya). اضغط على الصورة للحصول على نسخة أكبر. @@ -26,7 +26,7 @@ مستشعرات الكاميرا، كما يشير الاسم، هي كاميرات يمكنك توصيلها بجهاز إنترنت الأشياء الخاص بك. يمكنها التقاط صور ثابتة أو تسجيل فيديو متدفق. بعضها يعيد بيانات الصور الخام، والبعض الآخر يضغط البيانات إلى ملف صورة مثل JPEG أو PNG. عادةً ما تكون الكاميرات التي تعمل مع أجهزة إنترنت الأشياء أصغر وأقل دقة مما قد تكون معتادًا عليه، ولكن يمكنك الحصول على كاميرات عالية الدقة تنافس أفضل الهواتف. يمكنك الحصول على عدسات قابلة للتبديل، إعدادات كاميرا متعددة، كاميرات حرارية بالأشعة تحت الحمراء، أو كاميرات الأشعة فوق البنفسجية. -![الضوء من المشهد يمر عبر عدسة ويركز على مستشعر CMOS](../../../../../translated_images/ar/cmos-sensor.75f9cd74decb137149a4c9ea825251a4549497d67c0ae2776159e6102bb53aa9.png) +![الضوء من المشهد يمر عبر عدسة ويركز على مستشعر CMOS](../../../../../translated_images/ar/cmos-sensor.75f9cd74decb1371.webp) معظم مستشعرات الكاميرا تستخدم مستشعرات الصور حيث كل بكسل هو ديود ضوئي. تقوم العدسة بتركيز الصورة على مستشعر الصورة، وتقوم آلاف أو ملايين الديودات الضوئية بالكشف عن الضوء الساقط على كل منها وتسجيله كبيانات بكسل. @@ -74,7 +74,7 @@ 1. اضغط على زر **النشر** للتكرار. - ![زر النشر](../../../../../translated_images/ar/custom-vision-publish-button.b7174e1977b0c33b8b72d4e5b1326c779e0af196f3849d09985ee2d7d5493a39.png) + ![زر النشر](../../../../../translated_images/ar/custom-vision-publish-button.b7174e1977b0c33b.webp) 1. في مربع الحوار *نشر النموذج*، قم بتعيين *مورد التنبؤ* إلى المورد `fruit-quality-detector-prediction` الذي أنشأته في الدرس السابق. اترك الاسم كما هو `Iteration2`، واضغط على زر **النشر**. @@ -88,7 +88,7 @@ أيضًا، خذ نسخة من قيمة *مفتاح التنبؤ*. هذا مفتاح آمن يجب تمريره عند استدعاء النموذج. فقط التطبيقات التي تمرر هذا المفتاح يُسمح لها باستخدام النموذج، وأي تطبيقات أخرى يتم رفضها. - ![مربع الحوار الخاص بواجهة برمجة التطبيقات للتنبؤ يظهر عنوان URL والمفتاح](../../../../../translated_images/ar/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![مربع الحوار الخاص بواجهة برمجة التطبيقات للتنبؤ يظهر عنوان URL والمفتاح](../../../../../translated_images/ar/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ عندما يتم نشر تكرار جديد، سيكون له اسم مختلف. كيف تعتقد أنه يمكنك تغيير التكرار الذي يستخدمه جهاز إنترنت الأشياء؟ @@ -109,7 +109,7 @@ للحصول على أفضل النتائج لمصنف الصور، تريد تدريب النموذج باستخدام صور مشابهة قدر الإمكان للصور المستخدمة في التنبؤات. إذا كنت قد استخدمت كاميرا هاتفك لالتقاط الصور للتدريب، على سبيل المثال، فإن جودة الصورة، الحدة، والألوان ستكون مختلفة عن كاميرا متصلة بجهاز إنترنت الأشياء. -![صورتان لموز، واحدة منخفضة الدقة مع إضاءة ضعيفة من جهاز إنترنت الأشياء، والأخرى عالية الدقة مع إضاءة جيدة من هاتف](../../../../../translated_images/ar/banana-picture-compare.174df164dc326a42cf7fb051a7497e6113c620e91552d92ca914220305d47d9a.png) +![صورتان لموز، واحدة منخفضة الدقة مع إضاءة ضعيفة من جهاز إنترنت الأشياء، والأخرى عالية الدقة مع إضاءة جيدة من هاتف](../../../../../translated_images/ar/banana-picture-compare.174df164dc326a42.webp) في الصورة أعلاه، الصورة على اليسار تم التقاطها باستخدام كاميرا Raspberry Pi، والصورة على اليمين تم التقاطها لنفس الموزة في نفس الموقع باستخدام iPhone. هناك فرق واضح في الجودة - صورة iPhone أكثر وضوحًا، بألوان أكثر إشراقًا وتباين أعلى. diff --git a/translations/ar/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md b/translations/ar/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md index f29c4a6af..41219d634 100644 --- a/translations/ar/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md +++ b/translations/ar/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md @@ -16,7 +16,7 @@ ### المهمة - توصيل الكاميرا -![كاميرا Raspberry Pi](../../../../../translated_images/ar/pi-camera-module.4278753c31bd6e757aa2b858be97d72049f71616278cefe4fb5abb485b40a078.png) +![كاميرا Raspberry Pi](../../../../../translated_images/ar/pi-camera-module.4278753c31bd6e75.webp) 1. قم بإيقاف تشغيل Raspberry Pi. @@ -24,17 +24,17 @@ يمكنك العثور على رسم متحرك يوضح كيفية فتح المشبك وإدخال الكابل في [وثائق Raspberry Pi للبدء باستخدام وحدة الكاميرا](https://projects.raspberrypi.org/en/projects/getting-started-with-picamera/2). - ![الكابل الشريطي مُدخل في وحدة الكاميرا](../../../../../translated_images/ar/pi-camera-ribbon-cable.0bf82acd251611c21ac616f082849413e2b322a261d0e4f8fec344248083b07e.png) + ![الكابل الشريطي مُدخل في وحدة الكاميرا](../../../../../translated_images/ar/pi-camera-ribbon-cable.0bf82acd251611c2.webp) 1. قم بإزالة قبعة Grove Base Hat من Raspberry Pi. 1. مرر الكابل الشريطي عبر فتحة الكاميرا في قبعة Grove Base Hat. تأكد من أن الجانب الأزرق من الكابل يواجه المنافذ التناظرية المسمّاة **A0**، **A1** وما إلى ذلك. - ![الكابل الشريطي يمر عبر قبعة Grove Base Hat](../../../../../translated_images/ar/grove-base-hat-ribbon-cable.501fed202fcf73b11b2b68f6d246189f7d15d3e4423c572ddee79d77b4632b47.png) + ![الكابل الشريطي يمر عبر قبعة Grove Base Hat](../../../../../translated_images/ar/grove-base-hat-ribbon-cable.501fed202fcf73b1.webp) 1. أدخل الكابل الشريطي في منفذ الكاميرا على Raspberry Pi. مرة أخرى، اسحب المشبك البلاستيكي الأسود لأعلى، أدخل الكابل، ثم ادفع المشبك إلى مكانه. يجب أن يكون الجانب الأزرق من الكابل مواجهًا لمنافذ USB والإيثرنت. - ![الكابل الشريطي متصل بمنفذ الكاميرا على Raspberry Pi](../../../../../translated_images/ar/pi-camera-socket-ribbon-cable.a18309920b11800911082ed7aa6fb28e6d9be3a022e4079ff990016cae3fca10.png) + ![الكابل الشريطي متصل بمنفذ الكاميرا على Raspberry Pi](../../../../../translated_images/ar/pi-camera-socket-ribbon-cable.a18309920b118009.webp) 1. أعد تركيب قبعة Grove Base Hat. @@ -101,7 +101,7 @@ السطر `camera.rotation = 0` يضبط دوران الصورة. يدخل الكابل الشريطي في الجزء السفلي من الكاميرا، ولكن إذا تم تدوير الكاميرا لتسهيل توجيهها نحو العنصر الذي تريد تصنيفه، يمكنك تغيير هذا السطر إلى عدد درجات الدوران. - ![الكاميرا معلقة فوق علبة مشروب](../../../../../translated_images/ar/pi-camera-upside-down.5376961ba31459883362124152ad6b823d5ac5fc14e85f317e22903bd681c2b6.png) + ![الكاميرا معلقة فوق علبة مشروب](../../../../../translated_images/ar/pi-camera-upside-down.5376961ba3145988.webp) على سبيل المثال، إذا علقت الكابل الشريطي فوق شيء بحيث يكون في الجزء العلوي من الكاميرا، قم بضبط الدوران ليكون 180: diff --git a/translations/ar/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md b/translations/ar/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md index 1f0b2ed36..75663d6e1 100644 --- a/translations/ar/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md +++ b/translations/ar/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md @@ -84,7 +84,7 @@ ستتمكن من رؤية الصورة التي تم التقاطها، وهذه القيم في علامة التبويب **Predictions** في Custom Vision. - ![موزة في Custom Vision تم التنبؤ بأنها ناضجة بنسبة 56.8% وغير ناضجة بنسبة 43.1%](../../../../../translated_images/ar/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![موزة في Custom Vision تم التنبؤ بأنها ناضجة بنسبة 56.8% وغير ناضجة بنسبة 43.1%](../../../../../translated_images/ar/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 يمكنك العثور على هذا الكود في مجلد [code-classify/pi](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/pi) أو [code-classify/virtual-iot-device](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/virtual-iot-device). diff --git a/translations/ar/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md b/translations/ar/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md index 632c7c7a4..9c3ac13e2 100644 --- a/translations/ar/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md +++ b/translations/ar/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md @@ -34,11 +34,11 @@ 1. اختر زر **إضافة** لإنشاء الكاميرا. - ![إعدادات الكاميرا](../../../../../translated_images/ar/counterfit-create-camera.a5de97f59c0bd3cbe0416d7e89a3cfe86d19fbae05c641c53a91286412af0a34.png) + ![إعدادات الكاميرا](../../../../../translated_images/ar/counterfit-create-camera.a5de97f59c0bd3cb.webp) سيتم إنشاء الكاميرا وستظهر في قائمة المستشعرات. - ![الكاميرا التي تم إنشاؤها](../../../../../translated_images/ar/counterfit-camera.001ec52194c8ee5d3f617173da2c79e1df903d10882adc625cbfc493525125d4.png) + ![الكاميرا التي تم إنشاؤها](../../../../../translated_images/ar/counterfit-camera.001ec52194c8ee5d.webp) ## برمجة الكاميرا @@ -103,7 +103,7 @@ 1. قم بتكوين الصورة التي ستلتقطها الكاميرا في CounterFit. يمكنك إما تعيين *المصدر* إلى *ملف*، ثم تحميل ملف صورة، أو تعيين *المصدر* إلى *كاميرا ويب*، وسيتم التقاط الصور من كاميرا الويب الخاصة بك. تأكد من اختيار زر **تعيين** بعد اختيار صورة أو تحديد كاميرا الويب. - ![CounterFit مع ملف تم تعيينه كمصدر للصورة، وكاميرا ويب تعرض شخصًا يحمل موزة في معاينة الكاميرا](../../../../../translated_images/ar/counterfit-camera-options.eb3bd5150a8e7dffbf24bc5bcaba0cf2cdef95fbe6bbe393695d173817d6b8df.png) + ![CounterFit مع ملف تم تعيينه كمصدر للصورة، وكاميرا ويب تعرض شخصًا يحمل موزة في معاينة الكاميرا](../../../../../translated_images/ar/counterfit-camera-options.eb3bd5150a8e7dff.webp) 1. سيتم التقاط صورة وحفظها كـ `image.jpg` في المجلد الحالي. سترى هذا الملف في مستكشف VS Code. اختر الملف لعرض الصورة. إذا كانت بحاجة إلى تدوير، قم بتحديث السطر `camera.rotation = 0` حسب الضرورة والتقط صورة أخرى. diff --git a/translations/ar/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md b/translations/ar/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md index 92009be4d..d6eb7abc2 100644 --- a/translations/ar/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md +++ b/translations/ar/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md @@ -16,7 +16,7 @@ قم بتوصيل الكاميرا. -![مستشعر ArduCam](../../../../../translated_images/ar/arducam.20e4e4cbb268296570b5914e20d6c349fc42ddac9ed4e1b9deba2188204eebae.png) +![مستشعر ArduCam](../../../../../translated_images/ar/arducam.20e4e4cbb2682965.webp) 1. يجب توصيل الدبابيس الموجودة في قاعدة ArduCam بدبابيس GPIO على Wio Terminal. لتسهيل العثور على الدبابيس الصحيحة، قم بتثبيت ملصق دبابيس GPIO الذي يأتي مع Wio Terminal حول الدبابيس: @@ -35,7 +35,7 @@ | SDA | 3 (I2C1_SDA) | بيانات تسلسلية I2C | | SCL | 5 (I2C1_SCL) | ساعة تسلسلية I2C | - ![Wio Terminal متصل بـ ArduCam باستخدام أسلاك التوصيل](../../../../../translated_images/ar/arducam-wio-terminal-connections.a4d5a4049bdb5ab800a2877389fc6ecf5e4ff307e6451ff56c517e6786467d0a.png) + ![Wio Terminal متصل بـ ArduCam باستخدام أسلاك التوصيل](../../../../../translated_images/ar/arducam-wio-terminal-connections.a4d5a4049bdb5ab8.webp) توفر اتصالات GND وVCC مصدر طاقة 5 فولت لـ ArduCam. تعمل الكاميرا بجهد 5 فولت، على عكس مستشعرات Grove التي تعمل بجهد 3 فولت. يأتي هذا الطاقة مباشرة من اتصال USB-C الذي يغذي الجهاز. @@ -456,7 +456,7 @@ 1. قم بإيقاف تشغيل بطاقة microSD وقم بإخراجها عن طريق دفعها قليلاً وإطلاقها، وستخرج. قد تحتاج إلى استخدام أداة رفيعة للقيام بذلك. قم بتوصيل بطاقة microSD بجهاز الكمبيوتر الخاص بك لعرض الصور. - ![صورة موزة تم التقاطها باستخدام ArduCam](../../../../../translated_images/ar/banana-arducam.be1b32d4267a8194b0fd042362e56faa431da9cd4af172051b37243ea9be0256.jpg) + ![صورة موزة تم التقاطها باستخدام ArduCam](../../../../../translated_images/ar/banana-arducam.be1b32d4267a8194.webp) > 💁 قد يستغرق الأمر بضع صور حتى يتكيف توازن اللون الأبيض في الكاميرا. ستلاحظ ذلك بناءً على لون الصور الملتقطة، قد تبدو الصور الأولى غير متوازنة في الألوان. يمكنك دائمًا التغلب على ذلك عن طريق تعديل الكود لالتقاط بضع صور يتم تجاهلها في وظيفة `setup`. diff --git a/translations/ar/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md b/translations/ar/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md index 5481b9d4a..d3ed25e5e 100644 --- a/translations/ar/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md +++ b/translations/ar/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md @@ -208,7 +208,7 @@ ستتمكن من رؤية الصورة التي تم التقاطها، وهذه القيم في علامة التبويب **Predictions** في Custom Vision. - ![موزة في Custom Vision تم التنبؤ بأنها ناضجة بنسبة 56.8% وغير ناضجة بنسبة 43.1%](../../../../../translated_images/ar/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![موزة في Custom Vision تم التنبؤ بأنها ناضجة بنسبة 56.8% وغير ناضجة بنسبة 43.1%](../../../../../translated_images/ar/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 يمكنك العثور على هذا الكود في المجلد [code-classify/wio-terminal](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/wio-terminal). diff --git a/translations/ar/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md b/translations/ar/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md index ddd7f612f..3912ee730 100644 --- a/translations/ar/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md +++ b/translations/ar/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md @@ -1,6 +1,6 @@ # تشغيل كاشف الفواكه على الحافة -![نظرة عامة على هذا الدرس](../../../../../translated_images/ar/lesson-17.bc333c3c35ba8e42cce666cfffa82b915f787f455bd94e006aea2b6f2722421a.jpg) +![نظرة عامة على هذا الدرس](../../../../../translated_images/ar/lesson-17.bc333c3c35ba8e42.webp) > رسم توضيحي بواسطة [نيتيا ناراسيمهان](https://github.com/nitya). انقر على الصورة للحصول على نسخة أكبر. @@ -33,11 +33,11 @@ الحوسبة الطرفية تتضمن وجود أجهزة كمبيوتر تقوم بمعالجة بيانات إنترنت الأشياء بالقرب قدر الإمكان من المكان الذي يتم فيه إنشاء البيانات. بدلاً من أن تتم هذه المعالجة في السحابة، يتم نقلها إلى حافة السحابة - شبكتك الداخلية. -![مخطط معماري يظهر خدمات الإنترنت في السحابة وأجهزة إنترنت الأشياء على شبكة محلية](../../../../../translated_images/ar/cloud-without-edge.b4da641f6022c95ed6b91fde8b5323abd2f94e0d52073ad54172ae8f5dac90e9.png) +![مخطط معماري يظهر خدمات الإنترنت في السحابة وأجهزة إنترنت الأشياء على شبكة محلية](../../../../../translated_images/ar/cloud-without-edge.b4da641f6022c95e.webp) في الدروس السابقة، كانت لديك أجهزة تجمع البيانات وترسلها إلى السحابة لتحليلها، حيث يتم تشغيل وظائف بدون خادم أو نماذج ذكاء اصطناعي في السحابة. -![مخطط معماري يظهر أجهزة إنترنت الأشياء على شبكة محلية تتصل بأجهزة الحافة، وهذه الأجهزة تتصل بالسحابة](../../../../../translated_images/ar/cloud-with-edge.1e26462c62c126fe150bd15a5714ddf0be599f09bacbad08b85be02b76ea1ae1.png) +![مخطط معماري يظهر أجهزة إنترنت الأشياء على شبكة محلية تتصل بأجهزة الحافة، وهذه الأجهزة تتصل بالسحابة](../../../../../translated_images/ar/cloud-with-edge.1e26462c62c126fe.webp) الحوسبة الطرفية تتضمن نقل بعض خدمات السحابة إلى أجهزة كمبيوتر تعمل على نفس الشبكة مثل أجهزة إنترنت الأشياء، مع التواصل مع السحابة فقط عند الحاجة. على سبيل المثال، يمكنك تشغيل نماذج ذكاء اصطناعي على أجهزة الحافة لتحليل نضج الفواكه، وإرسال التحليلات فقط إلى السحابة، مثل عدد الفواكه الناضجة مقابل غير الناضجة. @@ -85,7 +85,7 @@ ## Azure IoT Edge -![شعار Azure IoT Edge](../../../../../translated_images/ar/azure-iot-edge-logo.c1c076749b5cba2e8755262fadc2f19ca1146b948d76990b1229199ac2292d79.png) +![شعار Azure IoT Edge](../../../../../translated_images/ar/azure-iot-edge-logo.c1c076749b5cba2e.webp) Azure IoT Edge هو خدمة يمكن أن تساعدك في نقل أعباء العمل من السحابة إلى الحافة. يمكنك إعداد جهاز كجهاز طرفي، ومن السحابة يمكنك نشر التعليمات البرمجية إلى هذا الجهاز الطرفي. هذا يسمح لك بمزج قدرات السحابة والحافة. @@ -99,7 +99,7 @@ IoT Edge مدمج في IoT Hub، لذا يمكنك إدارة الأجهزة ا IoT Edge يشغل التعليمات البرمجية من *الحاويات* - تطبيقات مستقلة يتم تشغيلها بمعزل عن باقي التطبيقات على جهاز الكمبيوتر الخاص بك. عندما تقوم بتشغيل حاوية، فإنها تعمل كجهاز كمبيوتر منفصل يعمل داخل جهاز الكمبيوتر الخاص بك، مع برمجياته وخدماته وتطبيقاته الخاصة. معظم الوقت، لا يمكن للحاويات الوصول إلى أي شيء على جهاز الكمبيوتر الخاص بك إلا إذا اخترت مشاركة أشياء مثل مجلد مع الحاوية. الحاوية بعد ذلك تعرض الخدمات عبر منفذ مفتوح يمكنك الاتصال به أو عرضه على شبكتك. -![طلب ويب يتم إعادة توجيهه إلى حاوية](../../../../../translated_images/ar/container-web-browser.4ee81dd4f0d8838ce622b2a0d600b6a4322b5d4fe43159facd87b7b34f84d66a.png) +![طلب ويب يتم إعادة توجيهه إلى حاوية](../../../../../translated_images/ar/container-web-browser.4ee81dd4f0d8838c.webp) على سبيل المثال، يمكنك أن تكون لديك حاوية بها موقع ويب يعمل على المنفذ 80، وهو المنفذ الافتراضي لـ HTTP، ويمكنك بعد ذلك عرضه من جهاز الكمبيوتر الخاص بك أيضًا على المنفذ 80. @@ -195,11 +195,11 @@ IoT Edge يشغل التعليمات البرمجية من *الحاويات* - ## إعداد الحاوية للنشر -![الحاويات تُبنى ثم تُدفع إلى سجل الحاويات، ثم تُنشر من سجل الحاويات إلى جهاز الحافة باستخدام IoT Edge](../../../../../translated_images/ar/container-edge-flow.c246050dd60ceefdb6ace026a4ce5c6aa4112bb5898ae23fbb2ab4be29ae3e1b.png) +![الحاويات تُبنى ثم تُدفع إلى سجل الحاويات، ثم تُنشر من سجل الحاويات إلى جهاز الحافة باستخدام IoT Edge](../../../../../translated_images/ar/container-edge-flow.c246050dd60ceefd.webp) بمجرد تنزيل النموذج الخاص بك، يجب بناؤه في حاوية، ثم دفعه إلى سجل الحاويات - وهو موقع عبر الإنترنت حيث يمكنك تخزين الحاويات. يمكن لـ IoT Edge بعد ذلك تنزيل الحاوية من السجل ودفعها إلى جهازك. -![شعار Azure Container Registry](../../../../../translated_images/ar/azure-container-registry-logo.09494206991d4b295025ebff7d4e2900325e527a59184ffbc8464b6ab59654be.png) +![شعار Azure Container Registry](../../../../../translated_images/ar/azure-container-registry-logo.09494206991d4b29.webp) سجل الحاويات الذي ستستخدمه في هذا الدرس هو Azure Container Registry. هذه ليست خدمة مجانية، لذا لتوفير المال تأكد من [تنظيف مشروعك](../../../clean-up.md) بمجرد الانتهاء. diff --git a/translations/ar/4-manufacturing/lessons/4-trigger-fruit-detector/README.md b/translations/ar/4-manufacturing/lessons/4-trigger-fruit-detector/README.md index 30da0c843..fd117e583 100644 --- a/translations/ar/4-manufacturing/lessons/4-trigger-fruit-detector/README.md +++ b/translations/ar/4-manufacturing/lessons/4-trigger-fruit-detector/README.md @@ -1,6 +1,6 @@ # تشغيل الكشف عن جودة الفاكهة باستخدام مستشعر -![نظرة عامة على هذا الدرس](../../../../../translated_images/ar/lesson-18.92c32ed1d354caa5a54baa4032cf0b172d4655e8e326ad5d46c558a0def15365.jpg) +![نظرة عامة على هذا الدرس](../../../../../translated_images/ar/lesson-18.92c32ed1d354caa5.webp) > رسم توضيحي بواسطة [نيتيا ناراسيمهان](https://github.com/nitya). انقر على الصورة للحصول على نسخة أكبر. @@ -39,7 +39,7 @@ ### بنية مرجعية لإنترنت الأشياء -![بنية مرجعية لإنترنت الأشياء](../../../../../translated_images/ar/iot-reference-architecture.2278b98b55c6d4e89bde18eada3688d893861d43507641804dd2f9d3079cfaa0.png) +![بنية مرجعية لإنترنت الأشياء](../../../../../translated_images/ar/iot-reference-architecture.2278b98b55c6d4e8.webp) يوضح الرسم البياني أعلاه بنية مرجعية لإنترنت الأشياء. @@ -49,7 +49,7 @@ * **الرؤى** تأتي من التطبيقات بدون خادم، أو من التحليلات التي تُجرى على البيانات المخزنة. * **الإجراءات** يمكن أن تكون أوامر تُرسل إلى الأجهزة، أو تصور البيانات للسماح للبشر باتخاذ قرارات. -![بنية مرجعية لإنترنت الأشياء باستخدام Azure](../../../../../translated_images/ar/iot-reference-architecture-azure.0b8d2161af924cb18ae48a8558a19541cca47f27264851b5b7e56d7b8bb372ac.png) +![بنية مرجعية لإنترنت الأشياء باستخدام Azure](../../../../../translated_images/ar/iot-reference-architecture-azure.0b8d2161af924cb1.webp) يوضح الرسم البياني أعلاه بعض المكونات والخدمات التي تمت تغطيتها حتى الآن في هذه الدروس وكيفية ارتباطها ببعضها في بنية مرجعية لإنترنت الأشياء. @@ -89,7 +89,7 @@ ### إنشاء نموذج أولي لتطبيقك -![بنية مرجعية لإنترنت الأشياء لفحص جودة الفاكهة](../../../../../translated_images/ar/iot-reference-architecture-fruit-quality.cc705f121c3b6fa71c800d9630935ac34bc08223a04601e35f41d5e9b5dd5207.png) +![بنية مرجعية لإنترنت الأشياء لفحص جودة الفاكهة](../../../../../translated_images/ar/iot-reference-architecture-fruit-quality.cc705f121c3b6fa7.webp) يوضح الرسم البياني أعلاه بنية مرجعية لهذا التطبيق النموذجي. @@ -124,7 +124,7 @@ يحتوي كاشف الفاكهة النموذجي على مكونات متعددة تتواصل مع بعضها البعض. -![المكونات التي تتواصل مع بعضها البعض](../../../../../translated_images/ar/fruit-quality-detector-message-flow.adf2a65da8fd8741ac7af11361574de89adc126785d67606bb4d2ec00467e380.png) +![المكونات التي تتواصل مع بعضها البعض](../../../../../translated_images/ar/fruit-quality-detector-message-flow.adf2a65da8fd8741.webp) * مستشعر القرب يقيس المسافة إلى قطعة الفاكهة ويرسلها إلى IoT Hub * الأمر للتحكم في الكاميرا يأتي من IoT Hub إلى جهاز الكاميرا diff --git a/translations/ar/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md b/translations/ar/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md index dad36d763..df76bc269 100644 --- a/translations/ar/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md +++ b/translations/ar/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md @@ -20,7 +20,7 @@ قم بتوصيل مستشعر Time of Flight. -![مستشعر Time of Flight من نوع Grove](../../../../../translated_images/ar/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![مستشعر Time of Flight من نوع Grove](../../../../../translated_images/ar/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. أدخل أحد طرفي كابل Grove في المقبس الموجود على مستشعر Time of Flight. لن يدخل إلا بطريقة واحدة. diff --git a/translations/ar/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md b/translations/ar/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md index bfc376654..022a67dc1 100644 --- a/translations/ar/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md +++ b/translations/ar/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md @@ -36,11 +36,11 @@ 1. اختر زر **Add** لإنشاء مستشعر المسافة. - ![إعدادات مستشعر المسافة](../../../../../translated_images/ar/counterfit-create-distance-sensor.967c9fb98f27888d95920c9784d004c972490eb71f70397fe13bd70a79a879a3.png) + ![إعدادات مستشعر المسافة](../../../../../translated_images/ar/counterfit-create-distance-sensor.967c9fb98f27888d.webp) سيتم إنشاء مستشعر المسافة وسيظهر في قائمة المستشعرات. - ![تم إنشاء مستشعر المسافة](../../../../../translated_images/ar/counterfit-distance-sensor.079eefeeea0b68afc36431ce8fcbe2f09a7e4916ed1cd5cb30e696db53bc18fa.png) + ![تم إنشاء مستشعر المسافة](../../../../../translated_images/ar/counterfit-distance-sensor.079eefeeea0b68af.webp) ## برمجة مستشعر المسافة diff --git a/translations/ar/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md b/translations/ar/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md index c4cf09e3e..22f19e861 100644 --- a/translations/ar/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md +++ b/translations/ar/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md @@ -20,7 +20,7 @@ قم بتوصيل مستشعر Time of Flight. -![مستشعر Grove Time of Flight](../../../../../translated_images/ar/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![مستشعر Grove Time of Flight](../../../../../translated_images/ar/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. أدخل أحد طرفي كابل Grove في المقبس الموجود على مستشعر Time of Flight. لن يدخل إلا بطريقة واحدة. diff --git a/translations/ar/5-retail/lessons/1-train-stock-detector/README.md b/translations/ar/5-retail/lessons/1-train-stock-detector/README.md index 55208a89d..90eb17471 100644 --- a/translations/ar/5-retail/lessons/1-train-stock-detector/README.md +++ b/translations/ar/5-retail/lessons/1-train-stock-detector/README.md @@ -1,6 +1,6 @@ # تدريب كاشف المخزون -![رسم توضيحي لهذه الدرس](../../../../../translated_images/ar/lesson-19.cf6973cecadf080c4b526310620dc4d6f5994c80fb0139c6f378cc9ca2d435cd.jpg) +![رسم توضيحي لهذه الدرس](../../../../../translated_images/ar/lesson-19.cf6973cecadf080c.webp) > رسم توضيحي بواسطة [نيتيا ناراسيمهان](https://github.com/nitya). انقر على الصورة للحصول على نسخة أكبر. @@ -36,7 +36,7 @@ تصنيف الصور يتعلق بتصنيف الصورة ككل - ما هي احتمالية أن تتطابق الصورة بأكملها مع كل علامة. تحصل على احتمالات لكل علامة تم استخدامها لتدريب النموذج. -![تصنيف الصور للمكسرات ومعجون الطماطم](../../../../../translated_images/ar/image-classifier-cashews-tomato.bc2e16ab8f05cf9ac0f59f73e32efc4227f9a5b601b90b2c60f436694547a965.png) +![تصنيف الصور للمكسرات ومعجون الطماطم](../../../../../translated_images/ar/image-classifier-cashews-tomato.bc2e16ab8f05cf9a.webp) في المثال أعلاه، تم تصنيف صورتين باستخدام نموذج تم تدريبه لتصنيف عبوات المكسرات أو علب معجون الطماطم. الصورة الأولى هي عبوة مكسرات، ولديها نتيجتان من مصنف الصور: @@ -60,7 +60,7 @@ > 🎓 *صناديق الإحاطة* هي الصناديق المحيطة بالكائن. -![كشف الكائنات للمكسرات ومعجون الطماطم](../../../../../translated_images/ar/object-detector-cashews-tomato.1af7c26686b4db0e709754aeb196f4e73271f54e2085db3bcccb70d4a0d84d97.png) +![كشف الكائنات للمكسرات ومعجون الطماطم](../../../../../translated_images/ar/object-detector-cashews-tomato.1af7c26686b4db0e.webp) الصورة أعلاه تحتوي على عبوة مكسرات وثلاث علب من معجون الطماطم. كاشف الكائنات اكتشف المكسرات، وأعاد صندوق الإحاطة الذي يحتوي على المكسرات مع النسبة المئوية لاحتمالية أن يحتوي الصندوق على الكائن، في هذه الحالة 97.6%. كما اكتشف كاشف الكائنات ثلاث علب من معجون الطماطم، وقدم ثلاثة صناديق إحاطة منفصلة، واحد لكل علبة مكتشفة، ولكل منها نسبة مئوية لاحتمالية أن يحتوي الصندوق على علبة معجون الطماطم. @@ -111,7 +111,7 @@ عند إنشاء مشروعك، تأكد من استخدام مورد `stock-detector-training` الذي أنشأته سابقًا. استخدم نوع المشروع *كشف الكائنات*، والنطاق *المنتجات على الأرفف*. - ![إعدادات مشروع Custom Vision مع الاسم المحدد إلى fruit-quality-detector، بدون وصف، المورد المحدد إلى fruit-quality-detector-training، نوع المشروع المحدد إلى التصنيف، أنواع التصنيف المحددة إلى متعدد الفئات والنطاقات المحددة إلى الطعام](../../../../../translated_images/ar/custom-vision-create-object-detector-project.32d4fb9aa8e7e7375f8a799bfce517aca970f2cb65e42d4245c5e635c734ab29.png) + ![إعدادات مشروع Custom Vision مع الاسم المحدد إلى fruit-quality-detector، بدون وصف، المورد المحدد إلى fruit-quality-detector-training، نوع المشروع المحدد إلى التصنيف، أنواع التصنيف المحددة إلى متعدد الفئات والنطاقات المحددة إلى الطعام](../../../../../translated_images/ar/custom-vision-create-object-detector-project.32d4fb9aa8e7e737.webp) ✅ النطاق "المنتجات على الأرفف" مخصص بشكل خاص لاكتشاف المخزون على أرفف المتاجر. اقرأ المزيد عن النطاقات المختلفة في [مستندات اختيار النطاق على مستندات Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/select-domain?WT.mc_id=academic-17441-jabenn#object-detection) @@ -133,11 +133,11 @@ 1. اتبع [قسم تحميل الصور ووضع العلامات في دليل البدء السريع لبناء كاشف كائنات على مستندات Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/get-started-build-detector?WT.mc_id=academic-17441-jabenn#upload-and-tag-images) لتحميل صور التدريب الخاصة بك. قم بإنشاء علامات ذات صلة بناءً على أنواع الكائنات التي تريد كشفها. - ![حوارات التحميل التي تعرض تحميل صور الموز الناضج وغير الناضج](../../../../../translated_images/ar/image-upload-object-detector.77c7892c3093cb59b79018edecd678749a75d71a099bc8a2d2f2f76320f88a5b.png) + ![حوارات التحميل التي تعرض تحميل صور الموز الناضج وغير الناضج](../../../../../translated_images/ar/image-upload-object-detector.77c7892c3093cb59.webp) عند رسم صناديق الإحاطة للكائنات، اجعلها ضيقة حول الكائن. قد يستغرق الأمر بعض الوقت لتحديد جميع الصور، ولكن الأداة ستكتشف ما تعتقد أنه صناديق الإحاطة، مما يجعل العملية أسرع. - ![وضع علامات على معجون الطماطم](../../../../../translated_images/ar/object-detector-tag-tomato-paste.f47c362fb0f0eb582f3bc68cf3855fb43a805106395358d41896a269c210b7b4.png) + ![وضع علامات على معجون الطماطم](../../../../../translated_images/ar/object-detector-tag-tomato-paste.f47c362fb0f0eb58.webp) > 💁 إذا كان لديك أكثر من 15 صورة لكل كائن، يمكنك التدريب بعد 15 صورة ثم استخدام ميزة **العلامات المقترحة**. ستستخدم هذه الميزة النموذج المدرب لاكتشاف الكائنات في الصور غير الموسومة. يمكنك بعد ذلك تأكيد الكائنات المكتشفة، أو رفضها وإعادة رسم صناديق الإحاطة. يمكن أن يوفر هذا *الكثير* من الوقت. @@ -155,7 +155,7 @@ 1. استخدم زر **الاختبار السريع** لتحميل صور الاختبار والتحقق من اكتشاف الكائنات. استخدم صور الاختبار التي أنشأتها سابقًا، وليس أيًا من الصور التي استخدمتها للتدريب. - ![تم اكتشاف 3 علب من معجون الطماطم باحتمالات 38%، 35.5% و34.6%](../../../../../translated_images/ar/object-detector-detected-tomato-paste.52656fe87af4c37b4ee540526d63e73ed075da2e54a9a060aa528e0c562fb1b6.png) + ![تم اكتشاف 3 علب من معجون الطماطم باحتمالات 38%، 35.5% و34.6%](../../../../../translated_images/ar/object-detector-detected-tomato-paste.52656fe87af4c37b.webp) 1. جرب جميع صور الاختبار التي لديك وراقب الاحتمالات. diff --git a/translations/ar/5-retail/lessons/2-check-stock-device/README.md b/translations/ar/5-retail/lessons/2-check-stock-device/README.md index 12e262c3d..1693b7a5d 100644 --- a/translations/ar/5-retail/lessons/2-check-stock-device/README.md +++ b/translations/ar/5-retail/lessons/2-check-stock-device/README.md @@ -1,6 +1,6 @@ # التحقق من المخزون باستخدام جهاز إنترنت الأشياء -![رسم توضيحي لهذا الدرس](../../../../../translated_images/ar/lesson-20.0211df9551a8abb300fc8fcf7dc2789468dea2eabe9202273ac077b0ba37f15e.jpg) +![رسم توضيحي لهذا الدرس](../../../../../translated_images/ar/lesson-20.0211df9551a8abb3.webp) > رسم توضيحي بواسطة [نيتيا ناراسيمهان](https://github.com/nitya). اضغط على الصورة للحصول على نسخة أكبر. @@ -62,7 +62,7 @@ 1. اضغط على زر **Publish** للنسخة. - ![زر النشر](../../../../../translated_images/ar/custom-vision-object-detector-publish-button.34ee379fc650ccb9856c3868d0003f413b9529f102fc73c37168c98d721cc293.png) + ![زر النشر](../../../../../translated_images/ar/custom-vision-object-detector-publish-button.34ee379fc650ccb9.webp) 1. في مربع الحوار *Publish Model*، قم بتعيين *Prediction resource* إلى المورد `stock-detector-prediction` الذي أنشأته في الدرس السابق. اترك الاسم كما هو `Iteration2`، واضغط على زر **Publish**. @@ -76,7 +76,7 @@ قم أيضًا بنسخ قيمة *Prediction-Key*. هذه مفتاح آمن يجب تمريره عند استدعاء النموذج. فقط التطبيقات التي تمرر هذا المفتاح يُسمح لها باستخدام النموذج، وأي تطبيقات أخرى يتم رفضها. - ![مربع الحوار الخاص بواجهة برمجة التطبيقات للتنبؤ يظهر الرابط والمفتاح](../../../../../translated_images/ar/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![مربع الحوار الخاص بواجهة برمجة التطبيقات للتنبؤ يظهر الرابط والمفتاح](../../../../../translated_images/ar/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ عندما يتم نشر نسخة جديدة، سيكون لها اسم مختلف. كيف تعتقد أنه يمكنك تغيير النسخة التي يستخدمها جهاز إنترنت الأشياء؟ diff --git a/translations/ar/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md b/translations/ar/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md index 97d31bbf3..ae75ebdec 100644 --- a/translations/ar/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md +++ b/translations/ar/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md @@ -67,7 +67,7 @@ ستتمكن من رؤية الصورة التي تم التقاطها، وهذه القيم في علامة التبويب **Predictions** في Custom Vision. - ![4 علب من معجون الطماطم على رف مع توقعات للكشف الأربعة بنسبة 35.8%، 33.5%، 25.7% و16.6%](../../../../../translated_images/ar/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![4 علب من معجون الطماطم على رف مع توقعات للكشف الأربعة بنسبة 35.8%، 33.5%، 25.7% و16.6%](../../../../../translated_images/ar/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 يمكنك العثور على هذا الكود في المجلد [code-detect/pi](../../../../../5-retail/lessons/2-check-stock-device/code-detect/pi) أو [code-detect/virtual-iot-device](../../../../../5-retail/lessons/2-check-stock-device/code-detect/virtual-iot-device). diff --git a/translations/ar/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md b/translations/ar/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md index bd3fce36a..ede619e3c 100644 --- a/translations/ar/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md +++ b/translations/ar/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md @@ -95,7 +95,7 @@ ستتمكن من رؤية الصورة التي تم التقاطها، وهذه القيم في علامة التبويب **Predictions** في Custom Vision. - ![4 علب من معجون الطماطم على رف مع توقعات لـ 4 اكتشافات بنسبة 35.8%، 33.5%، 25.7% و16.6%](../../../../../translated_images/ar/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![4 علب من معجون الطماطم على رف مع توقعات لـ 4 اكتشافات بنسبة 35.8%، 33.5%، 25.7% و16.6%](../../../../../translated_images/ar/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 يمكنك العثور على هذا الكود في مجلد [code-detect/wio-terminal](../../../../../5-retail/lessons/2-check-stock-device/code-detect/wio-terminal). diff --git a/translations/ar/6-consumer/lessons/1-speech-recognition/README.md b/translations/ar/6-consumer/lessons/1-speech-recognition/README.md index 7e9ff0333..25923f56d 100644 --- a/translations/ar/6-consumer/lessons/1-speech-recognition/README.md +++ b/translations/ar/6-consumer/lessons/1-speech-recognition/README.md @@ -1,6 +1,6 @@ # التعرف على الكلام باستخدام جهاز إنترنت الأشياء -![نظرة عامة على هذا الدرس](../../../../../translated_images/ar/lesson-21.e34de51354d6606fb5ee08d8c89d0222eea0a2a7aaf744a8805ae847c4f69dc4.jpg) +![نظرة عامة على هذا الدرس](../../../../../translated_images/ar/lesson-21.e34de51354d6606f.webp) > رسم توضيحي بواسطة [نيتيا ناراسيمهان](https://github.com/nitya). اضغط على الصورة للحصول على نسخة أكبر. @@ -51,7 +51,7 @@ الميكروفونات الديناميكية لا تحتاج إلى طاقة للعمل، حيث يتم إنشاء الإشارة الكهربائية بالكامل من الميكروفون. - ![باتي سميث تغني في ميكروفون Shure SM58 (نوع ديناميكي قلبي)](../../../../../translated_images/ar/dynamic-mic.8babac890a2d80dfb0874b5bf37d4b851fe2aeb9da6fd72945746176978bf3bb.jpg) + ![باتي سميث تغني في ميكروفون Shure SM58 (نوع ديناميكي قلبي)](../../../../../translated_images/ar/dynamic-mic.8babac890a2d80df.webp) * الشريطية - الميكروفونات الشريطية تشبه الميكروفونات الديناميكية، إلا أنها تحتوي على شريط معدني بدلاً من غشاء. يتحرك هذا الشريط في مجال مغناطيسي، مما يولد تيارًا كهربائيًا. مثل الميكروفونات الديناميكية، الميكروفونات الشريطية لا تحتاج إلى طاقة للعمل. @@ -59,11 +59,11 @@ * المكثفة - تحتوي الميكروفونات المكثفة على غشاء معدني رقيق ولوحة خلفية معدنية ثابتة. يتم تطبيق الكهرباء على كلاهما، وعندما يهتز الغشاء، تتغير الشحنة الساكنة بين اللوحتين، مما يولد إشارة. تحتاج الميكروفونات المكثفة إلى طاقة للعمل - تُعرف باسم *الطاقة الوهمية*. - ![ميكروفون مكثف صغير C451B من AKG Acoustics](../../../../../translated_images/ar/condenser-mic.6f6ed5b76ca19e0ec3fd0c544601542d4479a6cb7565db336de49fbbf69f623e.jpg) + ![ميكروفون مكثف صغير C451B من AKG Acoustics](../../../../../translated_images/ar/condenser-mic.6f6ed5b76ca19e0e.webp) * MEMS - أنظمة الميكروفونات الكهروميكانيكية الدقيقة، أو MEMS، هي ميكروفونات على شريحة. تحتوي على غشاء حساس للضغط محفور على شريحة سيليكون، وتعمل بشكل مشابه للميكروفون المكثف. يمكن أن تكون هذه الميكروفونات صغيرة جدًا ومتكاملة في الدوائر. - ![ميكروفون MEMS على لوحة دائرة](../../../../../translated_images/ar/mems-microphone.80574019e1f5e4d9ee72fed720ecd25a39fc2969c91355d17ebb24ba4159e4c4.png) + ![ميكروفون MEMS على لوحة دائرة](../../../../../translated_images/ar/mems-microphone.80574019e1f5e4d9.webp) في الصورة أعلاه، الشريحة المسمى **LEFT** هي ميكروفون MEMS، مع غشاء صغير أقل من ملليمتر عرضًا. @@ -159,7 +159,7 @@ ## تحويل الكلام إلى نص -![شعار خدمات الكلام](../../../../../translated_images/ar/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![شعار خدمات الكلام](../../../../../translated_images/ar/azure-speech-logo.a1f08c4befb0159f.webp) تمامًا كما هو الحال مع تصنيف الصور في مشروع سابق، هناك خدمات ذكاء اصطناعي مُعدة مسبقًا يمكنها أخذ الكلام كملف صوتي وتحويله إلى نص. إحدى هذه الخدمات هي خدمة الكلام، وهي جزء من خدمات الإدراك، خدمات الذكاء الاصطناعي المُعدة مسبقًا التي يمكنك استخدامها في تطبيقاتك. diff --git a/translations/ar/6-consumer/lessons/1-speech-recognition/pi-audio.md b/translations/ar/6-consumer/lessons/1-speech-recognition/pi-audio.md index df8a0db32..51736dbb0 100644 --- a/translations/ar/6-consumer/lessons/1-speech-recognition/pi-audio.md +++ b/translations/ar/6-consumer/lessons/1-speech-recognition/pi-audio.md @@ -16,13 +16,13 @@ #### المهمة - توصيل الزر -![زر Grove](../../../../../translated_images/ar/grove-button.a70cfbb809a8563681003250cf5b06d68cdcc68624f9e2f493d5a534ae2da1e5.png) +![زر Grove](../../../../../translated_images/ar/grove-button.a70cfbb809a85636.webp) 1. أدخل أحد طرفي كابل Grove في المقبس الموجود على وحدة الزر. لن يدخل إلا في اتجاه واحد. 1. مع إيقاف تشغيل Raspberry Pi، قم بتوصيل الطرف الآخر من كابل Grove بالمقبس الرقمي المسمى **D5** على قاعدة Grove Base Hat المثبتة على Pi. هذا المقبس هو الثاني من اليسار في صف المقابس بجانب دبابيس GPIO. -![زر Grove متصل بالمقبس D5](../../../../../translated_images/ar/pi-button.c7a1a4f55943341ce1baf1057658e9a205804d4131d258e820c93f951df0abf3.png) +![زر Grove متصل بالمقبس D5](../../../../../translated_images/ar/pi-button.c7a1a4f55943341c.webp) ## التقاط الصوت diff --git a/translations/ar/6-consumer/lessons/1-speech-recognition/pi-microphone.md b/translations/ar/6-consumer/lessons/1-speech-recognition/pi-microphone.md index 7333e1af3..53fe32cd2 100644 --- a/translations/ar/6-consumer/lessons/1-speech-recognition/pi-microphone.md +++ b/translations/ar/6-consumer/lessons/1-speech-recognition/pi-microphone.md @@ -34,7 +34,7 @@ 1. إذا كنت تستخدم ReSpeaker 2-Mics Pi HAT، يمكنك إزالة قاعدة Grove، ثم تثبيت ReSpeaker HAT مكانها. - ![Raspberry Pi مع ReSpeaker HAT](../../../../../translated_images/ar/pi-respeaker-hat.f00fabe7dd039a93e2e0aa0fc946c9af0c6a9eb17c32fa1ca097fb4e384f69f0.png) + ![Raspberry Pi مع ReSpeaker HAT](../../../../../translated_images/ar/pi-respeaker-hat.f00fabe7dd039a93.webp) ستحتاج إلى زر Grove لاحقًا في هذا الدرس، ولكن يوجد زر مدمج في هذا HAT، لذا لا حاجة لقاعدة Grove. diff --git a/translations/ar/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md b/translations/ar/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md index 77fa46561..62b42ac6a 100644 --- a/translations/ar/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md +++ b/translations/ar/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md @@ -10,7 +10,7 @@ ✅ اقرأ المزيد عن DMA على [صفحة الوصول المباشر للذاكرة على ويكيبيديا](https://wikipedia.org/wiki/Direct_memory_access). -![الصوت من الميكروفون يذهب إلى ADC ثم إلى DMAC. يكتب هذا إلى أحد المخازن. عندما يمتلئ هذا المخزن، يتم معالجته ويكتب DMAC إلى مخزن آخر](../../../../../translated_images/ar/dmac-adc-buffers.4509aee49145c90bc2e1be472b8ed2ddfcb2b6a81ad3e559114aca55f5fff759.png) +![الصوت من الميكروفون يذهب إلى ADC ثم إلى DMAC. يكتب هذا إلى أحد المخازن. عندما يمتلئ هذا المخزن، يتم معالجته ويكتب DMAC إلى مخزن آخر](../../../../../translated_images/ar/dmac-adc-buffers.4509aee49145c90b.webp) يمكن لـ DMAC التقاط الصوت من ADC بفواصل زمنية ثابتة، مثل 16,000 مرة في الثانية للصوت عند 16KHz. يمكنه كتابة هذه البيانات الملتقطة إلى مخزن ذاكرة مخصص مسبقًا، وعندما يمتلئ، يصبح متاحًا للكود الخاص بك لمعالجته. استخدام هذه الذاكرة يمكن أن يؤخر التقاط الصوت، ولكن يمكنك إعداد مخازن متعددة. يكتب DMAC إلى المخزن 1، ثم عندما يمتلئ، يُعلم الكود الخاص بك بمعالجة المخزن 1، بينما يكتب DMAC إلى المخزن 2. عندما يمتلئ المخزن 2، يُعلم الكود الخاص بك، ويعود إلى الكتابة في المخزن 1. بهذه الطريقة، طالما أنك تعالج كل مخزن في وقت أقل من الوقت الذي يستغرقه ملء واحد، فلن تفقد أي بيانات. diff --git a/translations/ar/6-consumer/lessons/2-language-understanding/README.md b/translations/ar/6-consumer/lessons/2-language-understanding/README.md index 167d4f237..5aae398a9 100644 --- a/translations/ar/6-consumer/lessons/2-language-understanding/README.md +++ b/translations/ar/6-consumer/lessons/2-language-understanding/README.md @@ -1,6 +1,6 @@ # فهم اللغة -![نظرة عامة على هذا الدرس](../../../../../translated_images/ar/lesson-22.6148ea28500d9e00c396aaa2649935fb6641362c8f03d8e5e90a676977ab01dd.jpg) +![نظرة عامة على هذا الدرس](../../../../../translated_images/ar/lesson-22.6148ea28500d9e00.webp) > رسم توضيحي بواسطة [نيتيا ناراسيمهان](https://github.com/nitya). اضغط على الصورة لنسخة أكبر. @@ -46,7 +46,7 @@ ## إنشاء نموذج لفهم اللغة -![شعار LUIS](../../../../../translated_images/ar/luis-logo.5cb4f3e88c020ee6df4f614e8831f4a4b6809a7247bf52085fb48d629ef9be52.png) +![شعار LUIS](../../../../../translated_images/ar/luis-logo.5cb4f3e88c020ee6.webp) يمكنك إنشاء نماذج لفهم اللغة باستخدام LUIS، وهي خدمة لفهم اللغة مقدمة من مايكروسوفت كجزء من خدمات Cognitive Services. @@ -169,7 +169,7 @@ 1. أثناء إدخال كل مثال، سيبدأ LUIS في اكتشاف الكيانات، وسيقوم بتسطيرها ووضع تسميات عليها. - ![الأمثلة مع الأرقام ووحدات الوقت مسطرة بواسطة LUIS](../../../../../translated_images/ar/luis-intent-examples.25716580b2d2723cf1bafdf277d015c7f046d8cfa20f27bddf3a0873ec45fab7.png) + ![الأمثلة مع الأرقام ووحدات الوقت مسطرة بواسطة LUIS](../../../../../translated_images/ar/luis-intent-examples.25716580b2d2723c.webp) ### المهمة - تدريب واختبار النموذج diff --git a/translations/ar/6-consumer/lessons/3-spoken-feedback/README.md b/translations/ar/6-consumer/lessons/3-spoken-feedback/README.md index c7ebdce6b..5aee4cf44 100644 --- a/translations/ar/6-consumer/lessons/3-spoken-feedback/README.md +++ b/translations/ar/6-consumer/lessons/3-spoken-feedback/README.md @@ -1,6 +1,6 @@ # ضبط مؤقت وتقديم ملاحظات صوتية -![نظرة عامة على هذا الدرس في شكل رسم تخطيطي](../../../../../translated_images/ar/lesson-23.f38483e1d4df4828990d3f02d60e46c978b075d384ae7cb4f7bab738e107c850.jpg) +![نظرة عامة على هذا الدرس في شكل رسم تخطيطي](../../../../../translated_images/ar/lesson-23.f38483e1d4df4828.webp) > رسم تخطيطي بواسطة [نيتيا ناراسيمهان](https://github.com/nitya). انقر على الصورة للحصول على نسخة أكبر. diff --git a/translations/ar/6-consumer/lessons/4-multiple-language-support/README.md b/translations/ar/6-consumer/lessons/4-multiple-language-support/README.md index fc8820708..3d271f213 100644 --- a/translations/ar/6-consumer/lessons/4-multiple-language-support/README.md +++ b/translations/ar/6-consumer/lessons/4-multiple-language-support/README.md @@ -1,6 +1,6 @@ # دعم لغات متعددة -![رسم توضيحي للدرس](../../../../../translated_images/ar/lesson-24.4246968ed058510ab275052e87ef9aa89c7b2f938915d103c605c04dc6cd5bb7.jpg) +![رسم توضيحي للدرس](../../../../../translated_images/ar/lesson-24.4246968ed058510a.webp) > رسم توضيحي من [نيتيا ناراسيمهان](https://github.com/nitya). انقر على الصورة لعرض نسخة أكبر. @@ -74,7 +74,7 @@ ### خدمة النطق من الخدمات الإدراكية -![شعار خدمة النطق](../../../../../translated_images/ar/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![شعار خدمة النطق](../../../../../translated_images/ar/azure-speech-logo.a1f08c4befb0159f.webp) تحتوي خدمة النطق التي استخدمتها في الدروس السابقة على قدرات ترجمة للتعرف على الكلام. عند التعرف على الكلام، يمكنك طلب النص الخاص بالكلام ليس فقط باللغة نفسها، ولكن أيضًا بلغات أخرى. @@ -82,7 +82,7 @@ ### خدمة المترجم من الخدمات الإدراكية -![شعار خدمة المترجم](../../../../../translated_images/ar/azure-translator-logo.c6ed3a4a433edfd2f11577eca105412c50b8396b194cbbd730723dd1d0793bcd.png) +![شعار خدمة المترجم](../../../../../translated_images/ar/azure-translator-logo.c6ed3a4a433edfd2.webp) خدمة المترجم هي خدمة ترجمة مخصصة يمكنها ترجمة النصوص من لغة إلى لغة أو أكثر. بالإضافة إلى الترجمة، تدعم مجموعة واسعة من الميزات الإضافية بما في ذلك حجب الألفاظ النابية. كما تتيح لك تقديم ترجمة محددة لكلمة أو جملة معينة، للتعامل مع المصطلحات التي لا تريد ترجمتها، أو التي لها ترجمة معروفة محددة. diff --git a/translations/ar/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md b/translations/ar/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md index f9c0545aa..b132fd17a 100644 --- a/translations/ar/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md +++ b/translations/ar/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md @@ -25,7 +25,7 @@ > > على سبيل المثال، إذا قمت بتدريب LUIS باللغة الإنجليزية، ولكنك ترغب في استخدام الفرنسية كلغة المستخدم، يمكنك ترجمة جمل مثل "اضبط مؤقت لمدة دقيقتين و27 ثانية" من الإنجليزية إلى الفرنسية باستخدام Bing Translate، ثم استخدام زر **الاستماع إلى الترجمة** للتحدث بالترجمة إلى الميكروفون. > - > ![زر الاستماع إلى الترجمة في Bing Translate](../../../../../translated_images/ar/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![زر الاستماع إلى الترجمة في Bing Translate](../../../../../translated_images/ar/bing-translate.348aa796d6efe2a9.webp) 1. أضف مفتاح واجهة برمجة التطبيقات الخاص بخدمة الترجمة أسفل `speech_api_key`: diff --git a/translations/ar/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md b/translations/ar/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md index c221bb36d..1d483ee0f 100644 --- a/translations/ar/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md +++ b/translations/ar/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md @@ -37,7 +37,7 @@ > > على سبيل المثال، إذا قمت بتدريب LUIS باللغة الإنجليزية، ولكنك تريد استخدام الفرنسية كلغة للمستخدم، يمكنك ترجمة جمل مثل "اضبط مؤقتًا لمدة دقيقتين و27 ثانية" من الإنجليزية إلى الفرنسية باستخدام Bing Translate، ثم استخدام زر **الاستماع إلى الترجمة** للتحدث بالترجمة إلى الميكروفون. > - > ![زر الاستماع إلى الترجمة في Bing Translate](../../../../../translated_images/ar/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![زر الاستماع إلى الترجمة في Bing Translate](../../../../../translated_images/ar/bing-translate.348aa796d6efe2a9.webp) 1. استبدل تعريفات `recognizer_config` و`recognizer` بالتالي: diff --git a/translations/ar/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md b/translations/ar/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md index a0605e05e..92b327c79 100644 --- a/translations/ar/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md +++ b/translations/ar/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md @@ -105,7 +105,7 @@ > > على سبيل المثال، إذا قمت بتدريب LUIS باللغة الإنجليزية، ولكنك تريد استخدام الفرنسية كلغة المستخدم، يمكنك ترجمة جمل مثل "اضبط مؤقتًا لمدة دقيقتين و27 ثانية" من الإنجليزية إلى الفرنسية باستخدام Bing Translate، ثم استخدام زر **Listen translation** للتحدث بالترجمة إلى الميكروفون الخاص بك. > - > ![زر الاستماع للترجمة على Bing Translate](../../../../../translated_images/ar/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![زر الاستماع للترجمة على Bing Translate](../../../../../translated_images/ar/bing-translate.348aa796d6efe2a9.webp) 1. أضف مفتاح API الخاص بخدمة الترجمة والموقع أسفل `SPEECH_LOCATION`: diff --git a/translations/ar/README.md b/translations/ar/README.md index a2e75c84e..2bc4a0a2a 100644 --- a/translations/ar/README.md +++ b/translations/ar/README.md @@ -8,144 +8,154 @@ [![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/) -### انضم إلى مجتمع Azure AI Foundry +### انضم إلى مجتمع Azure AI Foundry -إذا واجهت أي عوائق أو كان لديك أي أسئلة حول بناء تطبيقات الذكاء الاصطناعي. انضم إلى المتعلمين الآخرين والمطورين ذوي الخبرة في مناقشات حول MCP. هو مجتمع داعم حيث الأسئلة مرحب بها والمعرفة تُشارك بحرية. +إذا علقت أو كان لديك أي أسئلة حول بناء تطبيقات الذكاء الاصطناعي. انضم إلى المتعلمين والزملاء المطورين ذوي الخبرة في مناقشات حول MCP. إنه مجتمع داعم حيث يتم الترحيب بالأسئلة ويُشارك المعرفة بحرية. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -إذا كان لديك ملاحظات عن المنتج أو أخطاء أثناء البناء زر: +إذا كان لديك ملاحظات على المنتج أو أخطاء أثناء البناء، قم بزيارة: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -اتبع هذه الخطوات للبدء باستخدام هذه الموارد: -1. **انشئ نسخة من المستودع**: اضغط على [![GitHub forks](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) -2. **انسخ المستودع**: `git clone https://github.com/microsoft/IoT-For-Beginners.git` -3. [**انضم إلى Discord الخاص بمصنع مايكروسوفت وقابل الخبراء وزملاء المطورين**](https://discord.com/invite/ByRwuEEgH4) +اتبع هذه الخطوات للبدء في استخدام هذه الموارد: +1. **استنسخ المستودع**: اضغط [![GitHub forks](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) +2. **انسخ المستودع إلى جهازك**: `git clone https://github.com/microsoft/IoT-For-Beginners.git` +3. [**انضم إلى خادم مايكروسوفت فاوندري Discord والتق بخبراء والمطورين الآخرين**](https://discord.com/invite/ByRwuEEgH4) ### 🌐 دعم متعدد اللغات -#### مدعوم عبر GitHub Action (تلقائي ومحدث دائماً) +#### مدعوم عبر GitHub Action (آلي ودائم التحديث) -[العربية](./README.md) | [البنغالية](../bn/README.md) | [البلغارية](../bg/README.md) | [البورمية (ميانمار)](../my/README.md) | [الصينية (المبسطة)](../zh-CN/README.md) | [الصينية (التقليدية، هونغ كونغ)](../zh-HK/README.md) | [الصينية (التقليدية، ماكاو)](../zh-MO/README.md) | [الصينية (التقليدية، تايوان)](../zh-TW/README.md) | [الكرواتية](../hr/README.md) | [التشيكية](../cs/README.md) | [الدانماركية](../da/README.md) | [الهولندية](../nl/README.md) | [الإستونية](../et/README.md) | [الفنلندية](../fi/README.md) | [الفرنسية](../fr/README.md) | [الألمانية](../de/README.md) | [اليونانية](../el/README.md) | [العبرية](../he/README.md) | [الهندية](../hi/README.md) | [الهنغارية](../hu/README.md) | [الإندونيسية](../id/README.md) | [الإيطالية](../it/README.md) | [اليابانية](../ja/README.md) | [الكنادية](../kn/README.md) | [الكورية](../ko/README.md) | [الليتوانية](../lt/README.md) | [الماليزية](../ms/README.md) | [الماليالية](../ml/README.md) | [الماراثية](../mr/README.md) | [النيبالية](../ne/README.md) | [النيجيرية بيدجن](../pcm/README.md) | [النرويجية](../no/README.md) | [الفارسية (اللغة)](../fa/README.md) | [البولندية](../pl/README.md) | [البرتغالية (البرازيل)](../pt-BR/README.md) | [البرتغالية (البرتغال)](../pt-PT/README.md) | [البنجابية (الجرموخي)](../pa/README.md) | [الرومانية](../ro/README.md) | [الروسية](../ru/README.md) | [الصربية (السيريلية)](../sr/README.md) | [السلوفاكية](../sk/README.md) | [السلوفينية](../sl/README.md) | [الإسبانية](../es/README.md) | [السواحيلية](../sw/README.md) | [السويدية](../sv/README.md) | [التاغالوغ (الفلبينية)](../tl/README.md) | [التاميل](../ta/README.md) | [التيلجو](../te/README.md) | [التايلاندية](../th/README.md) | [التركية](../tr/README.md) | [الأوكرانية](../uk/README.md) | [الأردية](../ur/README.md) | [الفيتنامية](../vi/README.md) +[Arabic](./README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) -> **تفضل النسخ محلياً؟** - -> يحتوي هذا المستودع على أكثر من 50 ترجمة لغة مما يزيد حجم التنزيل بشكل كبير. للنسخ بدون الترجمات، استخدم sparse checkout: +> **تفضل الاستنساخ محليًا؟** +> +> يتضمن هذا المستودع أكثر من 50 ترجمة للغات مختلفة مما يزيد من حجم التنزيل بشكل كبير. للاستنساخ بدون الترجمات، استخدم خاصية السحب الجزئي: +> +> **باش / macOS / Linux:** > ```bash > git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git > cd IoT-For-Beginners > git sparse-checkout set --no-cone '/*' '!translations' '!translated_images' > ``` +> +> **CMD (ويندوز):** +> ```cmd +> git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git +> cd IoT-For-Beginners +> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" +> ``` +> > هذا يمنحك كل ما تحتاجه لإكمال الدورة مع تنزيل أسرع بكثير. -# إنترنت الأشياء للمبتدئين - منهج دراسي +# إنترنت الأشياء للمبتدئين - منهاج دراسي -يسعد دعاة سحابة Azure في Microsoft أن يقدموا منهجًا دراسيًا لمدة 12 أسبوعًا يتضمن 24 درسًا كلهم عن أساسيات إنترنت الأشياء. يتضمن كل درس اختبارات قبل وبعد الدرس، تعليمات مكتوبة لإكمال الدرس، حلاً، مهمة والمزيد. تتيح طريقتنا التعليمية المبنية على المشاريع التعلم أثناء البناء، وهي طريقة مثبتة لجعل المهارات الجديدة 'تثبت'. +يسعد مناصرو سحابة Azure في Microsoft أن يقدموا منهاجًا لمدة 12 أسبوعًا مكونًا من 24 درسًا حول أساسيات إنترنت الأشياء. يتضمن كل درس اختبارًا قبل وبعد الدرس وتعليمات مكتوبة لإكمال الدرس وحلًا وتمرينًا والمزيد. تسمح طرائق التعليم القائمة على المشاريع لك بالتعلم أثناء البناء، وهي طريقة مثبتة لجعل المهارات الجديدة "تثبت". -تغطي المشاريع رحلة الطعام من المزرعة إلى المائدة. وهذا يشمل الزراعة، اللوجستيات، التصنيع، البيع بالتجزئة والمستهلك - كلها مجالات صناعية شائعة لأجهزة إنترنت الأشياء. +تغطي المشاريع رحلة الطعام من المزرعة إلى المائدة. يشمل ذلك الزراعة، اللوجستيات، التصنيع، البيع بالتجزئة والمستهلك - جميعها مجالات صناعية شائعة لأجهزة إنترنت الأشياء. ![خريطة طريق للدورة تظهر 24 درسًا تغطي المقدمة، الزراعة، النقل، المعالجة، البيع بالتجزئة والطهي](../../translated_images/ar/Roadmap.bb1dec285dda0eda.webp) -> مذكرة مرسومة بواسطة [Nitya Narasimhan](https://github.com/nitya). اضغط على الصورة لرؤية نسخة أكبر. +> رسالة مرسومة بواسطة [Nitya Narasimhan](https://github.com/nitya). اضغط على الصورة لعرض أكبر. -**شكر كبير للمؤلفين [Jen Fox](https://github.com/jenfoxbot), [Jen Looper](https://github.com/jlooper), [Jim Bennett](https://github.com/jimbobbennett)، وللفنانة المصورة [Nitya Narasimhan](https://github.com/nitya).** +**شكر جزيل لمؤلفينا [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](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/).** +**شكر أيضًا لفريقنا من [سفراء طلاب مايكروسوفت](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/).** تعرف على الفريق! [![فيديو ترويجي](../../images/IOT.gif)](https://youtu.be/-wippUJRi5k) -**صور متحركة بواسطة** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) +**الصورة المتحركة من** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) > 🎥 اضغط على الصورة أعلاه لمشاهدة فيديو عن المشروع! -> **للمدرسين**، لقد أدرجنا [بعض الاقتراحات](for-teachers.md) حول كيفية استخدام هذا المنهج. إذا كنت ترغب بإنشاء دروسك الخاصة، أدرجنا أيضًا [قالب الدرس](lesson-template/README.md). +> **المعلمون**، لقد [أدرجنا بعض الاقتراحات](for-teachers.md) حول كيفية استخدام هذا المنهاج. إذا أردتم إنشاء دروسكم الخاصة، فقد أدرجنا أيضًا [قالب درس](lesson-template/README.md). -> **للطلبة**، لاستخدام هذا المنهج بنفسك، استنسخ المستودع كاملاً وأكمل التمارين بنفسك، ابتداءً من اختبار قبلي للمحاضرة، ثم قراءة المحاضرة وإكمال باقي الأنشطة. حاول إنشاء المشاريع من خلال فهم الدروس بدلاً من نسخ كود الحل؛ مع ذلك يتوفر الكود في مجلد /solutions في كل درس موجه نحو المشاريع. فكرة أخرى هي تكوين مجموعة دراسة مع أصدقائك ومراجعة المحتوى معًا. للدراسة الإضافية، نوصي بـ [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn). +> **الطلاب**، لاستخدام هذا المنهاج بأنفسكم، استنسخوا المستودع الكامل وأكملوا التمارين بأنفسكم، بدءًا باختبار ما قبل المحاضرة، ثم قراءة المحاضرة وإكمال بقية الأنشطة. حاولوا إنشاء المشاريع بفهم الدروس بدلاً من نسخ كود الحل؛ ومع ذلك، فإن الكود متاح في مجلدات /solutions في كل درس يركز على المشروع. فكرة أخرى هي تشكيل مجموعة دراسية مع الأصدقاء ومراجعة المحتوى معًا. لمزيد من الدراسة، نوصي بـ [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn). -للحصول على نظرة عامة بالفيديو عن هذه الدورة، شاهد هذا الفيديو: +لمحة فيديو عن هذه الدورة، شاهدوا هذا الفيديو: [![فيديو ترويجي](https://img.youtube.com/vi/bccEMm8gRuc/0.jpg)](https://youtube.com/watch?v=bccEMm8gRuc "Promo video") > 🎥 اضغط على الصورة أعلاه لمشاهدة فيديو عن المشروع! -## الطريقة التعليمية +## منهجية التعليم -اخترنا مبدأين تعليميين أثناء بناء هذا المنهج: التأكد من كونه معتمدًا على المشاريع وأنه يتضمن اختبارات متكررة. بنهاية هذه السلسلة، سيكون الطلاب قد بنوا نظام مراقبة وري النباتات، متتبع مركبات، إعداد مصنع ذكي لتتبع وفحص الطعام، ومؤقت طهي يتحكم به الصوت، كما سيتعلمون أساسيات إنترنت الأشياء بما في ذلك كيفية كتابة كود الجهاز، الاتصال بالسحابة، تحليل قياسات البيانات وتشغيل الذكاء الاصطناعي على الحافة. +اخترنا مبدأين تربويين أثناء بناء هذا المنهاج: التأكد من أنه قائم على المشاريع ويتضمن اختبارات متكررة. بنهاية هذه السلسلة، سيكون لدى الطلاب نظام مراقبة وري النباتات، متعقب مركبة، إعداد مصنع ذكي لتتبع وفحص الطعام، ومؤقت طهي يتم التحكم به صوتيًا، وسيتعلمون أساسيات إنترنت الأشياء بما في ذلك كيفية كتابة كود الأجهزة، الاتصال بالسحابة، تحليل البيانات عن بعد وتشغيل الذكاء الاصطناعي على الحافة. -من خلال ضمان توافق المحتوى مع المشاريع، يصبح التعلم أكثر جذبًا للطلاب وتزداد فرص احتفاظهم بالمفاهيم. +من خلال ضمان توافق المحتوى مع المشاريع، يصبح التعلّم أكثر جاذبية للطلاب وستزداد القدرة على الاحتفاظ بالمفاهيم. -بالإضافة إلى ذلك، اختبار بسيط قبل الدرس يوجه نية الطالب نحو تعلم موضوع ما، في حين يضمن اختبار آخر بعد الدرس المزيد من الاحتفاظ بالمعلومات. صُمم هذا المنهج ليكون مرنًا وممتعًا ويمكن أخذه كاملاً أو جزئيًا. تبدأ المشاريع صغيرة وتزداد تعقيدًا تدريجياً بنهاية دورة الـ12 أسبوعًا. +بالإضافة إلى ذلك، يحدد اختبار منخفض المخاطر قبل الدرس نية الطالب نحو تعلم موضوع، بينما يضمن اختبار ثاني بعد الدرس المزيد من الاحتفاظ. صُمم هذا المنهاج ليكون مرنًا وممتعًا ويُمكن دراسته كليًا أو جزئيًا. تبدأ المشاريع صغيرة وتزداد تعقيدًا تدريجيًا بنهاية دورة الـ 12 أسبوعًا. -يعتمد كل مشروع على أجهزة فعلية متاحة للطلاب والهواة. يركز كل مشروع على مجال المشروع المحدد، مقدمًا المعرفة الخلفية ذات الصلة. لكي تكون مطورًا ناجحًا، يساعد فهم المجال الذي تحل فيه المشكلات، وتوفير هذه المعرفة الخلفية يسمح للطلاب بالتفكير في حلول إنترنت الأشياء الخاصة بهم وتعلمها في سياق نوع المشكلة الواقعية التي قد يُطلب منهم حلها كمطور إنترنت أشياء. يتعلم الطلاب سبب الحلول التي يبنونها، ويحصلون على تقدير للمستخدم النهائي. +كل مشروع يعتمد على أجهزة مادية متاحة للطلاب وهواة التقنية. يتناول كل مشروع مجال المشروع المحدد، موفرًا المعرفة الخلفية ذات الصلة. لكي تكون مطورًا ناجحًا، من المفيد فهم المجال الذي تحل فيه المشاكل، حيث تتيح هذه المعرفة الخلفية للطلاب التفكير في حلول وإنترنت الأشياء وتعلمهم في سياق نوع المشكلة الواقعية التي قد يُطلب منهم حلها كمطور إنترنت الأشياء. يتعلم الطلاب "لماذا" لحلولهم، ويحصلون على تقدير للمستخدم النهائي. ## الأجهزة +لدينا خياران لأجهزة إنترنت الأشياء لاستخدامها في المشاريع اعتمادًا على التفضيلات الشخصية، ومعرفة لغة البرمجة أو التفضيلات، وأهداف التعلم والتوافر. كما قدمنا نسخة "أجهزة افتراضية" لأولئك الذين لا يمكنهم الوصول إلى الأجهزة، أو يرغبون في التعلم أكثر قبل الالتزام بالشراء. يمكنك قراءة المزيد والعثور على "قائمة تسوق" في [صفحة الأجهزة](./hardware.md)، بما في ذلك روابط لشراء مجموعات كاملة من أصدقائنا في Seeed Studio. -لدينا خياران لأجهزة إنترنت الأشياء لاستخدامها في المشاريع حسب التفضيل الشخصي، معرفة أو تفضيلات لغة البرمجة، أهداف التعلم والتوفر. كما وفرنا نسخة 'افتراضية' للأجهزة لأولئك الذين لا يمتلكون الأجهزة، أو يرغبون في تعلم المزيد قبل الالتزام بالشراء. يمكنك قراءة المزيد والعثور على 'قائمة تسوق' على [صفحة الأجهزة](./hardware.md)، بما في ذلك روابط لشراء مجموعات كاملة من أصدقائنا في Seeed Studio. -> 💁 ابحث عن إرشاداتنا الخاصة بـ [ميثاق السلوك](CODE_OF_CONDUCT.md)، و [المساهمة](CONTRIBUTING.md)، و [الترجمة](TRANSLATIONS.md). نحن نرحب بتعليقاتكم البناءة! +> 💁 يمكنك العثور على [مدونة السلوك](CODE_OF_CONDUCT.md)، و[كيفية المشاركة](CONTRIBUTING.md)، و[إرشادات الترجمة](TRANSLATIONS.md). نحن نرحب بتعليقاتكم البناءة! > -> 🔧 هل تواجه مشاكل؟ اطلع على [دليل استكشاف الأخطاء وإصلاحها](TROUBLESHOOTING.md) للحصول على حلول للمشاكل الشائعة. +> 🔧 هل تواجه مشاكل؟ اطلع على [دليل استكشاف الأخطاء](TROUBLESHOOTING.md) للحصول على حلول للمشكلات الشائعة. ## تتضمن كل درس: -- ملخص مصور +- ملاحظات مرسومة يدويًا - فيديو تكميلي اختياري -- اختبار إحماء ما قبل الدرس -- الدرس المكتوب -- للدروس القائمة على المشاريع، إرشادات خطوة بخطوة حول كيفية بناء المشروع +- اختبار تهيئة قبل الدرس +- الدرس مكتوب +- لدرُوس المشاريع، إرشادات خطوة بخطوة لبناء المشروع - فحوصات المعرفة - تحدي -- قراءة إضافية +- قراءة تكاملية - واجب -- [اختبار ما بعد الدرس](https://ff-quizzes.netlify.app/en/) +- [اختبار بعد الدرس](https://ff-quizzes.netlify.app/en/) -> **ملاحظة حول الاختبارات**: جميع الاختبارات موجودة في مجلد quiz-app، بإجمالي 48 اختبارًا يحتوي كل منها على ثلاثة أسئلة. يتم الربط بينها من داخل الدروس لكن يمكن تشغيل تطبيق الاختبارات محليًا أو نشره على Azure؛ اتبع التعليمات في مجلد `quiz-app`. وهي تخضع للتوطين تدريجيًا. +> **ملاحظة عن الاختبارات**: جميع الاختبارات موجودة في مجلد quiz-app، وهناك 48 اختبارًا إجمالاً، يحتوي كل اختبار على ثلاثة أسئلة. يتم ربطها من داخل الدروس ولكن يمكن تشغيل تطبيق الاختبار محليًا أو نشره على Azure؛ اتبع التعليمات في مجلد `quiz-app`. وهي تُترجم تدريجيًا. ## الدروس -| | اسم المشروع | المفاهيم التي تُدرّس | أهداف التعلم | الدرس المرتبط | -| :---: | :------------------------------------: | :---------------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------: | -| 01 | [البدء](./1-getting-started/README.md) | مقدمة إلى إنترنت الأشياء | تعلّم المبادئ الأساسية لإنترنت الأشياء والمكونات الأساسية لحلول إنترنت الأشياء مثل الحساسات وخدمات السحابة أثناء إعداد جهاز إنترنت الأشياء الأول الخاص بك | [مقدمة إلى إنترنت الأشياء](./1-getting-started/lessons/1-introduction-to-iot/README.md) | -| 02 | [البدء](./1-getting-started/README.md) | تعمق أكثر في إنترنت الأشياء | تعلّم المزيد عن مكونات نظام إنترنت الأشياء، بالإضافة إلى المتحكمات الدقيقة وأجهزة الكمبيوتر ذات اللوحة الواحدة | [تعمق في إنترنت الأشياء](./1-getting-started/lessons/2-deeper-dive/README.md) | -| 03 | [البدء](./1-getting-started/README.md) | التفاعل مع العالم المادي باستخدام الحساسات والمحركات الصغيرة | تعلّم عن الحساسات لجمع البيانات من العالم المادي، والمحركات لإرسال ردود فعل، أثناء بناء ضوء ليلي | [التفاعل مع العالم المادي باستخدام الحساسات والمحركات](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | -| 04 | [البدء](./1-getting-started/README.md) | ربط جهازك بالإنترنت | تعلّم كيفية ربط جهاز إنترنت الأشياء بالإنترنت لإرسال واستقبال الرسائل عن طريق ربط ضوءك الليلي بوسيط MQTT | [ربط جهازك بالإنترنت](./1-getting-started/lessons/4-connect-internet/README.md) | -| 05 | [المزرعة](./2-farm/README.md) | التنبؤ بنمو النبات | تعلّم كيفية التنبؤ بنمو النبات باستخدام بيانات درجة الحرارة التي يلتقطها جهاز إنترنت الأشياء | [التنبؤ بنمو النبات](./2-farm/lessons/1-predict-plant-growth/README.md) | -| 06 | [المزرعة](./2-farm/README.md) | الكشف عن رطوبة التربة | تعلّم كيفية الكشف عن رطوبة التربة ومعايرة حساس رطوبة التربة | [الكشف عن رطوبة التربة](./2-farm/lessons/2-detect-soil-moisture/README.md) | -| 07 | [المزرعة](./2-farm/README.md) | ري النبات تلقائيًا | تعلّم كيفية أتمتة وجدولة الري باستخدام مرحل و MQTT | [ري النبات تلقائيًا](./2-farm/lessons/3-automated-plant-watering/README.md) | -| 08 | [المزرعة](./2-farm/README.md) | نقل نباتك إلى السحابة | تعلّم عن السحابة وخدمات إنترنت الأشياء المستضافة على السحابة وكيفية ربط نباتك بها بدلاً من وسيط MQTT عام | [نقل نباتك إلى السحابة](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | -| 09 | [المزرعة](./2-farm/README.md) | نقل منطق التطبيق الخاص بك إلى السحابة | تعلّم كيفية كتابة منطق تطبيق في السحابة يستجيب لرسائل إنترنت الأشياء | [نقل منطق التطبيق إلى السحابة](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | -| 10 | [المزرعة](./2-farm/README.md) | الحفاظ على أمان نباتك | تعلّم عن الأمان في إنترنت الأشياء وكيفية الحفاظ على أمان نباتك باستخدام المفاتيح والشهادات | [الحفاظ على أمان نباتك](./2-farm/lessons/6-keep-your-plant-secure/README.md) | -| 11 | [النقل](./3-transport/README.md) | تتبع الموقع | تعلّم عن تتبع الموقع بتقنية GPS لأجهزة إنترنت الأشياء | [تتبع الموقع](./3-transport/lessons/1-location-tracking/README.md) | -| 12 | [النقل](./3-transport/README.md) | تخزين بيانات الموقع | تعلّم كيفية تخزين بيانات إنترنت الأشياء ليتم عرضها أو تحليلها لاحقًا | [تخزين بيانات الموقع](./3-transport/lessons/2-store-location-data/README.md) | -| 13 | [النقل](./3-transport/README.md) | عرض بيانات الموقع | تعلّم عن عرض بيانات الموقع على خريطة وكيف تمثل الخرائط العالم الثلاثي الأبعاد الحقيقي في بعدين | [عرض بيانات الموقع](./3-transport/lessons/3-visualize-location-data/README.md) | -| 14 | [النقل](./3-transport/README.md) | المناطق الجغرافية المحمية | تعلّم عن المناطق الجغرافية المحمية وكيف يمكن استخدامها لتنبيهك عندما تكون المركبات في سلسلة التوريد قريبة من وجهتها | [المناطق الجغرافية المحمية](./3-transport/lessons/4-geofences/README.md) | -| 15 | [التصنيع](./4-manufacturing/README.md) | تدريب كاشف جودة الفواكه | تعلّم عن تدريب مصنف الصور في السحابة لاكتشاف جودة الفواكه | [تدريب كاشف جودة الفواكه](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | -| 16 | [التصنيع](./4-manufacturing/README.md) | التحقق من جودة الفواكه من جهاز إنترنت الأشياء | تعلّم عن استخدام كاشف جودة الفواكه الخاص بك من جهاز إنترنت الأشياء | [التحقق من جودة الفواكه من جهاز](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | -| 17 | [التصنيع](./4-manufacturing/README.md) | تشغيل كاشف الفواكه على الحافة | تعلّم عن تشغيل كاشف الفواكه الخاص بك على جهاز إنترنت الأشياء على الحافة | [تشغيل كاشف الفواكه على الحافة](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | -| 18 | [التصنيع](./4-manufacturing/README.md) | تفعيل كشف جودة الفواكه من حساس | تعلّم عن تفعيل كشف جودة الفواكه من حساس | [تفعيل كشف جودة الفواكه من حساس](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | -| 19 | [التجزئة](./5-retail/README.md) | تدريب كاشف المخزون | تعلّم كيفية استخدام كشف الكائنات لتدريب كاشف مخزون لعد المخزون في متجر | [تدريب كاشف المخزون](./5-retail/lessons/1-train-stock-detector/README.md) | -| 20 | [التجزئة](./5-retail/README.md) | التحقق من المخزون من جهاز إنترنت الأشياء | تعلّم كيفية التحقق من المخزون من جهاز إنترنت الأشياء باستخدام نموذج كشف الكائنات | [التحقق من المخزون من جهاز](./5-retail/lessons/2-check-stock-device/README.md) | -| 21 | [المستهلك](./6-consumer/README.md) | التعرف على الصوت باستخدام جهاز إنترنت الأشياء | تعلّم كيفية التعرف على الصوت من جهاز إنترنت الأشياء لبناء مؤقت ذكي | [التعرف على الصوت باستخدام جهاز إنترنت الأشياء](./6-consumer/lessons/1-speech-recognition/README.md) | -| 22 | [المستهلك](./6-consumer/README.md) | فهم اللغة | تعلّم كيفية فهم الجمل المنطوقة لجهاز إنترنت الأشياء | [فهم اللغة](./6-consumer/lessons/2-language-understanding/README.md) | -| 23 | [المستهلك](./6-consumer/README.md) | ضبط مؤقت وتقديم ردود صوتية | تعلّم كيفية ضبط مؤقت على جهاز إنترنت الأشياء وتقديم ردود صوتية عند ضبط المؤقت وعندما ينتهي | [ضبط مؤقت وتقديم ردود صوتية](./6-consumer/lessons/3-spoken-feedback/README.md) | -| 24 | [المستهلك](./6-consumer/README.md) | دعم عدة لغات | تعلّم كيفية دعم عدة لغات، سواء عند التحدث إلى الجهاز أو الردود من مؤقتك الذكي | [دعم عدة لغات](./6-consumer/lessons/4-multiple-language-support/README.md) | +| | اسم المشروع | المفاهيم المُعلَّمة | أهداف التعلم | الدرس المرتبط | +| :---: | :------------------------------------: | :---------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------: | +| 01 | [البدء](./1-getting-started/README.md) | مقدمة عن إنترنت الأشياء | تعلّم المبادئ الأساسية لإنترنت الأشياء والكتل الأساسية لحلول إنترنت الأشياء مثل المستشعرات وخدمات السحابة أثناء إعداد جهازك الأول لإنترنت الأشياء | [مقدمة عن إنترنت الأشياء](./1-getting-started/lessons/1-introduction-to-iot/README.md) | +| 02 | [البدء](./1-getting-started/README.md) | نظرة أعمق على إنترنت الأشياء | تعلّم المزيد عن مكونات نظام إنترنت الأشياء، بالإضافة إلى المتحكمات الدقيقة وأجهزة الكمبيوتر ذات اللوحات المفردة | [نظرة أعمق على إنترنت الأشياء](./1-getting-started/lessons/2-deeper-dive/README.md) | +| 03 | [البدء](./1-getting-started/README.md) | التفاعل مع العالم المادي باستخدام المستشعرات والمشغلات | تعلّم عن المستشعرات لجمع البيانات من العالم المادي، والمشغلات لإرسال الردود، أثناء بناء ضوء ليلي | [التفاعل مع العالم المادي باستخدام المستشعرات والمشغلات](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | +| 04 | [البدء](./1-getting-started/README.md) | ربط جهازك بالإنترنت | تعلّم كيف تربط جهاز إنترنت الأشياء بالإنترنت لإرسال واستقبال الرسائل عن طريق ربط ضوءك الليلي بوسيط MQTT | [ربط جهازك بالإنترنت](./1-getting-started/lessons/4-connect-internet/README.md) | +| 05 | [المزرعة](./2-farm/README.md) | التنبؤ بنمو النبات | تعلّم كيفية التنبؤ بنمو النبات باستخدام بيانات درجة الحرارة التي يلتقطها جهاز إنترنت الأشياء | [التنبؤ بنمو النبات](./2-farm/lessons/1-predict-plant-growth/README.md) | +| 06 | [المزرعة](./2-farm/README.md) | اكتشاف رطوبة التربة | تعلّم كيفية اكتشاف رطوبة التربة ومعايرة حسّاس رطوبة التربة | [اكتشاف رطوبة التربة](./2-farm/lessons/2-detect-soil-moisture/README.md) | +| 07 | [المزرعة](./2-farm/README.md) | ري النباتات أوتوماتيكيًا | تعلّم كيفية أتمتة توقيت الري باستخدام مرحل و MQTT | [ري النباتات أوتوماتيكيًا](./2-farm/lessons/3-automated-plant-watering/README.md) | +| 08 | [المزرعة](./2-farm/README.md) | نقل نباتك إلى السحابة | تعلّم عن السحابة وخدمات إنترنت الأشياء المستضافة على السحابة وكيفية ربط نباتك بأحد هذه الخدمات بدلاً من وسيط MQTT عام | [نقل نباتك إلى السحابة](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | +| 09 | [المزرعة](./2-farm/README.md) | نقل منطق التطبيق إلى السحابة | تعلّم كيف يمكنك كتابة منطق التطبيق في السحابة الذي يستجيب لرسائل إنترنت الأشياء | [نقل منطق التطبيق إلى السحابة](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | +| 10 | [المزرعة](./2-farm/README.md) | حماية نباتك | تعلّم عن الأمان مع إنترنت الأشياء وكيف تحمي نباتك باستخدام المفاتيح والشهادات | [حماية نباتك](./2-farm/lessons/6-keep-your-plant-secure/README.md) | +| 11 | [النقل](./3-transport/README.md) | تتبع الموقع | تعلّم عن تتبع الموقع عبر GPS لأجهزة إنترنت الأشياء | [تتبع الموقع](./3-transport/lessons/1-location-tracking/README.md) | +| 12 | [النقل](./3-transport/README.md) | تخزين بيانات الموقع | تعلّم كيفية تخزين بيانات إنترنت الأشياء ليتم عرضها أو تحليلها لاحقًا | [تخزين بيانات الموقع](./3-transport/lessons/2-store-location-data/README.md) | +| 13 | [النقل](./3-transport/README.md) | تصور بيانات الموقع | تعلّم عن تصور بيانات الموقع على خريطة، وكيف تمثل الخرائط العالم الحقيقي الثلاثي الأبعاد في بُعدين | [تصور بيانات الموقع](./3-transport/lessons/3-visualize-location-data/README.md) | +| 14 | [النقل](./3-transport/README.md) | الأسوار الجغرافية | تعلّم عن الأسوار الجغرافية، وكيف يمكن استخدامها لتنبيه عندما تقترب المركبات في سلسلة الإمداد من وجهتها | [الأسوار الجغرافية](./3-transport/lessons/4-geofences/README.md) | +| 15 | [التصنيع](./4-manufacturing/README.md) | تدريب كاشف جودة الفواكه | تعلّم عن تدريب مصنّف الصور في السحابة للكشف عن جودة الفواكه | [تدريب كاشف جودة الفواكه](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | +| 16 | [التصنيع](./4-manufacturing/README.md) | فحص جودة الفواكه من جهاز إنترنت الأشياء | تعلّم عن استخدام كاشف جودة الفاكهة الخاص بك من جهاز إنترنت الأشياء | [فحص جودة الفواكه من جهاز إنترنت الأشياء](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | +| 17 | [التصنيع](./4-manufacturing/README.md) | تشغيل كاشف الفواكه على الحافة | تعلّم عن تشغيل كاشف الفواكه الخاص بك على جهاز إنترنت الأشياء عند الحافة | [تشغيل كاشف الفواكه على الحافة](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | +| 18 | [التصنيع](./4-manufacturing/README.md) | تفعيل كشف جودة الفواكه من مستشعر | تعلّم كيف تفعّل كشف جودة الفاكهة من مستشعر | [تفعيل كشف جودة الفواكه من مستشعر](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | +| 19 | [التجزئة](./5-retail/README.md) | تدريب كاشف للمخزون | تعلّم كيفية استخدام كشف الأشياء لتدريب كاشف للمخزون لحساب المخزون في المتجر | [تدريب كاشف للمخزون](./5-retail/lessons/1-train-stock-detector/README.md) | +| 20 | [التجزئة](./5-retail/README.md) | التحقق من المخزون من جهاز إنترنت الأشياء | تعلّم كيفية التحقق من المخزون من جهاز إنترنت الأشياء باستخدام نموذج كشف الأشياء | [التحقق من المخزون من جهاز إنترنت الأشياء](./5-retail/lessons/2-check-stock-device/README.md) | +| 21 | [المستهلك](./6-consumer/README.md) | التعرف على الكلام باستخدام جهاز إنترنت الأشياء | تعلّم كيفية التعرف على الكلام من جهاز إنترنت الأشياء لبناء مؤقت ذكي | [التعرف على الكلام باستخدام جهاز إنترنت الأشياء](./6-consumer/lessons/1-speech-recognition/README.md) | +| 22 | [المستهلك](./6-consumer/README.md) | فهم اللغة | تعلّم كيفية فهم الجمل المنطوقة إلى جهاز إنترنت الأشياء | [فهم اللغة](./6-consumer/lessons/2-language-understanding/README.md) | +| 23 | [المستهلك](./6-consumer/README.md) | ضبط مؤقت وتقديم ردود كلامية | تعلّم كيفية ضبط مؤقت على جهاز إنترنت الأشياء وتقديم ردود كلامية عن وقت ضبط المؤقت ووقت انتهائه | [ضبط مؤقت وتقديم ردود كلامية](./6-consumer/lessons/3-spoken-feedback/README.md) | +| 24 | [المستهلك](./6-consumer/README.md) | دعم لغات متعددة | تعلّم كيفية دعم لغات متعددة، سواء في التحدث إليها أو الردود من مؤقتك الذكي | [دعم لغات متعددة](./6-consumer/lessons/4-multiple-language-support/README.md) | ## الوصول دون اتصال -يمكنك تشغيل هذا التوثيق دون اتصال عن طريق استخدام [Docsify](https://docsify.js.org/#/). فرّع هذا المستودع، [ثبّت Docsify](https://docsify.js.org/#/quickstart) على جهازك المحلي، ثم في المجلد الجذر لهذا المستودع، اكتب `docsify serve`. سيتم تقديم الموقع على المنفذ 3000 على جهازك المحلي: `localhost:3000`. +يمكنك تشغيل هذا التوثيق دون اتصال باستخدام [Docsify](https://docsify.js.org/#/). فرّع هذا المستودع، [ثبّت Docsify](https://docsify.js.org/#/quickstart) على جهازك المحلي، ثم في مجلد الجذر لهذا المستودع، اكتب `docsify serve`. سيتم تقديم الموقع على المنفذ 3000 على مضيفك المحلي: `localhost:3000`. -## اختبار +## الاختبار -شكرًا للمجتمع على استضافته للاختبار التفاعلي الذي يختبر معرفتك في كل فصل من الفصول. يمكنك اختبار معرفتك [هنا](https://ff-quizzes.netlify.app/en/) +شكرًا للمجتمع على استضافة الاختبار التفاعلي الذي يختبر معرفتك في كل فصل. يمكنك اختبار معرفتك [هنا](https://ff-quizzes.netlify.app/en/) ### PDF -يمكنك إنشاء ملف PDF من هذا المحتوى للوصول دون اتصال إذا لزم الأمر. للقيام بذلك، تأكد من تثبيت [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) وشغّل الأوامر التالية في المجلد الجذر لهذا المستودع: +يمكنك إنشاء ملف PDF لهذا المحتوى للاستخدام دون اتصال إذا لزم الأمر. للقيام بذلك، تأكد من أنك قمت بتثبيت [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) وشغّل الأوامر التالية في مجلد الجذر لهذا المستودع: ```sh npm i @@ -154,60 +164,59 @@ npm run convert ### الشرائح -توجد مجموعات شرائح لبعض الدروس في مجلد [slides](../../slides). +هناك عروض شرائح لبعض الدروس في مجلد [slides](../../slides). +## مناهج أخرى -## المناهج الأخرى - -يقوم فريقنا بإنتاج مناهج أخرى! اطلع على: +فريقنا ينتج مناهج أخرى! اطلع على: ### LangChain [![LangChain4j للمبتدئين](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) [![LangChain.js للمبتدئين](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) - +[![LangChain للمبتدئين](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- ### Azure / Edge / MCP / Agents [![AZD للمبتدئين](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI للمبتدئين](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) [![MCP للمبتدئين](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![وكلاء الذكاء الاصطناعي للمبتدئين](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![عملاء الذكاء الاصطناعي للمبتدئين](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### سلسلة الذكاء الاصطناعي التوليدي [![الذكاء الاصطناعي التوليدي للمبتدئين](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) [![الذكاء الاصطناعي التوليدي (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![الذكاء الاصطناعي التوليدي (جافا)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![الذكاء الاصطناعي التوليدي (جافا سكريبت)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +[![الذكاء الاصطناعي التوليدي (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![الذكاء الاصطناعي التوليدي (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- ### التعلم الأساسي -[![تعلم الآلة للمبتدئين](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![علم البيانات للمبتدئين](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![التعلم الآلي للمبتدئين](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![علوم البيانات للمبتدئين](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) [![الذكاء الاصطناعي للمبتدئين](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) [![الأمن السيبراني للمبتدئين](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) [![تطوير الويب للمبتدئين](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) [![إنترنت الأشياء للمبتدئين](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![تطوير الواقع الممتد للمبتدئين](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +[![تطوير XR للمبتدئين](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### سلسلة المساعد البرمجي -[![المساعد البرمجي للبرمجة المزدوجة بالذكاء الاصطناعي](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![المساعد البرمجي لـ C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![مغامرة المساعد البرمجي](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +### سلسلة كوبايلوت +[![كوبايلوت للبرمجة الثنائية مع الذكاء الاصطناعي](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![كوبايلوت لـ C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![مغامرة كوبايلوت](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## إسنادات الصور +## حقوق الصور -يمكنك العثور على جميع الإسنادات الخاصة بالصور المستخدمة في هذا المنهج عند الحاجة في ملف [الإسنادات](./attributions.md). +يمكنك العثور على جميع حقوق استخدام الصور المستخدمة في هذا المنهج الدراسي حيثما يلزم في [حقوق الاستخدام](./attributions.md). --- -**تنويه**: -تم ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى للحفاظ على الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار الوثيقة الأصلية بلغتها الأصلية المصدر الرسمي والمعتمد. للمعلومات الحيوية، يُنصح بالترجمة الاحترافية من قبل مترجم بشري. نحن غير مسؤولين عن أي سوء فهم أو تحريف ينشأ عن استخدام هذه الترجمة. +**تنويه**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى للدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار الوثيقة الأصلية بلغتها الأصلية المصدر الموثوق. بالنسبة للمعلومات الهامة، يُنصح باللجوء إلى ترجمة بشرية محترفة. نحن غير مسؤولين عن أي سوء فهم أو تفسير ناتج عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/hardware.md b/translations/ar/hardware.md index bd1e90ce5..f5f74e5ab 100644 --- a/translations/ar/hardware.md +++ b/translations/ar/hardware.md @@ -26,7 +26,7 @@ **[إنترنت الأشياء للمبتدئين مع Seeed وMicrosoft - مجموعة البداية لـ Raspberry Pi 4](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html)** -[![مجموعة أجهزة Raspberry Pi Terminal](../../translated_images/ar/pi-hardware-kit.26dbadaedb7dd44c73b0131d5d68ea29472ed0a9744f90d5866c6d82f2d16380.png)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) +[![مجموعة أجهزة Raspberry Pi Terminal](../../translated_images/ar/pi-hardware-kit.26dbadaedb7dd44c.webp)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) ## Arduino diff --git a/translations/bg/.co-op-translator.json b/translations/bg/.co-op-translator.json index 66291137d..446677e98 100644 --- a/translations/bg/.co-op-translator.json +++ b/translations/bg/.co-op-translator.json @@ -738,8 +738,8 @@ "language_code": "bg" }, "README.md": { - "original_hash": "3fcc056cd3837e33d2bdf79f9c359fcf", - "translation_date": "2026-01-30T02:34:55+00:00", + "original_hash": "accf69391fa4450eadbf492ca024cccf", + "translation_date": "2026-04-06T17:47:29+00:00", "source_file": "README.md", "language_code": "bg" }, diff --git a/translations/bg/1-getting-started/lessons/1-introduction-to-iot/README.md b/translations/bg/1-getting-started/lessons/1-introduction-to-iot/README.md index deff717ba..f655ebac6 100644 --- a/translations/bg/1-getting-started/lessons/1-introduction-to-iot/README.md +++ b/translations/bg/1-getting-started/lessons/1-introduction-to-iot/README.md @@ -1,6 +1,6 @@ # Въведение в IoT -![Скица на урока](../../../../../translated_images/bg/lesson-1.2606670fa61ee904687da5d6fa4e726639d524d064c895117da1b95b9ff6251d.jpg) +![Скица на урока](../../../../../translated_images/bg/lesson-1.2606670fa61ee904.webp) > Скица от [Nitya Narasimhan](https://github.com/nitya). Кликнете върху изображението за по-голяма версия. diff --git a/translations/bg/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md b/translations/bg/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md index 32626254e..db95b6da8 100644 --- a/translations/bg/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md +++ b/translations/bg/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md @@ -203,7 +203,7 @@ Приложението ще започне да работи и ще се отвори във вашия уеб браузър: - ![Приложението CounterFit работи в браузър](../../../../../translated_images/bg/counterfit-first-run.433326358b669b31d0e99c3513cb01bfbb13724d162c99cdcc8f51ecf5f9c779.png) + ![Приложението CounterFit работи в браузър](../../../../../translated_images/bg/counterfit-first-run.433326358b669b31.webp) То ще бъде отбелязано като *Disconnected*, със светодиод в горния десен ъгъл, който е изключен. @@ -224,7 +224,7 @@ 1. В този нов терминал стартирайте файла `app.py`, както преди. Статусът на CounterFit ще се промени на **Connected**, и светодиодът ще светне. - ![CounterFit показва статус Connected](../../../../../translated_images/bg/counterfit-connected.ed30b46d8f79b0921f3fc70be10366e596a89dca3f80c2224a9d9fc98fccf884.png) + ![CounterFit показва статус Connected](../../../../../translated_images/bg/counterfit-connected.ed30b46d8f79b092.webp) > 💁 Можете да намерите този код в папката [code/virtual-device](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/virtual-device). diff --git a/translations/bg/1-getting-started/lessons/2-deeper-dive/README.md b/translations/bg/1-getting-started/lessons/2-deeper-dive/README.md index b8383e41e..625c31e2e 100644 --- a/translations/bg/1-getting-started/lessons/2-deeper-dive/README.md +++ b/translations/bg/1-getting-started/lessons/2-deeper-dive/README.md @@ -1,6 +1,6 @@ # По-задълбочен поглед върху IoT -![Скица, обобщаваща този урок](../../../../../translated_images/bg/lesson-2.324b0580d620c25e0a24fb7fddfc0b29a846dd4b82c08e7a9466d580ee78ce51.jpg) +![Скица, обобщаваща този урок](../../../../../translated_images/bg/lesson-2.324b0580d620c25e.webp) > Скица от [Nitya Narasimhan](https://github.com/nitya). Кликнете върху изображението за по-голяма версия. @@ -38,7 +38,7 @@ Тези устройства взаимодействат с физическия свят, като използват сензори за събиране на данни от околната среда или чрез контролиране на изходи или задвижващи механизми за извършване на физически промени. Типичен пример за това е интелигентен термостат - устройство, което има температурен сензор, средство за задаване на желаната температура, като например циферблат или сензорен екран, и връзка с отоплителна или охлаждаща система, която може да се включи, когато откритата температура е извън желаните граници. Температурният сензор открива, че стаята е твърде студена, и задвижващ механизъм включва отоплението. -![Диаграма, показваща температура и циферблат като входове към IoT устройство, и контрол на отоплителна система като изход](../../../../../translated_images/bg/basic-thermostat.a923217fd1f37e5a6f3390396a65c22a387419ea2dd17e518ec24315ba6ae9a8.png) +![Диаграма, показваща температура и циферблат като входове към IoT устройство, и контрол на отоплителна система като изход](../../../../../translated_images/bg/basic-thermostat.a923217fd1f37e5a.webp) Съществува огромен набор от различни устройства, които могат да действат като IoT устройства - от специализирани хардуери, които засичат едно нещо, до универсални устройства, дори вашия смартфон! Смартфонът може да използва сензори за откриване на света около него и задвижващи механизми за взаимодействие със света - например, използвайки GPS сензор за откриване на вашето местоположение и високоговорител за предоставяне на навигационни инструкции до дестинация. @@ -54,7 +54,7 @@ В примера с интелигентния термостат, термостатът би се свързал чрез домашен WiFi към облачна услуга, работеща в облака. Той би изпратил данните за температурата към тази облачна услуга, откъдето те ще бъдат записани в база данни, позволявайки на собственика на дома да провери текущите и минали температури чрез приложение на телефона. Друга услуга в облака би знаела каква температура иска собственикът на дома и би изпратила съобщения обратно към IoT устройството чрез облачната услуга, за да каже на отоплителната система да се включи или изключи. -![Диаграма, показваща температура и циферблат като входове към IoT устройство, IoT устройството с двупосочна комуникация с облака, който от своя страна има двупосочна комуникация с телефон, и контрол на отоплителна система като изход от IoT устройството](../../../../../translated_images/bg/mobile-controlled-thermostat.4a994010473d8d6a52ba68c67e5f02dc8928c717e93ca4b9bc55525aa75bbb60.png) +![Диаграма, показваща температура и циферблат като входове към IoT устройство, IoT устройството с двупосочна комуникация с облака, който от своя страна има двупосочна комуникация с телефон, и контрол на отоплителна система като изход от IoT устройството](../../../../../translated_images/bg/mobile-controlled-thermostat.4a994010473d8d6a.webp) Още по-интелигентна версия би могла да използва AI в облака с данни от други сензори, свързани към други IoT устройства, като сензори за заетост, които откриват кои стаи се използват, както и данни като времето и дори вашия календар, за да взема решения как да настрои температурата по интелигентен начин. Например, тя би могла да изключи отоплението, ако прочете от вашия календар, че сте на почивка, или да изключи отоплението на стая по стая, в зависимост от това кои стаи използвате, като се учи от данните, за да става все по-точна с времето. @@ -94,7 +94,7 @@ CPU разчита на часовник, който тиктака милион > 💁 CPU изпълнява програми, използвайки [fetch-decode-execute цикъл](https://wikipedia.org/wiki/Instruction_cycle). За всеки тик на часовника CPU ще извлече следващата инструкция от паметта, ще я декодира и след това ще я изпълни, като например използва аритметично-логическо устройство (ALU), за да събере 2 числа. Някои изпълнения ще отнемат няколко тика, така че следващият цикъл ще се изпълни при следващия тик след завършването на инструкцията. -![Fetch-decode-execute цикъл, показващ извличането на инструкция от програмата, съхранена в RAM, след това декодирането и изпълнението ѝ на CPU](../../../../../translated_images/bg/fetch-decode-execute.2fd6f150f6280392807f4475382319abd0cee0b90058e1735444d6baa6f2078c.png) +![Fetch-decode-execute цикъл, показващ извличането на инструкция от програмата, съхранена в RAM, след това декодирането и изпълнението ѝ на CPU](../../../../../translated_images/bg/fetch-decode-execute.2fd6f150f6280392.webp) Микроконтролерите имат много по-ниски скорости на часовника от настолните или лаптоп компютри, или дори от повечето смартфони. Например, Wio Terminal има CPU, който работи на 120MHz или 120,000,000 цикъла в секунда. @@ -178,7 +178,7 @@ CPU разчита на часовник, който тиктака милион Вие бихте написали вашия начален код във функцията `setup`, като например свързване към WiFi и облачни услуги или инициализиране на пинове за вход и изход. Вашият код за обработка би се намирал във функцията `loop`, като например четене от сензор и изпращане на стойността към облака. Обикновено бихте включили забавяне във всяка итерация на цикъла, например ако искате данните от сензора да се изпращат на всеки 10 секунди, бихте добавили забавяне от 10 секунди в края на цикъла, за да може микроконтролерът да спи, спестявайки енергия, след което да изпълни цикъла отново, когато е необходимо, 10 секунди по-късно. -![Скица на Arduino, която първо изпълнява setup, след това изпълнява loop многократно](../../../../../translated_images/bg/arduino-sketch.79590cb837ff7a7c6a68d1afda6cab83fd53d3bb1bd9a8bf2eaf8d693a4d3ea6.png) +![Скица на Arduino, която първо изпълнява setup, след това изпълнява loop многократно](../../../../../translated_images/bg/arduino-sketch.79590cb837ff7a7c.webp) ✅ Тази архитектура на програмиране е известна като *цикъл на събития* или *цикъл на съобщения*. Много приложения използват това под капака и това е стандартът за повечето десктоп приложения, които работят на операционни системи като Windows, macOS или Linux. Функцията `loop` слуша за съобщения от компоненти на потребителския интерфейс като бутони или устройства като клавиатурата и реагира на тях. Можете да прочетете повече в тази [статия за цикъла на събития](https://wikipedia.org/wiki/Event_loop). diff --git a/translations/bg/1-getting-started/lessons/3-sensors-and-actuators/README.md b/translations/bg/1-getting-started/lessons/3-sensors-and-actuators/README.md index e70ad74cb..059e595e0 100644 --- a/translations/bg/1-getting-started/lessons/3-sensors-and-actuators/README.md +++ b/translations/bg/1-getting-started/lessons/3-sensors-and-actuators/README.md @@ -1,6 +1,6 @@ # Взаимодействие с физическия свят чрез сензори и изпълнителни устройства -![Скица на урока](../../../../../translated_images/bg/lesson-3.cc3b7b4cd646de598698cce043c0393fd62ef42bac2eaf60e61272cd844250f4.jpg) +![Скица на урока](../../../../../translated_images/bg/lesson-3.cc3b7b4cd646de59.webp) > Скица от [Nitya Narasimhan](https://github.com/nitya). Кликнете върху изображението за по-голяма версия. @@ -92,7 +92,7 @@ IoT устройствата са цифрови - те не могат да р Най-простият цифров сензор е бутон или превключвател. Това е сензор с две състояния - включено или изключено. -![Бутон, който получава 5 волта. Когато не е натиснат, връща 0 волта; когато е натиснат, връща 5 волта](../../../../../translated_images/bg/button.eadb560b77ac45e56f523d9d8876e40444f63b419e33eb820082d461fa79490b.png) +![Бутон, който получава 5 волта. Когато не е натиснат, връща 0 волта; когато е натиснат, връща 5 волта](../../../../../translated_images/bg/button.eadb560b77ac45e5.webp) Пиновете на IoT устройства, като GPIO пинове, могат директно да измерват този сигнал като 0 или 1. Ако напрежението, което се изпраща, е същото като напрежението, което се връща, стойността е 1, в противен случай стойността е 0. Няма нужда от преобразуване на сигнала, той може да бъде само 1 или 0. @@ -125,7 +125,7 @@ IoT устройствата са цифрови - те не могат да р Следвайте съответното ръководство по-долу, за да добавите изпълнително устройство към вашето IoT устройство, контролирано от сензора, за да създадете IoT нощна лампа. Тя ще събира нива на светлина от светлинния сензор и ще използва изпълнително устройство под формата на LED, за да излъчва светлина, когато засеченото ниво на светлина е твърде ниско. -![Диаграма на задачата, показваща как се четат и проверяват нивата на светлина, и как се контролира LED](../../../../../translated_images/bg/assignment-1-flow.7552a51acb1a5ec858dca6e855cdbb44206434006df8ba3799a25afcdab1665d.png) +![Диаграма на задачата, показваща как се четат и проверяват нивата на светлина, и как се контролира LED](../../../../../translated_images/bg/assignment-1-flow.7552a51acb1a5ec8.webp) * [Arduino - Wio Terminal](wio-terminal-actuator.md) * [Едноплатков компютър - Raspberry Pi](pi-actuator.md) @@ -140,7 +140,7 @@ IoT устройствата са цифрови - те не могат да р Аналоговите изпълнителни устройства приемат аналогов сигнал и го преобразуват в някакъв вид взаимодействие, при което взаимодействието се променя в зависимост от подаденото напрежение. Един пример е димируема светлина, като тези, които може да имате у дома. Количеството напрежение, подадено към свет -![Светлина, затъмнена при ниско напрежение и по-ярка при високо напрежение](../../../../../translated_images/bg/dimmable-light.9ceffeb195dec1a849da718b2d71b32c35171ff7dfea9c07bbf82646a67acf6b.png) +![Светлина, затъмнена при ниско напрежение и по-ярка при високо напрежение](../../../../../translated_images/bg/dimmable-light.9ceffeb195dec1a8.webp) Както при сензорите, реалното IoT устройство работи с цифрови сигнали, а не с аналогови. Това означава, че за да изпрати аналогов сигнал, IoT устройството се нуждае от цифрово-аналогов преобразувател (DAC), който може да бъде вграден директно в устройството или да се намира на свързваща платка. Този преобразувател превръща 0 и 1 от IoT устройството в аналогово напрежение, което изпълнителният механизъм може да използва. @@ -187,7 +187,7 @@ IoT устройствата са цифрови - те не могат да р Един прост цифров изпълнителен механизъм е LED. Когато устройството изпрати цифров сигнал 1, се изпраща високо напрежение, което включва LED. Когато се изпрати цифров сигнал 0, напрежението пада до 0V и LED се изключва. -![LED е изключен при 0 волта и включен при 5V](../../../../../translated_images/bg/led.ec6d94f66676a174ad06d9fa9ea49c2ee89beb18b312d5c6476467c66375b07f.png) +![LED е изключен при 0 волта и включен при 5V](../../../../../translated_images/bg/led.ec6d94f66676a174.webp) ✅ Какви други прости изпълнителни механизми с две състояния можете да измислите? Един пример е соленоид, който е електромагнит, който може да се активира, за да извършва действия като преместване на болт за заключване/отключване на врата. diff --git a/translations/bg/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md b/translations/bg/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md index 257c45e0a..0a2943049 100644 --- a/translations/bg/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md +++ b/translations/bg/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md @@ -26,7 +26,7 @@ Grove LED идва като модул с избор от светодиоди, Свържете LED. -![Grove LED](../../../../../translated_images/bg/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![Grove LED](../../../../../translated_images/bg/grove-led.6c853be93f473cf2.webp) 1. Изберете любимия си LED и поставете крачетата му в двете отвори на LED модула. @@ -40,7 +40,7 @@ Grove LED идва като модул с избор от светодиоди, 1. С изключен Raspberry Pi свържете другия край на Grove кабела към цифровото гнездо, маркирано **D5** на Grove Base hat, прикрепен към Pi. Това гнездо е второто отляво, на реда от гнезда до GPIO пиновете. -![Grove LED, свързан към гнездо D5](../../../../../translated_images/bg/pi-led.97f1d474981dc35d1c7996c7b17de355d3d0a6bc9606d79fa5f89df933415122.png) +![Grove LED, свързан към гнездо D5](../../../../../translated_images/bg/pi-led.97f1d474981dc35d.webp) ## Програмирайте нощната лампа diff --git a/translations/bg/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md b/translations/bg/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md index 3dd8b761c..c4a15e649 100644 --- a/translations/bg/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md +++ b/translations/bg/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md @@ -16,13 +16,13 @@ Grove светлинният сензор, който се използва за Свържете светлинния сензор. -![Grove светлинен сензор](../../../../../translated_images/bg/grove-light-sensor.b8127b7c434e632d6bcdb57587a14e9ef69a268a22df95d08628f62b8fa5505c.png) +![Grove светлинен сензор](../../../../../translated_images/bg/grove-light-sensor.b8127b7c434e632d.webp) 1. Поставете единия край на Grove кабела в гнездото на модула на светлинния сензор. Кабелът може да бъде поставен само в една посока. 1. С изключен Raspberry Pi свържете другия край на Grove кабела към аналоговото гнездо, обозначено като **A0** на Grove Base hat, прикрепен към Pi. Това гнездо е второто отдясно в реда от гнезда до GPIO пиновете. -![Grove светлинен сензор, свързан към гнездо A0](../../../../../translated_images/bg/pi-light-sensor.66cc1e31fa48cd7d5f23400d4b2119aa41508275cb7c778053a7923b4e972d7e.png) +![Grove светлинен сензор, свързан към гнездо A0](../../../../../translated_images/bg/pi-light-sensor.66cc1e31fa48cd7d.webp) ## Програмиране на светлинния сензор diff --git a/translations/bg/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md b/translations/bg/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md index 792ecdf36..a852abafe 100644 --- a/translations/bg/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md +++ b/translations/bg/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md @@ -36,11 +36,11 @@ Otherwise 1. Натиснете бутона **Add**, за да създадете LED на Pin 5. - ![Настройки на LED](../../../../../translated_images/bg/counterfit-create-led.ba9db1c9b8c622a635d6dfae5cdc4e70c2b250635bd4f0601c6cf0bd22b7ba46.png) + ![Настройки на LED](../../../../../translated_images/bg/counterfit-create-led.ba9db1c9b8c622a6.webp) LED ще бъде създаден и ще се появи в списъка с изпълнителни механизми. - ![Създаден LED](../../../../../translated_images/bg/counterfit-led.c0ab02de6d256ad84d9bad4d67a7faa709f0ea83e410cfe9b5561ef0cef30b1c.png) + ![Създаден LED](../../../../../translated_images/bg/counterfit-led.c0ab02de6d256ad8.webp) След като LED е създаден, можете да промените цвета му, използвайки инструмента *Color picker*. Натиснете бутона **Set**, за да промените цвета, след като сте го избрали. diff --git a/translations/bg/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md b/translations/bg/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md index 45f094470..67f128a2f 100644 --- a/translations/bg/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md +++ b/translations/bg/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md @@ -28,11 +28,11 @@ 1. Натиснете бутона **Add**, за да създадете светлинния сензор на Pin 0. - ![Настройки на светлинния сензор](../../../../../translated_images/bg/counterfit-create-light-sensor.9f36a5e0d4458d8d554d54b34d2c806d56093d6e49fddcda2d20f6fef7f5cce1.png) + ![Настройки на светлинния сензор](../../../../../translated_images/bg/counterfit-create-light-sensor.9f36a5e0d4458d8d.webp) Светлинният сензор ще бъде създаден и ще се появи в списъка със сензори. - ![Създаден светлинен сензор](../../../../../translated_images/bg/counterfit-light-sensor.5d0f5584df56b90f6b2561910d9cb20dfbd73eeff2177c238d38f4de54aefae1.png) + ![Създаден светлинен сензор](../../../../../translated_images/bg/counterfit-light-sensor.5d0f5584df56b90f.webp) ## Програмиране на светлинния сензор diff --git a/translations/bg/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md b/translations/bg/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md index 8d1a1f02f..84ad1603c 100644 --- a/translations/bg/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md +++ b/translations/bg/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md @@ -26,7 +26,7 @@ Grove LED идва като модул с избор от светодиоди, Свържете LED-а. -![Grove LED](../../../../../translated_images/bg/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![Grove LED](../../../../../translated_images/bg/grove-led.6c853be93f473cf2.webp) 1. Изберете любимия си LED и поставете крачетата му в двете дупки на LED модула. diff --git a/translations/bg/1-getting-started/lessons/4-connect-internet/README.md b/translations/bg/1-getting-started/lessons/4-connect-internet/README.md index aae3d7a48..ceb0f470a 100644 --- a/translations/bg/1-getting-started/lessons/4-connect-internet/README.md +++ b/translations/bg/1-getting-started/lessons/4-connect-internet/README.md @@ -1,6 +1,6 @@ # Свържете устройството си с интернет -![Скица на урока](../../../../../translated_images/bg/lesson-4.7344e074ea68fa545fd320b12dce36d72dd62d28c3b4596cb26cf315f434b98f.jpg) +![Скица на урока](../../../../../translated_images/bg/lesson-4.7344e074ea68fa54.webp) > Скица от [Nitya Narasimhan](https://github.com/nitya). Кликнете върху изображението за по-голяма версия. @@ -47,7 +47,7 @@ MQTT е най-популярният комуникационен проток MQTT има един брокер и множество клиенти. Всички клиенти се свързват с брокера, а брокерът маршрутизира съобщенията към съответните клиенти. Съобщенията се маршрутизират чрез именувани теми, вместо да се изпращат директно към индивидуален клиент. Клиент може да публикува в тема, а всички клиенти, които са абонирани за тази тема, ще получат съобщението. -![IoT устройство публикува телеметрия в темата /telemetry, а облачната услуга се абонира за тази тема](../../../../../translated_images/bg/mqtt.cbf7f21d9adc3e17548b359444cc11bb4bf2010543e32ece9a47becf54438c23.png) +![IoT устройство публикува телеметрия в темата /telemetry, а облачната услуга се абонира за тази тема](../../../../../translated_images/bg/mqtt.cbf7f21d9adc3e17.webp) ✅ Направете проучване. Ако имате много IoT устройства, как можете да гарантирате, че вашият MQTT брокер може да обработи всички съобщения? @@ -69,7 +69,7 @@ MQTT има един брокер и множество клиенти. Всич > 💁 Този тестов брокер е публичен и не е защитен. Всеки може да слуша какво публикувате, така че не трябва да се използва за данни, които трябва да останат поверителни. -![Диаграма на заданието, показваща как нивата на светлина се четат и проверяват, а LED се управлява](../../../../../translated_images/bg/assignment-1-internet-flow.3256feab5f052fd273bf4e331157c574c2c3fa42e479836fc9c3586f41db35a5.png) +![Диаграма на заданието, показваща как нивата на светлина се четат и проверяват, а LED се управлява](../../../../../translated_images/bg/assignment-1-internet-flow.3256feab5f052fd2.webp) Следвайте съответната стъпка по-долу, за да свържете устройството си с MQTT брокера: @@ -350,7 +350,7 @@ MQTT връзките могат да бъдат публични и отвор Дизайнерите на IoT устройства също трябва да обмислят дали IoT устройството може да бъде използвано по време на прекъсване на интернет или загуба на сигнал, причинена от местоположение. Умният термостат трябва да може да взема някои ограничени решения за контрол на отоплението, ако не може да изпраща телеметрия към облака поради прекъсване. -[![Този Ferrari беше блокиран, защото някой се опита да го обнови под земята, където няма клетъчен сигнал](../../../../../translated_images/bg/bricked-car.dc38f8efadc6c59d76211f981a521efb300939283dee468f79503aae3ec67615.png)](https://twitter.com/internetofshit/status/1315736960082808832) +[![Този Ferrari беше блокиран, защото някой се опита да го обнови под земята, където няма клетъчен сигнал](../../../../../translated_images/bg/bricked-car.dc38f8efadc6c59d.webp)](https://twitter.com/internetofshit/status/1315736960082808832) За MQTT, за да се справи със загуба на свързаност, устройството и сървърният код ще трябва да бъдат отговорни за осигуряване на доставката на съобщения, ако е необходимо, например чрез изискване всички изпратени съобщения да бъдат отговорени с допълнителни съобщения на тема за отговор, и ако не, те да бъдат опашени ръчно, за да бъдат преиграни по-късно. @@ -358,7 +358,7 @@ MQTT връзките могат да бъдат публични и отвор Командите са съобщения, изпратени от облака към устройство, инструктиращи го да направи нещо. Повечето от времето това включва даване на някакъв вид изход чрез актуатор, но може да бъде инструкция за самото устройство, като например да се рестартира или да събере допълнителна телеметрия и да я върне като отговор на командата. -![Интернет свързан термостат, получаващ команда за включване на отоплението](../../../../../translated_images/bg/commands.d6c06bbbb3a02cce95f2831a1c331daf6dedd4e470c4aa2b0ae54f332016e504.png) +![Интернет свързан термостат, получаващ команда за включване на отоплението](../../../../../translated_images/bg/commands.d6c06bbbb3a02cce.webp) Термостат може да получи команда от облака да включи отоплението. Въз основа на телеметричните данни от всички сензори, ако облачната услуга е решила, че отоплението трябва да бъде включено, тя изпраща съответната команда. diff --git a/translations/bg/2-farm/lessons/1-predict-plant-growth/README.md b/translations/bg/2-farm/lessons/1-predict-plant-growth/README.md index bb0a84a3b..6b58ec09c 100644 --- a/translations/bg/2-farm/lessons/1-predict-plant-growth/README.md +++ b/translations/bg/2-farm/lessons/1-predict-plant-growth/README.md @@ -1,6 +1,6 @@ ## Прогнозиране на растежа на растенията с IoT -![Скица на урока](../../../../../translated_images/bg/lesson-5.42b234299279d263143148b88ab4583861a32ddb03110c6c1120e41bb88b2592.jpg) +![Скица на урока](../../../../../translated_images/bg/lesson-5.42b234299279d263.webp) > Скица от [Nitya Narasimhan](https://github.com/nitya). Кликнете върху изображението за по-голяма версия. @@ -90,7 +90,7 @@ Пълната формула за GDD е малко сложна, но има опростено уравнение, което често се използва като добра приблизителност: -![GDD = T max + T min разделено на 2, всичко минус T base](../../../../../translated_images/bg/gdd-calculation.79b3660f9c5757aa92dc2dd2cdde75344e2d2c1565c4b3151640f7887edc0275.png) +![GDD = T max + T min разделено на 2, всичко минус T base](../../../../../translated_images/bg/gdd-calculation.79b3660f9c5757aa.webp) * **GDD** - това е броят на дните на растеж * **T max** - това е дневната максимална температура в градуси Целзий @@ -118,7 +118,7 @@ Това дава изчисление: -![GDD = 16 + 12 разделено на 2, всичко минус 10, дава отговор 4](../../../../../translated_images/bg/gdd-calculation-corn.64a58b7a7afcd0dfd46ff733996d939f17f4f3feac9f0d1c632be3523e51ebd9.png) +![GDD = 16 + 12 разделено на 2, всичко минус 10, дава отговор 4](../../../../../translated_images/bg/gdd-calculation-corn.64a58b7a7afcd0df.webp) Царевицата е получила 4 GDD за този ден. Ако приемем сорт царевица, който се нуждае от 800 GDD, за да узрее, ще са необходими още 796 GDD, за да достигне зрелост. @@ -231,7 +231,7 @@ CSV файлът ще има две колони - *дата* и *темпера Например, ако най-високата температура за деня е 25°C, а най-ниската е 12°C: -![GDD = 25 + 12 разделено на 2, след това извадете 10 от резултата, което дава 8.5](../../../../../translated_images/bg/gdd-calculation-strawberries.59f57db94b22adb8ff6efb951ace33af104a1c6ccca3ffb0f8169c14cb160c90.png) +![GDD = 25 + 12 разделено на 2, след това извадете 10 от резултата, което дава 8.5](../../../../../translated_images/bg/gdd-calculation-strawberries.59f57db94b22adb8.webp) * 25 + 12 = 37 * 37 / 2 = 18.5 diff --git a/translations/bg/2-farm/lessons/1-predict-plant-growth/assignment.md b/translations/bg/2-farm/lessons/1-predict-plant-growth/assignment.md index c070a8dc9..276682ba0 100644 --- a/translations/bg/2-farm/lessons/1-predict-plant-growth/assignment.md +++ b/translations/bg/2-farm/lessons/1-predict-plant-growth/assignment.md @@ -33,7 +33,7 @@ Jupyter ще се стартира и ще отвори notebook-а във вашия браузър. Следвайте инструкциите в notebook-а, за да визуализирате измерените температури и да изчислите дните на растеж (GDD). - ![Jupyter Notebook](../../../../../translated_images/bg/gdd-jupyter-notebook.c5b52cf21094f158a61f47f455490fd95f1729777ff90861a4521820bf354cdc.png) + ![Jupyter Notebook](../../../../../translated_images/bg/gdd-jupyter-notebook.c5b52cf21094f158.webp) ## Критерии за оценка diff --git a/translations/bg/2-farm/lessons/1-predict-plant-growth/pi-temp.md b/translations/bg/2-farm/lessons/1-predict-plant-growth/pi-temp.md index e5541c897..92d8e00d1 100644 --- a/translations/bg/2-farm/lessons/1-predict-plant-growth/pi-temp.md +++ b/translations/bg/2-farm/lessons/1-predict-plant-growth/pi-temp.md @@ -16,13 +16,13 @@ Свържете температурния сензор -![Температурен сензор Grove](../../../../../translated_images/bg/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![Температурен сензор Grove](../../../../../translated_images/bg/grove-dht11.07f8eafceee17004.webp) 1. Поставете единия край на кабела Grove в гнездото на сензора за влажност и температура. Кабелът може да бъде поставен само в една посока. 1. С изключен Raspberry Pi свържете другия край на кабела Grove към цифровото гнездо, обозначено като **D5** на Grove Base hat, прикрепен към Pi. Това гнездо е второто отляво, в реда от гнезда до GPIO пиновете. -![Температурният сензор Grove, свързан към гнездото A0](../../../../../translated_images/bg/pi-temperature-sensor.3ff82fff672c8e565ef25a39d26d111de006b825a7e0867227ef4e7fbff8553c.png) +![Температурният сензор Grove, свързан към гнездото A0](../../../../../translated_images/bg/pi-temperature-sensor.3ff82fff672c8e56.webp) ## Програмиране на температурния сензор diff --git a/translations/bg/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md b/translations/bg/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md index 273bd91f2..e8950319c 100644 --- a/translations/bg/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md +++ b/translations/bg/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md @@ -38,11 +38,11 @@ 1. Натиснете бутона **Add**, за да създадете сензора за влажност на Pin 5. - ![Настройки на сензора за влажност](../../../../../translated_images/bg/counterfit-create-humidity-sensor.2750e27b6f30e09cf4e22101defd5252710717620816ab41ba688f91f757c49a.png) + ![Настройки на сензора за влажност](../../../../../translated_images/bg/counterfit-create-humidity-sensor.2750e27b6f30e09c.webp) Сензорът за влажност ще бъде създаден и ще се появи в списъка със сензори. - ![Създаден сензор за влажност](../../../../../translated_images/bg/counterfit-humidity-sensor.7b12f7f339e430cb26c8211d2dba4ef75261b353a01da0932698b5bebd693f27.png) + ![Създаден сензор за влажност](../../../../../translated_images/bg/counterfit-humidity-sensor.7b12f7f339e430cb.webp) 1. Създайте температурен сензор: @@ -54,11 +54,11 @@ 1. Натиснете бутона **Add**, за да създадете температурния сензор на Pin 6. - ![Настройки на температурния сензор](../../../../../translated_images/bg/counterfit-create-temperature-sensor.199350ed34f7343d79dccbe95eaf6c11d2121f03d1c35ab9613b330c23f39b29.png) + ![Настройки на температурния сензор](../../../../../translated_images/bg/counterfit-create-temperature-sensor.199350ed34f7343d.webp) Температурният сензор ще бъде създаден и ще се появи в списъка със сензори. - ![Създаден температурен сензор](../../../../../translated_images/bg/counterfit-temperature-sensor.f0560236c96a9016bafce7f6f792476fe3367bc6941a1f7d5811d144d4bcbfff.png) + ![Създаден температурен сензор](../../../../../translated_images/bg/counterfit-temperature-sensor.f0560236c96a9016.webp) ## Програмиране на приложението за температурния сензор diff --git a/translations/bg/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md b/translations/bg/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md index 5725ca0e6..8ac35ca0b 100644 --- a/translations/bg/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md +++ b/translations/bg/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md @@ -18,7 +18,7 @@ Grove температурният сензор може да бъде свър Свържете температурния сензор. -![Grove температурен сензор](../../../../../translated_images/bg/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![Grove температурен сензор](../../../../../translated_images/bg/grove-dht11.07f8eafceee17004.webp) 1. Поставете единия край на Grove кабела в гнездото на сензора за влажност и температура. Той ще влезе само в една посока. diff --git a/translations/bg/2-farm/lessons/2-detect-soil-moisture/README.md b/translations/bg/2-farm/lessons/2-detect-soil-moisture/README.md index cbd5fd755..c21c38e3d 100644 --- a/translations/bg/2-farm/lessons/2-detect-soil-moisture/README.md +++ b/translations/bg/2-farm/lessons/2-detect-soil-moisture/README.md @@ -13,7 +13,7 @@ I²C има шина, състояща се от 2 основни проводн | VCC | Общ колектор на напрежение | Захранването за устройствата. Това е свързано към проводниците SDA и SCL, за да осигури тяхното захранване чрез pull-up резистор, който изключва сигнала, когато няма устройство, което да е контролер. | | GND | Земя | Осигурява обща земя за електрическата верига. | -![I2C шина с 3 устройства, свързани към проводниците SDA и SCL, споделящи общ проводник за земя](../../../../../translated_images/bg/i2c.83da845dde02256bdd462dbe0d5145461416b74930571b89d1ae142841eeb584.png) +![I2C шина с 3 устройства, свързани към проводниците SDA и SCL, споделящи общ проводник за земя](../../../../../translated_images/bg/i2c.83da845dde02256b.webp) За да изпрати данни, едно устройство издава стартово условие, за да покаже, че е готово да изпрати данни. След това то става контролер. Контролерът изпраща адреса на устройството, с което иска да комуникира, заедно с информация дали иска да чете или записва данни. След като данните са предадени, контролерът изпраща стоп условие, за да покаже, че е приключил. След това друго устройство може да стане контролер и да изпраща или получава данни. diff --git a/translations/bg/2-farm/lessons/2-detect-soil-moisture/assignment.md b/translations/bg/2-farm/lessons/2-detect-soil-moisture/assignment.md index 75966c31c..04d77c95d 100644 --- a/translations/bg/2-farm/lessons/2-detect-soil-moisture/assignment.md +++ b/translations/bg/2-farm/lessons/2-detect-soil-moisture/assignment.md @@ -20,14 +20,14 @@ Гравиметричната почвена влажност се изчислява по следната формула: -![почвена влажност % е теглото на мократа почва минус теглото на сухата почва, разделено на теглото на сухата почва, умножено по 100](../../../../../translated_images/bg/gsm-calculation.6da38c6201eec14e7573bb2647aa18892883193553d23c9d77e5dc681522dfb2.png) +![почвена влажност % е теглото на мократа почва минус теглото на сухата почва, разделено на теглото на сухата почва, умножено по 100](../../../../../translated_images/bg/gsm-calculation.6da38c6201eec14e.webp) * W - теглото на мократа почва * W - теглото на сухата почва Например, да кажем, че имате почвена проба с тегло 212 г мокра и 197 г суха. -![Попълнено изчисление](../../../../../translated_images/bg/gsm-calculation-example.99f9803b4f29e97668e7c15412136c0c399ab12dbba0b89596fdae9d8aedb6fb.png) +![Попълнено изчисление](../../../../../translated_images/bg/gsm-calculation-example.99f9803b4f29e976.webp) * W = 212 г * W = 197 г diff --git a/translations/bg/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md b/translations/bg/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md index b2064efbc..90347fcde 100644 --- a/translations/bg/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md +++ b/translations/bg/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md @@ -18,13 +18,13 @@ Grove сензорът за влажност на почвата може да Свържете сензора за влажност на почвата. -![Сензор за влажност на почвата Grove](../../../../../translated_images/bg/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![Сензор за влажност на почвата Grove](../../../../../translated_images/bg/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. Поставете единия край на Grove кабела в гнездото на сензора за влажност на почвата. Кабелът може да бъде поставен само в една посока. 1. С изключено захранване на Raspberry Pi свържете другия край на Grove кабела към аналоговото гнездо, маркирано като **A0**, на Grove Base Hat, прикрепен към Pi. Това гнездо е второто отдясно в реда от гнезда до GPIO пиновете. -![Сензорът за влажност на почвата Grove, свързан към гнездото A0](../../../../../translated_images/bg/pi-soil-moisture-sensor.fdd7eb2393792cf6739cacf1985d9f55beda16d372f30d0b5a51d586f978a870.png) +![Сензорът за влажност на почвата Grove, свързан към гнездото A0](../../../../../translated_images/bg/pi-soil-moisture-sensor.fdd7eb2393792cf6.webp) 1. Поставете сензора за влажност на почвата в почвата. Той има линия за "най-висока позиция" – бяла линия, която минава през сензора. Поставете сензора до тази линия, но не я преминавайте. diff --git a/translations/bg/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md b/translations/bg/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md index 34ad9fd35..63f72efc2 100644 --- a/translations/bg/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md +++ b/translations/bg/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md @@ -34,11 +34,11 @@ 1. Натиснете бутона **Add**, за да създадете сензора *Soil Moisture* на Pin 0. - ![Настройки на сензора за влажност на почвата](../../../../../translated_images/bg/counterfit-create-soil-moisture-sensor.35266135a5e0ae68b29a684d7db0d2933a8098b2307d197f7c71577b724603aa.png) + ![Настройки на сензора за влажност на почвата](../../../../../translated_images/bg/counterfit-create-soil-moisture-sensor.35266135a5e0ae68.webp) Сензорът за влажност на почвата ще бъде създаден и ще се появи в списъка със сензори. - ![Създаден сензор за влажност на почвата](../../../../../translated_images/bg/counterfit-soil-moisture-sensor.81742b2de0e9de60a3b3b9a2ff8ecc686d428eb6d71820f27a693be26e5aceee.png) + ![Създаден сензор за влажност на почвата](../../../../../translated_images/bg/counterfit-soil-moisture-sensor.81742b2de0e9de60.webp) ## Програмиране на приложението за сензор за влажност на почвата diff --git a/translations/bg/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md b/translations/bg/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md index 42098ec4d..d5439b5c4 100644 --- a/translations/bg/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md +++ b/translations/bg/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md @@ -18,7 +18,7 @@ Grove сензорът за влажност на почвата може да Свържете сензора за влажност на почвата. -![Grove сензор за влажност на почвата](../../../../../translated_images/bg/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![Grove сензор за влажност на почвата](../../../../../translated_images/bg/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. Поставете единия край на Grove кабела в гнездото на сензора за влажност на почвата. Той ще влезе само в една посока. diff --git a/translations/bg/2-farm/lessons/3-automated-plant-watering/README.md b/translations/bg/2-farm/lessons/3-automated-plant-watering/README.md index e8d64eb8c..282c58b0a 100644 --- a/translations/bg/2-farm/lessons/3-automated-plant-watering/README.md +++ b/translations/bg/2-farm/lessons/3-automated-plant-watering/README.md @@ -1,6 +1,6 @@ # Автоматизирано поливане на растения -![Скица, обобщаваща този урок](../../../../../translated_images/bg/lesson-7.30b5f577d3cb8e031238751475cb519c7d6dbaea261b5df4643d086ffb2a03bb.jpg) +![Скица, обобщаваща този урок](../../../../../translated_images/bg/lesson-7.30b5f577d3cb8e03.webp) > Скица от [Nitya Narasimhan](https://github.com/nitya). Кликнете върху изображението за по-голяма версия. @@ -32,7 +32,7 @@ IoT устройствата използват ниско напрежение. Решението за това е да имате помпа, свързана към външно захранване, и да използвате изпълнителен механизъм за включване на помпата, подобно на това как бихте включили лампа. Необходима е малка мощност (под формата на енергия в тялото ви), за да може пръстът ви да натисне ключа, и това свързва лампата към електрическата мрежа, работеща на 110v/240v. -![Ключ за лампа включва захранването към лампата](../../../../../translated_images/bg/light-switch.760317ad6ab8bd6d611da5352dfe9c73a94a0822ccec7df3c8bae35da18e1658.png) +![Ключ за лампа включва захранването към лампата](../../../../../translated_images/bg/light-switch.760317ad6ab8bd6d.webp) > 🎓 [Електрическата мрежа](https://wikipedia.org/wiki/Mains_electricity) се отнася до електричеството, доставяно до домове и бизнеси чрез национална инфраструктура в много части на света. @@ -72,7 +72,7 @@ IoT устройствата използват ниско напрежение. Електромагнитът не се нуждае от много мощност, за да се активира и да издърпа лоста, той може да се контролира с 3.3V или 5V изход от IoT dev kit. Изходната верига може да носи много повече мощност, в зависимост от релето, включително напрежение от електрическата мрежа или дори по-високи нива на мощност за индустриална употреба. По този начин IoT dev kit може да контролира система за напояване, от малка помпа за едно растение до огромна индустриална система за цяла търговска ферма. -![Реле Grove с обозначени управляваща верига, изходна верига и реле](../../../../../translated_images/bg/grove-relay-labelled.293e068f5c3c2a199bd7892f2661fdc9e10c920b535cfed317fbd6d1d4ae1168.png) +![Реле Grove с обозначени управляваща верига, изходна верига и реле](../../../../../translated_images/bg/grove-relay-labelled.293e068f5c3c2a19.webp) Изображението по-горе показва реле Grove. Управляващата верига се свързва към IoT устройство и включва или изключва релето, използвайки 3.3V или 5V. Изходната верига има два терминала, всеки от тях може да бъде захранване или земя. Изходната верига може да обработва до 250V при 10A, достатъчно за редица устройства, захранвани от електрическата мрежа. Можете да получите релета, които могат да обработват дори по-високи нива на мощност. diff --git a/translations/bg/2-farm/lessons/3-automated-plant-watering/pi-relay.md b/translations/bg/2-farm/lessons/3-automated-plant-watering/pi-relay.md index c8dc778f3..98ff17f64 100644 --- a/translations/bg/2-farm/lessons/3-automated-plant-watering/pi-relay.md +++ b/translations/bg/2-farm/lessons/3-automated-plant-watering/pi-relay.md @@ -18,13 +18,13 @@ Grove релето може да бъде свързано към Raspberry Pi. Свържете релето. -![Grove реле](../../../../../translated_images/bg/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) +![Grove реле](../../../../../translated_images/bg/grove-relay.d426958ca210fbd0.webp) 1. Поставете единия край на Grove кабела в гнездото на релето. Той ще влезе само в една посока. 1. С изключено захранване на Raspberry Pi, свържете другия край на Grove кабела към цифровото гнездо, означено като **D5** на Grove Base Hat, прикрепен към Pi. Това гнездо е второто отляво, на реда с гнезда до GPIO пиновете. Оставете сензора за влажност на почвата свързан към гнездото **A0**. -![Grove релето свързано към гнездото D5, а сензорът за влажност на почвата свързан към гнездото A0](../../../../../translated_images/bg/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e69ec716cd2719ce117700bd1fc933eaf93476c103c57939b.png) +![Grove релето свързано към гнездото D5, а сензорът за влажност на почвата свързан към гнездото A0](../../../../../translated_images/bg/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e.webp) 1. Поставете сензора за влажност на почвата в почвата, ако вече не е поставен от предишния урок. diff --git a/translations/bg/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md b/translations/bg/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md index 26173e19a..78072f4bf 100644 --- a/translations/bg/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md +++ b/translations/bg/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md @@ -28,11 +28,11 @@ 1. Изберете бутона **Add**, за да създадете релето на Pin 5. - ![Настройки на релето](../../../../../translated_images/bg/counterfit-create-relay.fa7c40fd0f2f6afc33b35ea94fcb235085be4861e14e3fe6b9b7bcfc82d1c888.png) + ![Настройки на релето](../../../../../translated_images/bg/counterfit-create-relay.fa7c40fd0f2f6afc.webp) Релето ще бъде създадено и ще се появи в списъка с актуатори. - ![Създадено реле](../../../../../translated_images/bg/counterfit-relay.bbf74c1dbdc8b9acd983367fcbd06703a402aefef6af54ddb28e11307ba8a12c.png) + ![Създадено реле](../../../../../translated_images/bg/counterfit-relay.bbf74c1dbdc8b9ac.webp) ## Програмиране на релето diff --git a/translations/bg/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md b/translations/bg/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md index d50e08671..287fd25d3 100644 --- a/translations/bg/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md +++ b/translations/bg/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md @@ -18,7 +18,7 @@ Grove релето може да бъде свързано към цифрови Свържете релето. -![Grove реле](../../../../../translated_images/bg/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) +![Grove реле](../../../../../translated_images/bg/grove-relay.d426958ca210fbd0.webp) 1. Поставете единия край на Grove кабела в гнездото на релето. Той ще влезе само в една посока. diff --git a/translations/bg/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md b/translations/bg/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md index 82d077f53..603ba9d14 100644 --- a/translations/bg/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md +++ b/translations/bg/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md @@ -1,6 +1,6 @@ # Мигрирайте вашето растение към облака -![Скица на урока](../../../../../translated_images/bg/lesson-8.3f21f3c11159e6a0a376351973ea5724d5de68fa23b4288853a174bed9ac48c3.jpg) +![Скица на урока](../../../../../translated_images/bg/lesson-8.3f21f3c11159e6a0.webp) > Скица от [Nitya Narasimhan](https://github.com/nitya). Кликнете върху изображението за по-голяма версия. @@ -46,8 +46,8 @@ IoT устройството комуникира с публичен MQTT бр Облакът често се нарича шеговито "компютър на някой друг". Първоначалната идея беше проста - вместо да купувате компютри, наемате компютър на някой друг. Някой друг, доставчик на облачни услуги, управлява огромни центрове за данни. Те отговарят за закупуването и инсталирането на хардуера, управлението на електрозахранването и охлаждането, мрежовата свързаност, сигурността на сградата, актуализациите на хардуера и софтуера - всичко. Като клиент, вие наемате компютрите, които ви трябват, наемате повече, когато търсенето се увеличава, и намалявате броя, когато търсенето намалява. Тези облачни центрове за данни са разположени по целия свят. -![Облачен център за данни на Microsoft](../../../../../translated_images/bg/azure-region-existing.73f704604f2aa6cb9b5a49ed40e93d4fd81ae3f4e6af4a8ca504023902832f56.png) -![Планирано разширение на облачен център за данни на Microsoft](../../../../../translated_images/bg/azure-region-planned-expansion.a5074a1e8af74f156a73552d502429e5b126ea5019274d767ecb4b9afdad442b.png) +![Облачен център за данни на Microsoft](../../../../../translated_images/bg/azure-region-existing.73f704604f2aa6cb.webp) +![Планирано разширение на облачен център за данни на Microsoft](../../../../../translated_images/bg/azure-region-planned-expansion.a5074a1e8af74f15.webp) Тези центрове за данни могат да бъдат с площ от няколко квадратни километра. Изображенията по-горе са направени преди няколко години в облачен център за данни на Microsoft и показват първоначалния размер, както и планираното разширение. Разчистената площ за разширението е над 5 квадратни километра. @@ -108,11 +108,11 @@ IoT услугите в облака решават тези проблеми. IoT устройствата се свързват с облачна услуга или чрез SDK за устройства (библиотека, която предоставя код за работа с функциите на услугата), или директно чрез комуникационен протокол като MQTT или HTTP. SDK за устройства обикновено е най-лесният начин, тъй като се грижи за всичко, като например знае кои теми да публикува или абонира, и как да обработва сигурността. -![Устройствата се свързват с услуга чрез SDK за устройства. Сървърният код също се свързва с услугата чрез SDK](../../../../../translated_images/bg/iot-service-connectivity.7e873847921a5d6fd60d0ba3a943210194518cee0d4e362476624316443275c3.png) +![Устройствата се свързват с услуга чрез SDK за устройства. Сървърният код също се свързва с услугата чрез SDK](../../../../../translated_images/bg/iot-service-connectivity.7e873847921a5d6f.webp) Вашето устройство след това комуникира с други части на вашето приложение чрез тази услуга - подобно на начина, по който изпращахте телеметрия и получавахте команди чрез MQTT. Това обикновено става чрез SDK за услуги или подобна библиотека. Съобщенията идват от вашето устройство към услугата, където други компоненти на вашето приложение могат да ги прочетат, а съобщенията могат да бъдат изпратени обратно към вашето устройство. -![Устройства без валиден таен ключ не могат да се свържат с IoT услугата](../../../../../translated_images/bg/iot-service-allowed-denied-connection.818b0063ac213fb84204a7229303764d9b467ca430fb822b4ac2fca267d56726.png) +![Устройства без валиден таен ключ не могат да се свържат с IoT услугата](../../../../../translated_images/bg/iot-service-allowed-denied-connection.818b0063ac213fb8.webp) Тези услуги внедряват сигурност, като знаят за всички устройства, които могат да се свържат и изпращат данни, или чрез предварителна регистрация на устройствата в услугата, или чрез предоставяне на устройства с тайни ключове или сертификати, които могат да използват за регистрация в услугата при първото свързване. Непознати устройства не могат да се свържат; ако опитат, услугата отхвърля връзката и игнорира изпратените от тях съобщения. @@ -124,7 +124,7 @@ IoT устройствата се свързват с облачна услуг Сега, когато имате абонамент за Azure, можете да се регистрирате за IoT услуга. IoT услугата на Microsoft се нарича Azure IoT Hub. -![Логото на Azure IoT Hub](../../../../../translated_images/bg/azure-iot-hub-logo.28a19de76d0a1932464d858f7558712bcdace3e5ec69c434d482ed7ce41c3a26.png) +![Логото на Azure IoT Hub](../../../../../translated_images/bg/azure-iot-hub-logo.28a19de76d0a1932.webp) Видеото по-долу предоставя кратък преглед на Azure IoT Hub: diff --git a/translations/bg/2-farm/lessons/5-migrate-application-to-the-cloud/README.md b/translations/bg/2-farm/lessons/5-migrate-application-to-the-cloud/README.md index e0a3696d8..38480b886 100644 --- a/translations/bg/2-farm/lessons/5-migrate-application-to-the-cloud/README.md +++ b/translations/bg/2-farm/lessons/5-migrate-application-to-the-cloud/README.md @@ -1,6 +1,6 @@ # Мигрирайте логиката на вашето приложение към облака -![Скица на урока](../../../../../translated_images/bg/lesson-9.dfe99c8e891f48e179724520da9f5794392cf9a625079281ccdcbf09bd85e1b6.jpg) +![Скица на урока](../../../../../translated_images/bg/lesson-9.dfe99c8e891f48e1.webp) > Скица от [Nitya Narasimhan](https://github.com/nitya). Кликнете върху изображението за по-голяма версия. @@ -28,7 +28,7 @@ Serverless, или serverless изчисления, включва създаването на малки блокове код, които се изпълняват в облака в отговор на различни видове събития. Когато събитието се случи, вашият код се изпълнява и получава данни за събитието. Тези събития могат да бъдат от различни източници, включително уеб заявки, съобщения в опашка, промени в база данни или съобщения, изпратени към IoT услуга от IoT устройства. -![Събития, изпратени от IoT услуга към serverless услуга, обработвани едновременно от множество функции](../../../../../translated_images/bg/iot-messages-to-serverless.0194da1cc0732bb7d0f823aed3fce54735c6b1ad3bf36089804d8aaefc0a774f.png) +![Събития, изпратени от IoT услуга към serverless услуга, обработвани едновременно от множество функции](../../../../../translated_images/bg/iot-messages-to-serverless.0194da1cc0732bb7.webp) > 💁 Ако сте използвали тригери в база данни, можете да мислите за това като за нещо подобно – код, който се задейства от събитие, като например добавяне на ред. @@ -54,7 +54,7 @@ Serverless, или serverless изчисления, включва създав Услугата за serverless изчисления от Microsoft се нарича Azure Functions. -![Лого на Azure Functions](../../../../../translated_images/bg/azure-functions-logo.1cfc8e3204c9c44aaf80fcf406fc8544d80d7f00f8d3e8ed6fed764563e17564.png) +![Лого на Azure Functions](../../../../../translated_images/bg/azure-functions-logo.1cfc8e3204c9c44a.webp) Краткото видео по-долу предоставя преглед на Azure Functions. diff --git a/translations/bg/2-farm/lessons/6-keep-your-plant-secure/README.md b/translations/bg/2-farm/lessons/6-keep-your-plant-secure/README.md index 604333b15..26e884a1e 100644 --- a/translations/bg/2-farm/lessons/6-keep-your-plant-secure/README.md +++ b/translations/bg/2-farm/lessons/6-keep-your-plant-secure/README.md @@ -1,6 +1,6 @@ # Поддържайте вашето растение защитено -![Скица на урока](../../../../../translated_images/bg/lesson-10.829c86b80b9403bb770929ee553a1d293afe50dc23121aaf9be144673ae012cc.jpg) +![Скица на урока](../../../../../translated_images/bg/lesson-10.829c86b80b9403bb.webp) > Скица от [Nitya Narasimhan](https://github.com/nitya). Кликнете върху изображението за по-голяма версия. @@ -52,11 +52,11 @@ IoT сигурността включва гарантиране, че само Когато устройство се свързва с IoT услуга, то използва идентификатор, за да се идентифицира. Проблемът е, че този идентификатор може да бъде клониран – хакер може да настрои злонамерено устройство, което използва същия идентификатор като истинското устройство, но изпраща фалшиви данни. -![И истински, и злонамерени устройства могат да използват един и същ идентификатор, за да изпращат телеметрия](../../../../../translated_images/bg/iot-device-and-hacked-device-connecting.e0671675df74d6d99eb1dedb5a670e606f698efa6202b1ad4c8ae548db299cc6.png) +![И истински, и злонамерени устройства могат да използват един и същ идентификатор, за да изпращат телеметрия](../../../../../translated_images/bg/iot-device-and-hacked-device-connecting.e0671675df74d6d9.webp) Решението на този проблем е да се преобразуват данните, които се изпращат, в разбъркан формат, използвайки стойност, известна само на устройството и облака. Този процес се нарича *криптиране*, а стойността, използвана за криптиране на данните, се нарича *ключ за криптиране*. -![Ако се използва криптиране, само криптирани съобщения ще бъдат приети, останалите ще бъдат отхвърлени](../../../../../translated_images/bg/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f979e46f2849b573564eeb4a4dc5b52f669f62745397492fb.png) +![Ако се използва криптиране, само криптирани съобщения ще бъдат приети, останалите ще бъдат отхвърлени](../../../../../translated_images/bg/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f.webp) Облачната услуга може след това да преобразува данните обратно в четим формат, използвайки процес, наречен *декриптиране*, като използва или същия ключ за криптиране, или *ключ за декриптиране*. Ако криптираното съобщение не може да бъде декриптирано с ключа, устройството е било хакнато и съобщението се отхвърля. diff --git a/translations/bg/3-transport/lessons/1-location-tracking/README.md b/translations/bg/3-transport/lessons/1-location-tracking/README.md index c192d0a5f..e35322dac 100644 --- a/translations/bg/3-transport/lessons/1-location-tracking/README.md +++ b/translations/bg/3-transport/lessons/1-location-tracking/README.md @@ -1,6 +1,6 @@ # Проследяване на местоположението -![Скица на урока](../../../../../translated_images/bg/lesson-11.9fddbac4b664c6d50ab7ac9bb32f1fc3f945f03760e72f7f43938073762fb017.jpg) +![Скица на урока](../../../../../translated_images/bg/lesson-11.9fddbac4b664c6d5.webp) > Скица от [Nitya Narasimhan](https://github.com/nitya). Кликнете върху изображението за по-голяма версия. @@ -63,13 +63,13 @@ IoT трансформира начина, по който се транспор > 💁 Никой не знае със сигурност оригиналната причина защо кръговете са разделени на 360 градуса. [Страницата за градус (ъгъл) в Уикипедия](https://wikipedia.org/wiki/Degree_(angle)) обяснява някои от възможните причини. -![Линии на ширина от 90° на Северния полюс, 45° между Северния полюс и екватора, 0° на екватора, -45° между екватора и Южния полюс и -90° на Южния полюс](../../../../../translated_images/bg/latitude-lines.11d8d91dfb2014a57437272d7db7fd6607243098e8685f06e0c5f1ec984cb7eb.png) +![Линии на ширина от 90° на Северния полюс, 45° между Северния полюс и екватора, 0° на екватора, -45° между екватора и Южния полюс и -90° на Южния полюс](../../../../../translated_images/bg/latitude-lines.11d8d91dfb2014a5.webp) Ширината се измерва с линии, които обикалят Земята и са успоредни на екватора, разделяйки Северното и Южното полукълбо на по 90°. Екваторът е на 0°, Северният полюс е на 90°, известен също като 90° северна ширина, а Южният полюс е на -90°, или 90° южна ширина. Дължината се измерва като броя на градусите, измерени на изток и запад. Началната точка на дължината е *първият меридиан*, който е дефиниран през 1884 г. като линия от Северния до Южния полюс, преминаваща през [Кралската обсерватория в Гринуич, Англия](https://wikipedia.org/wiki/Royal_Observatory,_Greenwich). -![Линии на дължина от -180° на запад от първия меридиан, до 0° на първия меридиан, до 180° на изток от първия меридиан](../../../../../translated_images/bg/longitude-meridians.ab4ef1c91c064586b0185a3c8d39e585903696c6a7d28c098a93a629cddb5d20.png) +![Линии на дължина от -180° на запад от първия меридиан, до 0° на първия меридиан, до 180° на изток от първия меридиан](../../../../../translated_images/bg/longitude-meridians.ab4ef1c91c064586.webp) > 🎓 Меридиан е въображаема права линия, която преминава от Северния полюс до Южния полюс, образувайки полукръг. @@ -100,7 +100,7 @@ IoT трансформира начина, по който се транспор * Ширина от 47.6423109 (47.6423109 градуса северно от екватора) * Дължина от -122.1390293 (122.1390293 градуса западно от първия меридиан). -![Кампусът на Microsoft на 47.6423109,-122.117198](../../../../../translated_images/bg/microsoft-gps-location-world.a321d481b010f6adfcca139b2ba0adc53b79f58a540495b8e2ce7f779ea64bfe.png) +![Кампусът на Microsoft на 47.6423109,-122.117198](../../../../../translated_images/bg/microsoft-gps-location-world.a321d481b010f6ad.webp) ## Глобални позициониращи системи (GPS) @@ -112,7 +112,7 @@ GPS системите работят, като имат редица сател > 💁 GPS сензорите се нуждаят от антени, за да засичат радиовълни. Антените, вградени в камиони и автомобили с вграден GPS, са позиционирани така, че да получават добър сигнал, обикновено на предното стъкло или покрива. Ако използвате отделна GPS система, като смартфон или IoT устройство, трябва да се уверите, че антената, вградена в GPS системата или телефона, има ясен изглед към небето, например като е монтирана на предното стъкло. -![Чрез знанието на разстоянието от сензора до множество сателити, местоположението може да бъде изчислено](../../../../../translated_images/bg/gps-satellites.04acf1148fe25fbf1586bc2e8ba698e8d79b79a50c36824b38417dd13372b90f.png) +![Чрез знанието на разстоянието от сензора до множество сателити, местоположението може да бъде изчислено](../../../../../translated_images/bg/gps-satellites.04acf1148fe25fbf.webp) GPS сателитите обикалят Земята, а не са на фиксирана точка над сензора, така че данните за местоположението включват височина над морското равнище, както и ширина и дължина. diff --git a/translations/bg/3-transport/lessons/1-location-tracking/pi-gps-sensor.md b/translations/bg/3-transport/lessons/1-location-tracking/pi-gps-sensor.md index e23102de3..578c44d6a 100644 --- a/translations/bg/3-transport/lessons/1-location-tracking/pi-gps-sensor.md +++ b/translations/bg/3-transport/lessons/1-location-tracking/pi-gps-sensor.md @@ -18,13 +18,13 @@ Grove GPS сензорът може да бъде свързан към Raspberr Свържете GPS сензора. -![Grove GPS сензор](../../../../../translated_images/bg/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![Grove GPS сензор](../../../../../translated_images/bg/grove-gps-sensor.247943bf69b03f0d.webp) 1. Поставете единия край на Grove кабела в гнездото на GPS сензора. Кабелът може да бъде поставен само в една посока. 1. С изключен Raspberry Pi, свържете другия край на Grove кабела към гнездото UART, маркирано **UART** на Grove Base шапката, прикрепена към Pi. Това гнездо се намира на средния ред, от страната, най-близка до слота за SD карта, противоположно на USB портовете и Ethernet гнездото. - ![Grove GPS сензор, свързан към гнездото UART](../../../../../translated_images/bg/pi-gps-sensor.1f99ee2b2f6528915047ec78967bd362e0e4ee0ed594368a3837b9cf9cdaca64.png) + ![Grove GPS сензор, свързан към гнездото UART](../../../../../translated_images/bg/pi-gps-sensor.1f99ee2b2f652891.webp) 1. Поставете GPS сензора така, че прикрепената антена да има видимост към небето - идеално до отворен прозорец или навън. По-лесно е да получите ясен сигнал, когато няма препятствия пред антената. diff --git a/translations/bg/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md b/translations/bg/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md index 88d2e9a97..776f83e72 100644 --- a/translations/bg/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md +++ b/translations/bg/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md @@ -38,11 +38,11 @@ 1. Изберете бутона **Add**, за да създадете GPS сензора на порт `/dev/ttyAMA0`. - ![Настройки на GPS сензора](../../../../../translated_images/bg/counterfit-create-gps-sensor.6385dc9357d85ad1d47b4abb2525e7651fd498917d25eefc5a72feab09eedc70.png) + ![Настройки на GPS сензора](../../../../../translated_images/bg/counterfit-create-gps-sensor.6385dc9357d85ad1.webp) GPS сензорът ще бъде създаден и ще се появи в списъка със сензори. - ![Създаден GPS сензор](../../../../../translated_images/bg/counterfit-gps-sensor.3fbb15af0a5367566f2f11324ef5a6f30861cdf2b497071a5e002b7aa473550e.png) + ![Създаден GPS сензор](../../../../../translated_images/bg/counterfit-gps-sensor.3fbb15af0a536756.webp) ## Програмиране на GPS сензора @@ -102,17 +102,17 @@ * Задайте **Source** на `Lat/Lon` и задайте конкретна ширина, дължина и брой сателити, използвани за GPS фиксация. Тази стойност ще бъде изпратена само веднъж, така че маркирайте полето **Repeat**, за да се повтаря данните всяка секунда. - ![GPS сензор с избрани Lat/Lon](../../../../../translated_images/bg/counterfit-gps-sensor-latlon.008c867d75464fbe7f84107cc57040df565ac07cb57d2f21db37d087d470197d.png) + ![GPS сензор с избрани Lat/Lon](../../../../../translated_images/bg/counterfit-gps-sensor-latlon.008c867d75464fbe.webp) * Задайте **Source** на `NMEA` и добавете няколко NMEA изречения в текстовото поле. Всички тези стойности ще бъдат изпратени, като има забавяне от 1 секунда преди всяко ново GGA (позиционна фиксация) изречение да бъде прочетено. - ![GPS сензор с зададени NMEA изречения](../../../../../translated_images/bg/counterfit-gps-sensor-nmea.c62eea442171e17e19528b051b104cfcecdc9cd18db7bc72920f29821ae63f73.png) + ![GPS сензор с зададени NMEA изречения](../../../../../translated_images/bg/counterfit-gps-sensor-nmea.c62eea442171e17e.webp) Можете да използвате инструмент като [nmeagen.org](https://www.nmeagen.org), за да генерирате тези изречения, като рисувате върху карта. Тези стойности ще бъдат изпратени само веднъж, така че маркирайте полето **Repeat**, за да се повтарят данните една секунда след като всички са изпратени. * Задайте **Source** на GPX файл и качете GPX файл с местоположения на тракове. Можете да изтеглите GPX файлове от редица популярни сайтове за карти и туризъм, като [AllTrails](https://www.alltrails.com/). Тези файлове съдържат множество GPS местоположения като трак, а GPS сензорът ще връща всяко ново местоположение на интервали от 1 секунда. - ![GPS сензор с зададен GPX файл](../../../../../translated_images/bg/counterfit-gps-sensor-gpxfile.8310b063ce8a425ccc8ebeec8306aeac5e8e55207f007d52c6e1194432a70cd9.png) + ![GPS сензор с зададен GPX файл](../../../../../translated_images/bg/counterfit-gps-sensor-gpxfile.8310b063ce8a425c.webp) Тези стойности ще бъдат изпратени само веднъж, така че маркирайте полето **Repeat**, за да се повтарят данните една секунда след като всички са изпратени. diff --git a/translations/bg/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md b/translations/bg/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md index 7254b12b9..4d4fb23fa 100644 --- a/translations/bg/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md +++ b/translations/bg/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md @@ -18,7 +18,7 @@ Grove GPS сензорът може да бъде свързан към Wio Term Свържете GPS сензора. -![Grove GPS сензор](../../../../../translated_images/bg/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![Grove GPS сензор](../../../../../translated_images/bg/grove-gps-sensor.247943bf69b03f0d.webp) 1. Поставете единия край на Grove кабела в гнездото на GPS сензора. Той ще влезе само в една посока. diff --git a/translations/bg/3-transport/lessons/2-store-location-data/README.md b/translations/bg/3-transport/lessons/2-store-location-data/README.md index 6b079aa5b..77501c15b 100644 --- a/translations/bg/3-transport/lessons/2-store-location-data/README.md +++ b/translations/bg/3-transport/lessons/2-store-location-data/README.md @@ -1,6 +1,6 @@ # Съхраняване на данни за местоположение -![Скица на урока](../../../../../translated_images/bg/lesson-12.ca7f53039712a3ec14ad6474d8445361c84adab643edc53fa6269b77895606bb.jpg) +![Скица на урока](../../../../../translated_images/bg/lesson-12.ca7f53039712a3ec.webp) > Скица от [Nitya Narasimhan](https://github.com/nitya). Кликнете върху изображението за по-голяма версия. @@ -75,7 +75,7 @@ NoSQL базите данни се наричат така, защото ням > 💁 Въпреки името си, някои NoSQL бази данни позволяват използването на SQL за извличане на данни. -![Документи в папки в NoSQL база данни](../../../../../translated_images/bg/noqsl-database.62d24ccf5b73f60d35c245a8533f1c7147c0928e955b82cb290b2e184bb434df.png) +![Документи в папки в NoSQL база данни](../../../../../translated_images/bg/noqsl-database.62d24ccf5b73f60d.webp) NoSQL базите данни нямат предварително дефинирана схема, която ограничава начина на съхранение на данни. Вместо това можете да вмъквате всякакви неструктурирани данни, обикновено използвайки JSON документи. Тези документи могат да бъдат организирани в папки, подобно на файлове на вашия компютър. Всеки документ може да има различни полета от другите документи - например, ако съхранявате IoT данни от селскостопански превозни средства, някои може да имат полета за данни от акселерометър и скорост, а други - за температура в ремаркето. Ако добавите нов тип камион, например такъв с вградени везни за проследяване на теглото на превозваната продукция, вашето IoT устройство може да добави това ново поле и то може да бъде съхранено без промени в базата данни. @@ -89,7 +89,7 @@ NoSQL базите данни нямат предварително дефини В последния урок улавяхте GPS данни от GPS сензор, свързан с вашето IoT устройство. За да съхраните тези IoT данни в облака, трябва да ги изпратите към IoT услуга. Отново ще използвате Azure IoT Hub, същата IoT облачна услуга, която използвахте в предишния проект. -![Изпращане на GPS телеметрия от IoT устройство към IoT Hub](../../../../../translated_images/bg/gps-telemetry-iot-hub.8115335d51cd2c1285d20e9d1b18cf685e59a8e093e7797291ef173445af6f3d.png) +![Изпращане на GPS телеметрия от IoT устройство към IoT Hub](../../../../../translated_images/bg/gps-telemetry-iot-hub.8115335d51cd2c12.webp) ### Задача - изпращане на GPS данни към IoT Hub @@ -171,7 +171,7 @@ message = Message(json.dumps(message_json)) След като данните започнат да се изпращат към вашия IoT Hub, можете да напишете безсървърен код, който да слуша събития, публикувани към Event-Hub съвместимия край. Това е топлият път - тези данни ще бъдат съхранени и използвани в следващия урок за отчитане на пътуването. -![Изпращане на GPS телеметрия от IoT устройство към IoT Hub, след това към Azure Functions чрез event hub trigger](../../../../../translated_images/bg/gps-telemetry-iot-hub-functions.24d3fa5592455e9f4e2fe73856b40c3915a292b90263c31d652acfd976cfedd8.png) +![Изпращане на GPS телеметрия от IoT устройство към IoT Hub, след това към Azure Functions чрез event hub trigger](../../../../../translated_images/bg/gps-telemetry-iot-hub-functions.24d3fa5592455e9f.webp) ### Задача - обработка на GPS събития с безсървърен код @@ -193,7 +193,7 @@ message = Message(json.dumps(message_json)) ## Azure Storage Accounts -![Логото на Azure Storage](../../../../../translated_images/bg/azure-storage-logo.605c0f602c640d482a80f1b35a2629a32d595711b7ab1d7ceea843250615ff32.png) +![Логото на Azure Storage](../../../../../translated_images/bg/azure-storage-logo.605c0f602c640d48.webp) Azure Storage Accounts е универсална услуга за съхранение, която може да съхранява данни по различни начини. Можете да съхранявате данни като блобове, в опашки, в таблици или като файлове, и всичко това едновременно. diff --git a/translations/bg/3-transport/lessons/3-visualize-location-data/README.md b/translations/bg/3-transport/lessons/3-visualize-location-data/README.md index 4b9c53aca..3eb6543eb 100644 --- a/translations/bg/3-transport/lessons/3-visualize-location-data/README.md +++ b/translations/bg/3-transport/lessons/3-visualize-location-data/README.md @@ -1,6 +1,6 @@ # Визуализиране на данни за местоположение -![Скица, обобщаваща този урок](../../../../../translated_images/bg/lesson-13.a259db1485021be7d7c72e90842fbe0ab977529e8684c179b5fb1ea75e92b3ef.jpg) +![Скица, обобщаваща този урок](../../../../../translated_images/bg/lesson-13.a259db1485021be7.webp) > Скица от [Nitya Narasimhan](https://github.com/nitya). Кликнете върху изображението за по-голяма версия. @@ -64,11 +64,11 @@ За човек разбирането на тези данни може да бъде трудно. Това е стена от числа без контекст. Като първа стъпка към визуализацията на тези данни, те могат да бъдат нанесени на линейна диаграма: -![Линейна диаграма на горните данни](../../../../../translated_images/bg/chart-soil-moisture.fd6d9d0cdc0b5f75e78038ecb8945dfc84b38851359de99d84b16e3336d6d7c2.png) +![Линейна диаграма на горните данни](../../../../../translated_images/bg/chart-soil-moisture.fd6d9d0cdc0b5f75.webp) Тази диаграма може да бъде допълнително подобрена, като се добави линия, която показва кога автоматичната система за напояване се е включила при стойност на влажността на почвата от 450: -![Линейна диаграма на влажността на почвата с линия при 450](../../../../../translated_images/bg/chart-soil-moisture-relay.fbb391236d34a64d0abf1df396e9197e0a24df14150620b9cc820a64a55c9326.png) +![Линейна диаграма на влажността на почвата с линия при 450](../../../../../translated_images/bg/chart-soil-moisture-relay.fbb391236d34a64d.webp) Тази диаграма показва много бързо не само какви са били нивата на влажност на почвата, но и точките, в които системата за напояване се е включила. @@ -84,7 +84,7 @@ Работата с карти е интересна задача, като има много опции за избор, като Bing Maps, Leaflet, Open Street Maps и Google Maps. В този урок ще научите за [Azure Maps](https://azure.microsoft.com/services/azure-maps/?WT.mc_id=academic-17441-jabenn) и как те могат да визуализират вашите GPS данни. -![Лого на Azure Maps](../../../../../translated_images/bg/azure-maps-logo.35d01dcfbd81fe6140e94257aaa1538f785a58c91576d14e0ebe7a2f6c694b99.png) +![Лого на Azure Maps](../../../../../translated_images/bg/azure-maps-logo.35d01dcfbd81fe61.webp) Azure Maps е "колекция от геопространствени услуги и SDK, които използват актуални картографски данни, за да предоставят географски контекст за уеб и мобилни приложения." Разработчиците разполагат с инструменти за създаване на красиви, интерактивни карти, които могат да предоставят препоръчителни маршрути, информация за пътни инциденти, вътрешна навигация, възможности за търсене, информация за надморска височина, метеорологични услуги и други. @@ -185,7 +185,7 @@ Azure Maps е "колекция от геопространствени услу Ако отворите вашия `index.html` файл в уеб браузър, трябва да видите карта, заредена и фокусирана върху района на Сиатъл. - ![Карта, показваща Сиатъл, град в щата Вашингтон, САЩ](../../../../../translated_images/bg/map-image.8fb2c53eb23ef39c1c0a4410a5282e879b3b452b707eb066ff04c5488d3d72b7.png) + ![Карта, показваща Сиатъл, град в щата Вашингтон, САЩ](../../../../../translated_images/bg/map-image.8fb2c53eb23ef39c.webp) ✅ Експериментирайте с параметрите за мащабиране и центриране, за да промените изгледа на картата. Можете да добавите различни координати, съответстващи на ширината и дължината на вашите данни, за да прецентрирате картата. @@ -319,7 +319,7 @@ Azure Maps е "колекция от геопространствени услу 1. Заредете HTML страницата в браузъра си. Тя ще зареди картата, след това ще зареди всички GPS данни от хранилището и ще ги изобрази на картата. - ![Карта на Saint Edward State Park близо до Сиатъл, с кръгове, показващи път около ръба на парка](../../../../../translated_images/bg/map-path.896832e72dc696ffe20650e4051027d4855442d955f93fdbb80bb417ca8a406f.png) + ![Карта на Saint Edward State Park близо до Сиатъл, с кръгове, показващи път около ръба на парка](../../../../../translated_images/bg/map-path.896832e72dc696ff.webp) > 💁 Можете да намерите този код в [папката с код](../../../../../3-transport/lessons/3-visualize-location-data/code). diff --git a/translations/bg/3-transport/lessons/4-geofences/README.md b/translations/bg/3-transport/lessons/4-geofences/README.md index 225aff0b0..234a68902 100644 --- a/translations/bg/3-transport/lessons/4-geofences/README.md +++ b/translations/bg/3-transport/lessons/4-geofences/README.md @@ -1,6 +1,6 @@ # Геозони -![Скица на урока](../../../../../translated_images/bg/lesson-14.63980c5150ae3c153e770fb71d044c1845dce79248d86bed9fc525adf3ede73c.jpg) +![Скица на урока](../../../../../translated_images/bg/lesson-14.63980c5150ae3c15.webp) > Скица от [Nitya Narasimhan](https://github.com/nitya). Кликнете върху изображението за по-голяма версия. @@ -35,7 +35,7 @@ Геозоната е виртуален периметър за реален географски регион. Геозоните могат да бъдат кръгове, дефинирани като точка и радиус (например кръг с ширина 100 м около сграда), или полигони, обхващащи зона като училищна зона, градски граници или университетски или офис кампус. -![Примери за геозони, показващи кръгова геозона около магазина на Microsoft и полигонална геозона около западния кампус на Microsoft](../../../../../translated_images/bg/geofence-examples.172fbc534665769f6e1a1ddcf75e3b25183cd10354c80cc603ba44b635390e1a.png) +![Примери за геозони, показващи кръгова геозона около магазина на Microsoft и полигонална геозона около западния кампус на Microsoft](../../../../../translated_images/bg/geofence-examples.172fbc534665769f.webp) > 💁 Може би вече сте използвали геозони, без да знаете. Ако сте задали напомняне с приложението за напомняния на iOS или Google Keep въз основа на местоположение, сте използвали геозона. Тези приложения създават геозона въз основа на зададеното местоположение и ви уведомяват, когато телефонът ви влезе в геозоната. @@ -212,7 +212,7 @@ Azure Maps, услугата, която използвахте в послед Например, представете си GPS показания, показващи, че превозното средство се движи по път, който в крайна сметка минава до геозона. Ако една GPS стойност е неточна и поставя превозното средство вътре в геозоната, въпреки че няма достъп за превозни средства, тогава тя може да бъде игнорирана. -![GPS следа, показваща превозно средство, преминаващо покрай кампуса на Microsoft на 520, с GPS показания по пътя, освен едно на кампуса, вътре в геозона](../../../../../translated_images/bg/geofence-crossing-inaccurate-gps.6a3ed911202ad9cabb66d3964888cec03a42c61d5b8f536ad5bdc99716b370f5.png) +![GPS следа, показваща превозно средство, преминаващо покрай кампуса на Microsoft на 520, с GPS показания по пътя, освен едно на кампуса, вътре в геозона](../../../../../translated_images/bg/geofence-crossing-inaccurate-gps.6a3ed911202ad9ca.webp) На изображението по-горе е показан геозон, обхващащ част от кампуса на Microsoft. Червената линия показва камион, който се движи по магистрала 520, като кръговете обозначават GPS отчитанията. Повечето от тях са точни и се намират по магистралата, но едно отчитане е неточно и попада в геозона. Няма как това отчитане да е вярно – няма пътища, по които камионът внезапно да се отклони от магистралата към кампуса и след това да се върне обратно на магистралата. Кодът, който проверява този геозон, ще трябва да вземе предвид предишните отчитания, преди да действа въз основа на резултатите от теста на геозона. ✅ Какви допълнителни данни бихте проверили, за да определите дали едно GPS отчитане може да се счита за вярно? @@ -284,7 +284,7 @@ Azure Maps, услугата, която използвахте в послед Отговорът е, че не може! Вместо това можете да дефинирате няколко отделни връзки за четене на събития, като всяка от тях управлява възпроизвеждането на непрочетените съобщения. Те се наричат *групи на потребители*. Когато се свържете към крайна точка, можете да посочите към коя група на потребители искате да се свържете. Всеки компонент на вашето приложение ще се свърже към различна група на потребители. -![Един IoT Hub с 3 групи на потребители, разпределящи едни и същи съобщения към 3 различни функции](../../../../../translated_images/bg/consumer-groups.a3262e26fc27ba2092863678ad57af15c7223416e388a23f330c058cf4358630.png) +![Един IoT Hub с 3 групи на потребители, разпределящи едни и същи съобщения към 3 различни функции](../../../../../translated_images/bg/consumer-groups.a3262e26fc27ba20.webp) Теоретично до 5 приложения могат да се свържат към всяка група на потребители и всички те ще получават съобщения, когато пристигнат. Най-добрата практика е само едно приложение да има достъп до всяка група на потребители, за да се избегне дублиране на обработката на съобщения и да се гарантира, че при рестартиране всички съобщения в опашката ще бъдат обработени правилно. Например, ако стартирате вашето Functions приложение локално, както и в облака, и двете ще обработват съобщения, което ще доведе до дублиране на данни в хранилището. diff --git a/translations/bg/4-manufacturing/lessons/1-train-fruit-detector/README.md b/translations/bg/4-manufacturing/lessons/1-train-fruit-detector/README.md index 6627da86c..7cb6d0712 100644 --- a/translations/bg/4-manufacturing/lessons/1-train-fruit-detector/README.md +++ b/translations/bg/4-manufacturing/lessons/1-train-fruit-detector/README.md @@ -1,6 +1,6 @@ # Обучение на детектор за качество на плодове -![Скица на урока](../../../../../translated_images/bg/lesson-15.843d21afdc6fb2bba70cd9db7b7d2f91598859fafda2078b0bdc44954194b6c0.jpg) +![Скица на урока](../../../../../translated_images/bg/lesson-15.843d21afdc6fb2bb.webp) > Скица от [Nitya Narasimhan](https://github.com/nitya). Кликнете върху изображението за по-голяма версия. @@ -38,7 +38,7 @@ С възхода на автоматизираното събиране, сортирането на продукцията се премести от събирането към фабриката. Храната се транспортира по дълги конвейерни ленти с екипи от хора, които премахват всичко, което не отговаря на изискваните стандарти за качество. Събирането стана по-евтино благодарение на машините, но все още имаше разходи за ръчно сортиране на храната. -![Ако се открие червен домат, той продължава пътя си без прекъсване. Ако се открие зелен домат, той се изхвърля в кош за отпадъци с помощта на лост](../../../../../translated_images/bg/optical-tomato-sorting.61aa134bdda4e5b1bfb16a212c1e35a6ef0c426cbb8b1c975f79d7bfbf48d068.png) +![Ако се открие червен домат, той продължава пътя си без прекъсване. Ако се открие зелен домат, той се изхвърля в кош за отпадъци с помощта на лост](../../../../../translated_images/bg/optical-tomato-sorting.61aa134bdda4e5b1.webp) Следващата еволюция беше използването на машини за сортиране, било то вградени в комбайна или в заводите за обработка. Първото поколение от тези машини използваше оптични сензори за откриване на цветове, контролирайки механизми за изхвърляне на зелени домати в кош за отпадъци с помощта на лостове или въздушни струи, оставяйки червените домати да продължат по мрежата от конвейерни ленти. @@ -62,7 +62,7 @@ > 🎓 Резултатите от ML моделите се наричат *предсказания*. -![2 банана, един узрял с предсказание от 99.7% узрял, 0.3% неузрял, и един неузрял с предсказание от 1.4% узрял, 98.6% неузрял](../../../../../translated_images/bg/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50ece4e4589e724b142da0681f35470fe3db3f7d51240f69c85.png) +![2 банана, един узрял с предсказание от 99.7% узрял, 0.3% неузрял, и един неузрял с предсказание от 1.4% узрял, 98.6% неузрял](../../../../../translated_images/bg/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50e.webp) ML моделите не дават двоичен отговор, а вместо това дават вероятности. Например, модел може да получи снимка на банан и да предскаже `узрял` с 99.7% и `неузрял` с 0.3%. Вашият код би избрал най-доброто предсказание и би решил, че бананът е узрял. @@ -90,7 +90,7 @@ ML моделите не дават двоичен отговор, а вмест Custom Vision е облачен инструмент за обучение на класификатори на изображения. Той ви позволява да обучите класификатор, използвайки само малък брой изображения. Можете да качвате изображения чрез уеб портал, уеб API или SDK, като давате на всяко изображение *етикет*, който представлява класификацията на това изображение. След това обучавате модела и го тествате, за да видите колко добре се представя. След като сте доволни от модела, можете да публикувате версии на него, които могат да бъдат достъпни чрез уеб API или SDK. -![Логото на Azure Custom Vision](../../../../../translated_images/bg/custom-vision-logo.d3d4e7c8a87ec9daf825e72e210576c3cbf60312577be7a139e22dd97ab7f1e6.png) +![Логото на Azure Custom Vision](../../../../../translated_images/bg/custom-vision-logo.d3d4e7c8a87ec9da.webp) > 💁 Можете да обучите модел на Custom Vision с минимум 5 изображения на класификация, но повече е по-добре. Можете да получите по-добри резултати с поне 30 изображения. @@ -146,7 +146,7 @@ Custom Vision е част от набор от AI инструменти от Mi Когато създавате проекта, уверете се, че използвате ресурса `fruit-quality-detector-training`, който създадохте по-рано. Използвайте тип проект *Classification*, тип класификация *Multiclass* и домейн *Food*. - ![Настройките за проекта Custom Vision с име fruit-quality-detector, без описание, ресурсът зададен на fruit-quality-detector-training, типът проект зададен на classification, типът класификация зададен на multi class и домейнът зададен на food](../../../../../translated_images/bg/custom-vision-create-project.cf46325b92d8b131089f6647cf5e07b664cb77850e106d66e3c057b6b69756c6.png) + ![Настройките за проекта Custom Vision с име fruit-quality-detector, без описание, ресурсът зададен на fruit-quality-detector-training, типът проект зададен на classification, типът класификация зададен на multi class и домейнът зададен на food](../../../../../translated_images/bg/custom-vision-create-project.cf46325b92d8b131.webp) ✅ Отделете време, за да разгледате потребителския интерфейс на Custom Vision за вашия класификатор на изображения. @@ -164,7 +164,7 @@ Custom Vision е част от набор от AI инструменти от Mi * Използвайки 2 узрели банана, направете няколко снимки на всеки от тях от различни ъгли, като направите поне 7 снимки (5 за обучение, 2 за тестване), но идеално повече. - ![Снимки на 2 различни банана](../../../../../translated_images/bg/banana-training-images.530eb203346d73bc23b8b990fb4609470bf4ff7c942ccc13d4cfffeed9be1ad4.png) + ![Снимки на 2 различни банана](../../../../../translated_images/bg/banana-training-images.530eb203346d73bc.webp) * Повторете същия процес с 2 неузрели банана. @@ -174,7 +174,7 @@ Custom Vision е част от набор от AI инструменти от Mi 1. Следвайте [секцията за качване и етикетиране на изображения от бързото ръководство за създаване на класификатор в Microsoft документацията](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`. - ![Диалозите за качване, показващи качването на снимки на узрели и неузрели банани](../../../../../translated_images/bg/image-upload-bananas.0751639f3815e0ec42bdbc6254d1e4357a185834d1ae10c9948a0e7d6d336695.png) + ![Диалозите за качване, показващи качването на снимки на узрели и неузрели банани](../../../../../translated_images/bg/image-upload-bananas.0751639f3815e0ec.webp) 1. Следвайте [секцията за обучение на класификатора от бързото ръководство за създаване на класификатор в Microsoft документацията](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#train-the-classifier), за да обучите класификатора на изображения върху качените от вас изображения. @@ -192,7 +192,7 @@ Custom Vision е част от набор от AI инструменти от Mi 1. Следвайте [документацията за тестване на вашия модел в Microsoft документацията](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/test-your-model?WT.mc_id=academic-17441-jabenn#test-your-model), за да тествате вашия класификатор на изображения. Използвайте тестовите изображения, които създадохте по-рано, а не някое от изображенията, които използвахте за обучение. - ![Неузрял банан, предсказан като неузрял с 98.9% вероятност, узрял с 1.1% вероятност](../../../../../translated_images/bg/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64886422438850ea14f0be6ac918c217ea3b255c685abfabe7.png) + ![Неузрял банан, предсказан като неузрял с 98.9% вероятност, узрял с 1.1% вероятност](../../../../../translated_images/bg/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64.webp) 1. Опитайте всички тестови изображения, до които имате достъп, и наблюдавайте вероятностите. diff --git a/translations/bg/4-manufacturing/lessons/2-check-fruit-from-device/README.md b/translations/bg/4-manufacturing/lessons/2-check-fruit-from-device/README.md index df971c424..7be01a136 100644 --- a/translations/bg/4-manufacturing/lessons/2-check-fruit-from-device/README.md +++ b/translations/bg/4-manufacturing/lessons/2-check-fruit-from-device/README.md @@ -1,6 +1,6 @@ # Проверка на качеството на плодове чрез IoT устройство -![Скица на урока](../../../../../translated_images/bg/lesson-16.215daf18b00631fbdfd64c6fc2dc6044dff5d544288825d8076f9fb83d964c23.jpg) +![Скица на урока](../../../../../translated_images/bg/lesson-16.215daf18b00631fb.webp) > Скица от [Nitya Narasimhan](https://github.com/nitya). Кликнете върху изображението за по-голяма версия. @@ -26,7 +26,7 @@ Сензорите на камери, както подсказва името, са камери, които можете да свържете към вашето IoT устройство. Те могат да правят статични изображения или да заснемат видео поток. Някои връщат сурови данни за изображения, а други компресират данните в файлове като JPEG или PNG. Обикновено камерите, които работят с IoT устройства, са много по-малки и с по-ниска резолюция от тези, с които сте свикнали, но можете да намерите камери с висока резолюция, които съперничат на най-добрите телефони. Можете да получите различни сменяеми обективи, многокамерни настройки, инфрачервени термални камери или UV камери. -![Светлината от сцена преминава през обектив и се фокусира върху CMOS сензор](../../../../../translated_images/bg/cmos-sensor.75f9cd74decb137149a4c9ea825251a4549497d67c0ae2776159e6102bb53aa9.png) +![Светлината от сцена преминава през обектив и се фокусира върху CMOS сензор](../../../../../translated_images/bg/cmos-sensor.75f9cd74decb1371.webp) Повечето сензори на камери използват сензори за изображения, където всеки пиксел е фотодиод. Обективът фокусира изображението върху сензора за изображения, а хиляди или милиони фотодиоди откриват светлината, падаща върху всеки от тях, и я записват като данни за пиксели. @@ -74,7 +74,7 @@ 1. Изберете бутона **Publish** за итерацията. - ![Бутонът за публикуване](../../../../../translated_images/bg/custom-vision-publish-button.b7174e1977b0c33b8b72d4e5b1326c779e0af196f3849d09985ee2d7d5493a39.png) + ![Бутонът за публикуване](../../../../../translated_images/bg/custom-vision-publish-button.b7174e1977b0c33b.webp) 1. В диалога *Publish Model* задайте *Prediction resource* на ресурса `fruit-quality-detector-prediction`, който създадохте в последния урок. Оставете името като `Iteration2` и изберете бутона **Publish**. @@ -88,7 +88,7 @@ Също така вземете копие на стойността *Prediction-Key*. Това е защитен ключ, който трябва да предадете, когато извиквате модела. Само приложения, които предават този ключ, имат право да използват модела, всички други приложения се отхвърлят. - ![Диалогът за API за предсказания, показващ URL и ключ](../../../../../translated_images/bg/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![Диалогът за API за предсказания, показващ URL и ключ](../../../../../translated_images/bg/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ Когато се публикува нова итерация, тя ще има различно име. Как мислите, че бихте променили итерацията, която IoT устройството използва? @@ -109,7 +109,7 @@ За да получите най-добри резултати от класификатор на изображения, трябва да обучите модела с изображения, които са възможно най-близки до изображенията, използвани за предсказания. Ако сте използвали камерата на телефона си за заснемане на изображения за обучение, например, качеството на изображението, остротата и цветовете ще бъдат различни от камерата, свързана към IoT устройство. -![2 снимки на банан, една с ниска резолюция и лошо осветление от IoT устройство, и друга с висока резолюция и добро осветление от телефон](../../../../../translated_images/bg/banana-picture-compare.174df164dc326a42cf7fb051a7497e6113c620e91552d92ca914220305d47d9a.png) +![2 снимки на банан, една с ниска резолюция и лошо осветление от IoT устройство, и друга с висока резолюция и добро осветление от телефон](../../../../../translated_images/bg/banana-picture-compare.174df164dc326a42.webp) На изображението по-горе снимката на банана отляво е направена с камера на Raspberry Pi, а тази отдясно е направена на същия банан на същото място с iPhone. Има забележима разлика в качеството - снимката с iPhone е по-ясна, с по-ярки цветове и повече контраст. diff --git a/translations/bg/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md b/translations/bg/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md index 57c03514c..f341174a8 100644 --- a/translations/bg/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md +++ b/translations/bg/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md @@ -16,7 +16,7 @@ Raspberry Pi се нуждае от камера. ### Задача - свържете камерата -![Камера за Raspberry Pi](../../../../../translated_images/bg/pi-camera-module.4278753c31bd6e757aa2b858be97d72049f71616278cefe4fb5abb485b40a078.png) +![Камера за Raspberry Pi](../../../../../translated_images/bg/pi-camera-module.4278753c31bd6e75.webp) 1. Изключете захранването на Raspberry Pi. @@ -24,17 +24,17 @@ Raspberry Pi се нуждае от камера. Можете да намерите анимация, показваща как да отворите клипса и да поставите кабела, в [документацията за започване с камерата на Raspberry Pi](https://projects.raspberrypi.org/en/projects/getting-started-with-picamera/2). - ![Лентовият кабел, поставен в модула на камерата](../../../../../translated_images/bg/pi-camera-ribbon-cable.0bf82acd251611c21ac616f082849413e2b322a261d0e4f8fec344248083b07e.png) + ![Лентовият кабел, поставен в модула на камерата](../../../../../translated_images/bg/pi-camera-ribbon-cable.0bf82acd251611c2.webp) 1. Свалете Grove Base Hat от Raspberry Pi. 1. Прекарайте лентовия кабел през отвора за камерата в Grove Base Hat. Уверете се, че синята страна на кабела е обърната към аналоговите портове, обозначени като **A0**, **A1** и т.н. - ![Лентовият кабел, преминаващ през Grove Base Hat](../../../../../translated_images/bg/grove-base-hat-ribbon-cable.501fed202fcf73b11b2b68f6d246189f7d15d3e4423c572ddee79d77b4632b47.png) + ![Лентовият кабел, преминаващ през Grove Base Hat](../../../../../translated_images/bg/grove-base-hat-ribbon-cable.501fed202fcf73b1.webp) 1. Поставете лентовия кабел в порта за камерата на Raspberry Pi. Отново издърпайте черния пластмасов клипс нагоре, поставете кабела и след това натиснете клипса обратно. Синята страна на кабела трябва да е обърната към USB и Ethernet портовете. - ![Лентовият кабел, свързан към порта за камерата на Raspberry Pi](../../../../../translated_images/bg/pi-camera-socket-ribbon-cable.a18309920b11800911082ed7aa6fb28e6d9be3a022e4079ff990016cae3fca10.png) + ![Лентовият кабел, свързан към порта за камерата на Raspberry Pi](../../../../../translated_images/bg/pi-camera-socket-ribbon-cable.a18309920b118009.webp) 1. Поставете отново Grove Base Hat. @@ -101,7 +101,7 @@ Raspberry Pi се нуждае от камера. Линията `camera.rotation = 0` задава ротацията на изображението. Лентовият кабел влиза в долната част на камерата, но ако камерата ви е завъртяна, за да улесни насочването към обекта, който искате да класифицирате, можете да промените тази линия на броя градуси на ротация. - ![Камерата, висяща над кенче](../../../../../translated_images/bg/pi-camera-upside-down.5376961ba31459883362124152ad6b823d5ac5fc14e85f317e22903bd681c2b6.png) + ![Камерата, висяща над кенче](../../../../../translated_images/bg/pi-camera-upside-down.5376961ba3145988.webp) Например, ако окачите лентовия кабел над нещо, така че да е в горната част на камерата, задайте ротацията на 180: diff --git a/translations/bg/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md b/translations/bg/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md index 646d4d2fb..ebddad203 100644 --- a/translations/bg/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md +++ b/translations/bg/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md @@ -84,7 +84,7 @@ Ще можете да видите заснетото изображение, както и тези стойности в таба **Predictions** в Custom Vision. - ![Банан в Custom Vision, предсказан като узрял с 56.8% и неузрял с 43.1%](../../../../../translated_images/bg/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![Банан в Custom Vision, предсказан като узрял с 56.8% и неузрял с 43.1%](../../../../../translated_images/bg/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 Можете да намерите този код в папката [code-classify/pi](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/pi) или [code-classify/virtual-iot-device](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/virtual-iot-device). diff --git a/translations/bg/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md b/translations/bg/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md index 1c1318e5d..673d5f54e 100644 --- a/translations/bg/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md +++ b/translations/bg/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md @@ -34,11 +34,11 @@ 1. Изберете бутона **Add**, за да създадете камерата. - ![Настройки на камерата](../../../../../translated_images/bg/counterfit-create-camera.a5de97f59c0bd3cbe0416d7e89a3cfe86d19fbae05c641c53a91286412af0a34.png) + ![Настройки на камерата](../../../../../translated_images/bg/counterfit-create-camera.a5de97f59c0bd3cb.webp) Камерата ще бъде създадена и ще се появи в списъка със сензори. - ![Създадена камера](../../../../../translated_images/bg/counterfit-camera.001ec52194c8ee5d3f617173da2c79e1df903d10882adc625cbfc493525125d4.png) + ![Създадена камера](../../../../../translated_images/bg/counterfit-camera.001ec52194c8ee5d.webp) ## Програмиране на камерата @@ -103,7 +103,7 @@ 1. Конфигурирайте изображението, което камерата в CounterFit ще заснеме. Можете да зададете *Source* на *File*, след което да качите файл с изображение, или да зададете *Source* на *WebCam*, и изображенията ще бъдат заснемани от вашата уеб камера. Уверете се, че сте избрали бутона **Set**, след като изберете снимка или уеб камера. - ![CounterFit с файл, зададен като източник на изображение, и уеб камера, показваща човек, държащ банан в предварителен преглед на уеб камерата](../../../../../translated_images/bg/counterfit-camera-options.eb3bd5150a8e7dffbf24bc5bcaba0cf2cdef95fbe6bbe393695d173817d6b8df.png) + ![CounterFit с файл, зададен като източник на изображение, и уеб камера, показваща човек, държащ банан в предварителен преглед на уеб камерата](../../../../../translated_images/bg/counterfit-camera-options.eb3bd5150a8e7dff.webp) 1. Изображение ще бъде заснето и запазено като `image.jpg` в текущата папка. Ще видите този файл в Explorer на VS Code. Изберете файла, за да видите изображението. Ако е необходимо завъртане, актуализирайте реда `camera.rotation = 0`, както е необходимо, и направете нова снимка. diff --git a/translations/bg/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md b/translations/bg/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md index 9a749c844..cbc327c9e 100644 --- a/translations/bg/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md +++ b/translations/bg/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md @@ -16,7 +16,7 @@ ArduCam няма Grove конектор, вместо това се свързв Свържете камерата. -![Сензор ArduCam](../../../../../translated_images/bg/arducam.20e4e4cbb268296570b5914e20d6c349fc42ddac9ed4e1b9deba2188204eebae.png) +![Сензор ArduCam](../../../../../translated_images/bg/arducam.20e4e4cbb2682965.webp) 1. Пиновете в основата на ArduCam трябва да бъдат свързани към GPIO пиновете на Wio Terminal. За да е по-лесно да намерите правилните пинове, прикрепете стикера за GPIO пинове, който идва с Wio Terminal, около пиновете: @@ -35,7 +35,7 @@ ArduCam няма Grove конектор, вместо това се свързв | SDA | 3 (I2C1_SDA) | I2C Сериен Данни | | SCL | 5 (I2C1_SCL) | I2C Сериен Часовник | - ![Wio Terminal, свързан към ArduCam с джъмпер кабели](../../../../../translated_images/bg/arducam-wio-terminal-connections.a4d5a4049bdb5ab800a2877389fc6ecf5e4ff307e6451ff56c517e6786467d0a.png) + ![Wio Terminal, свързан към ArduCam с джъмпер кабели](../../../../../translated_images/bg/arducam-wio-terminal-connections.a4d5a4049bdb5ab8.webp) Връзките GND и VCC осигуряват 5V захранване за ArduCam. Камерата работи на 5V, за разлика от Grove сензорите, които работят на 3V. Това захранване идва директно от USB-C връзката, която захранва устройството. @@ -456,7 +456,7 @@ Wio Terminal поддържа само microSD карти с капацитет 1. Изключете захранването на microSD картата и я извадете, като я натиснете леко и я освободите, и тя ще изскочи. Може да се наложи да използвате тънък инструмент за това. Поставете microSD картата във вашия компютър, за да прегледате изображенията. - ![Снимка на банан, заснета с ArduCam](../../../../../translated_images/bg/banana-arducam.be1b32d4267a8194b0fd042362e56faa431da9cd4af172051b37243ea9be0256.jpg) + ![Снимка на банан, заснета с ArduCam](../../../../../translated_images/bg/banana-arducam.be1b32d4267a8194.webp) 💁 Може да отнеме няколко изображения, докато баланса на бялото на камерата се настрои. Ще забележите това по цвета на заснетите изображения, първите няколко може да изглеждат с неправилен цвят. Винаги можете да заобиколите това, като промените кода да заснеме няколко изображения, които се игнорират във функцията `setup`. diff --git a/translations/bg/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md b/translations/bg/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md index 74bf3b238..c8399ef4d 100644 --- a/translations/bg/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md +++ b/translations/bg/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md @@ -208,7 +208,7 @@ Ще можете да видите изображението, което е заснето, и тези стойности в раздела **Predictions** в Custom Vision. - ![Банан в Custom Vision, предсказан като узрял с 56.8% и неузрял с 43.1%](../../../../../translated_images/bg/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![Банан в Custom Vision, предсказан като узрял с 56.8% и неузрял с 43.1%](../../../../../translated_images/bg/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 Можете да намерите този код в папката [code-classify/wio-terminal](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/wio-terminal). diff --git a/translations/bg/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md b/translations/bg/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md index 4ea1830eb..88d751300 100644 --- a/translations/bg/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md +++ b/translations/bg/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md @@ -1,6 +1,6 @@ # Стартирайте вашия детектор на плодове на edge -![Скица на преглед на този урок](../../../../../translated_images/bg/lesson-17.bc333c3c35ba8e42cce666cfffa82b915f787f455bd94e006aea2b6f2722421a.jpg) +![Скица на преглед на този урок](../../../../../translated_images/bg/lesson-17.bc333c3c35ba8e42.webp) > Скица от [Nitya Narasimhan](https://github.com/nitya). Кликнете върху изображението за по-голяма версия. @@ -33,11 +33,11 @@ Edge изчисленията включват използването на компютри, които обработват IoT данни възможно най-близо до мястото, където се генерират данните. Вместо тази обработка да се извършва в облака, тя се премества към ръба на облака - вашата вътрешна мрежа. -![Диаграма на архитектура, показваща интернет услуги в облака и IoT устройства в локална мрежа](../../../../../translated_images/bg/cloud-without-edge.b4da641f6022c95ed6b91fde8b5323abd2f94e0d52073ad54172ae8f5dac90e9.png) +![Диаграма на архитектура, показваща интернет услуги в облака и IoT устройства в локална мрежа](../../../../../translated_images/bg/cloud-without-edge.b4da641f6022c95e.webp) В досегашните уроци вашите устройства събираха данни и ги изпращаха в облака за анализ, като стартираха безсървърни функции или AI модели в облака. -![Диаграма на архитектура, показваща IoT устройства в локална мрежа, свързващи се с edge устройства, които от своя страна се свързват с облака](../../../../../translated_images/bg/cloud-with-edge.1e26462c62c126fe150bd15a5714ddf0be599f09bacbad08b85be02b76ea1ae1.png) +![Диаграма на архитектура, показваща IoT устройства в локална мрежа, свързващи се с edge устройства, които от своя страна се свързват с облака](../../../../../translated_images/bg/cloud-with-edge.1e26462c62c126fe.webp) Edge изчисленията включват преместване на някои от облачните услуги извън облака и върху компютри, работещи в същата мрежа като IoT устройствата, като се комуникира с облака само при необходимост. Например, можете да стартирате AI модели на edge устройства, за да анализирате зрелостта на плодовете, и да изпращате в облака само аналитични данни, като броя на узрелите спрямо неузрелите плодове. @@ -85,7 +85,7 @@ Edge изчисленията включват преместване на ня ## Azure IoT Edge -![Логото на Azure IoT Edge](../../../../../translated_images/bg/azure-iot-edge-logo.c1c076749b5cba2e8755262fadc2f19ca1146b948d76990b1229199ac2292d79.png) +![Логото на Azure IoT Edge](../../../../../translated_images/bg/azure-iot-edge-logo.c1c076749b5cba2e.webp) Azure IoT Edge е услуга, която може да ви помогне да преместите работни натоварвания извън облака и към edge. Настройвате устройство като edge устройство и от облака можете да разполагате код на това edge устройство. Това ви позволява да комбинирате възможностите на облака и edge. @@ -99,7 +99,7 @@ IoT Edge е вграден в IoT Hub, така че можете да упра IoT Edge стартира код от *контейнери* - самостоятелни приложения, които се изпълняват изолирано от останалите приложения на вашия компютър. Когато стартирате контейнер, той действа като отделен компютър, работещ във вашия компютър, със собствен софтуер, услуги и приложения. В повечето случаи контейнерите не могат да достъпят нищо на вашия компютър, освен ако не изберете да споделите неща като папка с контейнера. Контейнерът след това излага услуги чрез отворен порт, към който можете да се свържете или да го изложите на вашата мрежа. -![Уеб заявка, пренасочена към контейнер](../../../../../translated_images/bg/container-web-browser.4ee81dd4f0d8838ce622b2a0d600b6a4322b5d4fe43159facd87b7b34f84d66a.png) +![Уеб заявка, пренасочена към контейнер](../../../../../translated_images/bg/container-web-browser.4ee81dd4f0d8838c.webp) Например, можете да имате контейнер с уеб сайт, работещ на порт 80, който е стандартният HTTP порт, и след това да го изложите от вашия компютър също на порт 80. @@ -196,11 +196,11 @@ IoT Edge стартира код от *контейнери* - самостоя ## Подгответе контейнера си за разгръщане -![Контейнерите се създават, след това се качват в регистър на контейнери и се разгръщат от регистъра към edge устройство чрез IoT Edge](../../../../../translated_images/bg/container-edge-flow.c246050dd60ceefdb6ace026a4ce5c6aa4112bb5898ae23fbb2ab4be29ae3e1b.png) +![Контейнерите се създават, след това се качват в регистър на контейнери и се разгръщат от регистъра към edge устройство чрез IoT Edge](../../../../../translated_images/bg/container-edge-flow.c246050dd60ceefd.webp) След като изтеглите модела си, той трябва да бъде създаден като контейнер и качен в регистър на контейнери - онлайн място, където можете да съхранявате контейнери. IoT Edge може след това да изтегли контейнера от регистъра и да го разгръща на вашето устройство. -![Логото на Azure Container Registry](../../../../../translated_images/bg/azure-container-registry-logo.09494206991d4b295025ebff7d4e2900325e527a59184ffbc8464b6ab59654be.png) +![Логото на Azure Container Registry](../../../../../translated_images/bg/azure-container-registry-logo.09494206991d4b29.webp) Регистърът на контейнери, който ще използвате за този урок, е Azure Container Registry. Това не е безплатна услуга, затова, за да спестите пари, се уверете, че [почиствате проекта си](../../../clean-up.md), след като приключите. diff --git a/translations/bg/4-manufacturing/lessons/4-trigger-fruit-detector/README.md b/translations/bg/4-manufacturing/lessons/4-trigger-fruit-detector/README.md index 5d65e8bf3..bfb5bf99d 100644 --- a/translations/bg/4-manufacturing/lessons/4-trigger-fruit-detector/README.md +++ b/translations/bg/4-manufacturing/lessons/4-trigger-fruit-detector/README.md @@ -1,6 +1,6 @@ # Задействане на откриване на качеството на плодовете чрез сензор -![Скица на урока](../../../../../translated_images/bg/lesson-18.92c32ed1d354caa5a54baa4032cf0b172d4655e8e326ad5d46c558a0def15365.jpg) +![Скица на урока](../../../../../translated_images/bg/lesson-18.92c32ed1d354caa5.webp) > Скица от [Nitya Narasimhan](https://github.com/nitya). Кликнете върху изображението за по-голяма версия. @@ -39,7 +39,7 @@ IoT приложенията могат да бъдат описани като ### Референтна IoT архитектура -![Референтна IoT архитектура](../../../../../translated_images/bg/iot-reference-architecture.2278b98b55c6d4e89bde18eada3688d893861d43507641804dd2f9d3079cfaa0.png) +![Референтна IoT архитектура](../../../../../translated_images/bg/iot-reference-architecture.2278b98b55c6d4e8.webp) Горната диаграма показва референтна IoT архитектура. @@ -49,7 +49,7 @@ IoT приложенията могат да бъдат описани като * **Прозрения** идват от serverless приложения или от анализи, извършени върху съхранени данни. * **Действия** могат да бъдат команди, изпратени към устройства, или визуализация на данни, позволяваща на хората да вземат решения. -![Референтна IoT архитектура](../../../../../translated_images/bg/iot-reference-architecture-azure.0b8d2161af924cb18ae48a8558a19541cca47f27264851b5b7e56d7b8bb372ac.png) +![Референтна IoT архитектура](../../../../../translated_images/bg/iot-reference-architecture-azure.0b8d2161af924cb1.webp) Горната диаграма показва някои от компонентите и услугите, разгледани досега в тези уроци, и как те се свързват в референтна IoT архитектура. @@ -89,7 +89,7 @@ IoT приложенията могат да бъдат описани като ### Прототипиране на вашето приложение -![Референтна IoT архитектура за проверка на качеството на плодовете](../../../../../translated_images/bg/iot-reference-architecture-fruit-quality.cc705f121c3b6fa71c800d9630935ac34bc08223a04601e35f41d5e9b5dd5207.png) +![Референтна IoT архитектура за проверка на качеството на плодовете](../../../../../translated_images/bg/iot-reference-architecture-fruit-quality.cc705f121c3b6fa7.webp) Горната диаграма показва референтна архитектура за това прототипно приложение. @@ -124,7 +124,7 @@ IoT устройството се нуждае от някакъв тригер, Прототипният детектор на плодове има множество компоненти, които комуникират помежду си. -![Компонентите, които комуникират помежду си](../../../../../translated_images/bg/fruit-quality-detector-message-flow.adf2a65da8fd8741ac7af11361574de89adc126785d67606bb4d2ec00467e380.png) +![Компонентите, които комуникират помежду си](../../../../../translated_images/bg/fruit-quality-detector-message-flow.adf2a65da8fd8741.webp) * Сензор за близост, който измерва разстоянието до плод и изпраща това към IoT Hub * Командата за управление на камерата, идваща от IoT Hub към устройството с камера diff --git a/translations/bg/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md b/translations/bg/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md index e5ab0fbc9..3aec063f0 100644 --- a/translations/bg/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md +++ b/translations/bg/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md @@ -20,7 +20,7 @@ Raspberry Pi се нуждае от сензор за близост. Свържете сензора за измерване на разстояние. -![Сензор Grove Time of Flight](../../../../../translated_images/bg/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![Сензор Grove Time of Flight](../../../../../translated_images/bg/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. Поставете единия край на Grove кабела в конектора на сензора за измерване на разстояние. Той ще влезе само в една посока. diff --git a/translations/bg/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md b/translations/bg/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md index 902a50e5b..e46663541 100644 --- a/translations/bg/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md +++ b/translations/bg/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md @@ -36,11 +36,11 @@ 1. Натиснете бутона **Add**, за да създадете сензора за разстояние. - ![Настройки на сензора за разстояние](../../../../../translated_images/bg/counterfit-create-distance-sensor.967c9fb98f27888d95920c9784d004c972490eb71f70397fe13bd70a79a879a3.png) + ![Настройки на сензора за разстояние](../../../../../translated_images/bg/counterfit-create-distance-sensor.967c9fb98f27888d.webp) Сензорът за разстояние ще бъде създаден и ще се появи в списъка със сензори. - ![Създаден сензор за разстояние](../../../../../translated_images/bg/counterfit-distance-sensor.079eefeeea0b68afc36431ce8fcbe2f09a7e4916ed1cd5cb30e696db53bc18fa.png) + ![Създаден сензор за разстояние](../../../../../translated_images/bg/counterfit-distance-sensor.079eefeeea0b68af.webp) ## Програмиране на сензора за разстояние diff --git a/translations/bg/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md b/translations/bg/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md index a8fe61c4a..30da2f95e 100644 --- a/translations/bg/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md +++ b/translations/bg/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md @@ -20,7 +20,7 @@ Grove Time of Flight сензорът може да бъде свързан къ Свържете сензора за разстояние. -![Grove Time of Flight сензор](../../../../../translated_images/bg/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![Grove Time of Flight сензор](../../../../../translated_images/bg/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. Поставете единия край на Grove кабела в конектора на сензора за разстояние. Кабелът може да бъде поставен само в една посока. diff --git a/translations/bg/5-retail/lessons/1-train-stock-detector/README.md b/translations/bg/5-retail/lessons/1-train-stock-detector/README.md index 08bd271b8..b7fd28527 100644 --- a/translations/bg/5-retail/lessons/1-train-stock-detector/README.md +++ b/translations/bg/5-retail/lessons/1-train-stock-detector/README.md @@ -1,6 +1,6 @@ # Обучение на детектор за наличности -![Преглед на урока чрез скица](../../../../../translated_images/bg/lesson-19.cf6973cecadf080c4b526310620dc4d6f5994c80fb0139c6f378cc9ca2d435cd.jpg) +![Преглед на урока чрез скица](../../../../../translated_images/bg/lesson-19.cf6973cecadf080c.webp) > Скица от [Nitya Narasimhan](https://github.com/nitya). Кликнете върху изображението за по-голяма версия. @@ -36,7 +36,7 @@ Класификацията на изображения се отнася до класифициране на изображението като цяло – каква е вероятността цялото изображение да съответства на всеки етикет. Получавате вероятности за всеки етикет, използван за обучение на модела. -![Класификация на изображения на кашу и доматено пюре](../../../../../translated_images/bg/image-classifier-cashews-tomato.bc2e16ab8f05cf9ac0f59f73e32efc4227f9a5b601b90b2c60f436694547a965.png) +![Класификация на изображения на кашу и доматено пюре](../../../../../translated_images/bg/image-classifier-cashews-tomato.bc2e16ab8f05cf9a.webp) В горния пример две изображения са класифицирани с помощта на модел, обучен да класифицира кутии с кашу или консерви с доматено пюре. Първото изображение е кутия с кашу и има следните резултати от класификатора: @@ -60,7 +60,7 @@ > 🎓 *Ограничителни кутии* са кутиите около обект. -![Обектно разпознаване на кашу и доматено пюре](../../../../../translated_images/bg/object-detector-cashews-tomato.1af7c26686b4db0e709754aeb196f4e73271f54e2085db3bcccb70d4a0d84d97.png) +![Обектно разпознаване на кашу и доматено пюре](../../../../../translated_images/bg/object-detector-cashews-tomato.1af7c26686b4db0e.webp) Горното изображение съдържа както кутия с кашу, така и три консерви с доматено пюре. Детекторът за обекти е открил кашуто, връщайки ограничителната кутия, която съдържа кашуто, с вероятност от 97.6%. Детекторът за обекти също е открил три консерви с доматено пюре и предоставя три отделни ограничителни кутии – по една за всяка открита консерва, като всяка има процентна вероятност, че ограничителната кутия съдържа консерва с доматено пюре. @@ -111,7 +111,7 @@ Когато създавате проекта, уверете се, че използвате ресурса `stock-detector-training`, който създадохте по-рано. Изберете тип проект *Object Detection* и домейн *Products on Shelves*. - ![Настройки за проекта в Custom Vision с име fruit-quality-detector, без описание, ресурсът е fruit-quality-detector-training, типът проект е класификация, типът класификация е multi class, а домейнът е food](../../../../../translated_images/bg/custom-vision-create-object-detector-project.32d4fb9aa8e7e7375f8a799bfce517aca970f2cb65e42d4245c5e635c734ab29.png) + ![Настройки за проекта в Custom Vision с име fruit-quality-detector, без описание, ресурсът е fruit-quality-detector-training, типът проект е класификация, типът класификация е multi class, а домейнът е food](../../../../../translated_images/bg/custom-vision-create-object-detector-project.32d4fb9aa8e7e737.webp) ✅ Домейнът "Продукти на рафтове" е специално насочен към разпознаване на наличности на рафтовете в магазините. Прочетете повече за различните домейни в [документацията за избор на домейн в Microsoft Docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/select-domain?WT.mc_id=academic-17441-jabenn#object-detection) @@ -133,11 +133,11 @@ 1. Следвайте [секцията "Качване и маркиране на изображения" от ръководството за бърз старт за изграждане на детектор за обекти в Microsoft Docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/get-started-build-detector?WT.mc_id=academic-17441-jabenn#upload-and-tag-images), за да качите вашите тренировъчни изображения. Създайте подходящи етикети в зависимост от типовете обекти, които искате да разпознавате. - ![Диалози за качване, показващи качване на снимки на узрели и неузрели банани](../../../../../translated_images/bg/image-upload-object-detector.77c7892c3093cb59b79018edecd678749a75d71a099bc8a2d2f2f76320f88a5b.png) + ![Диалози за качване, показващи качване на снимки на узрели и неузрели банани](../../../../../translated_images/bg/image-upload-object-detector.77c7892c3093cb59.webp) Когато рисувате ограничителни кутии за обекти, дръжте ги плътно около обекта. Това може да отнеме известно време, за да очертаете всички изображения, но инструментът ще открие какво смята за ограничителни кутии, което ще ускори процеса. - ![Маркиране на доматено пюре](../../../../../translated_images/bg/object-detector-tag-tomato-paste.f47c362fb0f0eb582f3bc68cf3855fb43a805106395358d41896a269c210b7b4.png) + ![Маркиране на доматено пюре](../../../../../translated_images/bg/object-detector-tag-tomato-paste.f47c362fb0f0eb58.webp) > 💁 Ако имате повече от 15 изображения за всеки обект, можете да обучите модела след първите 15 и след това да използвате функцията **Suggested tags**. Тя ще използва обучен модел, за да разпознае обектите в немаркираните изображения. Можете след това да потвърдите откритите обекти или да отхвърлите и прерисувате ограничителните кутии. Това може да спести *много* време. @@ -155,7 +155,7 @@ 1. Използвайте бутона **Quick Test**, за да качите тестови изображения и да проверите дали обектите са разпознати. Използвайте тестовите изображения, които създадохте по-рано, а не тези, които използвахте за обучение. - ![3 консерви с доматено пюре, разпознати с вероятности от 38%, 35.5% и 34.6%](../../../../../translated_images/bg/object-detector-detected-tomato-paste.52656fe87af4c37b4ee540526d63e73ed075da2e54a9a060aa528e0c562fb1b6.png) + ![3 консерви с доматено пюре, разпознати с вероятности от 38%, 35.5% и 34.6%](../../../../../translated_images/bg/object-detector-detected-tomato-paste.52656fe87af4c37b.webp) 1. Изпробвайте всички тестови изображения, с които разполагате, и наблюдавайте вероятностите. diff --git a/translations/bg/5-retail/lessons/2-check-stock-device/README.md b/translations/bg/5-retail/lessons/2-check-stock-device/README.md index 42eb8e065..0047ae577 100644 --- a/translations/bg/5-retail/lessons/2-check-stock-device/README.md +++ b/translations/bg/5-retail/lessons/2-check-stock-device/README.md @@ -1,6 +1,6 @@ # Проверка на наличности от IoT устройство -![Скица на урока](../../../../../translated_images/bg/lesson-20.0211df9551a8abb300fc8fcf7dc2789468dea2eabe9202273ac077b0ba37f15e.jpg) +![Скица на урока](../../../../../translated_images/bg/lesson-20.0211df9551a8abb3.webp) > Скица от [Nitya Narasimhan](https://github.com/nitya). Кликнете върху изображението за по-голяма версия. @@ -62,7 +62,7 @@ 1. Натиснете бутона **Publish** за итерацията. - ![Бутонът за публикуване](../../../../../translated_images/bg/custom-vision-object-detector-publish-button.34ee379fc650ccb9856c3868d0003f413b9529f102fc73c37168c98d721cc293.png) + ![Бутонът за публикуване](../../../../../translated_images/bg/custom-vision-object-detector-publish-button.34ee379fc650ccb9.webp) 1. В диалога *Publish Model* задайте *Prediction resource* на ресурса `stock-detector-prediction`, който създадохте в последния урок. Оставете името като `Iteration2` и натиснете бутона **Publish**. @@ -76,7 +76,7 @@ Също така вземете копие на стойността *Prediction-Key*. Това е защитен ключ, който трябва да предадете, когато извиквате модела. Само приложения, които предават този ключ, имат право да използват модела, всички други приложения се отхвърлят. - ![Диалогът за API за предсказания, показващ URL и ключ](../../../../../translated_images/bg/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![Диалогът за API за предсказания, показващ URL и ключ](../../../../../translated_images/bg/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ Когато се публикува нова итерация, тя ще има различно име. Как мислите, че бихте променили итерацията, която IoT устройството използва? @@ -95,7 +95,7 @@ Резултатите от предсказание в раздела **Predictions** в Custom Vision имат ограничителните кутии, начертани върху изображението, което е изпратено за предсказание. -![4 консерви доматено пюре на рафт с предсказания за 4 открития с вероятности 35.8%, 33.5%, 25.7% и 16.6%](../../../../../translated_images/bg/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) +![4 консерви доматено пюре на рафт с предсказания за 4 открития с вероятности 35.8%, 33.5%, 25.7% и 16.6%](../../../../../translated_images/bg/custom-vision-stock-prediction.942266ab1bcca341.webp) На изображението по-горе са открити 4 консерви доматено пюре. В резултатите червен квадрат е наложен върху всяко открито изображение, показвайки ограничителната кутия за изображението. @@ -103,7 +103,7 @@ Ограничителните кутии се определят с 4 стойности - горна, лява, височина и ширина. Тези стойности са в мащаб от 0-1, представляващи позициите като процент от размера на изображението. Началната точка (позиция 0,0) е горният ляв ъгъл на изображението, така че горната стойност е разстоянието от горната част, а долната част на ограничителната кутия е горната плюс височината. -![Ограничителна кутия около консерва доматено пюре](../../../../../translated_images/bg/bounding-box.1420a7ea0d3d15f71e1ffb5cf4b2271d184fac051f990abc541975168d163684.png) +![Ограничителна кутия около консерва доматено пюре](../../../../../translated_images/bg/bounding-box.1420a7ea0d3d15f7.webp) Горното изображение е 600 пиксела широко и 800 пиксела високо. Ограничителната кутия започва на 320 пиксела надолу, давайки горна координата от 0.4 (800 x 0.4 = 320). Отляво, ограничителната кутия започва на 240 пиксела, давайки лява координата от 0.4 (600 x 0.4 = 240). Височината на ограничителната кутия е 240 пиксела, давайки стойност за височина от 0.3 (800 x 0.3 = 240). Ширината на ограничителната кутия е 120 пиксела, давайки стойност за ширина от 0.2 (600 x 0.2 = 120). @@ -118,7 +118,7 @@ Можете да използвате ограничителните кутии, комбинирани с вероятностите, за да оцените колко точно е откриването. Например, детекторът на обекти може да открие множество обекти, които се припокриват, например откриване на една консерва вътре в друга. Вашият код може да разгледа ограничителните кутии, да разбере, че това е невъзможно, и да игнорира всички обекти, които имат значително припокриване с други обекти. -![Две ограничителни кутии, припокриващи консерва доматено пюре](../../../../../translated_images/bg/overlap-object-detection.d431e03cae75072a2760430eca7f2c5fdd43045bfd72dadcbf12711f7cd6c2ae.png) +![Две ограничителни кутии, припокриващи консерва доматено пюре](../../../../../translated_images/bg/overlap-object-detection.d431e03cae75072a.webp) В горния пример една ограничителна кутия показва предсказана консерва доматено пюре с вероятност 78.3%. Втора ограничителна кутия е малко по-малка и е вътре в първата ограничителна кутия с вероятност 64.3%. Вашият код може да провери ограничителните кутии, да види, че те се припокриват напълно, и да игнорира по-ниската вероятност, тъй като няма начин една консерва да бъде вътре в друга. diff --git a/translations/bg/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md b/translations/bg/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md index b2564f164..b667359fd 100644 --- a/translations/bg/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md +++ b/translations/bg/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md @@ -67,7 +67,7 @@ Ще можете да видите заснетото изображение и тези стойности в раздела **Predictions** в Custom Vision. - ![4 консерви доматено пюре на рафт с прогнози за 4 открития: 35.8%, 33.5%, 25.7% и 16.6%](../../../../../translated_images/bg/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![4 консерви доматено пюре на рафт с прогнози за 4 открития: 35.8%, 33.5%, 25.7% и 16.6%](../../../../../translated_images/bg/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 Можете да намерите този код в папката [code-detect/pi](../../../../../5-retail/lessons/2-check-stock-device/code-detect/pi) или [code-detect/virtual-iot-device](../../../../../5-retail/lessons/2-check-stock-device/code-detect/virtual-iot-device). diff --git a/translations/bg/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md b/translations/bg/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md index de2d6d115..a35539a75 100644 --- a/translations/bg/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md +++ b/translations/bg/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md @@ -95,7 +95,7 @@ Ще можете да видите заснетото изображение и тези стойности в раздела **Predictions** в Custom Vision. - ![4 консерви доматено пюре на рафт с предсказания за 4 открития с вероятности 35.8%, 33.5%, 25.7% и 16.6%](../../../../../translated_images/bg/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![4 консерви доматено пюре на рафт с предсказания за 4 открития с вероятности 35.8%, 33.5%, 25.7% и 16.6%](../../../../../translated_images/bg/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 Можете да намерите този код в папката [code-detect/wio-terminal](../../../../../5-retail/lessons/2-check-stock-device/code-detect/wio-terminal). diff --git a/translations/bg/6-consumer/lessons/1-speech-recognition/README.md b/translations/bg/6-consumer/lessons/1-speech-recognition/README.md index 11c730035..78b6e7d79 100644 --- a/translations/bg/6-consumer/lessons/1-speech-recognition/README.md +++ b/translations/bg/6-consumer/lessons/1-speech-recognition/README.md @@ -1,6 +1,6 @@ # Разпознаване на реч с IoT устройство -![Скица на урока](../../../../../translated_images/bg/lesson-21.e34de51354d6606fb5ee08d8c89d0222eea0a2a7aaf744a8805ae847c4f69dc4.jpg) +![Скица на урока](../../../../../translated_images/bg/lesson-21.e34de51354d6606f.webp) > Скица от [Nitya Narasimhan](https://github.com/nitya). Кликнете върху изображението за по-голяма версия. @@ -51,7 +51,7 @@ Динамичните микрофони не се нуждаят от захранване, за да работят – електрическият сигнал се създава изцяло от микрофона. - ![Пати Смит пее в микрофон Shure SM58 (динамичен кардиоиден тип)](../../../../../translated_images/bg/dynamic-mic.8babac890a2d80dfb0874b5bf37d4b851fe2aeb9da6fd72945746176978bf3bb.jpg) + ![Пати Смит пее в микрофон Shure SM58 (динамичен кардиоиден тип)](../../../../../translated_images/bg/dynamic-mic.8babac890a2d80df.webp) * Лентови - Лентовите микрофони са подобни на динамичните, но вместо диафрагма имат метална лента. Тази лента се движи в магнитно поле, генерирайки електрически ток. Както и динамичните микрофони, лентовите не се нуждаят от захранване. @@ -59,11 +59,11 @@ * Кондензаторни - Кондензаторните микрофони имат тънка метална диафрагма и фиксирана метална задна плоча. Електричество се прилага към двете, и когато диафрагмата вибрира, статичният заряд между плочите се променя, генерирайки сигнал. Кондензаторните микрофони се нуждаят от захранване, наречено *Phantom power*. - ![C451B малка диафрагма кондензаторен микрофон от AKG Acoustics](../../../../../translated_images/bg/condenser-mic.6f6ed5b76ca19e0ec3fd0c544601542d4479a6cb7565db336de49fbbf69f623e.jpg) + ![C451B малка диафрагма кондензаторен микрофон от AKG Acoustics](../../../../../translated_images/bg/condenser-mic.6f6ed5b76ca19e0e.webp) * MEMS - Микроелектромеханичните системи микрофони, или MEMS, са микрофони на чип. Те имат чувствителна на налягане диафрагма, гравирана върху силициев чип, и работят подобно на кондензаторен микрофон. Тези микрофони могат да бъдат изключително малки и интегрирани в електронни схеми. - ![MEMS микрофон на платка](../../../../../translated_images/bg/mems-microphone.80574019e1f5e4d9ee72fed720ecd25a39fc2969c91355d17ebb24ba4159e4c4.png) + ![MEMS микрофон на платка](../../../../../translated_images/bg/mems-microphone.80574019e1f5e4d9.webp) На изображението по-горе, чипът с надпис **LEFT** е MEMS микрофон с миниатюрна диафрагма, по-малка от милиметър. @@ -159,7 +159,7 @@ ## Преобразуване на реч в текст -![Лого на услугите за реч](../../../../../translated_images/bg/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![Лого на услугите за реч](../../../../../translated_images/bg/azure-speech-logo.a1f08c4befb0159f.webp) Точно както при класификацията на изображения в по-ранен проект, съществуват предварително изградени AI услуги, които могат да приемат реч като аудио файл и да я преобразуват в текст. Една такава услуга е Speech Service, част от Cognitive Services, предварително изградени AI услуги, които можете да използвате в своите приложения. diff --git a/translations/bg/6-consumer/lessons/1-speech-recognition/pi-audio.md b/translations/bg/6-consumer/lessons/1-speech-recognition/pi-audio.md index f76eb2b5f..2d8c90567 100644 --- a/translations/bg/6-consumer/lessons/1-speech-recognition/pi-audio.md +++ b/translations/bg/6-consumer/lessons/1-speech-recognition/pi-audio.md @@ -16,13 +16,13 @@ Raspberry Pi се нуждае от бутон, за да контролира #### Задача - свържете бутона -![Grove бутон](../../../../../translated_images/bg/grove-button.a70cfbb809a8563681003250cf5b06d68cdcc68624f9e2f493d5a534ae2da1e5.png) +![Grove бутон](../../../../../translated_images/bg/grove-button.a70cfbb809a85636.webp) 1. Поставете единия край на Grove кабела в гнездото на модулa на бутона. Кабелът може да бъде поставен само в една посока. 1. С изключен Raspberry Pi, свържете другия край на Grove кабела към цифровото гнездо, маркирано **D5** на Grove базовия HAT, прикрепен към Pi. Това гнездо е второто отляво, на реда с гнезда до GPIO пиновете. -![Grove бутон, свързан към гнездо D5](../../../../../translated_images/bg/pi-button.c7a1a4f55943341ce1baf1057658e9a205804d4131d258e820c93f951df0abf3.png) +![Grove бутон, свързан към гнездо D5](../../../../../translated_images/bg/pi-button.c7a1a4f55943341c.webp) ## Запис на аудио diff --git a/translations/bg/6-consumer/lessons/1-speech-recognition/pi-microphone.md b/translations/bg/6-consumer/lessons/1-speech-recognition/pi-microphone.md index c8f82fbde..689ff0bdb 100644 --- a/translations/bg/6-consumer/lessons/1-speech-recognition/pi-microphone.md +++ b/translations/bg/6-consumer/lessons/1-speech-recognition/pi-microphone.md @@ -34,7 +34,7 @@ Raspberry Pi има 3.5мм жак за слушалки. Можете да го 1. Ако използвате ReSpeaker 2-Mics Pi HAT, можете да премахнете Grove базовата платка и да поставите ReSpeaker платката на нейно място. - ![Raspberry Pi с ReSpeaker платка](../../../../../translated_images/bg/pi-respeaker-hat.f00fabe7dd039a93e2e0aa0fc946c9af0c6a9eb17c32fa1ca097fb4e384f69f0.png) + ![Raspberry Pi с ReSpeaker платка](../../../../../translated_images/bg/pi-respeaker-hat.f00fabe7dd039a93.webp) По-късно в урока ще ви е необходим бутон Grove, но такъв е вграден в тази платка, така че Grove базовата платка не е необходима. diff --git a/translations/bg/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md b/translations/bg/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md index 3f1eab5b1..fbfdd6223 100644 --- a/translations/bg/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md +++ b/translations/bg/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md @@ -10,7 +10,7 @@ ✅ Прочетете повече за DMA на [страницата за директен достъп до паметта в Wikipedia](https://wikipedia.org/wiki/Direct_memory_access). -![Аудио от микрофона преминава през ADC, след това към DMAC. Това се записва в един буфер. Когато този буфер се запълни, той се обработва и DMAC записва във втори буфер](../../../../../translated_images/bg/dmac-adc-buffers.4509aee49145c90bc2e1be472b8ed2ddfcb2b6a81ad3e559114aca55f5fff759.png) +![Аудио от микрофона преминава през ADC, след това към DMAC. Това се записва в един буфер. Когато този буфер се запълни, той се обработва и DMAC записва във втори буфер](../../../../../translated_images/bg/dmac-adc-buffers.4509aee49145c90b.webp) DMAC може да записва аудио от ADC на фиксирани интервали, например 16 000 пъти в секунда за аудио на 16KHz. Той може да записва тези данни в предварително зададен паметен буфер, а когато този буфер се запълни, да го направи достъпен за обработка от вашия код. Използването на тази памет може да забави записването на аудио, но можете да настроите множество буфери. DMAC записва в буфер 1, след което, когато той се запълни, уведомява вашия код да обработи буфер 1, докато DMAC записва в буфер 2. Когато буфер 2 се запълни, той уведомява вашия код и се връща към записване в буфер 1. По този начин, стига да обработвате всеки буфер за по-малко време, отколкото е необходимо за запълването му, няма да загубите данни. diff --git a/translations/bg/6-consumer/lessons/2-language-understanding/README.md b/translations/bg/6-consumer/lessons/2-language-understanding/README.md index 45e4c940d..0d0b3b7d5 100644 --- a/translations/bg/6-consumer/lessons/2-language-understanding/README.md +++ b/translations/bg/6-consumer/lessons/2-language-understanding/README.md @@ -1,6 +1,6 @@ # Разбиране на езика -![Скица на урока](../../../../../translated_images/bg/lesson-22.6148ea28500d9e00c396aaa2649935fb6641362c8f03d8e5e90a676977ab01dd.jpg) +![Скица на урока](../../../../../translated_images/bg/lesson-22.6148ea28500d9e00.webp) > Скица от [Nitya Narasimhan](https://github.com/nitya). Кликнете върху изображението за по-голяма версия. @@ -46,7 +46,7 @@ ## Създаване на модел за разбиране на езика -![Логото на LUIS](../../../../../translated_images/bg/luis-logo.5cb4f3e88c020ee6df4f614e8831f4a4b6809a7247bf52085fb48d629ef9be52.png) +![Логото на LUIS](../../../../../translated_images/bg/luis-logo.5cb4f3e88c020ee6.webp) Можете да създавате модели за разбиране на езика, използвайки LUIS, услуга за разбиране на езика от Microsoft, която е част от Cognitive Services. @@ -169,7 +169,7 @@ 1. Докато въвеждате всеки пример, LUIS ще започне да разпознава обекти и ще ги подчертава и етикетира. - ![Примерите с подчертани числа и единици време от LUIS](../../../../../translated_images/bg/luis-intent-examples.25716580b2d2723cf1bafdf277d015c7f046d8cfa20f27bddf3a0873ec45fab7.png) + ![Примерите с подчертани числа и единици време от LUIS](../../../../../translated_images/bg/luis-intent-examples.25716580b2d2723c.webp) ### Задача - обучение и тестване на модела diff --git a/translations/bg/6-consumer/lessons/3-spoken-feedback/README.md b/translations/bg/6-consumer/lessons/3-spoken-feedback/README.md index 74b65bcd3..ae6a16294 100644 --- a/translations/bg/6-consumer/lessons/3-spoken-feedback/README.md +++ b/translations/bg/6-consumer/lessons/3-spoken-feedback/README.md @@ -1,6 +1,6 @@ # Настройте таймер и предоставете гласова обратна връзка -![Скица на урока](../../../../../translated_images/bg/lesson-23.f38483e1d4df4828990d3f02d60e46c978b075d384ae7cb4f7bab738e107c850.jpg) +![Скица на урока](../../../../../translated_images/bg/lesson-23.f38483e1d4df4828.webp) > Скица от [Nitya Narasimhan](https://github.com/nitya). Кликнете върху изображението за по-голяма версия. diff --git a/translations/bg/6-consumer/lessons/4-multiple-language-support/README.md b/translations/bg/6-consumer/lessons/4-multiple-language-support/README.md index 5891b2f4c..3ebc71274 100644 --- a/translations/bg/6-consumer/lessons/4-multiple-language-support/README.md +++ b/translations/bg/6-consumer/lessons/4-multiple-language-support/README.md @@ -1,6 +1,6 @@ # Поддръжка на множество езици -![Скица на урока](../../../../../translated_images/bg/lesson-24.4246968ed058510ab275052e87ef9aa89c7b2f938915d103c605c04dc6cd5bb7.jpg) +![Скица на урока](../../../../../translated_images/bg/lesson-24.4246968ed058510a.webp) > Скица от [Nitya Narasimhan](https://github.com/nitya). Кликнете върху изображението за по-голяма версия. @@ -74,7 +74,7 @@ ### Услуга за реч на Cognitive Services -![Лого на услугата за реч](../../../../../translated_images/bg/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![Лого на услугата за реч](../../../../../translated_images/bg/azure-speech-logo.a1f08c4befb0159f.webp) Услугата за реч, която използвахте в последните няколко урока, има възможности за превод при разпознаване на реч. Когато разпознавате реч, можете да поискате не само текста на речта на същия език, но и на други езици. @@ -82,7 +82,7 @@ ### Услуга за превод на Cognitive Services -![Лого на услугата за превод](../../../../../translated_images/bg/azure-translator-logo.c6ed3a4a433edfd2f11577eca105412c50b8396b194cbbd730723dd1d0793bcd.png) +![Лого на услугата за превод](../../../../../translated_images/bg/azure-translator-logo.c6ed3a4a433edfd2.webp) Услугата Translator е специализирана услуга за превод, която може да превежда текст от един език на един или повече целеви езици. Освен превод, тя поддържа широк набор от допълнителни функции, включително филтриране на нецензурни думи. Тя също така ви позволява да предоставите конкретен превод за определена дума или изречение, за да работите с термини, които не искате да бъдат превеждани, или да имате специфичен, добре познат превод. diff --git a/translations/bg/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md b/translations/bg/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md index 732e2563e..c831b656a 100644 --- a/translations/bg/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md +++ b/translations/bg/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md @@ -25,7 +25,7 @@ REST API на услугата за реч не поддържа директн > > Например, ако обучите LUIS на английски, но искате да използвате френски като език на потребителя, можете да преведете изречения като "set a 2 minute and 27 second timer" от английски на френски с помощта на Bing Translate, след което да използвате бутона **Listen translation**, за да изговорите превода в микрофона си. > - > ![Бутонът за слушане на превод в Bing Translate](../../../../../translated_images/bg/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Бутонът за слушане на превод в Bing Translate](../../../../../translated_images/bg/bing-translate.348aa796d6efe2a9.webp) 1. Добавете API ключа за преводача под `speech_api_key`: diff --git a/translations/bg/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md b/translations/bg/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md index 91cdca1d5..5c1a52d96 100644 --- a/translations/bg/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md +++ b/translations/bg/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md @@ -37,7 +37,7 @@ > > Например, ако обучите LUIS на английски, но искате да използвате френски като език на потребителя, можете да преведете изречения като "set a 2 minute and 27 second timer" от английски на френски с Bing Translate, след това използвайте бутона **Listen translation**, за да говорите превода в микрофона си. > - > ![Бутонът Listen translation в Bing Translate](../../../../../translated_images/bg/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Бутонът Listen translation в Bing Translate](../../../../../translated_images/bg/bing-translate.348aa796d6efe2a9.webp) 1. Заменете декларациите `recognizer_config` и `recognizer` със следното: diff --git a/translations/bg/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md b/translations/bg/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md index beadf4b8a..737e1c7be 100644 --- a/translations/bg/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md +++ b/translations/bg/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md @@ -105,7 +105,7 @@ REST API на услугата за реч не поддържа директн > > Например, ако обучите LUIS на английски, но искате да използвате френски като език на потребителя, можете да преведете изречения като "set a 2 minute and 27 second timer" от английски на френски, използвайки Bing Translate, след което да използвате бутона **Listen translation**, за да произнесете превода в микрофона си. > - > ![Бутонът за слушане на превод в Bing Translate](../../../../../translated_images/bg/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Бутонът за слушане на превод в Bing Translate](../../../../../translated_images/bg/bing-translate.348aa796d6efe2a9.webp) 1. Добавете API ключа и местоположението на услугата за превод под `SPEECH_LOCATION`: diff --git a/translations/bg/README.md b/translations/bg/README.md index 867f1109c..0c41828e1 100644 --- a/translations/bg/README.md +++ b/translations/bg/README.md @@ -1,192 +1,166 @@ -[![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/) - ### Присъединете се към общността Azure AI Foundry -Ако попаднете в затруднение или имате въпроси относно създаването на AI приложения. Присъединете се към съученици и опитни разработчици в дискусии за MCP. Това е подкрепяща общност, където въпросите са добре дошли и знанията се споделят свободно. - -[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) +Ако заседнете или имате въпроси относно изграждането на AI приложения. Присъединете се към други учащи и опитни разработчици в дискусии за MCP. Това е подкрепяща общност, където въпросите са добре дошли и знанията се споделят свободно. -Ако имате обратна връзка за продукта или грешки при разработка, посетете: - -[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) +Ако имате обратна връзка за продукт или грешки по време на изграждане, посетете: Следвайте тези стъпки, за да започнете да използвате тези ресурси: -1. **Форкване на хранилището**: Кликнете [![GitHub forks](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) -2. **Клониране на хранилището**: `git clone https://github.com/microsoft/IoT-For-Beginners.git` -3. [**Присъединете се към Microsoft Foundry Discord и се запознайте с експерти и съразработчици**](https://discord.com/invite/ByRwuEEgH4) - +1. **Форкнете хранилището**: Натиснете +2. **Клонирайте хранилището**: `git clone https://github.com/microsoft/IoT-For-Beginners.git` +3. [**Присъединете се към Microsoft Foundry Discord и срещнете експерти и други разработчици**](https://discord.com/invite/ByRwuEEgH4) ### 🌐 Поддръжка на множество езици -#### Поддържано чрез GitHub Action (автоматично и винаги актуално) - - -[Арабски](../ar/README.md) | [Бенгалски](../bn/README.md) | [Български](./README.md) | [Бирмански (Мианмар)](../my/README.md) | [Китайски (опростен)](../zh-CN/README.md) | [Китайски (традиционен, Хонг Конг)](../zh-HK/README.md) | [Китайски (традиционен, Макао)](../zh-MO/README.md) | [Китайски (традиционен, Тайван)](../zh-TW/README.md) | [Хърватски](../hr/README.md) | [Чешки](../cs/README.md) | [Датски](../da/README.md) | [Холандски](../nl/README.md) | [Естонски](../et/README.md) | [Фински](../fi/README.md) | [Френски](../fr/README.md) | [Немски](../de/README.md) | [Гръцки](../el/README.md) | [Иврит](../he/README.md) | [Хинди](../hi/README.md) | [Унгарски](../hu/README.md) | [Индонезийски](../id/README.md) | [Италиански](../it/README.md) | [Японски](../ja/README.md) | [Канада](../kn/README.md) | [Корейски](../ko/README.md) | [Литовски](../lt/README.md) | [Малайски](../ms/README.md) | [Малаялам](../ml/README.md) | [Марати](../mr/README.md) | [Непалски](../ne/README.md) | [Нигерийски пиджин](../pcm/README.md) | [Норвежки](../no/README.md) | [Персийски (Фарси)](../fa/README.md) | [Полски](../pl/README.md) | [Португалски (Бразилия)](../pt-BR/README.md) | [Португалски (Португалия)](../pt-PT/README.md) | [Пенджабски (Гурмуки)](../pa/README.md) | [Румънски](../ro/README.md) | [Руски](../ru/README.md) | [Сръбски (Кирилица)](../sr/README.md) | [Словашки](../sk/README.md) | [Словенски](../sl/README.md) | [Испански](../es/README.md) | [Свахили](../sw/README.md) | [Шведски](../sv/README.md) | [Тагалог (Филипински)](../tl/README.md) | [Тамилски](../ta/README.md) | [Телугу](../te/README.md) | [Тайски](../th/README.md) | [Турски](../tr/README.md) | [Украински](../uk/README.md) | [Урду](../ur/README.md) | [Виетнамски](../vi/README.md) +#### Поддържа се чрез GitHub Action (автоматично и винаги актуално) > **Предпочитате да клонирате локално?** - -> Това хранилище включва над 50 езикови превода, което значително увеличава размера на изтеглянето. За да клонирате без преводите, използвайте sparse checkout: -> ```bash -> git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git -> cd IoT-For-Beginners -> git sparse-checkout set --no-cone '/*' '!translations' '!translated_images' -> ``` -> Това ви дава всичко необходимо за завършване на курса с много по-бързо изтегляне. - +> +> Това хранилище включва преводи на повече от 50 езика, което значително увеличава размера на изтегляне. За да клонирате без преводи, използвайте sparse checkout: +> +> **Bash / macOS / Linux:** +> +> **CMD (Windows):** +> +> Така ще получите всичко необходимо, за да завършите курса с много по-бързо изтегляне. # IoT за начинаещи - учебна програма -Експертите по Azure Cloud в Microsoft с удоволствие предлагат 12-седмична учебна програма с 24 урока, посветени на основите на IoT. Всеки урок включва преди и след урока тестове, писмени инструкции за завършване на урока, решение, задача и още. Нашата проектно ориентирана педагогика ви позволява да учите чрез създаване, доказан метод за по-добро усвояване на нови умения. +Адвокатите на Azure Cloud в Microsoft с удоволствие предлагат 12-седмична учебна програма с 24 урока, посветени на основите на IoT. Всеки урок включва предварителен и последващ тест, писмени инструкции за изпълнение на урока, решение, задание и още. Нашата проектно-базирана педагогика ви позволява да учите чрез изграждане, което е доказан начин новите умения да „забият“. -Проектите покриват пътя на храната от фермата до масата. Това включва земеделие, логистика, производство, търговия на дребно и потребители - всички популярни индустриални области за IoT устройства. +Проектите покриват пътуването на храната от фермата до трапезата. Това включва земеделие, логистика, производство, търговия на дребно и потребители - всички популярни индустриални области за IoT устройства. -![Пътна карта на курса, показваща 24 урока, обхващащи въведение, земеделие, транспорт, преработка, търговия на дребно и готвене](../../translated_images/bg/Roadmap.bb1dec285dda0eda.webp) +> Скетчнот от [Nitya Narasimhan](https://github.com/nitya). Натиснете изображението за по-голяма версия. -> Скетчнот от [Nitya Narasimhan](https://github.com/nitya). Кликнете върху изображението за по-голяма версия. +**Сърдечни благодарности на нашите автори [Jen Fox](https://github.com/jenfoxbot), [Jen Looper](https://github.com/jlooper), [Jim Bennett](https://github.com/jimbobbennett) и на нашия скетчнот артист [Nitya Narasimhan](https://github.com/nitya).** -**Сърдечни благодарности на нашите автори [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), [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/).** +**Благодарим също на нашия екип от [Студентски посланици на Microsoft Learn](https://studentambassadors.microsoft.com?WT.mc_id=academic-17441-jabenn), които преглеждаха и превеждаха тази учебна програма - [списък с имена].** Запознайте се с екипа! -[![Промо видео](../../images/IOT.gif)](https://youtu.be/-wippUJRi5k) - -**GIF от** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) +> 🎥 Натиснете изображението по-горе за видео за проекта! -> 🎥 Кликнете върху изображението по-горе за видео за проекта! +> **Учители**, ние сме [включили някои предложения](for-teachers.md) как да използвате тази учебна програма. Ако искате да създадете свои уроци, ние също сме включили [шаблон за урок](lesson-template/README.md). -> **Учители**, включихме [някои предложения](for-teachers.md) как да използвате тази учебна програма. Ако желаете да създадете свои собствени уроци, ние сме включили и [шаблон за урок](lesson-template/README.md). +> **Студенти**, за да използвате тази учебна програма самостоятелно, форкнете целия репозиторий и изпълнете упражненията сами, започвайки с предварителен тест, след това четете лекцията и завършете останалите дейности. Опитайте се да създадете проектите чрез разбиране на уроците, а не чрез копиране на кода за решение; този код е наличен в папките /solutions във всеки урок, ориентиран към проект. Друга идея е да сформирате учебна група с приятели и да преминете заедно през съдържанието. За по-нататъшно обучение препоръчваме [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn). -> **Студенти** ([страница за студенти](https://aka.ms/student-page)), за да използвате тази учебна програма самостоятелно, форкнете цялото хранилище и изпълнявайте задачите сами, започвайки с тест преди лекцията, след това четете лекцията и изпълнявайте останалите дейности. Опитайте се да създадете проектите, като разберете уроците, вместо да копирате кода на решенията; този код обаче е наличен в папките /solutions в всеки урок, ориентиран към проект. Друга идея е да формирате учебна група с приятели и да преминете съдържанието заедно. За допълнително обучение препоръчваме [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn). +За видео преглед на този курс, разгледайте това видео: -За видео преглед на този курс, вижте това видео: - -[![Промо видео](https://img.youtube.com/vi/bccEMm8gRuc/0.jpg)](https://youtube.com/watch?v=bccEMm8gRuc "Promo video") - -> 🎥 Кликнете върху изображението по-горе за видео за проекта! +> 🎥 Натиснете изображението по-горе за видео за проекта! ## Педагогика -Избрахме две педагогически главни принципа при изграждането на тази учебна програма: да е проектно ориентирана и да включва чести тестове. Към края на серията студентите ще са изградили система за мониторинг и поливане на растения, проследяване на превозни средства, умен фабричен комплекс за проследяване и проверка на хранителни продукти и гласово контролирана кухненска таймер, и ще са научили основите на Интернет на нещата, включително как да пишат код за устройства, да се свързват с облака, да анализират телеметрия и да изпълняват изкуствен интелект на ръба. +Ние избрахме два педагогически принципа при изграждането на тази учебна програма: да бъде проектно-базирана и да включва чести тестове. В края на тази серия студентите ще са изградили система за наблюдение и поливане на растения, проследяващо устройство за превозно средство, интелигентна фабрична система за проследяване и проверка на храна и гласово управляван таймер за готвене, както и ще са научили основите на Интернет на нещата, включително писане на код за устройства, свързване с облака, анализ на телеметрия и изпълнение на ИИ на ръба. -Чрез гарантиране, че съдържанието е свързано с проекти, процесът става по-ангажиращ за студентите и задържането на концепции се увеличава. +Като осигуряваме съдържанието да бъде свързано с проекти, процесът става по-интересен за студентите и задържането на концепции се увеличава. -Освен това, ниско риска тест преди занятие насочва вниманието на студента към изучаване на тема, докато втори тест след занятието гарантира допълнително задържане. Тази учебна програма е проектирана да бъде гъвкава и забавна и може да се следва изцяло или частично. Проектите започват малки и стават все по-сложни към края на 12-седмичния цикъл. +Освен това, тест с нисък риск преди урока насочва вниманието на студента към изучавания предмет, а последващ тест след урока осигурява допълнително задържане на знания. Тази учебна програма е създадена да бъде гъвкава и забавна и може да се вземе изцяло или на части. Проектите започват малки и стават все по-сложни до края на 12-седмичния цикъл. -Всеки проект е базиран на реален хардуер, достъпен за студенти и любители. Всеки проект разглежда конкретната проектна област, предоставяйки релевантни познания. За да станете успешен разработчик, е полезно да разбирате домейна, в който решавате проблеми, като това ви позволява да мислите за IoT решенията и наученото в контекста на реалния проблем, който може да ви бъде поставен като IoT разработчик. Студентите научават "защо" на решенията, които създават, и получават оценка към крайния потребител. +Всеки проект е базиран на реален хардуер, достъпен за студенти и любители. Всеки проект разглежда специфичния проектен домейн, като предоставя релевантни фонови знания. За да бъдете успешен разработчик, помага да разберете домейна, в който решавате проблеми, а предоставянето на тези знания позволява на студентите да мислят за IoT решенията и наученото в контекста на реалния проблем, който може да им бъде възложен като разработчици на IoT. Студентите научават „защо“ на решенията, които изграждат, и получават appreciation за крайния потребител. ## Хардуер +Имаме два варианта IoT хардуер за използване в проектите в зависимост от личните предпочитания, познанията или предпочитанията към програмен език, учебните цели и наличността. Също така сме предоставили виртуална хардуерна версия за тези, които нямат достъп до хардуер или искат да научат повече, преди да се ангажират с покупка. Можете да прочетете повече и да намерите "списък за пазаруване" на [hardware page](./hardware.md), включително връзки за закупуване на цялостни комплекти от нашите приятели в Seeed Studio. -Имаме два варианта за IoT хардуер за проектите в зависимост от личните предпочитания, познания по програмни езици, учебни цели и наличност. Предоставили сме и "виртуален хардуер" за тези, които нямат достъп до хардуер или искат да научат повече преди да се ангажират с покупка. Можете да прочетете повече и да намерите "списък за пазаруване" на [страницата за хардуер](./hardware.md), включително връзки за закупуване на пълни комплекти от нашите приятели в Seeed Studio. -> 💁 Намерете нашите [Правила за поведение](CODE_OF_CONDUCT.md), [Указания за принос](CONTRIBUTING.md) и [Указания за превод](TRANSLATIONS.md). Очакваме вашата конструктивна обратна връзка! +> 💁 Намерете нашите насоки за [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md) и [Translation](TRANSLATIONS.md). Очакваме вашите конструктивни отзиви! > -> 🔧 Имаш проблеми? Вижте нашето [Ръководство за отстраняване на неизправности](TROUBLESHOOTING.md) за решения на често срещани проблеми. +> 🔧 Имаш проблем? Вижте нашия [Troubleshooting Guide](TROUBLESHOOTING.md) за решения на често срещани проблеми. -## Всяка лекция включва: +## Всяко уроци включва: -- скичнот -- опционално допълнително видео -- предварително задание за разгряване преди урока +- скицник +- по избор допълнително видео +- предварителен тест за загряване преди урока - писмен урок -- за уроци, базирани на проекти, стъпка по стъпка ръководства за изграждане на проекта +- за уроци, базирани на проект, ръководства стъпка по стъпка за изграждане на проекта - проверки на знанията - предизвикателство -- допълнително четиво -- задание -- [задочно тестче](https://ff-quizzes.netlify.app/en/) +- допълнителна литература +- задача +- [тест след урока](https://ff-quizzes.netlify.app/en/) -> **Бележка относно тестовете**: Всички тестове се намират в папката quiz-app, общо 48 теста с по три въпроса във всеки. Те са свързани в рамките на уроците, но приложението за тестове може да се стартира локално или да се разположи в Azure; следвайте инструкциите в папката `quiz-app`. Те постепенно се локализират. +> **Бележка относно тестовете**: Всички тестове се намират в папката quiz-app, общо 48 теста с по три въпроса всеки. Те са свързани от уроците, но приложението за тестове може да се стартира локално или да се разположи в Azure; следвайте инструкциите в папката `quiz-app`. Постепенно се локализират. ## Уроци -| | Име на проекта | Преподавани концепции | Учебни цели | Свързан урок | -| :---: | :-------------------------------------: | :---------------------------------------------------------------: | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------: | -| 01 | [Стартиране](./1-getting-started/README.md) | Въведение в IoT | Научете основните принципи на IoT и основните градивни елементи на IoT решения като сензори и облачни услуги, докато настройвате първото си IoT устройство | [Въведение в IoT](./1-getting-started/lessons/1-introduction-to-iot/README.md) | -| 02 | [Стартиране](./1-getting-started/README.md) | По-задълбочено в IoT | Научете повече за компонентите на IoT система, както и за микроконтролерите и едноплатковите компютри | [По-задълбочено в IoT](./1-getting-started/lessons/2-deeper-dive/README.md) | -| 03 | [Стартиране](./1-getting-started/README.md) | Взаимодействие с физическия свят чрез сензори и изпълнителни механизми | Научете за сензори за събиране на данни от физическия свят и изпълнителни механизми за изпращане на обратна връзка, докато изграждате нощна лампа | [Взаимодействие с физическия свят чрез сензори и изпълнителни механизми](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | -| 04 | [Стартиране](./1-getting-started/README.md) | Свържете устройството си с интернет | Научете как да свържете IoT устройство с интернет, за да изпраща и получава съобщения чрез свързване на нощната лампа с MQTT брокер | [Свържете устройството си с интернет](./1-getting-started/lessons/4-connect-internet/README.md) | -| 05 | [Ферма](./2-farm/README.md) | Предсказване на растежа на растения | Научете как да предсказвате растежа на растения, използвайки данни за температура, събрани от IoT устройство | [Предсказване на растежа на растения](./2-farm/lessons/1-predict-plant-growth/README.md) | -| 06 | [Ферма](./2-farm/README.md) | Откриване на влажност на почвата | Научете как да откриете влажност на почвата и да калибрирате сензор за влажност на почвата | [Откриване на влажност на почвата](./2-farm/lessons/2-detect-soil-moisture/README.md) | -| 07 | [Ферма](./2-farm/README.md) | Автоматизирано поливане на растения | Научете как да автоматизирате и таймвате поливането с помощта на реле и MQTT | [Автоматизирано поливане на растения](./2-farm/lessons/3-automated-plant-watering/README.md) | -| 08 | [Ферма](./2-farm/README.md) | Преместване на растението в облака | Научете за облака и хостваните в облака IoT услуги и как да свържете вашето растение с някоя от тях вместо публичен MQTT брокер | [Преместване на растението в облака](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | -| 09 | [Ферма](./2-farm/README.md) | Преместване на логиката на приложението в облака | Научете как да пишете логика на приложението в облака, която реагира на IoT съобщения | [Преместване на логиката на приложението в облака](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | -| 10 | [Ферма](./2-farm/README.md) | Поддържайте вашето растение защитено | Научете за сигурността в IoT и как да запазите вашето растение защитено с ключове и сертификати | [Поддържайте вашето растение защитено](./2-farm/lessons/6-keep-your-plant-secure/README.md) | -| 11 | [Транспорт](./3-transport/README.md) | Локационно проследяване | Научете за GPS проследяване на местоположението на IoT устройства | [Локационно проследяване](./3-transport/lessons/1-location-tracking/README.md) | -| 12 | [Транспорт](./3-transport/README.md) | Съхранение на данни за местоположение | Научете как да съхранявате IoT данни, за да бъдат визуализирани или анализирани по-късно | [Съхранение на данни за местоположение](./3-transport/lessons/2-store-location-data/README.md) | -| 13 | [Транспорт](./3-transport/README.md) | Визуализиране на данни за местоположение | Научете за визуализирането на данни за местоположение на карта и как картите представят реалния 3D свят в 2 измерения | [Визуализиране на данни за местоположение](./3-transport/lessons/3-visualize-location-data/README.md) | -| 14 | [Транспорт](./3-transport/README.md) | Геозони | Научете за геозони и как те могат да се използват за предупреждение, когато превозни средства в складската верига са близо до дестинацията им | [Геозони](./3-transport/lessons/4-geofences/README.md) | -| 15 | [Производство](./4-manufacturing/README.md) | Обучение на детектор за качество на плодове | Научете как да обучите класификатор на изображения в облака за откриване на качеството на плодове | [Обучение на детектор за качество на плодове](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | -| 16 | [Производство](./4-manufacturing/README.md) | Проверка на качеството на плодове с IoT устройство | Научете за използването на вашия детектор за качество на плодове от IoT устройство | [Проверка на качеството на плодове с IoT устройство](./4-manufacturing/lessons/2-check-fruit-from-device/README.md)| -| 17 | [Производство](./4-manufacturing/README.md) | Стартиране на детектора за плодове в периферията | Научете как да стартирате вашия детектор за плодове на IoT устройство на ръба | [Стартиране на детектора за плодове в периферията](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | -| 18 | [Производство](./4-manufacturing/README.md) | Стартиране на откриване на качество на плодове от сензор | Научете за стартирането на откриване на качеството на плодове от сензор | [Стартиране на откриване на качество на плодове от сензор](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md)| -| 19 | [Търговия](./5-retail/README.md) | Обучение на детектор на наличности | Научете как да използвате откриване на обекти за обучение на детектор за наличности за преброяване на стоки в магазин | [Обучение на детектор на наличности](./5-retail/lessons/1-train-stock-detector/README.md) | -| 20 | [Търговия](./5-retail/README.md) | Проверка на наличностите с IoT устройство | Научете как да проверявате наличностите с IoT устройство, използвайки модел за откриване на обекти | [Проверка на наличности с IoT устройство](./5-retail/lessons/2-check-stock-device/README.md) | -| 21 | [Потребител](./6-consumer/README.md) | Разпознаване на реч с IoT устройство | Научете как да разпознавате реч от IoT устройство, за да изградите умен таймер | [Разпознаване на реч с IoT устройство](./6-consumer/lessons/1-speech-recognition/README.md) | -| 22 | [Потребител](./6-consumer/README.md) | Разбиране на език | Научете как да разбирате изречения, говорени към IoT устройство | [Разбиране на език](./6-consumer/lessons/2-language-understanding/README.md) | -| 23 | [Потребител](./6-consumer/README.md) | Настройване на таймер и предоставяне на устна обратна връзка | Научете как да настроите таймер на IoT устройство и да давате устна обратна връзка кога таймерът е зададен и кога свършва | [Настройване на таймер и устна обратна връзка](./6-consumer/lessons/3-spoken-feedback/README.md) | -| 24 | [Потребител](./6-consumer/README.md) | Поддръжка на няколко езика | Научете как да поддържате няколко езика, както говоримите към устройството, така и отговорите от умния таймер | [Поддръжка на няколко езика](./6-consumer/lessons/4-multiple-language-support/README.md) | - -## Достъп офлайн - -Можете да използвате тази документация офлайн с помощта на [Docsify](https://docsify.js.org/#/). Клонирайте това хранилище, [инсталирайте Docsify](https://docsify.js.org/#/quickstart) на вашата локална машина, и след това в кореновата папка на това хранилище изпълнете `docsify serve`. Уебсайтът ще бъде обслужван на порт 3000 на вашия localhost: `localhost:3000`. +| | Име на проекта | Преподавани концепции | Цели на обучението | Свързан урок | +| :---: | :------------------------------------: | :--------------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------: | +| 01 | [Getting started](./1-getting-started/README.md) | Въведение в IoT | Научете основните принципи на IoT и основните блокове на IoT решения като сензори и облачни услуги, докато настройвате първото си IoT устройство | [Introduction to IoT](./1-getting-started/lessons/1-introduction-to-iot/README.md) | +| 02 | [Getting started](./1-getting-started/README.md) | По-задълбочено в IoT | Научете повече за компонентите на IoT системата, както и за микроконтролери и едноплаткови компютри | [A deeper dive into IoT](./1-getting-started/lessons/2-deeper-dive/README.md) | +| 03 | [Getting started](./1-getting-started/README.md) | Взаимодействие с физическия свят чрез сензори и активатори | Научете за сензори за събиране на данни от физическия свят и за активатори за издаване на обратна връзка, докато изграждате нощна лампа | [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/README.md) | Свържете устройството си с Интернет | Научете как да свържете IoT устройство с Интернет, за да изпращате и получавате съобщения, като свързвате нощната си лампа с MQTT брокер | [Connect your device to the Internet](./1-getting-started/lessons/4-connect-internet/README.md) | +| 05 | [Farm](./2-farm/README.md) | Предсказване на растежа на растения | Научете как да предсказвате растежа на растения, използвайки температурни данни, събрани от IoT устройство | [Predict plant growth](./2-farm/lessons/1-predict-plant-growth/README.md) | +| 06 | [Farm](./2-farm/README.md) | Откриване на влажност на почвата | Научете как да откривате влажност на почвата и да калибрирате сензор за влажност на почва | [Detect soil moisture](./2-farm/lessons/2-detect-soil-moisture/README.md) | +| 07 | [Farm](./2-farm/README.md) | Автоматизирано поливане на растения | Научете как да автоматизирате и отложите поливането, използвайки реле и MQTT | [Automated plant watering](./2-farm/lessons/3-automated-plant-watering/README.md) | +| 08 | [Farm](./2-farm/README.md) | Мигрирайте растението си в облака | Научете за облака и хостваните в облака IoT услуги и как да свържете растението си към тях вместо към публичен MQTT брокер | [Migrate your plant to the cloud](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | +| 09 | [Farm](./2-farm/README.md) | Мигрирайте логиката на приложение в облака | Научете как да пишете логика на приложения в облака, която отговаря на IoT съобщения | [Migrate your application logic to the cloud](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | +| 10 | [Farm](./2-farm/README.md) | Защитете растението си | Научете за сигурността в IoT и как да защитите растението си с ключове и сертификати | [Keep your plant secure](./2-farm/lessons/6-keep-your-plant-secure/README.md) | +| 11 | [Transport](./3-transport/README.md) | Проследяване на местоположение | Научете за GPS проследяване на местоположение за IoT устройства | [Location tracking](./3-transport/lessons/1-location-tracking/README.md) | +| 12 | [Transport](./3-transport/README.md) | Запис на данни за местоположение | Научете как да съхранявате IoT данни за визуализация или анализ по-късно | [Store location data](./3-transport/lessons/2-store-location-data/README.md) | +| 13 | [Transport](./3-transport/README.md) | Визуализиране на данни за местоположение | Научете как да визуализирате данни за местоположение на карта и как картите представят реалния 3D свят в 2 измерения | [Visualize location data](./3-transport/lessons/3-visualize-location-data/README.md) | +| 14 | [Transport](./3-transport/README.md) | Геозони | Научете за геозони и как те могат да се използват за сигнализиране, когато превозни средства в доставната верига са близо до своята дестинация | [Geofences](./3-transport/lessons/4-geofences/README.md) | +| 15 | [Manufacturing](./4-manufacturing/README.md) | Обучение на детектор за качество на плодове | Научете за обучението на класификатор на изображения в облака за откриване качеството на плодове | [Train a fruit quality detector](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | +| 16 | [Manufacturing](./4-manufacturing/README.md) | Проверка на качеството на плодове от IoT устройство | Научете за използването на вашия детектор за качество на плодове от IoT устройство | [Check fruit quality from an IoT device](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | +| 17 | [Manufacturing](./4-manufacturing/README.md) | Стартиране на детектора за плодове на ръба | Научете за стартирането на вашия детектор за плодове на IoT устройство на ръба | [Run your fruit detector on the edge](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | +| 18 | [Manufacturing](./4-manufacturing/README.md) | Активиране на откриване на качество на плод от сензор | Научете за активирането на откриването на качество на плод от сензор | [Trigger fruit quality detection from a sensor](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | +| 19 | [Retail](./5-retail/README.md) | Обучение на детектор за наличности | Научете как да използвате откриване на обекти за обучение на детектор на наличности за броене на наличностите в магазин | [Train a stock detector](./5-retail/lessons/1-train-stock-detector/README.md) | +| 20 | [Retail](./5-retail/README.md) | Проверка на наличност от IoT устройство | Научете как да проверявате наличност от IoT устройство, използвайки модел за откриване на обекти | [Check stock from an IoT device](./5-retail/lessons/2-check-stock-device/README.md) | +| 21 | [Consumer](./6-consumer/README.md) | Разпознаване на реч с IoT устройство | Научете как да разпознавате реч от IoT устройство за създаване на умен таймер | [Recognize speech with an IoT device](./6-consumer/lessons/1-speech-recognition/README.md) | +| 22 | [Consumer](./6-consumer/README.md) | Разбиране на езика | Научете как да разбирате изречения, казани на IoT устройство | [Understand language](./6-consumer/lessons/2-language-understanding/README.md) | +| 23 | [Consumer](./6-consumer/README.md) | Настройка на таймер и предоставяне на обратна реч | Научете как да настроите таймер на IoT устройство и да давате речева обратна връзка кога е настроен таймера и кога приключва | [Set a timer and provide spoken feedback](./6-consumer/lessons/3-spoken-feedback/README.md) | +| 24 | [Consumer](./6-consumer/README.md) | Поддръжка на няколко езика | Научете как да поддържате няколко езика, както в говоренето, така и в отговорите на вашия умен таймер | [Support multiple languages](./6-consumer/lessons/4-multiple-language-support/README.md) | + +## Офлайн достъп + +Можете да използвате тази документация офлайн, като използвате [Docsify](https://docsify.js.org/#/). Форкнете това хранилище, [инсталирайте Docsify](https://docsify.js.org/#/quickstart) на локалната си машина и след това в главната папка на това хранилище напишете `docsify serve`. Уебсайтът ще се зареди на порт 3000 на локалния ви хост: `localhost:3000`. ## Тест -Благодарим на общността за хостването на интерактивния тест, който проверява вашите познания по всеки от главите. Можете да проверите знанията си [тук](https://ff-quizzes.netlify.app/en/) +Благодарим на общността за хостването на интерактивния тест, който проверява вашите знания за всяка от главите. Тествайте знанията си [тук](https://ff-quizzes.netlify.app/en/) ### PDF -Можете да генерирате PDF на това съдържание за офлайн достъп при нужда. За да направите това, уверете се, че имате [npm инсталиран](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) и изпълнете следните команди в кореновата папка на това хранилище: +Можете да генерирате PDF на това съдържание за офлайн достъп, ако е необходимо. За да направите това, уверете се, че имате [инсталиран npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) и изпълнете следните команди в главната папка на това хранилище: ```sh npm i npm run convert ``` -### Слайдове +### Презентации + +Има презентации за някои от уроците в папката [slides](../../slides). -Има слайдове за някои от уроците в папката [slides](../../slides). ## Други учебни програми -Нашият екип създава и други учебни програми! Вижте: +Екипът ни произвежда и други учебни програми! Вижте: ### LangChain -[![LangChain4j за начинаещи](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) -[![LangChain.js за начинаещи](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) - +[![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) +[![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- -### Azure / Edge / MCP / Агенти -[![AZD за начинаещи](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) +### Azure / Edge / MCP / Agents +[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI за начинаещи](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) [![MCP за начинаещи](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) [![AI агенти за начинаещи](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Серия за генеративен ИИ -[![Генеративен ИИ за начинаещи](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Генеративен ИИ (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![Генеративен ИИ (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![Генеративен ИИ (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +### Серия за Генеративен AI +[![Генеративен AI за начинаещи](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Генеративен AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![Генеративен AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![Генеративен AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- ### Основно обучение [![Машинно обучение за начинаещи](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Данни науки за начинаещи](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![ИИ за начинаещи](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Наука за данни за начинаещи](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![AI за начинаещи](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) [![Киберсигурност за начинаещи](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) [![Уеб разработка за начинаещи](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) [![IoT за начинаещи](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) @@ -195,18 +169,18 @@ npm run convert --- ### Серия Copilot -[![Copilot за ИИ съвместно програмиране](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot за съвместно програмиране с AI](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) [![Copilot за C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![Copilot приключение](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +[![Приключение с Copilot](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## Приписване на изображения +## Атрибуции на изображения -Можете да намерите всички приписвания за използваните изображения в тази учебна програма там, където е необходимо, в [Attributions](./attributions.md). +Можете да намерите всички атрибуции за изображенията, използвани в тази учебна програма там, където е необходимо, в [Attributions](./attributions.md). --- -**Отказ от отговорност**: -Този документ е преведен с помощта на AI преводаческа услуга [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на съответния език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за каквито и да било недоразумения или неправилни тълкувания, произтичащи от използването на този превод. +**Отказ от отговорност**: +Този документ е преведен с помощта на AI преводаческа услуга [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за каквито и да е недоразумения или неправилни тълкувания, произтичащи от използването на този превод. \ No newline at end of file diff --git a/translations/bg/hardware.md b/translations/bg/hardware.md index 3372bbcd2..fdeced19d 100644 --- a/translations/bg/hardware.md +++ b/translations/bg/hardware.md @@ -26,7 +26,7 @@ Seeed Studios любезно предоставиха целия хардуер **[IoT за начинаещи със Seeed и Microsoft - Raspberry Pi 4 Starter Kit](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html)** -[![Комплектът хардуер Raspberry Pi Terminal](../../translated_images/bg/pi-hardware-kit.26dbadaedb7dd44c73b0131d5d68ea29472ed0a9744f90d5866c6d82f2d16380.png)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) +[![Комплектът хардуер Raspberry Pi Terminal](../../translated_images/bg/pi-hardware-kit.26dbadaedb7dd44c.webp)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) ## Arduino diff --git a/translations/bn/.co-op-translator.json b/translations/bn/.co-op-translator.json index e626eac95..a11a12859 100644 --- a/translations/bn/.co-op-translator.json +++ b/translations/bn/.co-op-translator.json @@ -738,8 +738,8 @@ "language_code": "bn" }, "README.md": { - "original_hash": "3fcc056cd3837e33d2bdf79f9c359fcf", - "translation_date": "2026-01-30T01:36:18+00:00", + "original_hash": "accf69391fa4450eadbf492ca024cccf", + "translation_date": "2026-04-06T15:50:09+00:00", "source_file": "README.md", "language_code": "bn" }, diff --git a/translations/bn/1-getting-started/lessons/1-introduction-to-iot/README.md b/translations/bn/1-getting-started/lessons/1-introduction-to-iot/README.md index b4cdea53d..453eb053d 100644 --- a/translations/bn/1-getting-started/lessons/1-introduction-to-iot/README.md +++ b/translations/bn/1-getting-started/lessons/1-introduction-to-iot/README.md @@ -1,6 +1,6 @@ # IoT পরিচিতি -![এই পাঠের একটি স্কেচনোট সংক্ষিপ্ত বিবরণ](../../../../../translated_images/bn/lesson-1.2606670fa61ee904687da5d6fa4e726639d524d064c895117da1b95b9ff6251d.jpg) +![এই পাঠের একটি স্কেচনোট সংক্ষিপ্ত বিবরণ](../../../../../translated_images/bn/lesson-1.2606670fa61ee904.webp) > স্কেচনোট: [নিত্য নারাসিমহান](https://github.com/nitya)। বড় সংস্করণের জন্য ছবিতে ক্লিক করুন। diff --git a/translations/bn/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md b/translations/bn/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md index bea3f4c91..57232c568 100644 --- a/translations/bn/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md +++ b/translations/bn/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md @@ -203,7 +203,7 @@ Python ভার্চুয়াল এনভায়রনমেন্ট অ্যাপটি চালু হবে এবং আপনার ওয়েব ব্রাউজারে খুলবে: - ![Counter Fit অ্যাপ ব্রাউজারে চালু](../../../../../translated_images/bn/counterfit-first-run.433326358b669b31d0e99c3513cb01bfbb13724d162c99cdcc8f51ecf5f9c779.png) + ![Counter Fit অ্যাপ ব্রাউজারে চালু](../../../../../translated_images/bn/counterfit-first-run.433326358b669b31.webp) এটি *Disconnected* হিসেবে চিহ্নিত হবে এবং উপরের ডানদিকে LED বন্ধ থাকবে। @@ -224,7 +224,7 @@ Python ভার্চুয়াল এনভায়রনমেন্ট 1. এই নতুন টার্মিনালে, আগের মতো `app.py` ফাইল চালান। CounterFit-এর স্ট্যাটাস **Connected**-এ পরিবর্তিত হবে এবং LED জ্বলে উঠবে। - ![Counter Fit সংযুক্ত দেখাচ্ছে](../../../../../translated_images/bn/counterfit-connected.ed30b46d8f79b0921f3fc70be10366e596a89dca3f80c2224a9d9fc98fccf884.png) + ![Counter Fit সংযুক্ত দেখাচ্ছে](../../../../../translated_images/bn/counterfit-connected.ed30b46d8f79b092.webp) > 💁 আপনি এই কোডটি [code/virtual-device](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/virtual-device) ফোল্ডারে খুঁজে পেতে পারেন। diff --git a/translations/bn/1-getting-started/lessons/2-deeper-dive/README.md b/translations/bn/1-getting-started/lessons/2-deeper-dive/README.md index b75842ee1..d4e173fc1 100644 --- a/translations/bn/1-getting-started/lessons/2-deeper-dive/README.md +++ b/translations/bn/1-getting-started/lessons/2-deeper-dive/README.md @@ -1,6 +1,6 @@ # IoT সম্পর্কে গভীর আলোচনা -![এই পাঠের একটি স্কেচনোট সংক্ষিপ্ত বিবরণ](../../../../../translated_images/bn/lesson-2.324b0580d620c25e0a24fb7fddfc0b29a846dd4b82c08e7a9466d580ee78ce51.jpg) +![এই পাঠের একটি স্কেচনোট সংক্ষিপ্ত বিবরণ](../../../../../translated_images/bn/lesson-2.324b0580d620c25e.webp) > স্কেচনোট: [নিত্য নারাসিমহান](https://github.com/nitya)। বড় সংস্করণের জন্য ছবিতে ক্লিক করুন। @@ -38,7 +38,7 @@ IoT-এর **থিং** অংশটি এমন একটি ডিভাই এই ডিভাইসগুলো বাস্তব জগতের সাথে যোগাযোগ করে, হয় সেন্সর ব্যবহার করে তাদের চারপাশ থেকে ডেটা সংগ্রহ করে বা আউটপুট বা অ্যাকচুয়েটর নিয়ন্ত্রণ করে শারীরিক পরিবর্তন ঘটায়। এর একটি সাধারণ উদাহরণ হল একটি স্মার্ট থার্মোস্ট্যাট - একটি ডিভাইস যার মধ্যে একটি তাপমাত্রা সেন্সর, একটি পছন্দসই তাপমাত্রা সেট করার উপায় যেমন একটি ডায়াল বা টাচস্ক্রিন, এবং একটি হিটিং বা কুলিং সিস্টেমের সাথে সংযোগ রয়েছে যা পছন্দসই সীমার বাইরে তাপমাত্রা সনাক্ত হলে চালু করা যায়। তাপমাত্রা সেন্সরটি সনাক্ত করে যে ঘরটি খুব ঠান্ডা এবং একটি অ্যাকচুয়েটর হিটিং চালু করে। -![একটি IoT ডিভাইসে তাপমাত্রা এবং একটি ডায়াল ইনপুট হিসেবে এবং একটি হিটার নিয়ন্ত্রণ আউটপুট হিসেবে দেখানো একটি ডায়াগ্রাম](../../../../../translated_images/bn/basic-thermostat.a923217fd1f37e5a6f3390396a65c22a387419ea2dd17e518ec24315ba6ae9a8.png) +![একটি IoT ডিভাইসে তাপমাত্রা এবং একটি ডায়াল ইনপুট হিসেবে এবং একটি হিটার নিয়ন্ত্রণ আউটপুট হিসেবে দেখানো একটি ডায়াগ্রাম](../../../../../translated_images/bn/basic-thermostat.a923217fd1f37e5a.webp) IoT ডিভাইস হিসেবে কাজ করতে পারে এমন বিভিন্ন ধরণের জিনিস রয়েছে, যেমন একটি নির্দিষ্ট হার্ডওয়্যার যা একটি জিনিস সনাক্ত করে, সাধারণ উদ্দেশ্য ডিভাইস, এমনকি আপনার স্মার্টফোনও! একটি স্মার্টফোন সেন্সর ব্যবহার করে তার চারপাশের জগত সনাক্ত করতে পারে এবং অ্যাকচুয়েটর ব্যবহার করে জগতের সাথে যোগাযোগ করতে পারে - যেমন একটি GPS সেন্সর ব্যবহার করে আপনার অবস্থান সনাক্ত করা এবং একটি স্পিকার ব্যবহার করে আপনাকে গন্তব্যে যাওয়ার নির্দেশনা দেওয়া। @@ -54,7 +54,7 @@ IoT অ্যাপ্লিকেশনের **ইন্টারনেট** স্মার্ট থার্মোস্ট্যাটের উদাহরণে, থার্মোস্ট্যাটটি হোম WiFi ব্যবহার করে ক্লাউডে একটি ক্লাউড সার্ভিসের সাথে সংযোগ করবে। এটি তাপমাত্রার ডেটা এই ক্লাউড সার্ভিসে পাঠাবে এবং সেখান থেকে এটি কোনো ধরনের ডাটাবেসে লেখা হবে যাতে বাড়ির মালিক একটি ফোন অ্যাপ ব্যবহার করে বর্তমান এবং অতীতের তাপমাত্রা পরীক্ষা করতে পারে। ক্লাউডে থাকা অন্য একটি সার্ভিস জানবে বাড়ির মালিক কী তাপমাত্রা চান এবং ক্লাউড সার্ভিসের মাধ্যমে IoT ডিভাইসে বার্তা পাঠাবে যাতে হিটিং সিস্টেম চালু বা বন্ধ করা যায়। -![একটি IoT ডিভাইসে তাপমাত্রা এবং একটি ডায়াল ইনপুট হিসেবে, IoT ডিভাইসের সাথে ক্লাউডের ২-ওয়ে যোগাযোগ, যা ফোনের সাথে ২-ওয়ে যোগাযোগ করে এবং একটি হিটার নিয়ন্ত্রণ আউটপুট হিসেবে দেখানো একটি ডায়াগ্রাম](../../../../../translated_images/bn/mobile-controlled-thermostat.4a994010473d8d6a52ba68c67e5f02dc8928c717e93ca4b9bc55525aa75bbb60.png) +![একটি IoT ডিভাইসে তাপমাত্রা এবং একটি ডায়াল ইনপুট হিসেবে, IoT ডিভাইসের সাথে ক্লাউডের ২-ওয়ে যোগাযোগ, যা ফোনের সাথে ২-ওয়ে যোগাযোগ করে এবং একটি হিটার নিয়ন্ত্রণ আউটপুট হিসেবে দেখানো একটি ডায়াগ্রাম](../../../../../translated_images/bn/mobile-controlled-thermostat.4a994010473d8d6a.webp) আরও স্মার্ট সংস্করণটি AI ব্যবহার করতে পারে যা ক্লাউডে অন্যান্য IoT ডিভাইসের সাথে সংযুক্ত সেন্সর থেকে ডেটা যেমন রুমের ব্যবহার সনাক্ত করার জন্য সেন্সর, আবহাওয়া এবং এমনকি আপনার ক্যালেন্ডারের মতো ডেটা ব্যবহার করে স্মার্টভাবে তাপমাত্রা সেট করার সিদ্ধান্ত নিতে পারে। উদাহরণস্বরূপ, এটি আপনার ক্যালেন্ডার থেকে পড়ে যদি আপনি ছুটিতে থাকেন তবে আপনার হিটিং বন্ধ করতে পারে, অথবা রুমের ব্যবহার অনুযায়ী রুম বাই রুম ভিত্তিতে হিটিং বন্ধ করতে পারে, ডেটা থেকে শিখে সময়ের সাথে আরও সঠিক হতে পারে। @@ -94,7 +94,7 @@ CPU একটি ক্লকের উপর নির্ভর করে য > 💁 CPU-গুলো [fetch-decode-execute cycle](https://wikipedia.org/wiki/Instruction_cycle) ব্যবহার করে প্রোগ্রাম চালায়। প্রতিটি ক্লক টিকের জন্য, CPU মেমরি থেকে পরবর্তী নির্দেশনা নিয়ে আসে, এটি ডিকোড করে, তারপর এটি কার্যকর করে যেমন একটি গাণিতিক লজিক ইউনিট (ALU) ব্যবহার করে দুটি সংখ্যা যোগ করা। কিছু কার্যকরকরণ একাধিক টিক নিতে পারে, তাই পরবর্তী সাইকেলটি নির্দেশনা সম্পন্ন হওয়ার পরে পরবর্তী টিকে চলবে। -![fetch decode execute সাইকেল দেখানো যেখানে RAM-এ সংরক্ষিত প্রোগ্রাম থেকে একটি নির্দেশনা নিয়ে CPU-তে ডিকোড এবং কার্যকর করা হয়](../../../../../translated_images/bn/fetch-decode-execute.2fd6f150f6280392807f4475382319abd0cee0b90058e1735444d6baa6f2078c.png) +![fetch decode execute সাইকেল দেখানো যেখানে RAM-এ সংরক্ষিত প্রোগ্রাম থেকে একটি নির্দেশনা নিয়ে CPU-তে ডিকোড এবং কার্যকর করা হয়](../../../../../translated_images/bn/fetch-decode-execute.2fd6f150f6280392.webp) মাইক্রোকন্ট্রোলারগুলোর ক্লক গতি ডেস্কটপ বা ল্যাপটপ কম্পিউটার, এমনকি বেশিরভাগ স্মার্টফোনের তুলনায় অনেক কম। উদাহরণস্বরূপ, Wio Terminal-এর একটি CPU রয়েছে যা 120MHz বা প্রতি সেকেন্ডে 120,000,000 সাইকেলে চলে। @@ -180,7 +180,7 @@ Arduino বোর্ডগুলি C বা C++ এ কোড করা হয আপনার `setup` ফাংশনে আপনার সেটআপ কোড লিখবেন, যেমন WiFi এবং ক্লাউড পরিষেবাগুলির সাথে সংযোগ স্থাপন করা বা ইনপুট এবং আউটপুটের জন্য পিনগুলি ইনিশিয়ালাইজ করা। আপনার `loop` কোডে প্রসেসিং কোড থাকবে, যেমন একটি সেন্সর থেকে পড়া এবং মানটি ক্লাউডে পাঠানো। আপনি সাধারণত প্রতিটি লুপে একটি বিলম্ব অন্তর্ভুক্ত করবেন, উদাহরণস্বরূপ, যদি আপনি শুধুমাত্র প্রতি ১০ সেকেন্ডে সেন্সর ডেটা পাঠাতে চান, তাহলে লুপের শেষে ১০ সেকেন্ডের বিলম্ব যোগ করবেন যাতে মাইক্রোকন্ট্রোলার ঘুমাতে পারে, শক্তি সঞ্চয় করতে পারে, এবং প্রয়োজন হলে ১০ সেকেন্ড পরে আবার লুপ চালাতে পারে। -![একটি আরডুইনো স্কেচ প্রথমে সেটআপ চালাচ্ছে, তারপর বারবার লুপ চালাচ্ছে](../../../../../translated_images/bn/arduino-sketch.79590cb837ff7a7c6a68d1afda6cab83fd53d3bb1bd9a8bf2eaf8d693a4d3ea6.png) +![একটি আরডুইনো স্কেচ প্রথমে সেটআপ চালাচ্ছে, তারপর বারবার লুপ চালাচ্ছে](../../../../../translated_images/bn/arduino-sketch.79590cb837ff7a7c.webp) ✅ এই প্রোগ্রাম আর্কিটেকচারটি *ইভেন্ট লুপ* বা *মেসেজ লoop* নামে পরিচিত। অনেক অ্যাপ্লিকেশন এটি ব্যবহার করে এবং এটি Windows, macOS বা Linux-এর মতো OS-এ চলমান বেশিরভাগ ডেস্কটপ অ্যাপ্লিকেশনের জন্য মানক। `loop` ব্যবহারকারীর ইন্টারফেস উপাদান যেমন বোতাম বা কীবোর্ডের মতো ডিভাইস থেকে বার্তা শোনে এবং সেগুলির প্রতিক্রিয়া জানায়। আপনি এই [ইভেন্ট লoop সম্পর্কিত নিবন্ধে](https://wikipedia.org/wiki/Event_loop) আরও পড়তে পারেন। diff --git a/translations/bn/1-getting-started/lessons/3-sensors-and-actuators/README.md b/translations/bn/1-getting-started/lessons/3-sensors-and-actuators/README.md index d563b3b8c..2e860b1e0 100644 --- a/translations/bn/1-getting-started/lessons/3-sensors-and-actuators/README.md +++ b/translations/bn/1-getting-started/lessons/3-sensors-and-actuators/README.md @@ -1,6 +1,6 @@ # সেন্সর এবং অ্যাকচুয়েটরের মাধ্যমে বাস্তব জগতের সাথে যোগাযোগ করুন -![এই পাঠের একটি স্কেচনোট ওভারভিউ](../../../../../translated_images/bn/lesson-3.cc3b7b4cd646de598698cce043c0393fd62ef42bac2eaf60e61272cd844250f4.jpg) +![এই পাঠের একটি স্কেচনোট ওভারভিউ](../../../../../translated_images/bn/lesson-3.cc3b7b4cd646de59.webp) > স্কেচনোট: [নিত্য নারাসিমহান](https://github.com/nitya)। বড় সংস্করণের জন্য ছবিতে ক্লিক করুন। @@ -104,7 +104,7 @@ IoT ডিভাইসগুলো ডিজিটাল - এগুলো অ নিচের গাইড অনুসরণ করে একটি অ্যাকচুয়েটর যোগ করুন এবং সেন্সরের মাধ্যমে এটি নিয়ন্ত্রণ করুন। এটি লাইট সেন্সর থেকে লাইট লেভেল সংগ্রহ করবে এবং একটি LED ব্যবহার করে আলো নির্গমন করবে যখন লাইট লেভেল খুব কম হবে। -![অ্যাসাইনমেন্টের একটি ফ্লো চার্ট যেখানে লাইট লেভেল পড়া এবং চেক করা হচ্ছে, এবং LED নিয়ন্ত্রণ করা হচ্ছে](../../../../../translated_images/bn/assignment-1-flow.7552a51acb1a5ec858dca6e855cdbb44206434006df8ba3799a25afcdab1665d.png) +![অ্যাসাইনমেন্টের একটি ফ্লো চার্ট যেখানে লাইট লেভেল পড়া এবং চেক করা হচ্ছে, এবং LED নিয়ন্ত্রণ করা হচ্ছে](../../../../../translated_images/bn/assignment-1-flow.7552a51acb1a5ec8.webp) * [Arduino - Wio Terminal](wio-terminal-actuator.md) * [সিঙ্গল-বোর্ড কম্পিউটার - Raspberry Pi](pi-actuator.md) @@ -119,7 +119,7 @@ IoT ডিভাইসগুলো ডিজিটাল - এগুলো অ অ্যানালগ অ্যাকচুয়েটর একটি অ্যানালগ সংকেত গ্রহণ করে এবং এটি একটি মিথস্ক্রিয়ায় রূপান্তরিত করে, যেখানে মিথস্ক্রিয়াটি সরবরাহকৃত ভোল্টেজের উপর নির্ভর করে পরিবর্তিত হয়। একটি উদাহরণ হলো একটি ডিমেবল লাইট, যেমন আপনার বাড়িতে থাকতে পারে। আলো কতটা উজ্জ্বল হবে তা নির্ধারণ করে সরবরাহকৃত ভোল্টেজ। -![কম ভোল্টেজে ম্লান এবং বেশি ভোল্টেজে উজ্জ্বল একটি আলো](../../../../../translated_images/bn/dimmable-light.9ceffeb195dec1a849da718b2d71b32c35171ff7dfea9c07bbf82646a67acf6b.png) +![কম ভোল্টেজে ম্লান এবং বেশি ভোল্টেজে উজ্জ্বল একটি আলো](../../../../../translated_images/bn/dimmable-light.9ceffeb195dec1a8.webp) সেন্সরের মতো, আসল IoT ডিভাইস ডিজিটাল সিগনালে কাজ করে, অ্যানালগে নয়। এর মানে, অ্যানালগ সিগনাল পাঠাতে হলে IoT ডিভাইসের একটি ডিজিটাল টু অ্যানালগ কনভার্টার (DAC) প্রয়োজন, যা হয় সরাসরি IoT ডিভাইসে থাকে, অথবা একটি সংযোগ বোর্ডে। এটি IoT ডিভাইসের 0 এবং 1-কে একটি অ্যানালগ ভোল্টেজে রূপান্তর করবে যা অ্যাকচুয়েটর ব্যবহার করতে পারে। @@ -166,7 +166,7 @@ IoT ডিভাইস থেকে ডিজিটাল সিগনালক একটি সাধারণ ডিজিটাল অ্যাকচুয়েটর হলো LED। যখন একটি ডিভাইস 1-এর ডিজিটাল সিগনাল পাঠায়, তখন একটি উচ্চ ভোল্টেজ পাঠানো হয় যা LED-কে জ্বালায়। যখন 0-এর ডিজিটাল সিগনাল পাঠানো হয়, তখন ভোল্টেজ 0V-এ নেমে যায় এবং LED বন্ধ হয়ে যায়। -![0 ভোল্টে LED বন্ধ এবং 5V-এ চালু](../../../../../translated_images/bn/led.ec6d94f66676a174ad06d9fa9ea49c2ee89beb18b312d5c6476467c66375b07f.png) +![0 ভোল্টে LED বন্ধ এবং 5V-এ চালু](../../../../../translated_images/bn/led.ec6d94f66676a174.webp) ✅ আপনি আর কী কী সাধারণ ২-অবস্থার অ্যাকচুয়েটরের কথা ভাবতে পারেন? একটি উদাহরণ হলো সোলেনয়েড, যা একটি ইলেক্ট্রোম্যাগনেট যা দরজার বোল্ট লক/আনলক করার মতো কাজ করতে সক্রিয় করা যায়। diff --git a/translations/bn/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md b/translations/bn/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md index 05219545b..50b4daf8b 100644 --- a/translations/bn/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md +++ b/translations/bn/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md @@ -26,7 +26,7 @@ Grove LED একটি মডিউল হিসেবে আসে যেখা LED সংযুক্ত করুন। -![একটি Grove LED](../../../../../translated_images/bn/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![একটি Grove LED](../../../../../translated_images/bn/grove-led.6c853be93f473cf2.webp) 1. আপনার পছন্দের LED বেছে নিন এবং LED মডিউলের দুটি ছিদ্রে পা ঢোকান। @@ -40,7 +40,7 @@ LED সংযুক্ত করুন। 1. রাস্পবেরি পাই বন্ধ অবস্থায়, Grove কেবলের অন্য প্রান্তটি Grove Base হ্যাটে সংযুক্ত **D5** চিহ্নিত ডিজিটাল সকেটে সংযুক্ত করুন। এই সকেটটি GPIO পিনের পাশে থাকা সকেটের সারিতে বাম দিক থেকে দ্বিতীয়। -![Grove LED D5 সকেটে সংযুক্ত](../../../../../translated_images/bn/pi-led.97f1d474981dc35d1c7996c7b17de355d3d0a6bc9606d79fa5f89df933415122.png) +![Grove LED D5 সকেটে সংযুক্ত](../../../../../translated_images/bn/pi-led.97f1d474981dc35d.webp) ## নাইটলাইট প্রোগ্রাম করুন diff --git a/translations/bn/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md b/translations/bn/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md index 9c53215f0..5da5f89e7 100644 --- a/translations/bn/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md +++ b/translations/bn/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md @@ -16,13 +16,13 @@ লাইট সেন্সর সংযুক্ত করুন -![একটি Grove লাইট সেন্সর](../../../../../translated_images/bn/grove-light-sensor.b8127b7c434e632d6bcdb57587a14e9ef69a268a22df95d08628f62b8fa5505c.png) +![একটি Grove লাইট সেন্সর](../../../../../translated_images/bn/grove-light-sensor.b8127b7c434e632d.webp) 1. Grove কেবলের এক প্রান্ত লাইট সেন্সর মডিউলের সকেটে প্রবেশ করান। এটি শুধুমাত্র একটি নির্দিষ্ট দিকেই প্রবেশ করবে। 1. রাস্পবেরি পাই বন্ধ অবস্থায়, Grove কেবলের অন্য প্রান্তটি Grove Base হ্যাটের **A0** নামে চিহ্নিত অ্যানালগ সকেটে সংযুক্ত করুন। এই সকেটটি GPIO পিনের পাশে থাকা সকেটের সারিতে ডান দিক থেকে দ্বিতীয়। -![Grove লাইট সেন্সর A0 সকেটে সংযুক্ত](../../../../../translated_images/bn/pi-light-sensor.66cc1e31fa48cd7d5f23400d4b2119aa41508275cb7c778053a7923b4e972d7e.png) +![Grove লাইট সেন্সর A0 সকেটে সংযুক্ত](../../../../../translated_images/bn/pi-light-sensor.66cc1e31fa48cd7d.webp) ## লাইট সেন্সর প্রোগ্রাম করুন diff --git a/translations/bn/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md b/translations/bn/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md index d19d67fdf..b1f1cab64 100644 --- a/translations/bn/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md +++ b/translations/bn/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md @@ -36,11 +36,11 @@ CounterFit অ্যাপে LED যোগ করুন। 1. **Add** বোতামটি নির্বাচন করুন যাতে Pin 5-এ LED তৈরি হয়। - ![LED সেটিংস](../../../../../translated_images/bn/counterfit-create-led.ba9db1c9b8c622a635d6dfae5cdc4e70c2b250635bd4f0601c6cf0bd22b7ba46.png) + ![LED সেটিংস](../../../../../translated_images/bn/counterfit-create-led.ba9db1c9b8c622a6.webp) LED তৈরি হবে এবং অ্যাকচুয়েটর তালিকায় প্রদর্শিত হবে। - ![LED তৈরি হয়েছে](../../../../../translated_images/bn/counterfit-led.c0ab02de6d256ad84d9bad4d67a7faa709f0ea83e410cfe9b5561ef0cef30b1c.png) + ![LED তৈরি হয়েছে](../../../../../translated_images/bn/counterfit-led.c0ab02de6d256ad8.webp) LED তৈরি হওয়ার পরে, আপনি *Color* পিকার ব্যবহার করে রঙ পরিবর্তন করতে পারেন। রঙ নির্বাচন করার পরে **Set** বোতামটি নির্বাচন করুন রঙ পরিবর্তনের জন্য। diff --git a/translations/bn/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md b/translations/bn/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md index 768e3672d..727f466a5 100644 --- a/translations/bn/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md +++ b/translations/bn/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md @@ -28,11 +28,11 @@ CounterFit অ্যাপে লাইট সেন্সর যোগ কর 1. **Add** বোতামটি নির্বাচন করুন যাতে পিন 0-এ লাইট সেন্সর তৈরি হয়। - ![লাইট সেন্সরের সেটিংস](../../../../../translated_images/bn/counterfit-create-light-sensor.9f36a5e0d4458d8d554d54b34d2c806d56093d6e49fddcda2d20f6fef7f5cce1.png) + ![লাইট সেন্সরের সেটিংস](../../../../../translated_images/bn/counterfit-create-light-sensor.9f36a5e0d4458d8d.webp) লাইট সেন্সরটি তৈরি হবে এবং সেন্সর তালিকায় প্রদর্শিত হবে। - ![তৈরি করা লাইট সেন্সর](../../../../../translated_images/bn/counterfit-light-sensor.5d0f5584df56b90f6b2561910d9cb20dfbd73eeff2177c238d38f4de54aefae1.png) + ![তৈরি করা লাইট সেন্সর](../../../../../translated_images/bn/counterfit-light-sensor.5d0f5584df56b90f.webp) ## লাইট সেন্সর প্রোগ্রাম করুন diff --git a/translations/bn/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md b/translations/bn/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md index 757c828b5..5fcd1bf33 100644 --- a/translations/bn/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md +++ b/translations/bn/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md @@ -26,7 +26,7 @@ Grove LED একটি মডিউল হিসেবে আসে যেখা LED সংযুক্ত করুন। -![একটি Grove LED](../../../../../translated_images/bn/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![একটি Grove LED](../../../../../translated_images/bn/grove-led.6c853be93f473cf2.webp) 1. আপনার পছন্দের LED বেছে নিন এবং LED মডিউলের দুটি গর্তে পা ঢোকান। diff --git a/translations/bn/1-getting-started/lessons/4-connect-internet/README.md b/translations/bn/1-getting-started/lessons/4-connect-internet/README.md index 6e85fdf0d..5ef68aed8 100644 --- a/translations/bn/1-getting-started/lessons/4-connect-internet/README.md +++ b/translations/bn/1-getting-started/lessons/4-connect-internet/README.md @@ -1,6 +1,6 @@ # আপনার ডিভাইসকে ইন্টারনেটের সাথে সংযুক্ত করুন -![এই পাঠের একটি স্কেচনোট সংক্ষিপ্ত বিবরণ](../../../../../translated_images/bn/lesson-4.7344e074ea68fa545fd320b12dce36d72dd62d28c3b4596cb26cf315f434b98f.jpg) +![এই পাঠের একটি স্কেচনোট সংক্ষিপ্ত বিবরণ](../../../../../translated_images/bn/lesson-4.7344e074ea68fa54.webp) > স্কেচনোট: [নিত্য নারাসিমহান](https://github.com/nitya)। বড় সংস্করণের জন্য ছবিতে ক্লিক করুন। @@ -47,7 +47,7 @@ MQTT IoT ডিভাইসের জন্য সবচেয়ে জনপ MQTT-তে একটি একক ব্রোকার এবং একাধিক ক্লায়েন্ট থাকে। সমস্ত ক্লায়েন্ট ব্রোকারের সাথে সংযুক্ত হয় এবং ব্রোকার বার্তাগুলো প্রাসঙ্গিক ক্লায়েন্টদের কাছে রুট করে। বার্তাগুলো নামকৃত টপিক ব্যবহার করে রুট করা হয়, সরাসরি একটি নির্দিষ্ট ক্লায়েন্টে পাঠানো হয় না। একটি ক্লায়েন্ট একটি টপিকে বার্তা প্রকাশ করতে পারে, এবং যে কোনো ক্লায়েন্ট সেই টপিক সাবস্ক্রাইব করলে বার্তাটি গ্রহণ করবে। -![IoT ডিভাইস /telemetry টপিকে টেলিমেট্রি প্রকাশ করছে, এবং ক্লাউড পরিষেবা সেই টপিক সাবস্ক্রাইব করছে](../../../../../translated_images/bn/mqtt.cbf7f21d9adc3e17548b359444cc11bb4bf2010543e32ece9a47becf54438c23.png) +![IoT ডিভাইস /telemetry টপিকে টেলিমেট্রি প্রকাশ করছে, এবং ক্লাউড পরিষেবা সেই টপিক সাবস্ক্রাইব করছে](../../../../../translated_images/bn/mqtt.cbf7f21d9adc3e17.webp) ✅ কিছু গবেষণা করুন। যদি আপনার অনেক IoT ডিভাইস থাকে, তাহলে কীভাবে নিশ্চিত করবেন যে আপনার MQTT ব্রোকার সমস্ত বার্তা পরিচালনা করতে পারে? @@ -69,7 +69,7 @@ MQTT-তে একটি একক ব্রোকার এবং একাধ > 💁 এই টেস্ট ব্রোকারটি পাবলিক এবং নিরাপদ নয়। আপনি যা প্রকাশ করেন তা যে কেউ শুনতে পারে, তাই এটি এমন কোনো ডেটার জন্য ব্যবহার করা উচিত নয় যা গোপন রাখতে হবে। -![অ্যাসাইনমেন্টের একটি ফ্লো চার্ট যেখানে আলো স্তর পড়া এবং পরীক্ষা করা হচ্ছে, এবং LED নিয়ন্ত্রিত হচ্ছে](../../../../../translated_images/bn/assignment-1-internet-flow.3256feab5f052fd273bf4e331157c574c2c3fa42e479836fc9c3586f41db35a5.png) +![অ্যাসাইনমেন্টের একটি ফ্লো চার্ট যেখানে আলো স্তর পড়া এবং পরীক্ষা করা হচ্ছে, এবং LED নিয়ন্ত্রিত হচ্ছে](../../../../../translated_images/bn/assignment-1-internet-flow.3256feab5f052fd2.webp) MQTT ব্রোকারের সাথে আপনার ডিভাইস সংযুক্ত করতে নিচের প্রাসঙ্গিক ধাপ অনুসরণ করুন: diff --git a/translations/bn/2-farm/lessons/1-predict-plant-growth/README.md b/translations/bn/2-farm/lessons/1-predict-plant-growth/README.md index f3d669b3d..3a6ba4c92 100644 --- a/translations/bn/2-farm/lessons/1-predict-plant-growth/README.md +++ b/translations/bn/2-farm/lessons/1-predict-plant-growth/README.md @@ -1,6 +1,6 @@ # IoT ব্যবহার করে উদ্ভিদের বৃদ্ধি পূর্বাভাস দিন -![এই পাঠের একটি স্কেচনোট](../../../../../translated_images/bn/lesson-5.42b234299279d263143148b88ab4583861a32ddb03110c6c1120e41bb88b2592.jpg) +![এই পাঠের একটি স্কেচনোট](../../../../../translated_images/bn/lesson-5.42b234299279d263.webp) > স্কেচনোট করেছেন [নিত্য নারাসিমহান](https://github.com/nitya)। বড় সংস্করণের জন্য ছবিতে ক্লিক করুন। @@ -102,7 +102,7 @@ উদাহরণস্বরূপ, যদি দিনের সর্বোচ্চ তাপমাত্রা ২৫°C হয় এবং সর্বনিম্ন তাপমাত্রা ১২°C হয়: -![GDD = ২৫ + ১২ ভাগ ২, তারপর ফলাফল থেকে ১০ বিয়োগ করে ৮.৫ পাওয়া যায়](../../../../../translated_images/bn/gdd-calculation-strawberries.59f57db94b22adb8ff6efb951ace33af104a1c6ccca3ffb0f8169c14cb160c90.png) +![GDD = ২৫ + ১২ ভাগ ২, তারপর ফলাফল থেকে ১০ বিয়োগ করে ৮.৫ পাওয়া যায়](../../../../../translated_images/bn/gdd-calculation-strawberries.59f57db94b22adb8.webp) * ২৫ + ১২ = ৩৭ * ৩৭ / ২ = ১৮.৫ diff --git a/translations/bn/2-farm/lessons/1-predict-plant-growth/assignment.md b/translations/bn/2-farm/lessons/1-predict-plant-growth/assignment.md index f3010eefd..67ddff568 100644 --- a/translations/bn/2-farm/lessons/1-predict-plant-growth/assignment.md +++ b/translations/bn/2-farm/lessons/1-predict-plant-growth/assignment.md @@ -33,7 +33,7 @@ জুপিটার চালু হবে এবং আপনার ব্রাউজারে নোটবুক খুলবে। নোটবুকের নির্দেশনাগুলো অনুসরণ করে মাপা তাপমাত্রা ভিজুয়ালাইজ করুন এবং গ্রোয়িং ডিগ্রি ডে (GDD) গণনা করুন। - ![জুপিটার নোটবুক](../../../../../translated_images/bn/gdd-jupyter-notebook.c5b52cf21094f158a61f47f455490fd95f1729777ff90861a4521820bf354cdc.png) + ![জুপিটার নোটবুক](../../../../../translated_images/bn/gdd-jupyter-notebook.c5b52cf21094f158.webp) ## মূল্যায়ন diff --git a/translations/bn/2-farm/lessons/1-predict-plant-growth/pi-temp.md b/translations/bn/2-farm/lessons/1-predict-plant-growth/pi-temp.md index a9d8809d7..d85bb9d8e 100644 --- a/translations/bn/2-farm/lessons/1-predict-plant-growth/pi-temp.md +++ b/translations/bn/2-farm/lessons/1-predict-plant-growth/pi-temp.md @@ -16,13 +16,13 @@ Grove তাপমাত্রা সেন্সরটি রাস্পবে তাপমাত্রা সেন্সর সংযোগ করুন -![একটি Grove তাপমাত্রা সেন্সর](../../../../../translated_images/bn/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![একটি Grove তাপমাত্রা সেন্সর](../../../../../translated_images/bn/grove-dht11.07f8eafceee17004.webp) 1. Grove কেবলের এক প্রান্ত আর্দ্রতা এবং তাপমাত্রা সেন্সরের সকেটে প্রবেশ করান। এটি শুধুমাত্র একটি নির্দিষ্ট দিকেই প্রবেশ করবে। 1. রাস্পবেরি পাই বন্ধ অবস্থায়, Grove কেবলের অন্য প্রান্তটি Grove Base হ্যাটে সংযুক্ত **D5** নামে চিহ্নিত ডিজিটাল সকেটে সংযুক্ত করুন। এই সকেটটি GPIO পিনগুলির পাশে থাকা সকেটের সারিতে বাম দিক থেকে দ্বিতীয়। -![Grove তাপমাত্রা সেন্সর সকেট A0-তে সংযুক্ত](../../../../../translated_images/bn/pi-temperature-sensor.3ff82fff672c8e565ef25a39d26d111de006b825a7e0867227ef4e7fbff8553c.png) +![Grove তাপমাত্রা সেন্সর সকেট A0-তে সংযুক্ত](../../../../../translated_images/bn/pi-temperature-sensor.3ff82fff672c8e56.webp) ## তাপমাত্রা সেন্সর প্রোগ্রাম করুন diff --git a/translations/bn/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md b/translations/bn/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md index a1e5af876..48fd1288c 100644 --- a/translations/bn/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md +++ b/translations/bn/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md @@ -38,11 +38,11 @@ CounterFit অ্যাপে আর্দ্রতা এবং তাপমা 1. **Add** বোতামটি নির্বাচন করুন যাতে পিন 5-এ আর্দ্রতা সেন্সর তৈরি হয়। - ![আর্দ্রতা সেন্সরের সেটিংস](../../../../../translated_images/bn/counterfit-create-humidity-sensor.2750e27b6f30e09cf4e22101defd5252710717620816ab41ba688f91f757c49a.png) + ![আর্দ্রতা সেন্সরের সেটিংস](../../../../../translated_images/bn/counterfit-create-humidity-sensor.2750e27b6f30e09c.webp) আর্দ্রতা সেন্সর তৈরি হবে এবং সেন্সর তালিকায় প্রদর্শিত হবে। - ![তৈরি করা আর্দ্রতা সেন্সর](../../../../../translated_images/bn/counterfit-humidity-sensor.7b12f7f339e430cb26c8211d2dba4ef75261b353a01da0932698b5bebd693f27.png) + ![তৈরি করা আর্দ্রতা সেন্সর](../../../../../translated_images/bn/counterfit-humidity-sensor.7b12f7f339e430cb.webp) 1. একটি তাপমাত্রা সেন্সর তৈরি করুন: @@ -54,11 +54,11 @@ CounterFit অ্যাপে আর্দ্রতা এবং তাপমা 1. **Add** বোতামটি নির্বাচন করুন যাতে পিন 6-এ তাপমাত্রা সেন্সর তৈরি হয়। - ![তাপমাত্রা সেন্সরের সেটিংস](../../../../../translated_images/bn/counterfit-create-temperature-sensor.199350ed34f7343d79dccbe95eaf6c11d2121f03d1c35ab9613b330c23f39b29.png) + ![তাপমাত্রা সেন্সরের সেটিংস](../../../../../translated_images/bn/counterfit-create-temperature-sensor.199350ed34f7343d.webp) তাপমাত্রা সেন্সর তৈরি হবে এবং সেন্সর তালিকায় প্রদর্শিত হবে। - ![তৈরি করা তাপমাত্রা সেন্সর](../../../../../translated_images/bn/counterfit-temperature-sensor.f0560236c96a9016bafce7f6f792476fe3367bc6941a1f7d5811d144d4bcbfff.png) + ![তৈরি করা তাপমাত্রা সেন্সর](../../../../../translated_images/bn/counterfit-temperature-sensor.f0560236c96a9016.webp) ## তাপমাত্রা সেন্সর অ্যাপ প্রোগ্রাম করুন diff --git a/translations/bn/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md b/translations/bn/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md index e14d86e44..2a5228563 100644 --- a/translations/bn/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md +++ b/translations/bn/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md @@ -18,7 +18,7 @@ Grove তাপমাত্রা সেন্সরটি Wio Terminal-এর তাপমাত্রা সেন্সর সংযুক্ত করুন। -![একটি Grove তাপমাত্রা সেন্সর](../../../../../translated_images/bn/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![একটি Grove তাপমাত্রা সেন্সর](../../../../../translated_images/bn/grove-dht11.07f8eafceee17004.webp) 1. Grove কেবলের এক প্রান্ত আর্দ্রতা এবং তাপমাত্রা সেন্সরের সকেটে প্রবেশ করান। এটি শুধুমাত্র একদিকে প্রবেশ করবে। diff --git a/translations/bn/2-farm/lessons/2-detect-soil-moisture/README.md b/translations/bn/2-farm/lessons/2-detect-soil-moisture/README.md index fafac4e11..98045874b 100644 --- a/translations/bn/2-farm/lessons/2-detect-soil-moisture/README.md +++ b/translations/bn/2-farm/lessons/2-detect-soil-moisture/README.md @@ -13,7 +13,7 @@ I²C-এর একটি বাস থাকে যা প্রধানত ২ | VCC | ভোল্টেজ কমন কালেক্টর | ডিভাইসগুলোর পাওয়ার সাপ্লাই। এটি SDA এবং SCL তারের সাথে সংযুক্ত থাকে এবং একটি পুল-আপ রেজিস্টরের মাধ্যমে তাদের পাওয়ার সরবরাহ করে যা কোনো ডিভাইস কন্ট্রোলার না হলে সিগন্যাল বন্ধ করে দেয়। | | GND | গ্রাউন্ড | এটি বৈদ্যুতিক সার্কিটের জন্য একটি সাধারণ গ্রাউন্ড সরবরাহ করে। | -![I2C বাস যেখানে ৩টি ডিভাইস SDA এবং SCL তারের সাথে সংযুক্ত, একটি সাধারণ গ্রাউন্ড তার শেয়ার করছে](../../../../../translated_images/bn/i2c.83da845dde02256bdd462dbe0d5145461416b74930571b89d1ae142841eeb584.png) +![I2C বাস যেখানে ৩টি ডিভাইস SDA এবং SCL তারের সাথে সংযুক্ত, একটি সাধারণ গ্রাউন্ড তার শেয়ার করছে](../../../../../translated_images/bn/i2c.83da845dde02256b.webp) ডেটা পাঠানোর জন্য, একটি ডিভাইস একটি স্টার্ট কন্ডিশন ইস্যু করবে যা দেখাবে যে এটি ডেটা পাঠানোর জন্য প্রস্তুত। এটি তখন কন্ট্রোলার হয়ে যাবে। কন্ট্রোলার তখন সেই ডিভাইসের ঠিকানা পাঠাবে যার সাথে এটি যোগাযোগ করতে চায়, সাথে এটি ডেটা পড়তে বা লিখতে চায় কিনা তা জানাবে। ডেটা প্রেরণ শেষ হলে, কন্ট্রোলার একটি স্টপ কন্ডিশন পাঠাবে যা দেখাবে যে এটি কাজ শেষ করেছে। এর পরে অন্য একটি ডিভাইস কন্ট্রোলার হয়ে ডেটা পাঠাতে বা গ্রহণ করতে পারে। diff --git a/translations/bn/2-farm/lessons/2-detect-soil-moisture/assignment.md b/translations/bn/2-farm/lessons/2-detect-soil-moisture/assignment.md index c164c8658..3fb12cb0a 100644 --- a/translations/bn/2-farm/lessons/2-detect-soil-moisture/assignment.md +++ b/translations/bn/2-farm/lessons/2-detect-soil-moisture/assignment.md @@ -20,7 +20,7 @@ গ্রাভিমেট্রিক মাটির আর্দ্রতা গণনা করার সূত্র হলো: -![মাটির আর্দ্রতা % হল ভেজা ওজন থেকে শুকনো ওজন বিয়োগ, তারপর শুকনো ওজন দ্বারা ভাগ, এবং ১০০ দিয়ে গুণ](../../../../../translated_images/bn/gsm-calculation.6da38c6201eec14e7573bb2647aa18892883193553d23c9d77e5dc681522dfb2.png) +![মাটির আর্দ্রতা % হল ভেজা ওজন থেকে শুকনো ওজন বিয়োগ, তারপর শুকনো ওজন দ্বারা ভাগ, এবং ১০০ দিয়ে গুণ](../../../../../translated_images/bn/gsm-calculation.6da38c6201eec14e.webp) * W - ভেজা মাটির ওজন @@ -29,7 +29,7 @@ উদাহরণস্বরূপ, ধরুন আপনার কাছে একটি মাটির নমুনা আছে যার ভেজা ওজন 212g এবং শুকনো ওজন 197g। -![গণনা পূরণ করা হয়েছে](../../../../../translated_images/bn/gsm-calculation-example.99f9803b4f29e97668e7c15412136c0c399ab12dbba0b89596fdae9d8aedb6fb.png) +![গণনা পূরণ করা হয়েছে](../../../../../translated_images/bn/gsm-calculation-example.99f9803b4f29e976.webp) * W = 212g * W = 197g diff --git a/translations/bn/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md b/translations/bn/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md index 36a82a6c8..3cda68a19 100644 --- a/translations/bn/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md +++ b/translations/bn/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md @@ -18,13 +18,13 @@ Grove মাটির আর্দ্রতা সেন্সরটি র‌ মাটির আর্দ্রতা সেন্সর সংযুক্ত করুন। -![একটি গ্রোভ মাটির আর্দ্রতা সেন্সর](../../../../../translated_images/bn/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![একটি গ্রোভ মাটির আর্দ্রতা সেন্সর](../../../../../translated_images/bn/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. একটি Grove কেবলের এক প্রান্ত মাটির আর্দ্রতা সেন্সরের সকেটে প্রবেশ করান। এটি শুধুমাত্র একটি দিকেই প্রবেশ করবে। 1. র‌্যাস্পবেরি পাই বন্ধ অবস্থায়, Grove কেবলের অন্য প্রান্তটি পাই-তে সংযুক্ত Grove Base Hat-এর **A0** চিহ্নিত অ্যানালগ সকেটে সংযুক্ত করুন। এই সকেটটি GPIO পিনের পাশে থাকা সকেটের সারির ডান দিক থেকে দ্বিতীয়। -![A0 সকেটে সংযুক্ত গ্রোভ মাটির আর্দ্রতা সেন্সর](../../../../../translated_images/bn/pi-soil-moisture-sensor.fdd7eb2393792cf6739cacf1985d9f55beda16d372f30d0b5a51d586f978a870.png) +![A0 সকেটে সংযুক্ত গ্রোভ মাটির আর্দ্রতা সেন্সর](../../../../../translated_images/bn/pi-soil-moisture-sensor.fdd7eb2393792cf6.webp) 1. মাটিতে মাটির আর্দ্রতা সেন্সর প্রবেশ করান। এতে একটি 'সর্বোচ্চ অবস্থান লাইন' রয়েছে - সেন্সরের উপর একটি সাদা লাইন। এই লাইন পর্যন্ত সেন্সরটি প্রবেশ করান, তবে এর বাইরে নয়। diff --git a/translations/bn/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md b/translations/bn/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md index 9443cf170..043a44741 100644 --- a/translations/bn/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md +++ b/translations/bn/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md @@ -34,11 +34,11 @@ CounterFit অ্যাপে মাটির আর্দ্রতা সেন 1. **Add** বোতামটি নির্বাচন করুন যাতে *Pin 0*-এ একটি *Soil Moisture* সেন্সর তৈরি হয়। - ![মাটির আর্দ্রতা সেন্সরের সেটিংস](../../../../../translated_images/bn/counterfit-create-soil-moisture-sensor.35266135a5e0ae68b29a684d7db0d2933a8098b2307d197f7c71577b724603aa.png) + ![মাটির আর্দ্রতা সেন্সরের সেটিংস](../../../../../translated_images/bn/counterfit-create-soil-moisture-sensor.35266135a5e0ae68.webp) মাটির আর্দ্রতা সেন্সরটি তৈরি হবে এবং সেন্সর তালিকায় প্রদর্শিত হবে। - ![তৈরি করা মাটির আর্দ্রতা সেন্সর](../../../../../translated_images/bn/counterfit-soil-moisture-sensor.81742b2de0e9de60a3b3b9a2ff8ecc686d428eb6d71820f27a693be26e5aceee.png) + ![তৈরি করা মাটির আর্দ্রতা সেন্সর](../../../../../translated_images/bn/counterfit-soil-moisture-sensor.81742b2de0e9de60.webp) ## মাটির আর্দ্রতা সেন্সর অ্যাপ প্রোগ্রাম করুন diff --git a/translations/bn/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md b/translations/bn/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md index cf0833ded..9f5d10875 100644 --- a/translations/bn/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md +++ b/translations/bn/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md @@ -18,7 +18,7 @@ Grove মাটি আর্দ্রতা সেন্সরটি Wio Termina মাটি আর্দ্রতা সেন্সর সংযুক্ত করুন। -![একটি Grove মাটি আর্দ্রতা সেন্সর](../../../../../translated_images/bn/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![একটি Grove মাটি আর্দ্রতা সেন্সর](../../../../../translated_images/bn/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. Grove কেবলের এক প্রান্ত মাটি আর্দ্রতা সেন্সরের সকেটে প্রবেশ করান। এটি শুধুমাত্র একটি নির্দিষ্ট দিকেই প্রবেশ করবে। diff --git a/translations/bn/2-farm/lessons/3-automated-plant-watering/README.md b/translations/bn/2-farm/lessons/3-automated-plant-watering/README.md index d6564aba7..06a9f91e0 100644 --- a/translations/bn/2-farm/lessons/3-automated-plant-watering/README.md +++ b/translations/bn/2-farm/lessons/3-automated-plant-watering/README.md @@ -1,6 +1,6 @@ # স্বয়ংক্রিয় উদ্ভিদ জলসেচন -![এই পাঠের একটি স্কেচনোট সংক্ষিপ্ত বিবরণ](../../../../../translated_images/bn/lesson-7.30b5f577d3cb8e031238751475cb519c7d6dbaea261b5df4643d086ffb2a03bb.jpg) +![এই পাঠের একটি স্কেচনোট সংক্ষিপ্ত বিবরণ](../../../../../translated_images/bn/lesson-7.30b5f577d3cb8e03.webp) > স্কেচনোট: [নিত্য নারাসিমহান](https://github.com/nitya)। বড় সংস্করণের জন্য ছবিতে ক্লিক করুন। @@ -32,7 +32,7 @@ IoT ডিভাইসগুলি কম ভোল্টেজ ব্যবহ এর সমাধান হল একটি পাম্পকে একটি বাহ্যিক পাওয়ার সাপ্লাইয়ের সাথে সংযুক্ত করা এবং একটি অ্যাকচুয়েটর ব্যবহার করে পাম্পটি চালু করা, ঠিক যেমন আপনি একটি লাইট চালু করতে একটি সুইচ ব্যবহার করেন। আপনার আঙুলের জন্য একটি সুইচ ফ্লিপ করতে একটি ক্ষুদ্র পরিমাণ শক্তি লাগে (আপনার শরীরের শক্তি আকারে), এবং এটি আলোকে 110v/240v মেইনস বিদ্যুতে সংযুক্ত করে। -![একটি লাইট সুইচ একটি আলোতে শক্তি চালু করে](../../../../../translated_images/bn/light-switch.760317ad6ab8bd6d611da5352dfe9c73a94a0822ccec7df3c8bae35da18e1658.png) +![একটি লাইট সুইচ একটি আলোতে শক্তি চালু করে](../../../../../translated_images/bn/light-switch.760317ad6ab8bd6d.webp) > 🎓 [মেইনস বিদ্যুৎ](https://wikipedia.org/wiki/Mains_electricity) হল বিদ্যুৎ যা বিশ্বের অনেক অংশে জাতীয় অবকাঠামোর মাধ্যমে বাড়ি এবং ব্যবসায় সরবরাহ করা হয়। @@ -72,7 +72,7 @@ IoT ডিভাইসগুলি কম ভোল্টেজ ব্যবহ ইলেক্ট্রোম্যাগনেট লিভার টানতে এবং সক্রিয় করতে বেশি শক্তি প্রয়োজন হয় না, এটি IoT ডেভ কিটের 3.3V বা 5V আউটপুট ব্যবহার করে নিয়ন্ত্রিত হতে পারে। আউটপুট সার্কিট অনেক বেশি শক্তি বহন করতে পারে, রিলের উপর নির্ভর করে, যার মধ্যে মেইনস ভোল্টেজ বা এমনকি শিল্প ব্যবহারের জন্য উচ্চ শক্তি স্তর রয়েছে। এভাবে একটি IoT ডেভ কিট একটি সেচ ব্যবস্থা নিয়ন্ত্রণ করতে পারে, একটি একক গাছের জন্য একটি ছোট পাম্প থেকে শুরু করে একটি সম্পূর্ণ বাণিজ্যিক খামারের জন্য একটি বিশাল শিল্প ব্যবস্থা পর্যন্ত। -![একটি গ্রোভ রিলে যেখানে নিয়ন্ত্রণ সার্কিট, আউটপুট সার্কিট এবং রিলে লেবেলযুক্ত](../../../../../translated_images/bn/grove-relay-labelled.293e068f5c3c2a199bd7892f2661fdc9e10c920b535cfed317fbd6d1d4ae1168.png) +![একটি গ্রোভ রিলে যেখানে নিয়ন্ত্রণ সার্কিট, আউটপুট সার্কিট এবং রিলে লেবেলযুক্ত](../../../../../translated_images/bn/grove-relay-labelled.293e068f5c3c2a19.webp) উপরের ছবিতে একটি গ্রোভ রিলে দেখানো হয়েছে। নিয়ন্ত্রণ সার্কিটটি একটি IoT ডিভাইসে সংযুক্ত হয় এবং 3.3V বা 5V ব্যবহার করে রিলকে চালু বা বন্ধ করে। আউটপুট সার্কিটে দুটি টার্মিনাল রয়েছে, যেকোনো একটি পাওয়ার বা গ্রাউন্ড হতে পারে। আউটপুট সার্কিট 250V এ 10A পর্যন্ত পরিচালনা করতে পারে, যা বিভিন্ন মেইনস-চালিত ডিভাইসের জন্য যথেষ্ট। আপনি এমন রিলে পেতে পারেন যা আরও উচ্চ শক্তি স্তর পরিচালনা করতে পারে। diff --git a/translations/bn/2-farm/lessons/3-automated-plant-watering/pi-relay.md b/translations/bn/2-farm/lessons/3-automated-plant-watering/pi-relay.md index f0eac755c..fb8d7b8ba 100644 --- a/translations/bn/2-farm/lessons/3-automated-plant-watering/pi-relay.md +++ b/translations/bn/2-farm/lessons/3-automated-plant-watering/pi-relay.md @@ -18,13 +18,13 @@ Grove রিলে রাস্পবেরি পাই-এর সাথে স রিলে সংযুক্ত করুন। -![একটি Grove রিলে](../../../../../translated_images/bn/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) +![একটি Grove রিলে](../../../../../translated_images/bn/grove-relay.d426958ca210fbd0.webp) 1. Grove কেবলের এক প্রান্ত রিলের সকেটে প্রবেশ করান। এটি শুধুমাত্র একটি নির্দিষ্ট দিকেই প্রবেশ করবে। 1. রাস্পবেরি পাই বন্ধ অবস্থায়, Grove কেবলের অন্য প্রান্তটি Grove Base Hat-এর **D5** চিহ্নিত ডিজিটাল সকেটে সংযুক্ত করুন, যা পাই-এর সাথে সংযুক্ত। এই সকেটটি GPIO পিনগুলোর পাশে থাকা সকেটের সারির বাম দিক থেকে দ্বিতীয়। মাটির আর্দ্রতা সেন্সরটি **A0** সকেটে সংযুক্ত অবস্থায় রাখুন। -![D5 সকেটে সংযুক্ত Grove রিলে এবং A0 সকেটে সংযুক্ত মাটির আর্দ্রতা সেন্সর](../../../../../translated_images/bn/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e69ec716cd2719ce117700bd1fc933eaf93476c103c57939b.png) +![D5 সকেটে সংযুক্ত Grove রিলে এবং A0 সকেটে সংযুক্ত মাটির আর্দ্রতা সেন্সর](../../../../../translated_images/bn/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e.webp) 1. মাটির আর্দ্রতা সেন্সরটি মাটিতে প্রবেশ করান, যদি এটি আগের পাঠ থেকে ইতিমধ্যে সংযুক্ত না থাকে। diff --git a/translations/bn/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md b/translations/bn/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md index a4b079ad8..5b803b75e 100644 --- a/translations/bn/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md +++ b/translations/bn/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md @@ -28,11 +28,11 @@ CounterFit অ্যাপে রিলে যোগ করুন। 1. **Add** বোতামটি নির্বাচন করুন যাতে পিন 5-এ রিলে তৈরি হয়। - ![রিলের সেটিংস](../../../../../translated_images/bn/counterfit-create-relay.fa7c40fd0f2f6afc33b35ea94fcb235085be4861e14e3fe6b9b7bcfc82d1c888.png) + ![রিলের সেটিংস](../../../../../translated_images/bn/counterfit-create-relay.fa7c40fd0f2f6afc.webp) রিলে তৈরি হবে এবং অ্যাকচুয়েটর তালিকায় প্রদর্শিত হবে। - ![তৈরি করা রিলে](../../../../../translated_images/bn/counterfit-relay.bbf74c1dbdc8b9acd983367fcbd06703a402aefef6af54ddb28e11307ba8a12c.png) + ![তৈরি করা রিলে](../../../../../translated_images/bn/counterfit-relay.bbf74c1dbdc8b9ac.webp) ## রিলে প্রোগ্রাম করুন diff --git a/translations/bn/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md b/translations/bn/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md index 41f936a8d..ccb0db353 100644 --- a/translations/bn/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md +++ b/translations/bn/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md @@ -1,6 +1,6 @@ # আপনার গাছকে ক্লাউডে স্থানান্তর করুন -![এই পাঠের একটি স্কেচনোট সংক্ষিপ্ত বিবরণ](../../../../../translated_images/bn/lesson-8.3f21f3c11159e6a0a376351973ea5724d5de68fa23b4288853a174bed9ac48c3.jpg) +![এই পাঠের একটি স্কেচনোট সংক্ষিপ্ত বিবরণ](../../../../../translated_images/bn/lesson-8.3f21f3c11159e6a0.webp) > স্কেচনোট: [নিত্য নারাসিমহান](https://github.com/nitya)। বড় সংস্করণের জন্য ছবিতে ক্লিক করুন। @@ -46,8 +46,8 @@ IoT ডিভাইসটি একটি পাবলিক MQTT ব্রো ক্লাউডকে প্রায়ই মজার ছলে 'অন্য কারো কম্পিউটার' বলা হয়। প্রাথমিক ধারণাটি ছিল সহজ - কম্পিউটার কেনার পরিবর্তে, আপনি অন্য কারো কম্পিউটার ভাড়া নেন। অন্য কেউ, একটি ক্লাউড কম্পিউটিং প্রদানকারী, বিশাল ডেটা সেন্টার পরিচালনা করবে। তারা হার্ডওয়্যার কেনা এবং ইনস্টল করা, বিদ্যুৎ এবং শীতলকরণ পরিচালনা করা, নেটওয়ার্কিং, ভবনের নিরাপত্তা, হার্ডওয়্যার এবং সফটওয়্যার আপডেট, সবকিছু পরিচালনার জন্য দায়ী হবে। একজন গ্রাহক হিসেবে, আপনি প্রয়োজনীয় কম্পিউটার ভাড়া নেবেন, চাহিদা বাড়লে আরও ভাড়া নেবেন, তারপর চাহিদা কমলে কম ভাড়া নেবেন। এই ক্লাউড ডেটা সেন্টারগুলি সারা বিশ্বে ছড়িয়ে রয়েছে। -![একটি Microsoft ক্লাউড ডেটা সেন্টার](../../../../../translated_images/bn/azure-region-existing.73f704604f2aa6cb9b5a49ed40e93d4fd81ae3f4e6af4a8ca504023902832f56.png) -![একটি Microsoft ক্লাউড ডেটা সেন্টারের পরিকল্পিত সম্প্রসারণ](../../../../../translated_images/bn/azure-region-planned-expansion.a5074a1e8af74f156a73552d502429e5b126ea5019274d767ecb4b9afdad442b.png) +![একটি Microsoft ক্লাউড ডেটা সেন্টার](../../../../../translated_images/bn/azure-region-existing.73f704604f2aa6cb.webp) +![একটি Microsoft ক্লাউড ডেটা সেন্টারের পরিকল্পিত সম্প্রসারণ](../../../../../translated_images/bn/azure-region-planned-expansion.a5074a1e8af74f15.webp) এই ডেটা সেন্টারগুলি একাধিক বর্গ কিলোমিটার আকারের হতে পারে। উপরের ছবিগুলি Microsoft ক্লাউড ডেটা সেন্টারে কয়েক বছর আগে তোলা হয়েছিল এবং প্রাথমিক আকার, পাশাপাশি পরিকল্পিত সম্প্রসারণ দেখায়। সম্প্রসারণের জন্য পরিষ্কার করা এলাকা ৫ বর্গ কিলোমিটারের বেশি। @@ -108,11 +108,11 @@ Azure এর দুটি ভিন্ন ধরনের বিনামূল IoT ডিভাইসগুলি একটি ডিভাইস SDK ব্যবহার করে (একটি লাইব্রেরি যা পরিষেবার বৈশিষ্ট্যগুলির সাথে কাজ করার জন্য কোড প্রদান করে) বা MQTT বা HTTP এর মতো একটি যোগাযোগ প্রোটোকলের মাধ্যমে সরাসরি একটি ক্লাউড পরিষেবার সাথে সংযুক্ত হয়। ডিভাইস SDK সাধারণত সবচেয়ে সহজ পথ কারণ এটি আপনার জন্য সবকিছু পরিচালনা করে, যেমন কোন টপিক প্রকাশ বা সাবস্ক্রাইব করতে হবে এবং কীভাবে নিরাপত্তা পরিচালনা করতে হবে। -![ডিভাইসগুলি একটি ডিভাইস SDK ব্যবহার করে পরিষেবার সাথে সংযুক্ত হয়। সার্ভার কোডও পরিষেবার সাথে একটি SDK এর মাধ্যমে সংযুক্ত হয়](../../../../../translated_images/bn/iot-service-connectivity.7e873847921a5d6fd60d0ba3a943210194518cee0d4e362476624316443275c3.png) +![ডিভাইসগুলি একটি ডিভাইস SDK ব্যবহার করে পরিষেবার সাথে সংযুক্ত হয়। সার্ভার কোডও পরিষেবার সাথে একটি SDK এর মাধ্যমে সংযুক্ত হয়](../../../../../translated_images/bn/iot-service-connectivity.7e873847921a5d6f.webp) আপনার ডিভাইসটি তখন আপনার অ্যাপ্লিকেশনের অন্যান্য অংশের সাথে এই পরিষেবার মাধ্যমে যোগাযোগ করে - ঠিক যেমন আপনি MQTT এর মাধ্যমে টেলিমেট্রি পাঠিয়েছেন এবং কমান্ড গ্রহণ করেছেন। এটি সাধারণত একটি পরিষেবা SDK বা অনুরূপ লাইব্রেরি ব্যবহার করে। আপনার ডিভাইস থেকে মেসেজ পরিষেবাতে আসে যেখানে আপনার অ্যাপ্লিকেশনের অন্যান্য উপাদানগুলি সেগুলি পড়তে পারে এবং মেসেজগুলি আপনার ডিভাইসে ফিরে পাঠানো যেতে পারে। -![যে ডিভাইসগুলির বৈধ সিক্রেট কী নেই তারা IoT পরিষেবার সাথে সংযুক্ত হতে পারে না](../../../../../translated_images/bn/iot-service-allowed-denied-connection.818b0063ac213fb84204a7229303764d9b467ca430fb822b4ac2fca267d56726.png) +![যে ডিভাইসগুলির বৈধ সিক্রেট কী নেই তারা IoT পরিষেবার সাথে সংযুক্ত হতে পারে না](../../../../../translated_images/bn/iot-service-allowed-denied-connection.818b0063ac213fb8.webp) এই পরিষেবাগুলি নিরাপত্তা প্রয়োগ করে সমস্ত ডিভাইস সম্পর্কে জানার মাধ্যমে যা সংযুক্ত হতে পারে এবং ডেটা পাঠাতে পারে, হয় ডিভাইসগুলি পরিষেবার সাথে প্রাক-নিবন্ধিত থাকে, অথবা ডিভাইসগুলিকে গোপন কী বা সার্টিফিকেট দেওয়া হয় যা তারা প্রথমবার পরিষেবার সাথে সংযুক্ত হলে নিজেদের নিবন্ধন করতে ব্যবহার করতে পারে। অজানা ডিভাইসগুলি সংযুক্ত হতে পারে না, যদি তারা চেষ্টা করে তবে পরিষেবা সংযোগটি প্রত্যাখ্যান করে এবং তাদের দ্বারা পাঠানো মেসেজগুলি উপেক্ষা করে। @@ -124,7 +124,7 @@ IoT ডিভাইসগুলি একটি ডিভাইস SDK ব্য এখন যেহেতু আপনার একটি Azure সাবস্ক্রিপশন আছে, আপনি একটি IoT সার্ভিসে সাইন আপ করতে পারেন। Microsoft-এর IoT সার্ভিসকে Azure IoT Hub বলা হয়। -![Azure IoT Hub লোগো](../../../../../translated_images/bn/azure-iot-hub-logo.28a19de76d0a1932464d858f7558712bcdace3e5ec69c434d482ed7ce41c3a26.png) +![Azure IoT Hub লোগো](../../../../../translated_images/bn/azure-iot-hub-logo.28a19de76d0a1932.webp) নিচের ভিডিওটি Azure IoT Hub-এর একটি সংক্ষিপ্ত ওভারভিউ দেয়: diff --git a/translations/bn/2-farm/lessons/5-migrate-application-to-the-cloud/README.md b/translations/bn/2-farm/lessons/5-migrate-application-to-the-cloud/README.md index f9baec21b..5a53b4522 100644 --- a/translations/bn/2-farm/lessons/5-migrate-application-to-the-cloud/README.md +++ b/translations/bn/2-farm/lessons/5-migrate-application-to-the-cloud/README.md @@ -1,6 +1,6 @@ # আপনার অ্যাপ্লিকেশন লজিক ক্লাউডে স্থানান্তর করুন -![এই পাঠের একটি স্কেচনোট ওভারভিউ](../../../../../translated_images/bn/lesson-9.dfe99c8e891f48e179724520da9f5794392cf9a625079281ccdcbf09bd85e1b6.jpg) +![এই পাঠের একটি স্কেচনোট ওভারভিউ](../../../../../translated_images/bn/lesson-9.dfe99c8e891f48e1.webp) > স্কেচনোট: [নিত্য নারাসিমহান](https://github.com/nitya)। বড় সংস্করণের জন্য ছবিতে ক্লিক করুন। @@ -28,7 +28,7 @@ সার্ভারলেস, বা সার্ভারলেস কম্পিউটিং, এমন একটি পদ্ধতি যেখানে ছোট কোড ব্লক তৈরি করা হয় যা বিভিন্ন ইভেন্টের প্রতিক্রিয়ায় ক্লাউডে চালানো হয়। যখন ইভেন্ট ঘটে, তখন আপনার কোড চালানো হয় এবং ইভেন্ট সম্পর্কিত ডেটা পাস করা হয়। এই ইভেন্টগুলো বিভিন্ন উৎস থেকে আসতে পারে, যেমন ওয়েব রিকোয়েস্ট, একটি কিউতে বার্তা, ডাটাবেসে ডেটা পরিবর্তন, বা IoT ডিভাইস থেকে IoT পরিষেবায় পাঠানো বার্তা। -![IoT পরিষেবা থেকে সার্ভারলেস পরিষেবায় বার্তা পাঠানো হচ্ছে, যা একাধিক ফাংশন দ্বারা একসাথে প্রক্রিয়াকৃত হচ্ছে](../../../../../translated_images/bn/iot-messages-to-serverless.0194da1cc0732bb7d0f823aed3fce54735c6b1ad3bf36089804d8aaefc0a774f.png) +![IoT পরিষেবা থেকে সার্ভারলেস পরিষেবায় বার্তা পাঠানো হচ্ছে, যা একাধিক ফাংশন দ্বারা একসাথে প্রক্রিয়াকৃত হচ্ছে](../../../../../translated_images/bn/iot-messages-to-serverless.0194da1cc0732bb7.webp) > 💁 যদি আপনি আগে ডাটাবেস ট্রিগার ব্যবহার করে থাকেন, তাহলে এটি একই রকম মনে হবে, যেখানে কোড একটি ইভেন্টের (যেমন একটি সারি যোগ করা) দ্বারা ট্রিগার হয়। @@ -54,7 +54,7 @@ মাইক্রোসফটের সার্ভারলেস কম্পিউটিং পরিষেবাটি Azure Functions নামে পরিচিত। -![Azure Functions লোগো](../../../../../translated_images/bn/azure-functions-logo.1cfc8e3204c9c44aaf80fcf406fc8544d80d7f00f8d3e8ed6fed764563e17564.png) +![Azure Functions লোগো](../../../../../translated_images/bn/azure-functions-logo.1cfc8e3204c9c44a.webp) নিচের সংক্ষিপ্ত ভিডিওতে Azure Functions-এর একটি ওভারভিউ রয়েছে: diff --git a/translations/bn/2-farm/lessons/6-keep-your-plant-secure/README.md b/translations/bn/2-farm/lessons/6-keep-your-plant-secure/README.md index c45fd5654..1469fbcac 100644 --- a/translations/bn/2-farm/lessons/6-keep-your-plant-secure/README.md +++ b/translations/bn/2-farm/lessons/6-keep-your-plant-secure/README.md @@ -1,6 +1,6 @@ # আপনার গাছকে সুরক্ষিত রাখুন -![এই পাঠের একটি স্কেচনোটের সারসংক্ষেপ](../../../../../translated_images/bn/lesson-10.829c86b80b9403bb770929ee553a1d293afe50dc23121aaf9be144673ae012cc.jpg) +![এই পাঠের একটি স্কেচনোটের সারসংক্ষেপ](../../../../../translated_images/bn/lesson-10.829c86b80b9403bb.webp) > স্কেচনোট করেছেন [নিত্য নারাসিমহান](https://github.com/nitya)। বড় সংস্করণের জন্য ছবিতে ক্লিক করুন। @@ -52,11 +52,11 @@ IoT নিরাপত্তা নিশ্চিত করে যে শুধ যখন একটি ডিভাইস IoT পরিষেবার সাথে সংযুক্ত হয়, এটি নিজেকে শনাক্ত করার জন্য একটি আইডি ব্যবহার করে। সমস্যাটি হলো এই আইডি ক্লোন করা যেতে পারে - একজন হ্যাকার একটি ক্ষতিকারক ডিভাইস সেট আপ করতে পারে যা একটি আসল ডিভাইসের মতো একই আইডি ব্যবহার করে কিন্তু ভুয়া ডেটা পাঠায়। -![একই আইডি ব্যবহার করে বৈধ এবং ক্ষতিকারক ডিভাইস টেলিমেট্রি পাঠাতে পারে](../../../../../translated_images/bn/iot-device-and-hacked-device-connecting.e0671675df74d6d99eb1dedb5a670e606f698efa6202b1ad4c8ae548db299cc6.png) +![একই আইডি ব্যবহার করে বৈধ এবং ক্ষতিকারক ডিভাইস টেলিমেট্রি পাঠাতে পারে](../../../../../translated_images/bn/iot-device-and-hacked-device-connecting.e0671675df74d6d9.webp) এর সমাধান হলো প্রেরিত ডেটাকে একটি স্ক্র্যাম্বলড ফরম্যাটে রূপান্তর করা, যা ডিভাইস এবং ক্লাউডের মধ্যে একটি গোপন মান ব্যবহার করে। এই প্রক্রিয়াকে *এনক্রিপশন* বলা হয়, এবং ডেটা এনক্রিপ্ট করতে ব্যবহৃত মানটিকে *এনক্রিপশন কী* বলা হয়। -![যদি এনক্রিপশন ব্যবহার করা হয়, তবে শুধুমাত্র এনক্রিপ্টেড বার্তাগুলো গ্রহণ করা হবে, অন্যগুলো প্রত্যাখ্যান করা হবে](../../../../../translated_images/bn/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f979e46f2849b573564eeb4a4dc5b52f669f62745397492fb.png) +![যদি এনক্রিপশন ব্যবহার করা হয়, তবে শুধুমাত্র এনক্রিপ্টেড বার্তাগুলো গ্রহণ করা হবে, অন্যগুলো প্রত্যাখ্যান করা হবে](../../../../../translated_images/bn/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f.webp) ক্লাউড পরিষেবা তখন ডেটাকে আবার পাঠযোগ্য ফরম্যাটে রূপান্তর করতে পারে, একটি প্রক্রিয়া ব্যবহার করে যাকে *ডিক্রিপশন* বলা হয়, যা হয় একই এনক্রিপশন কী বা একটি *ডিক্রিপশন কী* ব্যবহার করে। যদি এনক্রিপ্টেড বার্তাটি কী দ্বারা ডিক্রিপ্ট করা না যায়, তবে ডিভাইসটি হ্যাক হয়েছে এবং বার্তাটি প্রত্যাখ্যান করা হয়। diff --git a/translations/bn/3-transport/lessons/1-location-tracking/README.md b/translations/bn/3-transport/lessons/1-location-tracking/README.md index 8ab463f7a..a1b8e6141 100644 --- a/translations/bn/3-transport/lessons/1-location-tracking/README.md +++ b/translations/bn/3-transport/lessons/1-location-tracking/README.md @@ -1,6 +1,6 @@ # অবস্থান ট্র্যাকিং -![এই পাঠের একটি স্কেচনোট ওভারভিউ](../../../../../translated_images/bn/lesson-11.9fddbac4b664c6d50ab7ac9bb32f1fc3f945f03760e72f7f43938073762fb017.jpg) +![এই পাঠের একটি স্কেচনোট ওভারভিউ](../../../../../translated_images/bn/lesson-11.9fddbac4b664c6d5.webp) > স্কেচনোট: [নিত্যা নারাসিমহান](https://github.com/nitya)। বড় সংস্করণের জন্য ছবিতে ক্লিক করুন। @@ -63,13 +63,13 @@ IoT পণ্য পরিবহনের পদ্ধতিকে রূপা > 💁 বৃত্তগুলো কেন ৩৬০ ডিগ্রিতে ভাগ করা হয় তার আসল কারণ কেউ জানে না। [উইকিপিডিয়ার ডিগ্রি (কোণ) পৃষ্ঠা](https://wikipedia.org/wiki/Degree_(angle)) সম্ভাব্য কারণগুলো কভার করে। -![অক্ষাংশের রেখাগুলো উত্তর মেরুতে ৯০°, উত্তর মেরু এবং নিরক্ষরেখার মাঝখানে ৪৫°, নিরক্ষরেখায় ০°, নিরক্ষরেখা এবং দক্ষিণ মেরুর মাঝখানে -৪৫°, এবং দক্ষিণ মেরুতে -৯০°](../../../../../translated_images/bn/latitude-lines.11d8d91dfb2014a57437272d7db7fd6607243098e8685f06e0c5f1ec984cb7eb.png) +![অক্ষাংশের রেখাগুলো উত্তর মেরুতে ৯০°, উত্তর মেরু এবং নিরক্ষরেখার মাঝখানে ৪৫°, নিরক্ষরেখায় ০°, নিরক্ষরেখা এবং দক্ষিণ মেরুর মাঝখানে -৪৫°, এবং দক্ষিণ মেরুতে -৯০°](../../../../../translated_images/bn/latitude-lines.11d8d91dfb2014a5.webp) অক্ষাংশ নিরক্ষরেখার সমান্তরালভাবে পৃথিবীকে বৃত্তাকার রেখায় ভাগ করে পরিমাপ করা হয়, যা উত্তর এবং দক্ষিণ গোলার্ধকে প্রতিটি ৯০°-এ ভাগ করে। নিরক্ষরেখা ০°-এ, উত্তর মেরু ৯০°-এ, যা ৯০° উত্তর নামেও পরিচিত, এবং দক্ষিণ মেরু -৯০°-এ, বা ৯০° দক্ষিণ। দ্রাঘিমাংশ পূর্ব এবং পশ্চিমে পরিমাপ করা ডিগ্রির সংখ্যা। দ্রাঘিমাংশের ০° উৎসকে *প্রাইম মেরিডিয়ান* বলা হয়, যা ১৮৮৪ সালে সংজ্ঞায়িত করা হয়েছিল একটি রেখা হিসেবে যা উত্তর মেরু থেকে দক্ষিণ মেরু পর্যন্ত যায় এবং [গ্রিনউইচ, ইংল্যান্ডের ব্রিটিশ রয়্যাল অবজারভেটরি](https://wikipedia.org/wiki/Royal_Observatory,_Greenwich)-এর মধ্য দিয়ে যায়। -![দ্রাঘিমাংশের রেখাগুলো প্রাইম মেরিডিয়ানের পশ্চিমে -১৮০° থেকে, প্রাইম মেরিডিয়ানে ০°, প্রাইম মেরিডিয়ানের পূর্বে ১৮০° পর্যন্ত](../../../../../translated_images/bn/longitude-meridians.ab4ef1c91c064586b0185a3c8d39e585903696c6a7d28c098a93a629cddb5d20.png) +![দ্রাঘিমাংশের রেখাগুলো প্রাইম মেরিডিয়ানের পশ্চিমে -১৮০° থেকে, প্রাইম মেরিডিয়ানে ০°, প্রাইম মেরিডিয়ানের পূর্বে ১৮০° পর্যন্ত](../../../../../translated_images/bn/longitude-meridians.ab4ef1c91c064586.webp) > 🎓 একটি মেরিডিয়ান হলো একটি কাল্পনিক সরলরেখা যা উত্তর মেরু থেকে দক্ষিণ মেরু পর্যন্ত যায় এবং একটি অর্ধবৃত্ত তৈরি করে। @@ -100,7 +100,7 @@ IoT পণ্য পরিবহনের পদ্ধতিকে রূপা * অক্ষাংশ হলো ৪৭.৬৪২৩১০৯ (নিরক্ষরেখার উত্তরে ৪৭.৬৪২৩১০৯ ডিগ্রি) * দ্রাঘিমাংশ হলো -১২২.১৩৯০২৯৩ (প্রাইম মেরিডিয়ানের পশ্চিমে ১২২.১৩৯০২৯৩ ডিগ্রি)। -![মাইক্রোসফট ক্যাম্পাস ৪৭.৬৪২৩১০৯,-১২২.১১৭১৯৮-এ](../../../../../translated_images/bn/microsoft-gps-location-world.a321d481b010f6adfcca139b2ba0adc53b79f58a540495b8e2ce7f779ea64bfe.png) +![মাইক্রোসফট ক্যাম্পাস ৪৭.৬৪২৩১০৯,-১২২.১১৭১৯৮-এ](../../../../../translated_images/bn/microsoft-gps-location-world.a321d481b010f6ad.webp) ## গ্লোবাল পজিশনিং সিস্টেম (GPS) @@ -112,7 +112,7 @@ GPS সিস্টেমগুলো কাজ করে একাধিক স > 💁 GPS সেন্সরগুলো রেডিও তরঙ্গ সনাক্ত করতে অ্যান্টেনার প্রয়োজন। ট্রাক এবং গাড়িতে অন-বোর্ড GPS সহ নির্মিত অ্যান্টেনাগুলো সাধারণত উইন্ডশিল্ড বা ছাদে স্থাপন করা হয় যাতে ভালো সংকেত পাওয়া যায়। আপনি যদি একটি আলাদা GPS সিস্টেম ব্যবহার করেন, যেমন একটি স্মার্টফোন বা একটি IoT ডিভাইস, তবে আপনাকে নিশ্চিত করতে হবে যে GPS সিস্টেম বা ফোনে নির্মিত অ্যান্টেনার আকাশের একটি পরিষ্কার দৃশ্য আছে, যেমন উইন্ডশিল্ডে স্থাপন করা। -![সেন্সর থেকে একাধিক স্যাটেলাইটের দূরত্ব জানার মাধ্যমে অবস্থান নির্ধারণ করা যায়](../../../../../translated_images/bn/gps-satellites.04acf1148fe25fbf1586bc2e8ba698e8d79b79a50c36824b38417dd13372b90f.png) +![সেন্সর থেকে একাধিক স্যাটেলাইটের দূরত্ব জানার মাধ্যমে অবস্থান নির্ধারণ করা যায়](../../../../../translated_images/bn/gps-satellites.04acf1148fe25fbf.webp) GPS স্যাটেলাইটগুলো পৃথিবীর চারপাশে প্রদক্ষিণ করছে, সেন্সরের উপরে একটি নির্দিষ্ট স্থানে নয়, তাই অবস্থান ডেটায় সমুদ্রপৃষ্ঠ থেকে উচ্চতাও অন্তর্ভুক্ত থাকে, পাশাপাশি অক্ষাংশ এবং দ্রাঘিমাংশ। diff --git a/translations/bn/3-transport/lessons/1-location-tracking/pi-gps-sensor.md b/translations/bn/3-transport/lessons/1-location-tracking/pi-gps-sensor.md index aa27657d2..40acf54ad 100644 --- a/translations/bn/3-transport/lessons/1-location-tracking/pi-gps-sensor.md +++ b/translations/bn/3-transport/lessons/1-location-tracking/pi-gps-sensor.md @@ -18,13 +18,13 @@ Grove GPS সেন্সরটি র‌্যাস্পবেরি পা জিপিএস সেন্সরটি সংযুক্ত করুন। -![একটি Grove GPS সেন্সর](../../../../../translated_images/bn/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![একটি Grove GPS সেন্সর](../../../../../translated_images/bn/grove-gps-sensor.247943bf69b03f0d.webp) 1. Grove কেবলের এক প্রান্ত জিপিএস সেন্সরের সকেটে প্রবেশ করান। এটি শুধুমাত্র একটি নির্দিষ্ট দিকেই প্রবেশ করবে। 1. র‌্যাস্পবেরি পাই বন্ধ অবস্থায়, Grove কেবলের অন্য প্রান্তটি Grove Base হ্যাটের **UART** চিহ্নিত সকেটে সংযুক্ত করুন। এই সকেটটি মাঝের সারিতে, SD কার্ড স্লটের কাছাকাছি পাশে অবস্থিত, USB পোর্ট এবং ইথারনেট সকেটের বিপরীত দিকে। - ![UART সকেটে সংযুক্ত Grove GPS সেন্সর](../../../../../translated_images/bn/pi-gps-sensor.1f99ee2b2f6528915047ec78967bd362e0e4ee0ed594368a3837b9cf9cdaca64.png) + ![UART সকেটে সংযুক্ত Grove GPS সেন্সর](../../../../../translated_images/bn/pi-gps-sensor.1f99ee2b2f652891.webp) 1. জিপিএস সেন্সরটি এমনভাবে স্থাপন করুন যাতে সংযুক্ত অ্যান্টেনাটি আকাশের দিকে দৃশ্যমান থাকে - আদর্শভাবে একটি খোলা জানালার পাশে বা বাইরে। অ্যান্টেনার সামনে কিছু না থাকলে পরিষ্কার সংকেত পাওয়া সহজ হয়। diff --git a/translations/bn/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md b/translations/bn/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md index aec757d81..230458ae2 100644 --- a/translations/bn/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md +++ b/translations/bn/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md @@ -38,11 +38,11 @@ CounterFit অ্যাপে জিপিএস সেন্সর যোগ 1. **Add** বোতামটি নির্বাচন করুন, যাতে `/dev/ttyAMA0` পোর্টে জিপিএস সেন্সর তৈরি হয়। - ![জিপিএস সেন্সরের সেটিংস](../../../../../translated_images/bn/counterfit-create-gps-sensor.6385dc9357d85ad1d47b4abb2525e7651fd498917d25eefc5a72feab09eedc70.png) + ![জিপিএস সেন্সরের সেটিংস](../../../../../translated_images/bn/counterfit-create-gps-sensor.6385dc9357d85ad1.webp) জিপিএস সেন্সর তৈরি হবে এবং সেন্সর তালিকায় প্রদর্শিত হবে। - ![তৈরি করা জিপিএস সেন্সর](../../../../../translated_images/bn/counterfit-gps-sensor.3fbb15af0a5367566f2f11324ef5a6f30861cdf2b497071a5e002b7aa473550e.png) + ![তৈরি করা জিপিএস সেন্সর](../../../../../translated_images/bn/counterfit-gps-sensor.3fbb15af0a536756.webp) ## জিপিএস সেন্সর প্রোগ্রাম করুন @@ -102,17 +102,17 @@ CounterFit অ্যাপে জিপিএস সেন্সর যোগ * **Source**-কে `Lat/Lon`-এ সেট করুন এবং একটি নির্দিষ্ট latitude, longitude এবং স্যাটেলাইট সংখ্যা নির্ধারণ করুন। এই মানটি কেবল একবার পাঠানো হবে, তাই **Repeat** বক্স চেক করুন যাতে ডেটা প্রতি সেকেন্ডে পুনরাবৃত্তি হয়। - ![Lat/Lon সহ জিপিএস সেন্সর](../../../../../translated_images/bn/counterfit-gps-sensor-latlon.008c867d75464fbe7f84107cc57040df565ac07cb57d2f21db37d087d470197d.png) + ![Lat/Lon সহ জিপিএস সেন্সর](../../../../../translated_images/bn/counterfit-gps-sensor-latlon.008c867d75464fbe.webp) * **Source**-কে `NMEA`-তে সেট করুন এবং কিছু NMEA বাক্য টেক্সট বক্সে যোগ করুন। এই মানগুলো পাঠানো হবে, যেখানে প্রতিটি নতুন GGA (অবস্থান নির্ধারণ) বাক্য পাঠানোর আগে ১ সেকেন্ডের বিলম্ব থাকবে। - ![NMEA বাক্য সহ জিপিএস সেন্সর](../../../../../translated_images/bn/counterfit-gps-sensor-nmea.c62eea442171e17e19528b051b104cfcecdc9cd18db7bc72920f29821ae63f73.png) + ![NMEA বাক্য সহ জিপিএস সেন্সর](../../../../../translated_images/bn/counterfit-gps-sensor-nmea.c62eea442171e17e.webp) আপনি [nmeagen.org](https://www.nmeagen.org)-এর মতো একটি টুল ব্যবহার করে মানচিত্রে আঁকতে এই বাক্যগুলো তৈরি করতে পারেন। এই মানগুলো কেবল একবার পাঠানো হবে, তাই **Repeat** বক্স চেক করুন যাতে সমস্ত ডেটা পাঠানোর পর প্রতি সেকেন্ডে পুনরাবৃত্তি হয়। * **Source**-কে GPX ফাইলে সেট করুন এবং একটি GPX ফাইল আপলোড করুন যেখানে ট্র্যাক অবস্থান রয়েছে। আপনি [AllTrails](https://www.alltrails.com/)-এর মতো জনপ্রিয় মানচিত্র এবং হাইকিং সাইট থেকে GPX ফাইল ডাউনলোড করতে পারেন। এই ফাইলগুলোতে একাধিক জিপিএস অবস্থান একটি ট্রেইল হিসেবে থাকে এবং জিপিএস সেন্সর প্রতি ১ সেকেন্ডে একটি নতুন অবস্থান ফেরত দেবে। - ![GPX ফাইল সহ জিপিএস সেন্সর](../../../../../translated_images/bn/counterfit-gps-sensor-gpxfile.8310b063ce8a425ccc8ebeec8306aeac5e8e55207f007d52c6e1194432a70cd9.png) + ![GPX ফাইল সহ জিপিএস সেন্সর](../../../../../translated_images/bn/counterfit-gps-sensor-gpxfile.8310b063ce8a425c.webp) এই মানগুলো কেবল একবার পাঠানো হবে, তাই **Repeat** বক্স চেক করুন যাতে সমস্ত ডেটা পাঠানোর পর প্রতি সেকেন্ডে পুনরাবৃত্তি হয়। diff --git a/translations/bn/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md b/translations/bn/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md index 111d6a1c0..3df207600 100644 --- a/translations/bn/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md +++ b/translations/bn/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md @@ -18,7 +18,7 @@ Grove GPS সেন্সরটি Wio Terminal-এর সাথে সংযু GPS সেন্সর সংযুক্ত করুন। -![একটি Grove GPS সেন্সর](../../../../../translated_images/bn/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![একটি Grove GPS সেন্সর](../../../../../translated_images/bn/grove-gps-sensor.247943bf69b03f0d.webp) 1. Grove কেবলের এক প্রান্ত GPS সেন্সরের সকেটে প্রবেশ করান। এটি শুধুমাত্র একটি নির্দিষ্ট দিকেই প্রবেশ করবে। diff --git a/translations/bn/3-transport/lessons/2-store-location-data/README.md b/translations/bn/3-transport/lessons/2-store-location-data/README.md index fdf319749..4cc3b18d2 100644 --- a/translations/bn/3-transport/lessons/2-store-location-data/README.md +++ b/translations/bn/3-transport/lessons/2-store-location-data/README.md @@ -1,6 +1,6 @@ # স্টোর লোকেশন ডেটা -![এই পাঠের একটি স্কেচনোট সংক্ষিপ্ত বিবরণ](../../../../../translated_images/bn/lesson-12.ca7f53039712a3ec14ad6474d8445361c84adab643edc53fa6269b77895606bb.jpg) +![এই পাঠের একটি স্কেচনোট সংক্ষিপ্ত বিবরণ](../../../../../translated_images/bn/lesson-12.ca7f53039712a3ec.webp) > স্কেচনোট: [নিত্য নারাসিমহান](https://github.com/nitya)। বড় সংস্করণের জন্য ছবিতে ক্লিক করুন। @@ -65,7 +65,7 @@ NoSQL ডেটাবেসকে NoSQL বলা হয় কারণ এগ > 💁 নামের সত্ত্বেও, কিছু NoSQL ডেটাবেস SQL ব্যবহার করে ডেটা অনুসন্ধান করতে দেয়। -![NoSQL ডেটাবেসে ফোল্ডারে ডকুমেন্ট](../../../../../translated_images/bn/noqsl-database.62d24ccf5b73f60d35c245a8533f1c7147c0928e955b82cb290b2e184bb434df.png) +![NoSQL ডেটাবেসে ফোল্ডারে ডকুমেন্ট](../../../../../translated_images/bn/noqsl-database.62d24ccf5b73f60d.webp) NoSQL ডেটাবেসে পূর্বনির্ধারিত স্কিমা নেই যা ডেটা সংরক্ষণ সীমাবদ্ধ করে, বরং আপনি JSON ডকুমেন্ট ব্যবহার করে যেকোনো আনস্ট্রাকচার্ড ডেটা সংরক্ষণ করতে পারেন। @@ -75,7 +75,7 @@ NoSQL ডেটাবেসে পূর্বনির্ধারিত স্ গত পাঠে আপনি GPS সেন্সর থেকে GPS ডেটা সংগ্রহ করেছিলেন। এই ডেটা ক্লাউডে সংরক্ষণ করতে হলে, এটি একটি IoT সার্ভিসে পাঠাতে হবে। আপনি আবার Azure IoT Hub ব্যবহার করবেন, যা আপনি আগের প্রকল্পে ব্যবহার করেছিলেন। -![IoT ডিভাইস থেকে IoT হাবে GPS টেলিমেট্রি পাঠানো](../../../../../translated_images/bn/gps-telemetry-iot-hub.8115335d51cd2c1285d20e9d1b18cf685e59a8e093e7797291ef173445af6f3d.png) +![IoT ডিভাইস থেকে IoT হাবে GPS টেলিমেট্রি পাঠানো](../../../../../translated_images/bn/gps-telemetry-iot-hub.8115335d51cd2c12.webp) ### কাজ - GPS ডেটা IoT হাবে পাঠানো @@ -151,7 +151,7 @@ IoT ডিভাইস থেকে ক্লাউডে প্রবাহি যখন ডেটা IoT Hub-এ প্রবাহিত হয়, তখন আপনি কিছু সার্ভারলেস কোড লিখতে পারেন যা ইভেন্ট-হাব কম্প্যাটিবল এন্ডপয়েন্টে প্রকাশিত ইভেন্টগুলির জন্য শুনবে। এটি ওয়ার্ম পাথ - এই ডেটা সংরক্ষণ করা হবে এবং পরবর্তী পাঠে যাত্রার রিপোর্টিংয়ের জন্য ব্যবহার করা হবে। -![IoT ডিভাইস থেকে IoT হাবে GPS টেলিমেট্রি পাঠানো, তারপর ইভেন্ট হাব ট্রিগার ব্যবহার করে Azure Functions-এ](../../../../../translated_images/bn/gps-telemetry-iot-hub-functions.24d3fa5592455e9f4e2fe73856b40c3915a292b90263c31d652acfd976cfedd8.png) +![IoT ডিভাইস থেকে IoT হাবে GPS টেলিমেট্রি পাঠানো, তারপর ইভেন্ট হাব ট্রিগার ব্যবহার করে Azure Functions-এ](../../../../../translated_images/bn/gps-telemetry-iot-hub-functions.24d3fa5592455e9f.webp) ### কাজ - সার্ভারলেস কোড ব্যবহার করে GPS ইভেন্ট পরিচালনা @@ -173,7 +173,7 @@ IoT ডিভাইস থেকে ক্লাউডে প্রবাহি ## Azure Storage Accounts -![Azure Storage লোগো](../../../../../translated_images/bn/azure-storage-logo.605c0f602c640d482a80f1b35a2629a32d595711b7ab1d7ceea843250615ff32.png) +![Azure Storage লোগো](../../../../../translated_images/bn/azure-storage-logo.605c0f602c640d48.webp) Azure Storage Accounts একটি সাধারণ উদ্দেশ্য স্টোরেজ পরিষেবা যা বিভিন্ন উপায়ে ডেটা সংরক্ষণ করতে পারে। আপনি ব্লব, কিউ, টেবিল বা ফাইল আকারে ডেটা সংরক্ষণ করতে পারেন এবং একই সময়ে সবকিছু করতে পারেন। diff --git a/translations/bn/3-transport/lessons/3-visualize-location-data/README.md b/translations/bn/3-transport/lessons/3-visualize-location-data/README.md index 539a37d2b..884d479e2 100644 --- a/translations/bn/3-transport/lessons/3-visualize-location-data/README.md +++ b/translations/bn/3-transport/lessons/3-visualize-location-data/README.md @@ -1,6 +1,6 @@ # অবস্থান ডেটা ভিজুয়ালাইজ করুন -![এই পাঠের একটি স্কেচনোট ওভারভিউ](../../../../../translated_images/bn/lesson-13.a259db1485021be7d7c72e90842fbe0ab977529e8684c179b5fb1ea75e92b3ef.jpg) +![এই পাঠের একটি স্কেচনোট ওভারভিউ](../../../../../translated_images/bn/lesson-13.a259db1485021be7.webp) > স্কেচনোট করেছেন [নিত্য নারাসিমহান](https://github.com/nitya)। বড় সংস্করণের জন্য ছবিতে ক্লিক করুন। @@ -64,11 +64,11 @@ মানুষ হিসেবে এই ডেটা বোঝা কঠিন হতে পারে। এটি শুধুমাত্র সংখ্যার একটি প্রাচীর, যার কোনো অর্থ বোঝা যায় না। এই ডেটাকে ভিজুয়ালাইজ করার প্রথম ধাপ হতে পারে এটি একটি লাইন চার্টে প্লট করা: -![উপরের ডেটার একটি লাইন চার্ট](../../../../../translated_images/bn/chart-soil-moisture.fd6d9d0cdc0b5f75e78038ecb8945dfc84b38851359de99d84b16e3336d6d7c2.png) +![উপরের ডেটার একটি লাইন চার্ট](../../../../../translated_images/bn/chart-soil-moisture.fd6d9d0cdc0b5f75.webp) এটি আরও উন্নত করা যেতে পারে একটি লাইন যোগ করে, যা দেখায় যে মাটির আর্দ্রতার রিডিং ৪৫০-এ পৌঁছালে স্বয়ংক্রিয় সেচ ব্যবস্থা চালু হয়েছিল: -![মাটির আর্দ্রতার একটি লাইন চার্ট, যেখানে ৪৫০-এ একটি লাইন রয়েছে](../../../../../translated_images/bn/chart-soil-moisture-relay.fbb391236d34a64d0abf1df396e9197e0a24df14150620b9cc820a64a55c9326.png) +![মাটির আর্দ্রতার একটি লাইন চার্ট, যেখানে ৪৫০-এ একটি লাইন রয়েছে](../../../../../translated_images/bn/chart-soil-moisture-relay.fbb391236d34a64d.webp) এই চার্টটি খুব দ্রুত দেখায় মাটির আর্দ্রতার মাত্রা কী ছিল এবং সেচ ব্যবস্থা চালু হওয়ার পয়েন্টগুলো। @@ -84,7 +84,7 @@ GPS ডেটার সাথে কাজ করার সময়, সবচ মানচিত্র নিয়ে কাজ করা একটি আকর্ষণীয় কাজ, এবং বেছে নেওয়ার জন্য অনেক পরিষেবা রয়েছে, যেমন Bing Maps, Leaflet, Open Street Maps, এবং Google Maps। এই পাঠে, আপনি [Azure Maps](https://azure.microsoft.com/services/azure-maps/?WT.mc_id=academic-17441-jabenn) এবং কীভাবে এটি আপনার GPS ডেটা প্রদর্শন করতে পারে তা শিখবেন। -![Azure Maps লোগো](../../../../../translated_images/bn/azure-maps-logo.35d01dcfbd81fe6140e94257aaa1538f785a58c91576d14e0ebe7a2f6c694b99.png) +![Azure Maps লোগো](../../../../../translated_images/bn/azure-maps-logo.35d01dcfbd81fe61.webp) Azure Maps হলো "একটি ভূ-স্থানিক পরিষেবা এবং SDK-এর সংগ্রহ, যা ওয়েব এবং মোবাইল অ্যাপ্লিকেশনে ভৌগোলিক প্রেক্ষাপট প্রদান করতে তাজা মানচিত্র ডেটা ব্যবহার করে।" ডেভেলপারদের সরঞ্জাম সরবরাহ করা হয় সুন্দর, ইন্টারঅ্যাকটিভ মানচিত্র তৈরি করতে, যা ট্রাফিক রুট সুপারিশ, ট্রাফিক ঘটনার তথ্য প্রদান, ইনডোর নেভিগেশন, অনুসন্ধান ক্ষমতা, উচ্চতা তথ্য, আবহাওয়া পরিষেবা এবং আরও অনেক কিছু করতে পারে। @@ -185,7 +185,7 @@ Azure Maps হলো "একটি ভূ-স্থানিক পরিষে যদি আপনি আপনার `index.html` পৃষ্ঠাটি একটি ওয়েব ব্রাউজারে খুলেন, তবে আপনি একটি মানচিত্র দেখতে পাবেন, যা সিয়াটল এলাকায় কেন্দ্রীভূত। - ![সিয়াটল, ওয়াশিংটন রাজ্যের একটি শহরের একটি মানচিত্র](../../../../../translated_images/bn/map-image.8fb2c53eb23ef39c1c0a4410a5282e879b3b452b707eb066ff04c5488d3d72b7.png) + ![সিয়াটল, ওয়াশিংটন রাজ্যের একটি শহরের একটি মানচিত্র](../../../../../translated_images/bn/map-image.8fb2c53eb23ef39c.webp) ✅ আপনার মানচিত্র প্রদর্শন পরিবর্তন করতে জুম এবং কেন্দ্র প্যারামিটার নিয়ে পরীক্ষা করুন। আপনার ডেটার অক্ষাংশ এবং দ্রাঘিমাংশের সাথে সম্পর্কিত বিভিন্ন কোঅর্ডিনেট যোগ করে মানচিত্রটি পুনরায় কেন্দ্রীভূত করতে পারেন। @@ -319,7 +319,7 @@ Azure Maps হলো "একটি ভূ-স্থানিক পরিষে 1. HTML পেজটি আপনার ব্রাউজারে লোড করুন। এটি মানচিত্র লোড করবে, তারপর স্টোরেজ থেকে সমস্ত GPS ডেটা লোড করবে এবং মানচিত্রে প্রদর্শন করবে। - ![সিয়াটলের কাছে সেন্ট এডওয়ার্ড স্টেট পার্কের একটি মানচিত্র, যেখানে পার্কের প্রান্তের চারপাশে একটি পথ দেখানো হয়েছে](../../../../../translated_images/bn/map-path.896832e72dc696ffe20650e4051027d4855442d955f93fdbb80bb417ca8a406f.png) + ![সিয়াটলের কাছে সেন্ট এডওয়ার্ড স্টেট পার্কের একটি মানচিত্র, যেখানে পার্কের প্রান্তের চারপাশে একটি পথ দেখানো হয়েছে](../../../../../translated_images/bn/map-path.896832e72dc696ff.webp) > 💁 আপনি এই কোডটি [code](../../../../../3-transport/lessons/3-visualize-location-data/code) ফোল্ডারে খুঁজে পেতে পারেন। diff --git a/translations/bn/3-transport/lessons/4-geofences/README.md b/translations/bn/3-transport/lessons/4-geofences/README.md index 4a5090adb..fdae1a818 100644 --- a/translations/bn/3-transport/lessons/4-geofences/README.md +++ b/translations/bn/3-transport/lessons/4-geofences/README.md @@ -1,6 +1,6 @@ # জিওফেন্স -![এই পাঠের একটি স্কেচনোট সংক্ষিপ্ত বিবরণ](../../../../../translated_images/bn/lesson-14.63980c5150ae3c153e770fb71d044c1845dce79248d86bed9fc525adf3ede73c.jpg) +![এই পাঠের একটি স্কেচনোট সংক্ষিপ্ত বিবরণ](../../../../../translated_images/bn/lesson-14.63980c5150ae3c15.webp) > স্কেচনোট: [নিত্য নারাসিমহান](https://github.com/nitya)। বড় সংস্করণের জন্য ছবিতে ক্লিক করুন। @@ -35,7 +35,7 @@ জিওফেন্স হল একটি বাস্তব-জগতের ভৌগোলিক অঞ্চলের জন্য একটি ভার্চুয়াল পরিধি। জিওফেন্সগুলি বৃত্তাকার হতে পারে যা একটি পয়েন্ট এবং একটি ব্যাসার্ধ দ্বারা সংজ্ঞায়িত (যেমন একটি বিল্ডিংয়ের চারপাশে ১০০ মিটার চওড়া একটি বৃত্ত), অথবা একটি বহুভুজ হতে পারে যা একটি এলাকা যেমন স্কুল জোন, শহরের সীমানা, বা বিশ্ববিদ্যালয় বা অফিস ক্যাম্পাসকে কভার করে। -![Microsoft কোম্পানি স্টোরের চারপাশে একটি বৃত্তাকার জিওফেন্স এবং Microsoft পশ্চিম ক্যাম্পাসের চারপাশে একটি বহুভুজ জিওফেন্সের কিছু উদাহরণ](../../../../../translated_images/bn/geofence-examples.172fbc534665769f6e1a1ddcf75e3b25183cd10354c80cc603ba44b635390e1a.png) +![Microsoft কোম্পানি স্টোরের চারপাশে একটি বৃত্তাকার জিওফেন্স এবং Microsoft পশ্চিম ক্যাম্পাসের চারপাশে একটি বহুভুজ জিওফেন্সের কিছু উদাহরণ](../../../../../translated_images/bn/geofence-examples.172fbc534665769f.webp) > 💁 আপনি হয়তো আগে জিওফেন্স ব্যবহার করেছেন কিন্তু তা জানেননি। যদি আপনি iOS রিমাইন্ডার অ্যাপ বা Google Keep-এ একটি অবস্থানের উপর ভিত্তি করে একটি রিমাইন্ডার সেট করেন, তবে আপনি একটি জিওফেন্স ব্যবহার করেছেন। এই অ্যাপগুলি প্রদত্ত অবস্থানের উপর ভিত্তি করে একটি জিওফেন্স সেট আপ করে এবং আপনার ফোন জিওফেন্সে প্রবেশ করলে আপনাকে সতর্ক করে। @@ -212,7 +212,7 @@ API কল থেকে ফলাফল ফেরত দেওয়ার স উদাহরণস্বরূপ, কল্পনা করুন GPS রিডিংগুলি দেখাচ্ছে যে একটি যানবাহন একটি রাস্তা ধরে চলছিল যা শেষ পর্যন্ত একটি জিওফেন্সের পাশে চলে। যদি একটি একক GPS মান ভুল হয় এবং যানবাহনটিকে জিওফেন্সের ভিতরে রাখে, যদিও সেখানে কোনো যানবাহন প্রবেশের পথ নেই, তবে এটি উপেক্ষা করা যেতে পারে। -![Microsoft ক্যাম্পাসের পাশ দিয়ে ৫২০-এ একটি যানবাহন পাস করার একটি GPS ট্রেইল, রাস্তার সাথে GPS রিডিংগুলি ছাড়া একটি ক্যাম্পাসে, একটি জিওফেন্সের ভিতরে](../../../../../translated_images/bn/geofence-crossing-inaccurate-gps.6a3ed911202ad9cabb66d3964888cec03a42c61d5b8f536ad5bdc99716b370f5.png) +![Microsoft ক্যাম্পাসের পাশ দিয়ে ৫২০-এ একটি যানবাহন পাস করার একটি GPS ট্রেইল, রাস্তার সাথে GPS রিডিংগুলি ছাড়া একটি ক্যাম্পাসে, একটি জিওফেন্সের ভিতরে](../../../../../translated_images/bn/geofence-crossing-inaccurate-gps.6a3ed911202ad9ca.webp) উপরে চিত্রে, মাইক্রোসফট ক্যাম্পাসের একটি অংশে একটি জিওফেন্স দেখানো হয়েছে। লাল রেখাটি ৫২০ বরাবর একটি ট্রাকের চলাচল নির্দেশ করে, যেখানে বৃত্তগুলি GPS রিডিংস দেখায়। বেশিরভাগ রিডিং সঠিক এবং ৫২০ বরাবর রয়েছে, তবে একটি ভুল রিডিং জিওফেন্সের ভিতরে রয়েছে। এই রিডিংটি সঠিক হওয়ার কোনো উপায় নেই - ট্রাকটি হঠাৎ করে ৫২০ থেকে ক্যাম্পাসে প্রবেশ করে আবার ৫২০-তে ফিরে যেতে পারে না। জিওফেন্স পরীক্ষা করার কোডটি ফলাফলের উপর কাজ করার আগে পূর্ববর্তী রিডিংস বিবেচনা করতে হবে। ✅ GPS রিডিং সঠিক বলে বিবেচনা করা যেতে পারে কিনা তা পরীক্ষা করার জন্য আপনার কী অতিরিক্ত ডেটা প্রয়োজন? @@ -284,7 +284,7 @@ API কল থেকে ফলাফল ফেরত দেওয়ার স উত্তর হলো এটি জানে না! পরিবর্তে আপনি ইভেন্টগুলি পড়ার জন্য একাধিক পৃথক সংযোগ সংজ্ঞায়িত করতে পারেন, এবং প্রতিটি অপ্রক্রিয়াকৃত বার্তাগুলির পুনরায় চালানোর পরিচালনা করতে পারে। এগুলিকে *কনজিউমার গ্রুপ* বলা হয়। যখন আপনি এন্ডপয়েন্টে সংযোগ করেন, তখন আপনি কোন কনজিউমার গ্রুপে সংযোগ করতে চান তা নির্দিষ্ট করতে পারেন। আপনার অ্যাপ্লিকেশনের প্রতিটি কম্পোনেন্ট একটি ভিন্ন কনজিউমার গ্রুপে সংযোগ করবে। -![একটি IoT Hub যেখানে ৩টি কনজিউমার গ্রুপ একই বার্তাগুলি ৩টি ভিন্ন ফাংশন অ্যাপে বিতরণ করছে](../../../../../translated_images/bn/consumer-groups.a3262e26fc27ba2092863678ad57af15c7223416e388a23f330c058cf4358630.png) +![একটি IoT Hub যেখানে ৩টি কনজিউমার গ্রুপ একই বার্তাগুলি ৩টি ভিন্ন ফাংশন অ্যাপে বিতরণ করছে](../../../../../translated_images/bn/consumer-groups.a3262e26fc27ba20.webp) তত্ত্বগতভাবে প্রতিটি কনজিউমার গ্রুপে ৫টি অ্যাপ্লিকেশন সংযোগ করতে পারে, এবং তারা বার্তাগুলি পৌঁছানোর সময় বার্তাগুলি পাবে। প্রতিটি কনজিউমার গ্রুপে শুধুমাত্র একটি অ্যাপ্লিকেশন অ্যাক্সেস করা সর্বোত্তম অনুশীলন যাতে ডুপ্লিকেট বার্তা প্রক্রিয়াকরণ এড়ানো যায় এবং পুনরায় চালানোর সময় সমস্ত কিউ করা বার্তা সঠিকভাবে প্রক্রিয়াকৃত হয়। উদাহরণস্বরূপ, যদি আপনি আপনার Functions অ্যাপটি লোকালভাবে চালু করেন এবং এটি ক্লাউডে চালাচ্ছেন, তারা উভয়ই বার্তাগুলি প্রক্রিয়াকরণ করবে, যার ফলে স্টোরেজ অ্যাকাউন্টে ডুপ্লিকেট ব্লব সংরক্ষণ হবে। diff --git a/translations/bn/4-manufacturing/lessons/1-train-fruit-detector/README.md b/translations/bn/4-manufacturing/lessons/1-train-fruit-detector/README.md index 3ff88d08f..30cd8d5c3 100644 --- a/translations/bn/4-manufacturing/lessons/1-train-fruit-detector/README.md +++ b/translations/bn/4-manufacturing/lessons/1-train-fruit-detector/README.md @@ -1,6 +1,6 @@ # ফলের গুণমান নির্ধারণকারী ডিটেক্টর প্রশিক্ষণ দিন -![এই পাঠের একটি স্কেচনোট ওভারভিউ](../../../../../translated_images/bn/lesson-15.843d21afdc6fb2bba70cd9db7b7d2f91598859fafda2078b0bdc44954194b6c0.jpg) +![এই পাঠের একটি স্কেচনোট ওভারভিউ](../../../../../translated_images/bn/lesson-15.843d21afdc6fb2bb.webp) > স্কেচনোট: [নিত্য নারাসিমহান](https://github.com/nitya)। বড় সংস্করণের জন্য ছবিতে ক্লিক করুন। @@ -38,7 +38,7 @@ অটোমেটেড ফসল তোলার উত্থান ফসল বাছাইয়ের কাজটিকে খামার থেকে কারখানায় নিয়ে গেছে। খাদ্য দীর্ঘ কনভেয়র বেল্টে ভ্রমণ করত, যেখানে লোকজন দলবদ্ধভাবে ফসল বাছাই করত এবং যেগুলো মান অনুযায়ী নয় সেগুলো সরিয়ে ফেলত। মেশিনের কারণে ফসল তোলার খরচ কমে গেলেও, খাদ্য ম্যানুয়ালি বাছাই করার জন্য এখনও খরচ ছিল। -![যদি একটি লাল টমেটো শনাক্ত হয়, এটি তার যাত্রা অব্যাহত রাখে। যদি একটি সবুজ টমেটো শনাক্ত হয়, এটি একটি লিভারের মাধ্যমে বর্জন বিনে ফেলে দেওয়া হয়](../../../../../translated_images/bn/optical-tomato-sorting.61aa134bdda4e5b1bfb16a212c1e35a6ef0c426cbb8b1c975f79d7bfbf48d068.png) +![যদি একটি লাল টমেটো শনাক্ত হয়, এটি তার যাত্রা অব্যাহত রাখে। যদি একটি সবুজ টমেটো শনাক্ত হয়, এটি একটি লিভারের মাধ্যমে বর্জন বিনে ফেলে দেওয়া হয়](../../../../../translated_images/bn/optical-tomato-sorting.61aa134bdda4e5b1.webp) পরবর্তী উন্নয়ন ছিল মেশিন ব্যবহার করে বাছাই করা, যা হয় হারভেস্টারে বা প্রক্রিয়াকরণ কারখানায় স্থাপন করা হয়। এই মেশিনগুলোর প্রথম প্রজন্ম অপটিক্যাল সেন্সর ব্যবহার করত রঙ শনাক্ত করতে, এবং লিভার বা বাতাসের পাফ ব্যবহার করে সবুজ টমেটো বর্জন বিনে ফেলে দিত, লাল টমেটোগুলোকে কনভেয়র বেল্টের নেটওয়ার্কে অব্যাহত রাখতে দিত। @@ -62,7 +62,7 @@ > 🎓 ML মডেলের ফলাফলগুলোকে *পূর্বাভাস* বলা হয়। -![২টি কলা, একটি পাকা যার পূর্বাভাস ৯৯.৭% পাকা, ০.৩% অপরিপক্ক, এবং একটি অপরিপক্ক যার পূর্বাভাস ১.৪% পাকা, ৯৮.৬% অপরিপক্ক](../../../../../translated_images/bn/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50ece4e4589e724b142da0681f35470fe3db3f7d51240f69c85.png) +![২টি কলা, একটি পাকা যার পূর্বাভাস ৯৯.৭% পাকা, ০.৩% অপরিপক্ক, এবং একটি অপরিপক্ক যার পূর্বাভাস ১.৪% পাকা, ৯৮.৬% অপরিপক্ক](../../../../../translated_images/bn/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50e.webp) ML মডেলগুলো বাইনারি উত্তর দেয় না, বরং সম্ভাব্যতা দেয়। উদাহরণস্বরূপ, একটি মডেল একটি কলার ছবি পেতে পারে এবং পূর্বাভাস দিতে পারে `পাকা` ৯৯.৭% এবং `অপরিপক্ক` ০.৩%। আপনার কোড তখন সেরা পূর্বাভাসটি বেছে নেবে এবং সিদ্ধান্ত নেবে যে কলাটি পাকা। @@ -90,7 +90,7 @@ ML মডেলগুলো বাইনারি উত্তর দেয় Custom Vision হলো একটি ক্লাউড-ভিত্তিক টুল যা ইমেজ ক্লাসিফায়ার প্রশিক্ষণ দিতে সাহায্য করে। এটি আপনাকে শুধুমাত্র অল্প সংখ্যক ছবি ব্যবহার করে একটি ক্লাসিফায়ার প্রশিক্ষণ দিতে দেয়। আপনি ওয়েব পোর্টাল, ওয়েব API বা SDK-এর মাধ্যমে ছবি আপলোড করতে পারেন, প্রতিটি ছবিতে একটি *ট্যাগ* যোগ করতে পারেন যা ছবিটির শ্রেণীবিভাগ নির্দেশ করে। এরপর আপনি মডেলটি প্রশিক্ষণ দেন এবং এটি কতটা ভালো কাজ করছে তা পরীক্ষা করেন। মডেলটি নিয়ে আপনি সন্তুষ্ট হলে, আপনি এর সংস্করণগুলো প্রকাশ করতে পারেন যা ওয়েব API বা SDK-এর মাধ্যমে অ্যাক্সেসযোগ্য। -![Azure Custom Vision লোগো](../../../../../translated_images/bn/custom-vision-logo.d3d4e7c8a87ec9daf825e72e210576c3cbf60312577be7a139e22dd97ab7f1e6.png) +![Azure Custom Vision লোগো](../../../../../translated_images/bn/custom-vision-logo.d3d4e7c8a87ec9da.webp) > 💁 আপনি প্রতিটি শ্রেণীবিভাগের জন্য মাত্র ৫টি ছবি ব্যবহার করে একটি কাস্টম ভিশন মডেল প্রশিক্ষণ দিতে পারেন, তবে বেশি ছবি ব্যবহার করলে ভালো ফলাফল পাওয়া যায়। অন্তত ৩০টি ছবি ব্যবহার করলে ভালো ফলাফল পাওয়া যায়। @@ -146,7 +146,7 @@ Custom Vision ব্যবহার করতে, আপনাকে প্র যখন আপনি আপনার প্রকল্প তৈরি করবেন, নিশ্চিত করুন যে আপনি পূর্বে তৈরি করা `fruit-quality-detector-training` রিসোর্সটি ব্যবহার করছেন। একটি *Classification* প্রকল্প টাইপ, একটি *Multiclass* ক্লাসিফিকেশন টাইপ, এবং *Food* ডোমেইন ব্যবহার করুন। - ![Custom Vision প্রকল্পের সেটিংস যেখানে নাম `fruit-quality-detector`, কোনো বিবরণ নেই, রিসোর্স `fruit-quality-detector-training`, প্রকল্প টাইপ `classification`, ক্লাসিফিকেশন টাইপ `multi class` এবং ডোমেইন `food`](../../../../../translated_images/bn/custom-vision-create-project.cf46325b92d8b131089f6647cf5e07b664cb77850e106d66e3c057b6b69756c6.png) + ![Custom Vision প্রকল্পের সেটিংস যেখানে নাম `fruit-quality-detector`, কোনো বিবরণ নেই, রিসোর্স `fruit-quality-detector-training`, প্রকল্প টাইপ `classification`, ক্লাসিফিকেশন টাইপ `multi class` এবং ডোমেইন `food`](../../../../../translated_images/bn/custom-vision-create-project.cf46325b92d8b131.webp) ✅ আপনার ইমেজ ক্লাসিফায়ারের জন্য Custom Vision UI অন্বেষণ করতে কিছু সময় নিন। @@ -164,7 +164,7 @@ Custom Vision ব্যবহার করতে, আপনাকে প্র * ২টি পাকা কলা ব্যবহার করে, প্রতিটির বিভিন্ন কোণ থেকে কিছু ছবি তুলুন, অন্তত ৭টি ছবি (৫টি প্রশিক্ষণের জন্য, ২টি পরীক্ষার জন্য), তবে আদর্শভাবে আরও বেশি। - ![২টি ভিন্ন কলার ছবি](../../../../../translated_images/bn/banana-training-images.530eb203346d73bc23b8b990fb4609470bf4ff7c942ccc13d4cfffeed9be1ad4.png) + ![২টি ভিন্ন কলার ছবি](../../../../../translated_images/bn/banana-training-images.530eb203346d73bc.webp) * একই প্রক্রিয়া ২টি কাঁচা কলার জন্য পুনরাবৃত্তি করুন। @@ -174,7 +174,7 @@ Custom Vision ব্যবহার করতে, আপনাকে প্র 1. [Microsoft ডকসের build a classifier quickstart এর আপলোড এবং ট্যাগ ইমেজ সেকশন](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` ট্যাগ দিন। - ![পাকা এবং কাঁচা কলার ছবি আপলোডের ডায়ালগ](../../../../../translated_images/bn/image-upload-bananas.0751639f3815e0ec42bdbc6254d1e4357a185834d1ae10c9948a0e7d6d336695.png) + ![পাকা এবং কাঁচা কলার ছবি আপলোডের ডায়ালগ](../../../../../translated_images/bn/image-upload-bananas.0751639f3815e0ec.webp) 1. [Microsoft ডকসের build a classifier quickstart এর শ্রেণীবিভাজক প্রশিক্ষণ সেকশন](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#train-the-classifier) অনুসরণ করে আপনার আপলোড করা ছবিগুলোর উপর ইমেজ শ্রেণীবিভাজক প্রশিক্ষণ দিন। @@ -192,7 +192,7 @@ Custom Vision ব্যবহার করতে, আপনাকে প্র 1. [Microsoft ডকসের test your model ডকুমেন্টেশন](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/test-your-model?WT.mc_id=academic-17441-jabenn#test-your-model) অনুসরণ করে আপনার ইমেজ শ্রেণীবিভাজক পরীক্ষা করুন। পূর্বে তৈরি করা পরীক্ষার ছবিগুলো ব্যবহার করুন, প্রশিক্ষণের জন্য ব্যবহৃত কোনো ছবি নয়। - ![একটি কাঁচা কলা ৯৮.৯% সম্ভাবনায় কাঁচা এবং ১.১% সম্ভাবনায় পাকা হিসেবে পূর্বাভাস](../../../../../translated_images/bn/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64886422438850ea14f0be6ac918c217ea3b255c685abfabe7.png) + ![একটি কাঁচা কলা ৯৮.৯% সম্ভাবনায় কাঁচা এবং ১.১% সম্ভাবনায় পাকা হিসেবে পূর্বাভাস](../../../../../translated_images/bn/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64.webp) 1. আপনার কাছে থাকা সমস্ত পরীক্ষার ছবি চেষ্টা করুন এবং সম্ভাবনাগুলো পর্যবেক্ষণ করুন। diff --git a/translations/bn/4-manufacturing/lessons/2-check-fruit-from-device/README.md b/translations/bn/4-manufacturing/lessons/2-check-fruit-from-device/README.md index 0a23d3012..f80b7b463 100644 --- a/translations/bn/4-manufacturing/lessons/2-check-fruit-from-device/README.md +++ b/translations/bn/4-manufacturing/lessons/2-check-fruit-from-device/README.md @@ -1,6 +1,6 @@ # IoT ডিভাইস থেকে ফলের গুণমান পরীক্ষা করুন -![এই পাঠের একটি স্কেচনোট সংক্ষিপ্ত বিবরণ](../../../../../translated_images/bn/lesson-16.215daf18b00631fbdfd64c6fc2dc6044dff5d544288825d8076f9fb83d964c23.jpg) +![এই পাঠের একটি স্কেচনোট সংক্ষিপ্ত বিবরণ](../../../../../translated_images/bn/lesson-16.215daf18b00631fb.webp) > স্কেচনোট: [নিত্য নারাসিমহান](https://github.com/nitya)। বড় সংস্করণের জন্য ছবিতে ক্লিক করুন। @@ -26,7 +26,7 @@ ক্যামেরা সেন্সর, নাম থেকেই বোঝা যায়, এমন ক্যামেরা যা আপনি আপনার IoT ডিভাইসের সাথে সংযুক্ত করতে পারেন। এগুলো স্থির ছবি তুলতে পারে বা স্ট্রিমিং ভিডিও ধারণ করতে পারে। কিছু ক্যামেরা কাঁচা ইমেজ ডেটা প্রদান করে, অন্যগুলো JPEG বা PNG-এর মতো ইমেজ ফাইলে ডেটা সংকুচিত করে। সাধারণত IoT ডিভাইসের সাথে কাজ করা ক্যামেরাগুলো ছোট এবং কম রেজোলিউশনযুক্ত হয়, তবে আপনি উচ্চ রেজোলিউশন ক্যামেরা পেতে পারেন যা শীর্ষস্থানীয় ফোনের সাথে প্রতিযোগিতা করতে পারে। আপনি বিভিন্ন ধরনের পরিবর্তনযোগ্য লেন্স, একাধিক ক্যামেরা সেটআপ, ইনফ্রা-রেড থার্মাল ক্যামেরা বা UV ক্যামেরা পেতে পারেন। -![একটি দৃশ্য থেকে আলো একটি লেন্সের মধ্য দিয়ে যায় এবং CMOS সেন্সরে কেন্দ্রীভূত হয়](../../../../../translated_images/bn/cmos-sensor.75f9cd74decb137149a4c9ea825251a4549497d67c0ae2776159e6102bb53aa9.png) +![একটি দৃশ্য থেকে আলো একটি লেন্সের মধ্য দিয়ে যায় এবং CMOS সেন্সরে কেন্দ্রীভূত হয়](../../../../../translated_images/bn/cmos-sensor.75f9cd74decb1371.webp) বেশিরভাগ ক্যামেরা সেন্সর ইমেজ সেন্সর ব্যবহার করে যেখানে প্রতিটি পিক্সেল একটি ফটোডায়োড। একটি লেন্স ইমেজটিকে ইমেজ সেন্সরে কেন্দ্রীভূত করে এবং হাজার হাজার বা লক্ষ লক্ষ ফটোডায়োড প্রতিটিতে পড়া আলো শনাক্ত করে এবং সেটিকে পিক্সেল ডেটা হিসেবে রেকর্ড করে। @@ -74,7 +74,7 @@ 1. ইটারেশনের জন্য **Publish** বোতামটি নির্বাচন করুন। - ![প্রকাশ বোতাম](../../../../../translated_images/bn/custom-vision-publish-button.b7174e1977b0c33b8b72d4e5b1326c779e0af196f3849d09985ee2d7d5493a39.png) + ![প্রকাশ বোতাম](../../../../../translated_images/bn/custom-vision-publish-button.b7174e1977b0c33b.webp) 1. *Publish Model* ডায়ালগে, *Prediction resource* সেট করুন `fruit-quality-detector-prediction` রিসোর্সে যা আপনি গত পাঠে তৈরি করেছিলেন। নাম `Iteration2` হিসেবে রেখে **Publish** বোতামটি নির্বাচন করুন। @@ -88,7 +88,7 @@ এছাড়াও *Prediction-Key* মানটির একটি কপি নিন। এটি একটি নিরাপদ কী যা আপনাকে মডেলটি কল করার সময় পাস করতে হবে। শুধুমাত্র সেই অ্যাপ্লিকেশনগুলো যা এই কী পাস করে মডেলটি ব্যবহার করতে পারে, অন্য কোনো অ্যাপ্লিকেশন প্রত্যাখ্যাত হয়। - ![প্রেডিকশন API ডায়ালগ যা URL এবং কী দেখাচ্ছে](../../../../../translated_images/bn/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![প্রেডিকশন API ডায়ালগ যা URL এবং কী দেখাচ্ছে](../../../../../translated_images/bn/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ যখন একটি নতুন ইটারেশন প্রকাশিত হয়, এর একটি ভিন্ন নাম থাকে। আপনি কীভাবে মনে করেন যে IoT ডিভাইসটি কোন ইটারেশন ব্যবহার করছে তা পরিবর্তন করবেন? @@ -109,7 +109,7 @@ একটি ইমেজ ক্লাসিফায়ারের জন্য সেরা ফলাফল পেতে, আপনি চাইবেন মডেলটি এমন ছবির মাধ্যমে প্রশিক্ষণ দিতে যা প্রেডিকশনের জন্য ব্যবহৃত ছবির সাথে যতটা সম্ভব মিল রয়েছে। উদাহরণস্বরূপ, যদি আপনি প্রশিক্ষণের জন্য আপনার ফোনের ক্যামেরা ব্যবহার করে ছবি তুলেন, তাহলে ছবির গুণমান, তীক্ষ্ণতা এবং রঙ IoT ডিভাইসের সাথে সংযুক্ত ক্যামেরার তুলনায় ভিন্ন হবে। -![2টি কলার ছবি, একটি IoT ডিভাইস থেকে কম রেজোলিউশন এবং খারাপ আলোতে তোলা, এবং একটি ফোন থেকে উচ্চ রেজোলিউশন এবং ভালো আলোতে তোলা](../../../../../translated_images/bn/banana-picture-compare.174df164dc326a42cf7fb051a7497e6113c620e91552d92ca914220305d47d9a.png) +![2টি কলার ছবি, একটি IoT ডিভাইস থেকে কম রেজোলিউশন এবং খারাপ আলোতে তোলা, এবং একটি ফোন থেকে উচ্চ রেজোলিউশন এবং ভালো আলোতে তোলা](../../../../../translated_images/bn/banana-picture-compare.174df164dc326a42.webp) উপরের ছবিতে, বাম দিকে থাকা কলার ছবিটি একটি Raspberry Pi ক্যামেরা ব্যবহার করে তোলা হয়েছে, ডান দিকে থাকা ছবিটি একই কলা একই স্থানে একটি iPhone ব্যবহার করে তোলা হয়েছে। গুণমানে একটি উল্লেখযোগ্য পার্থক্য রয়েছে - iPhone ছবিটি আরও তীক্ষ্ণ, উজ্জ্বল রঙ এবং বেশি কনট্রাস্টযুক্ত। diff --git a/translations/bn/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md b/translations/bn/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md index 776db9c35..9240ecc20 100644 --- a/translations/bn/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md +++ b/translations/bn/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md @@ -16,7 +16,7 @@ ### কাজ - ক্যামেরা সংযুক্ত করুন -![একটি রাস্পবেরি পাই ক্যামেরা](../../../../../translated_images/bn/pi-camera-module.4278753c31bd6e757aa2b858be97d72049f71616278cefe4fb5abb485b40a078.png) +![একটি রাস্পবেরি পাই ক্যামেরা](../../../../../translated_images/bn/pi-camera-module.4278753c31bd6e75.webp) 1. পাই বন্ধ করুন। @@ -24,17 +24,17 @@ [Raspberry Pi Getting Started with the Camera module documentation](https://projects.raspberrypi.org/en/projects/getting-started-with-picamera/2)-এ ক্লিপটি খুলে কেবলটি ঢোকানোর একটি অ্যানিমেশন দেখতে পারেন। - ![ক্যামেরা মডিউলে রিবন কেবল ঢোকানো](../../../../../translated_images/bn/pi-camera-ribbon-cable.0bf82acd251611c21ac616f082849413e2b322a261d0e4f8fec344248083b07e.png) + ![ক্যামেরা মডিউলে রিবন কেবল ঢোকানো](../../../../../translated_images/bn/pi-camera-ribbon-cable.0bf82acd251611c2.webp) 1. Grove Base Hat পাই থেকে সরিয়ে ফেলুন। 1. রিবন কেবলটি Grove Base Hat-এর ক্যামেরা স্লটের মধ্য দিয়ে পাস করুন। নিশ্চিত করুন যে কেবলটির নীল দিকটি **A0**, **A1** ইত্যাদি লেবেলযুক্ত অ্যানালগ পোর্টগুলোর দিকে মুখ করে। - ![Grove Base Hat-এর মধ্য দিয়ে রিবন কেবল পাস করা](../../../../../translated_images/bn/grove-base-hat-ribbon-cable.501fed202fcf73b11b2b68f6d246189f7d15d3e4423c572ddee79d77b4632b47.png) + ![Grove Base Hat-এর মধ্য দিয়ে রিবন কেবল পাস করা](../../../../../translated_images/bn/grove-base-hat-ribbon-cable.501fed202fcf73b1.webp) 1. রিবন কেবলটি পাই-এর ক্যামেরা পোর্টে ঢোকান। আবার, কালো প্লাস্টিক ক্লিপটি টেনে তুলুন, কেবলটি ঢোকান, তারপর ক্লিপটি আবার জায়গায় ঠেলে দিন। কেবলটির নীল দিকটি USB এবং ইথারনেট পোর্টগুলোর দিকে মুখ করে থাকবে। - ![পাই-এর ক্যামেরা সকেটে রিবন কেবল সংযুক্ত](../../../../../translated_images/bn/pi-camera-socket-ribbon-cable.a18309920b11800911082ed7aa6fb28e6d9be3a022e4079ff990016cae3fca10.png) + ![পাই-এর ক্যামেরা সকেটে রিবন কেবল সংযুক্ত](../../../../../translated_images/bn/pi-camera-socket-ribbon-cable.a18309920b118009.webp) 1. Grove Base Hat পুনরায় লাগান। @@ -101,7 +101,7 @@ `camera.rotation = 0` লাইনটি ছবির রোটেশন সেট করে। রিবন কেবলটি ক্যামেরার নিচে আসে, তবে যদি আপনার ক্যামেরাটি এমনভাবে ঘোরানো হয় যাতে এটি সহজে ক্লাসিফাই করতে চাওয়া আইটেমের দিকে নির্দেশ করে, তাহলে আপনি এই লাইনে রোটেশনের ডিগ্রি পরিবর্তন করতে পারেন। - ![ক্যামেরাটি একটি পানীয় ক্যানের উপর ঝুলছে](../../../../../translated_images/bn/pi-camera-upside-down.5376961ba31459883362124152ad6b823d5ac5fc14e85f317e22903bd681c2b6.png) + ![ক্যামেরাটি একটি পানীয় ক্যানের উপর ঝুলছে](../../../../../translated_images/bn/pi-camera-upside-down.5376961ba3145988.webp) উদাহরণস্বরূপ, যদি আপনি রিবন কেবলটি এমনভাবে ঝুলান যাতে এটি ক্যামেরার উপরে থাকে, তাহলে রোটেশন 180 সেট করুন: diff --git a/translations/bn/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md b/translations/bn/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md index 20310af31..14f878ee7 100644 --- a/translations/bn/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md +++ b/translations/bn/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md @@ -84,7 +84,7 @@ Custom Vision পরিষেবার একটি পাইথন SDK রয আপনি তোলা ছবিটি দেখতে পারবেন এবং এই মানগুলো Custom Vision-এর **Predictions** ট্যাবে দেখতে পারবেন। - ![Custom Vision-এ একটি কলা, 56.8% পাকা এবং 43.1% কাঁচা হিসেবে প্রেডিক্ট করা হয়েছে](../../../../../translated_images/bn/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![Custom Vision-এ একটি কলা, 56.8% পাকা এবং 43.1% কাঁচা হিসেবে প্রেডিক্ট করা হয়েছে](../../../../../translated_images/bn/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 আপনি এই কোডটি [code-classify/pi](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/pi) অথবা [code-classify/virtual-iot-device](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/virtual-iot-device) ফোল্ডারে খুঁজে পেতে পারেন। diff --git a/translations/bn/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md b/translations/bn/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md index bfc7f7cf9..4a1dd22e1 100644 --- a/translations/bn/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md +++ b/translations/bn/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md @@ -34,11 +34,11 @@ CounterFit অ্যাপে ক্যামেরা যোগ করুন। 1. **Add** বোতামটি নির্বাচন করুন ক্যামেরা তৈরি করতে। - ![ক্যামেরার সেটিংস](../../../../../translated_images/bn/counterfit-create-camera.a5de97f59c0bd3cbe0416d7e89a3cfe86d19fbae05c641c53a91286412af0a34.png) + ![ক্যামেরার সেটিংস](../../../../../translated_images/bn/counterfit-create-camera.a5de97f59c0bd3cb.webp) ক্যামেরাটি তৈরি হবে এবং সেন্সর তালিকায় প্রদর্শিত হবে। - ![তৈরি করা ক্যামেরা](../../../../../translated_images/bn/counterfit-camera.001ec52194c8ee5d3f617173da2c79e1df903d10882adc625cbfc493525125d4.png) + ![তৈরি করা ক্যামেরা](../../../../../translated_images/bn/counterfit-camera.001ec52194c8ee5d.webp) ## ক্যামেরা প্রোগ্রাম করুন @@ -103,7 +103,7 @@ CounterFit অ্যাপে ক্যামেরা যোগ করুন। 1. CounterFit-এ ক্যামেরার জন্য যে ছবি ধারণ করা হবে তা কনফিগার করুন। আপনি *Source*-কে *File*-এ সেট করতে পারেন এবং একটি ছবি আপলোড করতে পারেন, অথবা *Source*-কে *WebCam*-এ সেট করতে পারেন এবং আপনার ওয়েবক্যাম থেকে ছবি ধারণ করা হবে। একটি ছবি নির্বাচন করার বা আপনার ওয়েবক্যাম নির্বাচন করার পরে **Set** বোতামটি নিশ্চিত করুন। - ![CounterFit-এ ফাইল এবং ওয়েবক্যাম সেটিংস](../../../../../translated_images/bn/counterfit-camera-options.eb3bd5150a8e7dffbf24bc5bcaba0cf2cdef95fbe6bbe393695d173817d6b8df.png) + ![CounterFit-এ ফাইল এবং ওয়েবক্যাম সেটিংস](../../../../../translated_images/bn/counterfit-camera-options.eb3bd5150a8e7dff.webp) 1. একটি ছবি ধারণ করা হবে এবং `image.jpg` নামে বর্তমান ফোল্ডারে সংরক্ষণ করা হবে। আপনি এই ফাইলটি VS Code এক্সপ্লোরারে দেখতে পাবেন। ফাইলটি নির্বাচন করুন ছবিটি দেখতে। যদি এটি ঘোরানোর প্রয়োজন হয়, `camera.rotation = 0` লাইনটি আপডেট করুন এবং আবার ছবি তুলুন। diff --git a/translations/bn/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md b/translations/bn/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md index fadc32d9a..46c3d1614 100644 --- a/translations/bn/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md +++ b/translations/bn/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md @@ -208,7 +208,7 @@ HTTPS এন্ডপয়েন্টের সাথে যোগাযোগ আপনি যে ছবি তুলেছেন তা এবং এই মানগুলো Custom Vision-এর **Predictions** ট্যাবে দেখতে পারবেন। - ![Custom Vision-এ একটি কলা, যা 56.8% পাকা এবং 43.1% কাঁচা হিসেবে প্রেডিক্ট করা হয়েছে](../../../../../translated_images/bn/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![Custom Vision-এ একটি কলা, যা 56.8% পাকা এবং 43.1% কাঁচা হিসেবে প্রেডিক্ট করা হয়েছে](../../../../../translated_images/bn/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 আপনি এই কোডটি [code-classify/wio-terminal](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/wio-terminal) ফোল্ডারে খুঁজে পেতে পারেন। diff --git a/translations/bn/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md b/translations/bn/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md index 2c1c4bdf4..90e7a0c3f 100644 --- a/translations/bn/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md +++ b/translations/bn/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md @@ -1,6 +1,6 @@ # আপনার ফল শনাক্তকারীকে এজে চালান -![এই পাঠের একটি স্কেচনোট ওভারভিউ](../../../../../translated_images/bn/lesson-17.bc333c3c35ba8e42cce666cfffa82b915f787f455bd94e006aea2b6f2722421a.jpg) +![এই পাঠের একটি স্কেচনোট ওভারভিউ](../../../../../translated_images/bn/lesson-17.bc333c3c35ba8e42.webp) > স্কেচনোট করেছেন [নিত্যা নারাসিমহান](https://github.com/nitya)। বড় সংস্করণের জন্য ছবিতে ক্লিক করুন। @@ -33,11 +33,11 @@ এজ কম্পিউটিং হল IoT ডেটা প্রক্রিয়াকরণ যতটা সম্ভব ডেটা উৎপন্ন হওয়ার কাছাকাছি কম্পিউটারে সম্পন্ন করা। এটি ক্লাউডে প্রক্রিয়াকরণের পরিবর্তে ক্লাউডের এজে - আপনার অভ্যন্তরীণ নেটওয়ার্কে স্থানান্তরিত হয়। -![একটি আর্কিটেকচার ডায়াগ্রাম যেখানে ক্লাউডে ইন্টারনেট সার্ভিস এবং একটি স্থানীয় নেটওয়ার্কে IoT ডিভাইস দেখানো হয়েছে](../../../../../translated_images/bn/cloud-without-edge.b4da641f6022c95ed6b91fde8b5323abd2f94e0d52073ad54172ae8f5dac90e9.png) +![একটি আর্কিটেকচার ডায়াগ্রাম যেখানে ক্লাউডে ইন্টারনেট সার্ভিস এবং একটি স্থানীয় নেটওয়ার্কে IoT ডিভাইস দেখানো হয়েছে](../../../../../translated_images/bn/cloud-without-edge.b4da641f6022c95e.webp) এখন পর্যন্ত পাঠে, আপনার ডিভাইসগুলি ডেটা সংগ্রহ এবং ক্লাউডে প্রেরণ করে বিশ্লেষণের জন্য, যেখানে সার্ভারলেস ফাংশন বা AI মডেল চালানো হয়। -![একটি আর্কিটেকচার ডায়াগ্রাম যেখানে স্থানীয় নেটওয়ার্কে IoT ডিভাইসগুলি এজ ডিভাইসের সাথে সংযুক্ত এবং সেই এজ ডিভাইসগুলি ক্লাউডের সাথে সংযুক্ত](../../../../../translated_images/bn/cloud-with-edge.1e26462c62c126fe150bd15a5714ddf0be599f09bacbad08b85be02b76ea1ae1.png) +![একটি আর্কিটেকচার ডায়াগ্রাম যেখানে স্থানীয় নেটওয়ার্কে IoT ডিভাইসগুলি এজ ডিভাইসের সাথে সংযুক্ত এবং সেই এজ ডিভাইসগুলি ক্লাউডের সাথে সংযুক্ত](../../../../../translated_images/bn/cloud-with-edge.1e26462c62c126fe.webp) এজ কম্পিউটিংয়ের মাধ্যমে কিছু ক্লাউড সার্ভিস ক্লাউড থেকে সরিয়ে IoT ডিভাইসের সাথে একই নেটওয়ার্কে চলমান কম্পিউটারে স্থানান্তরিত করা হয়, শুধুমাত্র প্রয়োজন হলে ক্লাউডের সাথে যোগাযোগ করা হয়। উদাহরণস্বরূপ, আপনি এজ ডিভাইসে AI মডেল চালিয়ে ফলের পাকা অবস্থার বিশ্লেষণ করতে পারেন এবং শুধুমাত্র বিশ্লেষণ ক্লাউডে পাঠাতে পারেন, যেমন পাকা এবং কাঁচা ফলের সংখ্যা। @@ -85,7 +85,7 @@ IoT সিস্টেমের জন্য, আপনি প্রায়শ ## Azure IoT Edge -![Azure IoT Edge লোগো](../../../../../translated_images/bn/azure-iot-edge-logo.c1c076749b5cba2e8755262fadc2f19ca1146b948d76990b1229199ac2292d79.png) +![Azure IoT Edge লোগো](../../../../../translated_images/bn/azure-iot-edge-logo.c1c076749b5cba2e.webp) Azure IoT Edge একটি পরিষেবা যা আপনাকে ক্লাউড থেকে কাজের চাপ এজে স্থানান্তর করতে সাহায্য করতে পারে। আপনি একটি ডিভাইসকে এজ ডিভাইস হিসাবে সেট আপ করেন এবং ক্লাউড থেকে সেই এজ ডিভাইসে কোড ডিপ্লয় করতে পারেন। এটি আপনাকে ক্লাউড এবং এজের ক্ষমতাগুলি মিশ্রিত করার অনুমতি দেয়। @@ -99,7 +99,7 @@ IoT Edge IoT Hub-এ অন্তর্ভুক্ত, তাই আপনি I IoT Edge কোড চালায় *কন্টেইনার* থেকে - স্বয়ংসম্পূর্ণ অ্যাপ্লিকেশন যা আপনার কম্পিউটারে অন্যান্য অ্যাপ্লিকেশন থেকে আলাদাভাবে চালানো হয়। যখন আপনি একটি কন্টেইনার চালান, এটি আপনার কম্পিউটারের ভিতরে একটি পৃথক কম্পিউটারের মতো কাজ করে, যার নিজস্ব সফটওয়্যার, পরিষেবা এবং অ্যাপ্লিকেশন চালায়। বেশিরভাগ সময় কন্টেইনারগুলি আপনার কম্পিউটারে কিছু অ্যাক্সেস করতে পারে না যতক্ষণ না আপনি ইচ্ছাকৃতভাবে একটি ফোল্ডারের মতো কিছু শেয়ার করেন। কন্টেইনারটি তখন একটি ওপেন পোর্টের মাধ্যমে পরিষেবাগুলি উন্মুক্ত করে যা আপনি সংযোগ করতে বা আপনার নেটওয়ার্কে উন্মুক্ত করতে পারেন। -![একটি ওয়েব অনুরোধ একটি কন্টেইনারে পুনঃনির্দেশিত](../../../../../translated_images/bn/container-web-browser.4ee81dd4f0d8838ce622b2a0d600b6a4322b5d4fe43159facd87b7b34f84d66a.png) +![একটি ওয়েব অনুরোধ একটি কন্টেইনারে পুনঃনির্দেশিত](../../../../../translated_images/bn/container-web-browser.4ee81dd4f0d8838c.webp) উদাহরণস্বরূপ, আপনি একটি কন্টেইনারে একটি ওয়েবসাইট চালাতে পারেন পোর্ট ৮০-এ, যা ডিফল্ট HTTP পোর্ট, এবং তারপর এটি আপনার কম্পিউটারে পোর্ট ৮০-এও উন্মুক্ত করতে পারেন। @@ -185,11 +185,11 @@ IoT Edge ডিভাইস ব্যবহার করতে, এটি IoT Hu ## আপনার কন্টেইনার ডিপ্লয়মেন্টের জন্য প্রস্তুত করুন -![কন্টেইনার তৈরি হয়, তারপর একটি কন্টেইনার রেজিস্ট্রিতে পুশ করা হয়, তারপর IoT Edge ব্যবহার করে edge ডিভাইসে ডিপ্লয় করা হয়](../../../../../translated_images/bn/container-edge-flow.c246050dd60ceefdb6ace026a4ce5c6aa4112bb5898ae23fbb2ab4be29ae3e1b.png) +![কন্টেইনার তৈরি হয়, তারপর একটি কন্টেইনার রেজিস্ট্রিতে পুশ করা হয়, তারপর IoT Edge ব্যবহার করে edge ডিভাইসে ডিপ্লয় করা হয়](../../../../../translated_images/bn/container-edge-flow.c246050dd60ceefd.webp) আপনার মডেল ডাউনলোড করার পর, এটি একটি কন্টেইনারে তৈরি করতে হবে, তারপর একটি কন্টেইনার রেজিস্ট্রিতে পুশ করতে হবে - একটি অনলাইন অবস্থান যেখানে আপনি কন্টেইনার সংরক্ষণ করতে পারেন। IoT Edge তারপর রেজিস্ট্রি থেকে কন্টেইনারটি ডাউনলোড করতে পারে এবং এটি আপনার ডিভাইসে পুশ করতে পারে। -![Azure Container Registry লোগো](../../../../../translated_images/bn/azure-container-registry-logo.09494206991d4b295025ebff7d4e2900325e527a59184ffbc8464b6ab59654be.png) +![Azure Container Registry লোগো](../../../../../translated_images/bn/azure-container-registry-logo.09494206991d4b29.webp) এই পাঠের জন্য আপনি যে কন্টেইনার রেজিস্ট্রি ব্যবহার করবেন তা হলো Azure Container Registry। এটি একটি ফ্রি সার্ভিস নয়, তাই অর্থ সাশ্রয়ের জন্য কাজ শেষ হলে নিশ্চিত করুন যে আপনি [আপনার প্রজেক্ট পরিষ্কার করুন](../../../clean-up.md)। diff --git a/translations/bn/4-manufacturing/lessons/4-trigger-fruit-detector/README.md b/translations/bn/4-manufacturing/lessons/4-trigger-fruit-detector/README.md index 36b86eaa6..339ec15e3 100644 --- a/translations/bn/4-manufacturing/lessons/4-trigger-fruit-detector/README.md +++ b/translations/bn/4-manufacturing/lessons/4-trigger-fruit-detector/README.md @@ -1,6 +1,6 @@ # সেন্সর থেকে ফলের গুণমান নির্ধারণ শুরু করা -![এই পাঠের একটি স্কেচনোট ওভারভিউ](../../../../../translated_images/bn/lesson-18.92c32ed1d354caa5a54baa4032cf0b172d4655e8e326ad5d46c558a0def15365.jpg) +![এই পাঠের একটি স্কেচনোট ওভারভিউ](../../../../../translated_images/bn/lesson-18.92c32ed1d354caa5.webp) > স্কেচনোট: [নিত্যা নারাসিমহান](https://github.com/nitya)। বড় সংস্করণের জন্য ছবিতে ক্লিক করুন। @@ -39,7 +39,7 @@ IoT অ্যাপ্লিকেশনকে *থিংস* (ডিভাই ### রেফারেন্স IoT আর্কিটেকচার -![একটি রেফারেন্স IoT আর্কিটেকচার](../../../../../translated_images/bn/iot-reference-architecture.2278b98b55c6d4e89bde18eada3688d893861d43507641804dd2f9d3079cfaa0.png) +![একটি রেফারেন্স IoT আর্কিটেকচার](../../../../../translated_images/bn/iot-reference-architecture.2278b98b55c6d4e8.webp) উপরের চিত্রটি একটি রেফারেন্স IoT আর্কিটেকচার দেখায়। @@ -49,7 +49,7 @@ IoT অ্যাপ্লিকেশনকে *থিংস* (ডিভাই * **ইনসাইট** আসে সার্ভারলেস অ্যাপ্লিকেশন থেকে, অথবা সংরক্ষিত ডেটার উপর বিশ্লেষণ চালিয়ে। * **অ্যাকশন** হতে পারে ডিভাইসে পাঠানো কমান্ড, অথবা ডেটার ভিজ্যুয়ালাইজেশন যা মানুষের সিদ্ধান্ত গ্রহণে সহায়তা করে। -![একটি রেফারেন্স IoT আর্কিটেকচার](../../../../../translated_images/bn/iot-reference-architecture-azure.0b8d2161af924cb18ae48a8558a19541cca47f27264851b5b7e56d7b8bb372ac.png) +![একটি রেফারেন্স IoT আর্কিটেকচার](../../../../../translated_images/bn/iot-reference-architecture-azure.0b8d2161af924cb1.webp) উপরের চিত্রটি এই পাঠে আলোচনা করা উপাদান এবং পরিষেবাগুলির কিছু দেখায় এবং কীভাবে সেগুলি একটি রেফারেন্স IoT আর্কিটেকচারে সংযুক্ত হয়। @@ -89,7 +89,7 @@ IoT অ্যাপ্লিকেশনকে *থিংস* (ডিভাই ### আপনার অ্যাপ্লিকেশন প্রোটোটাইপ করা -![ফলের গুণমান পরীক্ষার জন্য একটি রেফারেন্স IoT আর্কিটেকচার](../../../../../translated_images/bn/iot-reference-architecture-fruit-quality.cc705f121c3b6fa71c800d9630935ac34bc08223a04601e35f41d5e9b5dd5207.png) +![ফলের গুণমান পরীক্ষার জন্য একটি রেফারেন্স IoT আর্কিটেকচার](../../../../../translated_images/bn/iot-reference-architecture-fruit-quality.cc705f121c3b6fa7.webp) উপরের চিত্রটি এই প্রোটোটাইপ অ্যাপ্লিকেশনের জন্য একটি রেফারেন্স আর্কিটেকচার দেখায়। @@ -124,7 +124,7 @@ IoT ডিভাইসের এমন একটি ট্রিগার প্ প্রোটোটাইপ ফল নির্ধারণকারী ডিভাইসের একাধিক উপাদান একে অপরের সাথে যোগাযোগ করে। -![উপাদানগুলির মধ্যে যোগাযোগ](../../../../../translated_images/bn/fruit-quality-detector-message-flow.adf2a65da8fd8741ac7af11361574de89adc126785d67606bb4d2ec00467e380.png) +![উপাদানগুলির মধ্যে যোগাযোগ](../../../../../translated_images/bn/fruit-quality-detector-message-flow.adf2a65da8fd8741.webp) * একটি প্রক্সিমিটি সেন্সর ফলের দূরত্ব পরিমাপ করে এবং এটি IoT হাবে পাঠায় * ক্যামেরা নিয়ন্ত্রণের জন্য IoT হাব থেকে ক্যামেরা ডিভাইসে কমান্ড পাঠানো হয় diff --git a/translations/bn/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md b/translations/bn/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md index e4f81fce8..e22919d9a 100644 --- a/translations/bn/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md +++ b/translations/bn/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md @@ -20,7 +20,7 @@ Grove টাইম অফ ফ্লাইট সেন্সরটি র‌্ টাইম অফ ফ্লাইট সেন্সর সংযুক্ত করুন। -![একটি Grove টাইম অফ ফ্লাইট সেন্সর](../../../../../translated_images/bn/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![একটি Grove টাইম অফ ফ্লাইট সেন্সর](../../../../../translated_images/bn/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. Grove কেবলের এক প্রান্ত টাইম অফ ফ্লাইট সেন্সরের সকেটে প্রবেশ করান। এটি শুধুমাত্র একটি নির্দিষ্ট দিকেই প্রবেশ করবে। diff --git a/translations/bn/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md b/translations/bn/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md index ccfa7951d..a45569819 100644 --- a/translations/bn/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md +++ b/translations/bn/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md @@ -36,11 +36,11 @@ CounterFit অ্যাপে দূরত্ব সেন্সর যোগ 1. দূরত্ব সেন্সর তৈরি করতে **Add** বোতামটি নির্বাচন করুন। - ![দূরত্ব সেন্সরের সেটিংস](../../../../../translated_images/bn/counterfit-create-distance-sensor.967c9fb98f27888d95920c9784d004c972490eb71f70397fe13bd70a79a879a3.png) + ![দূরত্ব সেন্সরের সেটিংস](../../../../../translated_images/bn/counterfit-create-distance-sensor.967c9fb98f27888d.webp) দূরত্ব সেন্সর তৈরি হবে এবং সেন্সর তালিকায় প্রদর্শিত হবে। - ![তৈরি করা দূরত্ব সেন্সর](../../../../../translated_images/bn/counterfit-distance-sensor.079eefeeea0b68afc36431ce8fcbe2f09a7e4916ed1cd5cb30e696db53bc18fa.png) + ![তৈরি করা দূরত্ব সেন্সর](../../../../../translated_images/bn/counterfit-distance-sensor.079eefeeea0b68af.webp) ## দূরত্ব সেন্সর প্রোগ্রাম করুন diff --git a/translations/bn/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md b/translations/bn/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md index 9d217ac7b..fcfa088a2 100644 --- a/translations/bn/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md +++ b/translations/bn/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md @@ -20,7 +20,7 @@ Grove টাইম অফ ফ্লাইট সেন্সরটি Wio Termin টাইম অফ ফ্লাইট সেন্সরটি সংযোগ করুন। -![একটি Grove টাইম অফ ফ্লাইট সেন্সর](../../../../../translated_images/bn/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![একটি Grove টাইম অফ ফ্লাইট সেন্সর](../../../../../translated_images/bn/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. Grove কেবলের এক প্রান্ত টাইম অফ ফ্লাইট সেন্সরের সকেটে প্রবেশ করান। এটি শুধুমাত্র একটি নির্দিষ্ট দিকেই প্রবেশ করবে। diff --git a/translations/bn/5-retail/lessons/1-train-stock-detector/README.md b/translations/bn/5-retail/lessons/1-train-stock-detector/README.md index 37b51e1c6..40974601d 100644 --- a/translations/bn/5-retail/lessons/1-train-stock-detector/README.md +++ b/translations/bn/5-retail/lessons/1-train-stock-detector/README.md @@ -1,6 +1,6 @@ # স্টক ডিটেক্টর প্রশিক্ষণ করুন -![এই পাঠের একটি স্কেচনোট ওভারভিউ](../../../../../translated_images/bn/lesson-19.cf6973cecadf080c4b526310620dc4d6f5994c80fb0139c6f378cc9ca2d435cd.jpg) +![এই পাঠের একটি স্কেচনোট ওভারভিউ](../../../../../translated_images/bn/lesson-19.cf6973cecadf080c.webp) > স্কেচনোট করেছেন [নিত্য নারাসিমহান](https://github.com/nitya)। বড় সংস্করণের জন্য ছবিতে ক্লিক করুন। @@ -36,7 +36,7 @@ ইমেজ ক্লাসিফিকেশন হলো পুরো ছবিকে শ্রেণীবদ্ধ করা - পুরো ছবিটি প্রতিটি ট্যাগের সাথে কতটা মিলে যায় তার সম্ভাবনা নির্ধারণ করা। আপনি মডেল প্রশিক্ষণের জন্য ব্যবহৃত প্রতিটি ট্যাগের জন্য সম্ভাবনা ফিরে পাবেন। -![কাজু বাদাম এবং টমেটো পেস্টের ইমেজ ক্লাসিফিকেশন](../../../../../translated_images/bn/image-classifier-cashews-tomato.bc2e16ab8f05cf9ac0f59f73e32efc4227f9a5b601b90b2c60f436694547a965.png) +![কাজু বাদাম এবং টমেটো পেস্টের ইমেজ ক্লাসিফিকেশন](../../../../../translated_images/bn/image-classifier-cashews-tomato.bc2e16ab8f05cf9a.webp) উপরের উদাহরণে, দুটি ছবি একটি মডেল ব্যবহার করে শ্রেণীবদ্ধ করা হয়েছে যা কাজু বাদামের টব বা টমেটো পেস্টের ক্যান শ্রেণীবদ্ধ করতে প্রশিক্ষিত। প্রথম ছবিটি একটি কাজু বাদামের টব এবং এতে ইমেজ ক্লাসিফায়ার থেকে দুটি ফলাফল পাওয়া গেছে: @@ -60,7 +60,7 @@ > 🎓 *বাউন্ডিং বক্স* হলো বস্তুর চারপাশের বক্স। -![কাজু বাদাম এবং টমেটো পেস্টের অবজেক্ট ডিটেকশন](../../../../../translated_images/bn/object-detector-cashews-tomato.1af7c26686b4db0e709754aeb196f4e73271f54e2085db3bcccb70d4a0d84d97.png) +![কাজু বাদাম এবং টমেটো পেস্টের অবজেক্ট ডিটেকশন](../../../../../translated_images/bn/object-detector-cashews-tomato.1af7c26686b4db0e.webp) উপরের ছবিতে একটি কাজু বাদামের টব এবং তিনটি টমেটো পেস্টের ক্যান রয়েছে। অবজেক্ট ডিটেক্টর কাজু বাদাম শনাক্ত করেছে এবং বাউন্ডিং বক্সটি ফিরিয়ে দিয়েছে যা কাজু বাদাম ধারণ করে, এই ক্ষেত্রে ৯৭.৬% সম্ভাবনা। অবজেক্ট ডিটেক্টর তিনটি টমেটো পেস্টের ক্যানও শনাক্ত করেছে এবং তিনটি আলাদা বাউন্ডিং বক্স প্রদান করেছে, প্রতিটি শনাক্তকৃত ক্যানের জন্য একটি করে এবং প্রতিটির জন্য একটি শতাংশ সম্ভাবনা যে বাউন্ডিং বক্সটি একটি টমেটো পেস্টের ক্যান ধারণ করে। @@ -111,7 +111,7 @@ যখন আপনি আপনার প্রকল্প তৈরি করবেন, নিশ্চিত করুন যে আপনি পূর্বে তৈরি করা `stock-detector-training` রিসোর্সটি ব্যবহার করছেন। *Object Detection* প্রকল্প টাইপ এবং *Products on Shelves* ডোমেইন ব্যবহার করুন। - ![Custom Vision প্রকল্পের সেটিংস যেখানে নাম দেওয়া হয়েছে fruit-quality-detector, কোনো বিবরণ নেই, রিসোর্স সেট করা হয়েছে fruit-quality-detector-training, প্রকল্প টাইপ সেট করা হয়েছে classification, classification টাইপ সেট করা হয়েছে multi class এবং ডোমেইন সেট করা হয়েছে food](../../../../../translated_images/bn/custom-vision-create-object-detector-project.32d4fb9aa8e7e7375f8a799bfce517aca970f2cb65e42d4245c5e635c734ab29.png) + ![Custom Vision প্রকল্পের সেটিংস যেখানে নাম দেওয়া হয়েছে fruit-quality-detector, কোনো বিবরণ নেই, রিসোর্স সেট করা হয়েছে fruit-quality-detector-training, প্রকল্প টাইপ সেট করা হয়েছে classification, classification টাইপ সেট করা হয়েছে multi class এবং ডোমেইন সেট করা হয়েছে food](../../../../../translated_images/bn/custom-vision-create-object-detector-project.32d4fb9aa8e7e737.webp) ✅ Products on Shelves ডোমেইন বিশেষভাবে দোকানের তাকের স্টক শনাক্ত করার জন্য লক্ষ্যবস্তু। Microsoft ডকুমেন্টেশনের [Select a domain ডকুমেন্টেশন](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/select-domain?WT.mc_id=academic-17441-jabenn#object-detection) এ বিভিন্ন ডোমেইন সম্পর্কে আরও পড়ুন। @@ -133,11 +133,11 @@ 1. Microsoft ডকুমেন্টেশনের [Build an object detector quickstart এর Upload and tag images সেকশন](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/get-started-build-detector?WT.mc_id=academic-17441-jabenn#upload-and-tag-images) অনুসরণ করে আপনার প্রশিক্ষণের ছবিগুলো আপলোড করুন। শনাক্ত করতে চান এমন বস্তুর ধরন অনুযায়ী প্রাসঙ্গিক ট্যাগ তৈরি করুন। - ![পাকা এবং কাঁচা কলার ছবি আপলোডের ডায়ালগ](../../../../../translated_images/bn/image-upload-object-detector.77c7892c3093cb59b79018edecd678749a75d71a099bc8a2d2f2f76320f88a5b.png) + ![পাকা এবং কাঁচা কলার ছবি আপলোডের ডায়ালগ](../../../../../translated_images/bn/image-upload-object-detector.77c7892c3093cb59.webp) যখন আপনি বস্তুর জন্য বাউন্ডিং বক্স আঁকবেন, তখন সেগুলো বস্তুর চারপাশে সুন্দরভাবে আঁকুন। সব ছবির জন্য বাউন্ডিং বক্স আঁকতে কিছুটা সময় লাগতে পারে, তবে টুলটি অনুমান করবে কোনগুলো বাউন্ডিং বক্স, যা কাজটি দ্রুত করবে। - ![টমেটো পেস্ট ট্যাগিং](../../../../../translated_images/bn/object-detector-tag-tomato-paste.f47c362fb0f0eb582f3bc68cf3855fb43a805106395358d41896a269c210b7b4.png) + ![টমেটো পেস্ট ট্যাগিং](../../../../../translated_images/bn/object-detector-tag-tomato-paste.f47c362fb0f0eb58.webp) > 💁 যদি প্রতিটি বস্তুর জন্য আপনার ১৫টির বেশি ছবি থাকে, তাহলে আপনি ১৫টি ছবি আপলোড করার পর প্রশিক্ষণ দিতে পারেন এবং **Suggested tags** ফিচারটি ব্যবহার করতে পারেন। এটি প্রশিক্ষিত মডেল ব্যবহার করে ট্যাগবিহীন ছবিতে বস্তু শনাক্ত করবে। আপনি শনাক্তকৃত বস্তুগুলো নিশ্চিত করতে পারবেন বা প্রত্যাখ্যান করে নতুন করে বাউন্ডিং বক্স আঁকতে পারবেন। এটি *অনেক* সময় বাঁচাতে পারে। @@ -155,7 +155,7 @@ 1. **Quick Test** বোতামটি ব্যবহার করে পরীক্ষার ছবিগুলো আপলোড করুন এবং নিশ্চিত করুন যে বস্তুগুলো শনাক্ত হয়েছে। পূর্বে প্রশিক্ষণের জন্য ব্যবহৃত কোনো ছবির পরিবর্তে পরীক্ষার জন্য তৈরি ছবিগুলো ব্যবহার করুন। - ![৩টি টমেটো পেস্টের ক্যান শনাক্ত হয়েছে, সম্ভাবনা ৩৮%, ৩৫.৫% এবং ৩৪.৬%](../../../../../translated_images/bn/object-detector-detected-tomato-paste.52656fe87af4c37b4ee540526d63e73ed075da2e54a9a060aa528e0c562fb1b6.png) + ![৩টি টমেটো পেস্টের ক্যান শনাক্ত হয়েছে, সম্ভাবনা ৩৮%, ৩৫.৫% এবং ৩৪.৬%](../../../../../translated_images/bn/object-detector-detected-tomato-paste.52656fe87af4c37b.webp) 1. আপনার কাছে থাকা সব পরীক্ষার ছবি ব্যবহার করে দেখুন এবং সম্ভাবনাগুলো পর্যবেক্ষণ করুন। diff --git a/translations/bn/5-retail/lessons/2-check-stock-device/README.md b/translations/bn/5-retail/lessons/2-check-stock-device/README.md index 3f8112340..d45d55452 100644 --- a/translations/bn/5-retail/lessons/2-check-stock-device/README.md +++ b/translations/bn/5-retail/lessons/2-check-stock-device/README.md @@ -1,6 +1,6 @@ # IoT ডিভাইস থেকে স্টক পরীক্ষা করুন -![এই পাঠের একটি স্কেচনোট ওভারভিউ](../../../../../translated_images/bn/lesson-20.0211df9551a8abb300fc8fcf7dc2789468dea2eabe9202273ac077b0ba37f15e.jpg) +![এই পাঠের একটি স্কেচনোট ওভারভিউ](../../../../../translated_images/bn/lesson-20.0211df9551a8abb3.webp) > স্কেচনোট: [নিত্য নারাসিমহান](https://github.com/nitya)। বড় সংস্করণের জন্য ছবিতে ক্লিক করুন। @@ -62,7 +62,7 @@ 1. ইটারেশনের জন্য **Publish** বোতামটি নির্বাচন করুন। - ![পাবলিশ বোতাম](../../../../../translated_images/bn/custom-vision-object-detector-publish-button.34ee379fc650ccb9856c3868d0003f413b9529f102fc73c37168c98d721cc293.png) + ![পাবলিশ বোতাম](../../../../../translated_images/bn/custom-vision-object-detector-publish-button.34ee379fc650ccb9.webp) 1. *Publish Model* ডায়ালগে, *Prediction resource* সেট করুন `stock-detector-prediction` রিসোর্সে যা আপনি পূর্ববর্তী পাঠে তৈরি করেছিলেন। নাম `Iteration2` রাখুন এবং **Publish** বোতামটি নির্বাচন করুন। @@ -76,7 +76,7 @@ এছাড়াও *Prediction-Key* মানের একটি কপি নিন। এটি একটি সুরক্ষিত কী যা মডেলটি কল করার সময় পাস করতে হবে। শুধুমাত্র এই কী পাস করা অ্যাপ্লিকেশনগুলো মডেলটি ব্যবহার করতে পারবে, অন্য কোনো অ্যাপ্লিকেশন প্রত্যাখ্যাত হবে। - ![প্রেডিকশন API ডায়ালগ, যেখানে URL এবং কী দেখানো হয়েছে](../../../../../translated_images/bn/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![প্রেডিকশন API ডায়ালগ, যেখানে URL এবং কী দেখানো হয়েছে](../../../../../translated_images/bn/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ যখন একটি নতুন ইটারেশন প্রকাশিত হয়, তখন এর একটি ভিন্ন নাম থাকে। আপনি কীভাবে IoT ডিভাইসটি ব্যবহার করা ইটারেশন পরিবর্তন করবেন বলে মনে করেন? @@ -95,7 +95,7 @@ Custom Vision-এর **Predictions** ট্যাবে প্রেডিকশনের ফলাফলে বাউন্ডিং বক্সগুলো সেই ছবিতে আঁকা থাকে যা প্রেডিকশনের জন্য পাঠানো হয়েছিল। -![একটি তাকের উপর ৪টি টমেটো পেস্টের ক্যান, যেখানে ৪টি সনাক্তকরণের জন্য প্রেডিকশন দেখানো হয়েছে](../../../../../translated_images/bn/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) +![একটি তাকের উপর ৪টি টমেটো পেস্টের ক্যান, যেখানে ৪টি সনাক্তকরণের জন্য প্রেডিকশন দেখানো হয়েছে](../../../../../translated_images/bn/custom-vision-stock-prediction.942266ab1bcca341.webp) উপরের ছবিতে, ৪টি টমেটো পেস্টের ক্যান সনাক্ত করা হয়েছে। ফলাফলে প্রতিটি সনাক্তকৃত অবজেক্টের জন্য একটি লাল বর্গাকার চিহ্নিত করা হয়েছে, যা ছবির বাউন্ডিং বক্স নির্দেশ করে। @@ -103,7 +103,7 @@ Custom Vision-এর **Predictions** ট্যাবে প্রেডিকশ বাউন্ডিং বক্স ৪টি মান দ্বারা সংজ্ঞায়িত হয় - top, left, height এবং width। এই মানগুলো ০-১ স্কেলে থাকে, যা ছবির আকারের শতাংশ হিসেবে অবস্থানগুলো উপস্থাপন করে। ছবির উপরের বাম কোণ (০,০) অবস্থান হিসেবে ধরা হয়, তাই top মানটি উপরের দিক থেকে দূরত্ব নির্দেশ করে, এবং বাউন্ডিং বক্সের নিচের অংশটি top এবং height এর যোগফল। -![একটি টমেটো পেস্টের ক্যানের চারপাশে একটি বাউন্ডিং বক্স](../../../../../translated_images/bn/bounding-box.1420a7ea0d3d15f71e1ffb5cf4b2271d184fac051f990abc541975168d163684.png) +![একটি টমেটো পেস্টের ক্যানের চারপাশে একটি বাউন্ডিং বক্স](../../../../../translated_images/bn/bounding-box.1420a7ea0d3d15f7.webp) উপরের ছবিটি ৬০০ পিক্সেল চওড়া এবং ৮০০ পিক্সেল লম্বা। বাউন্ডিং বক্সটি ৩২০ পিক্সেল নিচ থেকে শুরু হয়, যা top মান ০.৪ (৮০০ x ০.৪ = ৩২০) নির্দেশ করে। বাম দিক থেকে বাউন্ডিং বক্সটি ২৪০ পিক্সেল দূরে শুরু হয়, যা left মান ০.৪ (৬০০ x ০.৪ = ২৪০) নির্দেশ করে। বাউন্ডিং বক্সের উচ্চতা ২৪০ পিক্সেল, যা height মান ০.৩ (৮০০ x ০.৩ = ২৪০) নির্দেশ করে। বাউন্ডিং বক্সের প্রস্থ ১২০ পিক্সেল, যা width মান ০.২ (৬০০ x ০.২ = ১২০) নির্দেশ করে। @@ -118,7 +118,7 @@ Custom Vision-এর **Predictions** ট্যাবে প্রেডিকশ আপনি বাউন্ডিং বক্স এবং সম্ভাব্যতাগুলো একত্রিত করে সনাক্তকরণের নির্ভুলতা মূল্যায়ন করতে পারেন। উদাহরণস্বরূপ, একটি অবজেক্ট ডিটেক্টর একাধিক অবজেক্ট সনাক্ত করতে পারে যা একে অপরের সাথে ওভারল্যাপ করে, যেমন একটি ক্যানের ভিতরে আরেকটি ক্যান সনাক্ত করা। আপনার কোড বাউন্ডিং বক্সগুলো পরীক্ষা করতে পারে, বুঝতে পারে যে এটি অসম্ভব, এবং যেকোনো অবজেক্ট যা উল্লেখযোগ্যভাবে ওভারল্যাপ করে তা উপেক্ষা করতে পারে। -![একটি টমেটো পেস্টের ক্যানের উপর দুটি ওভারল্যাপ করা বাউন্ডিং বক্স](../../../../../translated_images/bn/overlap-object-detection.d431e03cae75072a2760430eca7f2c5fdd43045bfd72dadcbf12711f7cd6c2ae.png) +![একটি টমেটো পেস্টের ক্যানের উপর দুটি ওভারল্যাপ করা বাউন্ডিং বক্স](../../../../../translated_images/bn/overlap-object-detection.d431e03cae75072a.webp) উপরের উদাহরণে, একটি বাউন্ডিং বক্স ৭৮.৩% সম্ভাব্যতাসহ একটি টমেটো পেস্টের ক্যান নির্দেশ করে। একটি দ্বিতীয় বাউন্ডিং বক্স সামান্য ছোট এবং প্রথম বাউন্ডিং বক্সের ভিতরে ৬৪.৩% সম্ভাব্যতাসহ রয়েছে। আপনার কোড বাউন্ডিং বক্সগুলো পরীক্ষা করতে পারে, দেখে যে তারা সম্পূর্ণ ওভারল্যাপ করেছে, এবং নিম্ন সম্ভাব্যতাকে উপেক্ষা করতে পারে কারণ একটি ক্যানের ভিতরে আরেকটি থাকা সম্ভব নয়। diff --git a/translations/bn/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md b/translations/bn/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md index 1fee7146d..e5e938af5 100644 --- a/translations/bn/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md +++ b/translations/bn/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md @@ -67,7 +67,7 @@ আপনি তোলা ছবিটি এবং এই মানগুলো **Predictions** ট্যাবে Custom Vision-এ দেখতে পারবেন। - ![তাকের উপর ৪টি টমেটো পেস্টের ক্যান এবং ৪টি ডিটেকশনের জন্য ৩৫.৮%, ৩৩.৫%, ২৫.৭% এবং ১৬.৬% প্রেডিকশন](../../../../../translated_images/bn/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![তাকের উপর ৪টি টমেটো পেস্টের ক্যান এবং ৪টি ডিটেকশনের জন্য ৩৫.৮%, ৩৩.৫%, ২৫.৭% এবং ১৬.৬% প্রেডিকশন](../../../../../translated_images/bn/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 আপনি এই কোডটি [code-detect/pi](../../../../../5-retail/lessons/2-check-stock-device/code-detect/pi) অথবা [code-detect/virtual-iot-device](../../../../../5-retail/lessons/2-check-stock-device/code-detect/virtual-iot-device) ফোল্ডারে খুঁজে পেতে পারেন। diff --git a/translations/bn/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md b/translations/bn/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md index 95e2bec8c..f12dcc723 100644 --- a/translations/bn/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md +++ b/translations/bn/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md @@ -95,7 +95,7 @@ আপনি তোলা ছবিটি এবং এই মানগুলো **Predictions** ট্যাবে Custom Vision-এ দেখতে পারবেন। - ![শেলফে ৪টি টমেটো পেস্টের ক্যান এবং ৪টি ডিটেকশনের সম্ভাবনা ৩৫.৮%, ৩৩.৫%, ২৫.৭% এবং ১৬.৬%](../../../../../translated_images/bn/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![শেলফে ৪টি টমেটো পেস্টের ক্যান এবং ৪টি ডিটেকশনের সম্ভাবনা ৩৫.৮%, ৩৩.৫%, ২৫.৭% এবং ১৬.৬%](../../../../../translated_images/bn/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 আপনি এই কোডটি [code-detect/wio-terminal](../../../../../5-retail/lessons/2-check-stock-device/code-detect/wio-terminal) ফোল্ডারে খুঁজে পেতে পারেন। diff --git a/translations/bn/6-consumer/lessons/1-speech-recognition/README.md b/translations/bn/6-consumer/lessons/1-speech-recognition/README.md index 75878aadb..fcd0f2d94 100644 --- a/translations/bn/6-consumer/lessons/1-speech-recognition/README.md +++ b/translations/bn/6-consumer/lessons/1-speech-recognition/README.md @@ -1,6 +1,6 @@ # IoT ডিভাইস দিয়ে ভাষা শনাক্তকরণ -![এই পাঠের একটি স্কেচনোটের সারাংশ](../../../../../translated_images/bn/lesson-21.e34de51354d6606fb5ee08d8c89d0222eea0a2a7aaf744a8805ae847c4f69dc4.jpg) +![এই পাঠের একটি স্কেচনোটের সারাংশ](../../../../../translated_images/bn/lesson-21.e34de51354d6606f.webp) > স্কেচনোট: [নিত্য নারাসিমহান](https://github.com/nitya)। বড় সংস্করণের জন্য ছবিতে ক্লিক করুন। @@ -51,7 +51,7 @@ ডায়নামিক মাইক্রোফোন কাজ করার জন্য কোনো পাওয়ারের প্রয়োজন হয় না, বৈদ্যুতিক সংকেত সম্পূর্ণ মাইক্রোফোন থেকেই তৈরি হয়। - ![প্যাটি স্মিথ একটি শুর SM58 (ডায়নামিক কার্ডিওইড টাইপ) মাইক্রোফোনে গান গাইছেন](../../../../../translated_images/bn/dynamic-mic.8babac890a2d80dfb0874b5bf37d4b851fe2aeb9da6fd72945746176978bf3bb.jpg) + ![প্যাটি স্মিথ একটি শুর SM58 (ডায়নামিক কার্ডিওইড টাইপ) মাইক্রোফোনে গান গাইছেন](../../../../../translated_images/bn/dynamic-mic.8babac890a2d80df.webp) * **রিবন** - রিবন মাইক্রোফোন ডায়নামিক মাইক্রোফোনের মতোই, তবে এতে ডায়াফ্রামের বদলে একটি ধাতব ফিতা থাকে। এই ফিতা একটি চুম্বকীয় ক্ষেত্রে চলাচল করে বৈদ্যুতিক প্রবাহ তৈরি করে। ডায়নামিক মাইক্রোফোনের মতো, রিবন মাইক্রোফোন কাজ করার জন্য পাওয়ারের প্রয়োজন হয় না। @@ -59,11 +59,11 @@ * **কনডেনসার** - কনডেনসার মাইক্রোফোনে একটি পাতলা ধাতব ডায়াফ্রাম এবং একটি স্থির ধাতব ব্যাকপ্লেট থাকে। উভয়ের মধ্যে বিদ্যুৎ প্রয়োগ করা হয় এবং ডায়াফ্রাম কম্পিত হলে প্লেটগুলোর মধ্যে স্থির চার্জ পরিবর্তিত হয়, যা সংকেত তৈরি করে। কনডেনসার মাইক্রোফোন কাজ করার জন্য পাওয়ারের প্রয়োজন হয় - একে *ফ্যান্টম পাওয়ার* বলা হয়। - ![AKG Acoustics-এর C451B ছোট-ডায়াফ্রাম কনডেনসার মাইক্রোফোন](../../../../../translated_images/bn/condenser-mic.6f6ed5b76ca19e0ec3fd0c544601542d4479a6cb7565db336de49fbbf69f623e.jpg) + ![AKG Acoustics-এর C451B ছোট-ডায়াফ্রাম কনডেনসার মাইক্রোফোন](../../../../../translated_images/bn/condenser-mic.6f6ed5b76ca19e0e.webp) * **MEMS** - মাইক্রোইলেক্ট্রোমেকানিক্যাল সিস্টেম মাইক্রোফোন, বা MEMS, হলো একটি চিপে থাকা মাইক্রোফোন। এগুলোতে একটি চাপ-সংবেদনশীল ডায়াফ্রাম সিলিকন চিপে খোদাই করা থাকে এবং কনডেনসার মাইক্রোফোনের মতো কাজ করে। এই মাইক্রোফোনগুলো খুবই ছোট হতে পারে এবং সার্কিটে সংযুক্ত করা যায়। - ![সার্কিট বোর্ডে একটি MEMS মাইক্রোফোন](../../../../../translated_images/bn/mems-microphone.80574019e1f5e4d9ee72fed720ecd25a39fc2969c91355d17ebb24ba4159e4c4.png) + ![সার্কিট বোর্ডে একটি MEMS মাইক্রোফোন](../../../../../translated_images/bn/mems-microphone.80574019e1f5e4d9.webp) উপরের ছবিতে, **LEFT** লেবেলযুক্ত চিপটি একটি MEMS মাইক্রোফোন, যার ডায়াফ্রাম এক মিলিমিটারেরও কম চওড়া। @@ -159,7 +159,7 @@ ML মডেল সবসময় একই আকারের ডেটা গ্ ## স্পিচকে টেক্সটে রূপান্তর করুন -![স্পিচ সার্ভিসের লোগো](../../../../../translated_images/bn/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![স্পিচ সার্ভিসের লোগো](../../../../../translated_images/bn/azure-speech-logo.a1f08c4befb0159f.webp) আগের প্রকল্পে ইমেজ ক্লাসিফিকেশনের মতো, এমন প্রি-বিল্ট AI সার্ভিস রয়েছে যা অডিও ফাইল হিসেবে স্পিচ নিয়ে তা টেক্সটে রূপান্তর করতে পারে। এই ধরনের একটি সার্ভিস হলো স্পিচ সার্ভিস, যা Cognitive Services-এর অংশ, প্রি-বিল্ট AI সার্ভিস যা আপনি আপনার অ্যাপে ব্যবহার করতে পারেন। diff --git a/translations/bn/6-consumer/lessons/1-speech-recognition/pi-audio.md b/translations/bn/6-consumer/lessons/1-speech-recognition/pi-audio.md index 42aa64417..f3da34235 100644 --- a/translations/bn/6-consumer/lessons/1-speech-recognition/pi-audio.md +++ b/translations/bn/6-consumer/lessons/1-speech-recognition/pi-audio.md @@ -16,13 +16,13 @@ #### কাজ - বোতাম সংযোগ করুন -![একটি গ্রোভ বোতাম](../../../../../translated_images/bn/grove-button.a70cfbb809a8563681003250cf5b06d68cdcc68624f9e2f493d5a534ae2da1e5.png) +![একটি গ্রোভ বোতাম](../../../../../translated_images/bn/grove-button.a70cfbb809a85636.webp) 1. গ্রোভ কেবলের এক প্রান্ত বোতাম মডিউলের সকেটে প্রবেশ করান। এটি শুধুমাত্র একটি নির্দিষ্ট দিকেই প্রবেশ করবে। 1. র‌্যাস্পবেরি পাই বন্ধ অবস্থায়, গ্রোভ কেবলের অন্য প্রান্তটি পাই-এর সাথে সংযুক্ত গ্রোভ বেস হ্যাটের **D5** চিহ্নিত ডিজিটাল সকেটে সংযুক্ত করুন। এই সকেটটি GPIO পিনের পাশে থাকা সকেটের সারির বাম দিক থেকে দ্বিতীয়। -![গ্রোভ বোতাম D5 সকেটে সংযুক্ত](../../../../../translated_images/bn/pi-button.c7a1a4f55943341ce1baf1057658e9a205804d4131d258e820c93f951df0abf3.png) +![গ্রোভ বোতাম D5 সকেটে সংযুক্ত](../../../../../translated_images/bn/pi-button.c7a1a4f55943341c.webp) ## অডিও রেকর্ড করুন diff --git a/translations/bn/6-consumer/lessons/1-speech-recognition/pi-microphone.md b/translations/bn/6-consumer/lessons/1-speech-recognition/pi-microphone.md index 97ac7fb95..abed92381 100644 --- a/translations/bn/6-consumer/lessons/1-speech-recognition/pi-microphone.md +++ b/translations/bn/6-consumer/lessons/1-speech-recognition/pi-microphone.md @@ -34,7 +34,7 @@ 1. যদি আপনি ReSpeaker 2-Mics Pi HAT ব্যবহার করেন, তাহলে Grove বেস হ্যাটটি সরিয়ে ফেলুন এবং তার জায়গায় ReSpeaker হ্যাটটি লাগান। - ![ReSpeaker হ্যাট সহ একটি রাস্পবেরি পাই](../../../../../translated_images/bn/pi-respeaker-hat.f00fabe7dd039a93e2e0aa0fc946c9af0c6a9eb17c32fa1ca097fb4e384f69f0.png) + ![ReSpeaker হ্যাট সহ একটি রাস্পবেরি পাই](../../../../../translated_images/bn/pi-respeaker-hat.f00fabe7dd039a93.webp) এই পাঠের পরে একটি Grove বোতাম প্রয়োজন হবে, তবে এই হ্যাটে একটি বিল্ট-ইন বোতাম রয়েছে, তাই Grove বেস হ্যাটটি প্রয়োজন নেই। diff --git a/translations/bn/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md b/translations/bn/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md index cd1df8c09..bf5765470 100644 --- a/translations/bn/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md +++ b/translations/bn/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md @@ -10,7 +10,7 @@ ✅ [ডাইরেক্ট মেমোরি অ্যাক্সেস সম্পর্কিত উইকিপিডিয়া পৃষ্ঠায়](https://wikipedia.org/wiki/Direct_memory_access) আরও পড়ুন। -![মাইক্রোফোন থেকে অডিও ADC-তে যায়, তারপর DMAC-এ। এটি একটি বাফারে লেখে। যখন এই বাফার পূর্ণ হয়, এটি প্রক্রিয়াকরণ করা হয় এবং DMAC দ্বিতীয় বাফারে লেখে](../../../../../translated_images/bn/dmac-adc-buffers.4509aee49145c90bc2e1be472b8ed2ddfcb2b6a81ad3e559114aca55f5fff759.png) +![মাইক্রোফোন থেকে অডিও ADC-তে যায়, তারপর DMAC-এ। এটি একটি বাফারে লেখে। যখন এই বাফার পূর্ণ হয়, এটি প্রক্রিয়াকরণ করা হয় এবং DMAC দ্বিতীয় বাফারে লেখে](../../../../../translated_images/bn/dmac-adc-buffers.4509aee49145c90b.webp) DMAC নির্দিষ্ট ব্যবধানে ADC থেকে অডিও ধারণ করতে পারে, যেমন ১৬KHz অডিওর জন্য প্রতি সেকেন্ডে ১৬,০০০ বার। এটি ধারণকৃত ডেটা একটি পূর্বনির্ধারিত মেমোরি বাফারে লিখতে পারে, এবং যখন এটি পূর্ণ হয়, তখন এটি আপনার কোডে প্রক্রিয়াকরণের জন্য উপলব্ধ করে। এই মেমোরি ব্যবহার অডিও ধারণে বিলম্ব ঘটাতে পারে, তবে আপনি একাধিক বাফার সেট আপ করতে পারেন। DMAC বাফার ১-এ লেখে, তারপর যখন এটি পূর্ণ হয়, আপনার কোডকে বাফার ১ প্রক্রিয়াকরণ করতে জানায়, এবং DMAC বাফার ২-এ লেখে। যখন বাফার ২ পূর্ণ হয়, এটি আপনার কোডকে জানায় এবং আবার বাফার ১-এ লেখে। এভাবে, যতক্ষণ আপনি প্রতিটি বাফার প্রক্রিয়াকরণ করতে বাফার পূর্ণ হওয়ার সময়ের চেয়ে কম সময় নেন, ততক্ষণ আপনি কোনো ডেটা হারাবেন না। diff --git a/translations/bn/6-consumer/lessons/2-language-understanding/README.md b/translations/bn/6-consumer/lessons/2-language-understanding/README.md index 3d8571956..19e5433f8 100644 --- a/translations/bn/6-consumer/lessons/2-language-understanding/README.md +++ b/translations/bn/6-consumer/lessons/2-language-understanding/README.md @@ -1,6 +1,6 @@ # ভাষা বোঝা -![এই পাঠের একটি স্কেচনোট সংক্ষিপ্ত বিবরণ](../../../../../translated_images/bn/lesson-22.6148ea28500d9e00c396aaa2649935fb6641362c8f03d8e5e90a676977ab01dd.jpg) +![এই পাঠের একটি স্কেচনোট সংক্ষিপ্ত বিবরণ](../../../../../translated_images/bn/lesson-22.6148ea28500d9e00.webp) > স্কেচনোট: [নিত্য নারাসিমহান](https://github.com/nitya)। বড় সংস্করণের জন্য ছবিতে ক্লিক করুন। @@ -46,7 +46,7 @@ ## একটি ভাষা বোঝার মডেল তৈরি করুন -![LUIS লোগো](../../../../../translated_images/bn/luis-logo.5cb4f3e88c020ee6df4f614e8831f4a4b6809a7247bf52085fb48d629ef9be52.png) +![LUIS লোগো](../../../../../translated_images/bn/luis-logo.5cb4f3e88c020ee6.webp) আপনি LUIS ব্যবহার করে ভাষা বোঝার মডেল তৈরি করতে পারেন, যা মাইক্রোসফটের একটি ভাষা বোঝার পরিষেবা এবং এটি Cognitive Services-এর অংশ। @@ -169,7 +169,7 @@ Microsoft Docs-এ [Quickstart: Build your app in LUIS portal](https://docs.micr 1. প্রতিটি উদাহরণ প্রবেশ করার সময়, LUIS সত্তাগুলো সনাক্ত করতে শুরু করবে এবং যে কোনো সত্তা খুঁজে পেলে আন্ডারলাইন এবং লেবেল করবে। - ![LUIS উদাহরণগুলোর সংখ্যা এবং সময়ের একক আন্ডারলাইন করেছে](../../../../../translated_images/bn/luis-intent-examples.25716580b2d2723cf1bafdf277d015c7f046d8cfa20f27bddf3a0873ec45fab7.png) + ![LUIS উদাহরণগুলোর সংখ্যা এবং সময়ের একক আন্ডারলাইন করেছে](../../../../../translated_images/bn/luis-intent-examples.25716580b2d2723c.webp) ### কাজ - মডেল প্রশিক্ষণ এবং পরীক্ষা করুন diff --git a/translations/bn/6-consumer/lessons/3-spoken-feedback/README.md b/translations/bn/6-consumer/lessons/3-spoken-feedback/README.md index d4ece2598..69a97dc3d 100644 --- a/translations/bn/6-consumer/lessons/3-spoken-feedback/README.md +++ b/translations/bn/6-consumer/lessons/3-spoken-feedback/README.md @@ -1,6 +1,6 @@ # টাইমার সেট করুন এবং কথার মাধ্যমে প্রতিক্রিয়া দিন -![এই পাঠের একটি স্কেচনোট সংক্ষিপ্ত বিবরণ](../../../../../translated_images/bn/lesson-23.f38483e1d4df4828990d3f02d60e46c978b075d384ae7cb4f7bab738e107c850.jpg) +![এই পাঠের একটি স্কেচনোট সংক্ষিপ্ত বিবরণ](../../../../../translated_images/bn/lesson-23.f38483e1d4df4828.webp) > স্কেচনোট: [নিত্য নারাসিমহান](https://github.com/nitya)। বড় সংস্করণের জন্য ছবিতে ক্লিক করুন। diff --git a/translations/bn/6-consumer/lessons/4-multiple-language-support/README.md b/translations/bn/6-consumer/lessons/4-multiple-language-support/README.md index fe9e69882..39d8f3dd1 100644 --- a/translations/bn/6-consumer/lessons/4-multiple-language-support/README.md +++ b/translations/bn/6-consumer/lessons/4-multiple-language-support/README.md @@ -1,6 +1,6 @@ # একাধিক ভাষার সমর্থন -![এই পাঠের একটি স্কেচনোটের সারাংশ](../../../../../translated_images/bn/lesson-24.4246968ed058510ab275052e87ef9aa89c7b2f938915d103c605c04dc6cd5bb7.jpg) +![এই পাঠের একটি স্কেচনোটের সারাংশ](../../../../../translated_images/bn/lesson-24.4246968ed058510a.webp) > স্কেচনোট: [নিত্য নারাসিমহান](https://github.com/nitya)। বড় সংস্করণের জন্য ছবিতে ক্লিক করুন। @@ -74,7 +74,7 @@ ### Cognitive services Speech service -![স্পিচ সার্ভিসের লোগো](../../../../../translated_images/bn/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![স্পিচ সার্ভিসের লোগো](../../../../../translated_images/bn/azure-speech-logo.a1f08c4befb0159f.webp) গত কয়েকটি পাঠে আপনি যে স্পিচ সার্ভিস ব্যবহার করেছেন তার অনুবাদ ক্ষমতা রয়েছে স্পিচ সনাক্তকরণের জন্য। যখন আপনি স্পিচ সনাক্ত করেন, তখন আপনি একই ভাষায় স্পিচের টেক্সটের পাশাপাশি অন্যান্য ভাষায়ও টেক্সট অনুরোধ করতে পারেন। @@ -82,7 +82,7 @@ ### Cognitive services Translator service -![অনুবাদক পরিষেবার লোগো](../../../../../translated_images/bn/azure-translator-logo.c6ed3a4a433edfd2f11577eca105412c50b8396b194cbbd730723dd1d0793bcd.png) +![অনুবাদক পরিষেবার লোগো](../../../../../translated_images/bn/azure-translator-logo.c6ed3a4a433edfd2.webp) Translator পরিষেবা একটি নিবেদিত অনুবাদ পরিষেবা যা একটি ভাষা থেকে এক বা একাধিক লক্ষ্য ভাষায় টেক্সট অনুবাদ করতে পারে। অনুবাদ ছাড়াও, এটি অতিরিক্ত বৈশিষ্ট্যগুলোর একটি বিস্তৃত পরিসর সমর্থন করে, যেমন অশ্লীল শব্দ লুকানো। এটি আপনাকে একটি নির্দিষ্ট শব্দ বা বাক্যের জন্য একটি নির্দিষ্ট অনুবাদ প্রদান করতে দেয়, এমন শব্দ বা বাক্যাংশের সাথে কাজ করতে দেয় যা আপনি অনুবাদ করতে চান না, বা একটি নির্দিষ্ট সুপরিচিত অনুবাদ রয়েছে। diff --git a/translations/bn/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md b/translations/bn/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md index b1f445feb..4140931b1 100644 --- a/translations/bn/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md +++ b/translations/bn/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md @@ -25,7 +25,7 @@ > > উদাহরণস্বরূপ, যদি আপনি ইংরেজিতে LUIS প্রশিক্ষণ দেন, কিন্তু ব্যবহারকারী ভাষা হিসেবে ফ্রেঞ্চ ব্যবহার করতে চান, তাহলে Bing Translate ব্যবহার করে "set a 2 minute and 27 second timer" বাক্যটি ইংরেজি থেকে ফ্রেঞ্চে অনুবাদ করতে পারেন, তারপর **Listen translation** বাটন ব্যবহার করে অনুবাদটি আপনার মাইক্রোফোনে বলতে পারেন। > - > ![Bing Translate এ Listen translation বাটন](../../../../../translated_images/bn/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Bing Translate এ Listen translation বাটন](../../../../../translated_images/bn/bing-translate.348aa796d6efe2a9.webp) 1. `speech_api_key` এর নিচে অনুবাদক API কী যোগ করুন: diff --git a/translations/bn/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md b/translations/bn/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md index bc76a28f4..1114ee470 100644 --- a/translations/bn/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md +++ b/translations/bn/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md @@ -37,7 +37,7 @@ > > উদাহরণস্বরূপ, যদি আপনি ইংরেজিতে LUIS প্রশিক্ষণ দেন, কিন্তু ব্যবহারকারীর ভাষা হিসেবে ফ্রেঞ্চ ব্যবহার করতে চান, আপনি Bing Translate ব্যবহার করে "set a 2 minute and 27 second timer" এর মতো বাক্য ইংরেজি থেকে ফ্রেঞ্চে অনুবাদ করতে পারেন, তারপর **Listen translation** বোতামটি ব্যবহার করে অনুবাদটি আপনার মাইক্রোফোনে বলুন। > - > ![Bing Translate-এ Listen translation বোতাম](../../../../../translated_images/bn/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Bing Translate-এ Listen translation বোতাম](../../../../../translated_images/bn/bing-translate.348aa796d6efe2a9.webp) 1. `recognizer_config` এবং `recognizer` ঘোষণাগুলি নিম্নলিখিত দিয়ে প্রতিস্থাপন করুন: diff --git a/translations/bn/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md b/translations/bn/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md index 736a9302a..330e3bf2d 100644 --- a/translations/bn/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md +++ b/translations/bn/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md @@ -105,7 +105,7 @@ > > উদাহরণস্বরূপ, যদি আপনি LUIS-কে ইংরেজিতে প্রশিক্ষণ দেন, কিন্তু ব্যবহারকারীর ভাষা হিসেবে ফরাসি ব্যবহার করতে চান, তাহলে Bing Translate ব্যবহার করে "set a 2 minute and 27 second timer" ইংরেজি থেকে ফরাসিতে অনুবাদ করতে পারেন। এরপর **Listen translation** বোতামটি ব্যবহার করে অনুবাদটি আপনার মাইক্রোফোনে বলতে পারেন। > - > ![Bing Translate-এ Listen translation বোতাম](../../../../../translated_images/bn/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Bing Translate-এ Listen translation বোতাম](../../../../../translated_images/bn/bing-translate.348aa796d6efe2a9.webp) 1. `SPEECH_LOCATION`-এর নিচে অনুবাদক API কী এবং অবস্থান যোগ করুন: diff --git a/translations/bn/README.md b/translations/bn/README.md index 54ac9fe67..dd66fd577 100644 --- a/translations/bn/README.md +++ b/translations/bn/README.md @@ -1,213 +1,204 @@ -[![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/) +যদি আপনি আটকে যান অথবা এআই অ্যাপ তৈরির বিষয়ে কোনো প্রশ্ন থাকে, তাহলে অন্য শিক্ষার্থী এবং অভিজ্ঞ ডেভেলপারদের সাথে MCP সম্পর্কিত আলোচনায় যোগ দিন। এটি একটি সহায়ক কমিউনিটি যেখানে প্রশ্ন করতে পারেন এবং জ্ঞান বিনিময় করা হয় স্বাধীনভাবে। -### Azure AI Foundry কমিউনিটিতে যোগ দিন +যদি আপনি পণ্য সম্পর্কিত প্রতিক্রিয়া বা ত্রুটি পেয়ে থাকেন, তাহলে দেখুন: -যদি আপনি আটকে যান বা AI অ্যাপ নির্মাণ সম্পর্কে কোনো প্রশ্ন থাকে। MCP সম্পর্কে আলোচনা করতে সহপাঠী শিক্ষার্থী এবং অভিজ্ঞ ডেভেলপারদের সাথে যুক্ত হন। এটি একটি সহায়ক কমিউনিটি যেখানে প্রশ্ন স্বাগত এবং জ্ঞান স্বাধীনভাবে ভাগ করা হয়। - -[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) - -যদি আপনার পণ্য প্রতিক্রিয়া বা ত্রুটি থাকে প্ল্যাটফর্ম তৈরি করার সময়, পরিদর্শন করুন: - -[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) - -এই সম্পদগুলি ব্যবহার শুরু করার জন্য এই ধাপগুলি অনুসরণ করুন: +নিম্নলিখিত ধাপগুলি অনুসরণ করে এই সংস্থানগুলি ব্যবহার শুরু করুন: 1. **রিপোজিটরি ফর্ক করুন**: ক্লিক করুন [![GitHub forks](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) 2. **রিপোজিটরি ক্লোন করুন**: `git clone https://github.com/microsoft/IoT-For-Beginners.git` -3. [**Microsoft Foundry Discord-এ যোগ দিন এবং বিশেষজ্ঞ এবং সহকর্মী ডেভেলপারদের সাথে পরিচিত হন**](https://discord.com/invite/ByRwuEEgH4) +3. [**মাইক্রোসফট ফাউন্ড্রি ডিসকর্ডে যোগ দিন এবং বিশেষজ্ঞ ও অন্য ডেভেলপারদের সাথে মিলিত হন**](https://discord.com/invite/ByRwuEEgH4) ### 🌐 বহুভাষিক সমর্থন -#### GitHub Action এর মাধ্যমে সমর্থিত (স্বয়ংক্রিয় ও সর্বদা হালনাগাদ) +#### গিটহাব অ্যাকশনের মাধ্যমে সমর্থিত (স্বয়ংক্রিয় ও সর্বদা আধুনিক) - -[Arabic](../ar/README.md) | [Bengali](./README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) - -> **স্থানীয়ভাবে ক্লোন করতে চান?** - -> এই রিপোজিটরিতে ৫০+ ভাষার অনুবাদ অন্তর্ভুক্ত রয়েছে যা ডাউনলোড আকার উল্লেখযোগ্যভাবে বৃদ্ধি করে। অনুবাদ ছাড়া ক্লোন করতে স্পার্স চেকআউট ব্যবহার করুন: -> ```bash +> **লোকালি ক্লোন করা প্রেফার করেন?** +> +> এই রিপোজিটরিতে ৫০+ ভাষার অনুবাদ অন্তর্ভুক্ত রয়েছে যা ডাউনলোড সাইজ অনেক বাড়িয়ে দেয়। অনুবাদ ছাড়া ক্লোন করতে, স্পার্স চেকআউট ব্যবহার করুন: +> +> **Bash / macOS / Linux:** +> > ```bash > git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git > cd IoT-For-Beginners > git sparse-checkout set --no-cone '/*' '!translations' '!translated_images' > ``` -> এটি আপনাকে কোর্স সম্পন্ন করার জন্য যা দরকার তা দ্রুত ডাউনলোডের মাধ্যমে দেবে। - +> +> **CMD (Windows):** +> > ```cmd +> git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git +> cd IoT-For-Beginners +> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" +> ``` +> +> এটি আপনাকে একটি দ্রুত ডাউনলোডের মাধ্যমে পুরো কোর্স সম্পন্ন করতে প্রয়োজনীয় সবকিছু দেবে। # IoT ফর বিগিনার্স - একটি কারিকুলাম -মাইক্রোসফটের Azure ক্লাউড অ্যাডভোকেটরা IoT বেসিক সম্পর্কে ১২ সপ্তাহ, ২৪টি পাঠের কারিকুলাম উপস্থাপন করতে পেরে আনন্দিত। প্রত্যেক পাঠে থাকছে পাঠের আগে ও পরে কুইজ, পাঠ সম্পন্ন করার লিখিত নির্দেশনা, সমাধান, একটি অ্যাসাইনমেন্ট এবং আরো অনেক কিছু। আমাদের প্রকল্প-ভিত্তিক শিক্ষাদানের মাধ্যম আপনাকে শেখার সঙ্গে সঙ্গেই তৈরি করার সুযোগ দেয়, যা নতুন দক্ষতা অর্জনে প্রমাণিত পদ্ধতি। +মাইক্রোসফটের আজুর ক্লাউড অ্যাডভোকেটরা গর্বের সাথে ১২ সপ্তাহ, ২৪টি পাঠের একটি কারিকুলাম উপস্থাপন করছে যেখানে IoT এর বেসিক বিষয়গুলি আলোচনা করা হয়েছে। প্রতিটি পাঠের সাথে পূর্ব ও পরবর্তী কুইজ, পাঠ সম্পাদনের জন্য লিখিত নির্দেশনা, সমাধান, একটি অ্যাসাইনমেন্ট এবং আরও অনেক কিছু অন্তর্ভুক্ত রয়েছে। আমাদের প্রকল্পভিত্তিক শিক্ষাদান পদ্ধতি আপনাকে নির্মাণের মাধ্যমে শেখার সুযোগ দেয় যা নতুন দক্ষতা অর্জনের একটি প্রমাণিত পদ্ধতি। -প্রকল্পগুলি খাদ্যের ফার্ম থেকে টেবিলে যাত্রা নিয়ে তৈরি। এর মধ্যে রয়েছে কৃষি, লজিস্টিকস, উৎপাদন, খুচরা ও ভোক্তা - সবই IoT ডিভাইসের জন্য জনপ্রিয় শিল্প ক্ষেত্র। +প্রকল্পগুলো খাদ্য উৎপাদন থেকে খাদ্যভোগ পর্যন্ত যাত্রা কভার করে। এর মধ্যে কৃষি, লজিস্টিকস, উৎপাদন, খুচরা বিক্রয় এবং ভোক্তা অন্তর্ভুক্ত - এরা সবই IoT ডিভাইসের জন্য জনপ্রিয় শিল্প ক্ষেত্র। -![একটি রোড ম্যাপ যা ২৪টি পাঠ দেখায় যেগুলো অন্তর্ভুক্ত করে ভূমিকা, কৃষি, পরিবহন, প্রক্রিয়াকরণ, খুচরা এবং রান্না](../../translated_images/bn/Roadmap.bb1dec285dda0eda.webp) +![একটি রোড ম্যাপ দেখাচ্ছে যেখানে ২৪টি পাঠ অন্তর্ভুক্ত রয়েছে যেন পরিচিতি, কৃষি, পরিবহন, প্রক্রিয়াজাতকরণ, খুচরা এবং রান্নার ওপর ভিত্তি করে](../../translated_images/bn/Roadmap.bb1dec285dda0eda.webp) -> স্কেচনোট করেছেন [Nitya Narasimhan](https://github.com/nitya)। বড় সংস্করণের জন্য ছবিতে ক্লিক করুন। +> স্কেচনোট করেছেন [নিত্য নারসিমহন](https://github.com/nitya)। বড় আকারের জন্য ছবিটিতে ক্লিক করুন। -**অনুরোধক্রমে আমাদের লেখকগণ [Jen Fox](https://github.com/jenfoxbot), [Jen Looper](https://github.com/jlooper), [Jim Bennett](https://github.com/jimbobbennett) এবং আমাদের স্কেচনোট শিল্পী [Nitya Narasimhan](https://github.com/nitya)-কে আন্তরিক ধন্যবাদ।** +**আমাদের লেখকগণ [জেন ফক্স](https://github.com/jenfoxbot), [জেন লুপার](https://github.com/jlooper), [জিম বেনেট](https://github.com/jimbobbennett), এবং আমাদের স্কেচনোট শিল্পী [নিত্য নারসিমহন](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), [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/)।** +**আমাদের [Microsoft Learn Student Ambassadors](https://studentambassadors.microsoft.com?WT.mc_id=academic-17441-jabenn) দলের কাছে ধন্যবাদ যারা এই কারিকুলাম পর্যালোচনা ও অনুবাদ করেছেন - [আদিত্য গার্গ](https://github.com/AdityaGarg00), [অনুরাগ শর্মা](https://github.com/Anurag-0-1-A), [অর্পিতা দাস](https://github.com/Arpiiitaaa), [আর্যন জৈন](https://www.linkedin.com/in/aryan-jain-47a4a1145/), [ভবেশ সুনেজা](https://github.com/EliteWarrior315), [ফেইথ হুঞ্জা](https://faithhunja.github.io/), [লতিফা বেল্লো](https://www.linkedin.com/in/lateefah-bello/), [মান্বী ঝা](https://github.com/Severus-Matthew), [মিব্রেইল ট্যান](https://www.linkedin.com/in/mireille-tan-a4834819a/), [মোহাম্মদ ইফতেখার (ইফটু) এবনে জালাল](https://github.com/Iftu119), [মোহাম্মদ জুলফিকার](https://github.com/mohzulfikar), [প্রিয়ংশু শ্রীবাস্তব](https://www.linkedin.com/in/priyanshu-srivastav-b067241ba), [থানমাই গউডুচেরুভু](https://github.com/innovation-platform), এবং [জিনা কামেল](https://www.linkedin.com/in/zina-kamel/)।** দলকে পরিচিত হন! -[![Promo video](../../images/IOT.gif)](https://youtu.be/-wippUJRi5k) +[![প্রমো ভিডিও](../../images/IOT.gif)](https://youtu.be/-wippUJRi5k) -**Gif করেছেন** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) +**গিফ করেছেন** [মোহিত জয়সাল](https://linkedin.com/in/mohitjaisal) -> 🎥 প্রকল্প সম্পর্কে একটি ভিডিও দেখতে উপরের ছবিতে ক্লিক করুন! +> 🎥 প্রকল্পের একটি ভিডিও দেখতে উপরে ছবিতে ক্লিক করুন! -> **শিক্ষকগণ**, আমরা এই কারিকুলাম ব্যবহারের জন্য কিছু [পরামর্শ](for-teachers.md) অন্তর্ভুক্ত করেছি। যদি আপনি নিজের পাঠ তৈরি করতে চান, আমরা একটি [পাঠ টেম্পলেট](lesson-template/README.md)ও দিয়েছি। +> **শিক্ষকগণ**, আমরা [এই কারিকুলাম ব্যবহারের জন্য কিছু পরামর্শ](for-teachers.md) অন্তর্ভুক্ত করেছি। যদি আপনি নিজস্ব পাঠ তৈরি করতে চান, তাহলে আমরা একটি [পাঠ টেমপ্লেট](lesson-template/README.md) দিয়েছি। -> **[শিক্ষার্থীরা](https://aka.ms/student-page)**, নিজে নিজে এই কারিকুলাম ব্যবহার করতে পুরো রিপো ফর্ক করুন এবং এককভাবে অনুশীলনগুলো সম্পন্ন করুন, শুরুতেই একটি প্রি-লেকচার কুইজ দিয়ে, তারপর লেকচার পড়ে বাকি কার্যক্রম সম্পন্ন করুন। কোড কপি না করে পাঠগুলো বুঝে প্রকল্প তৈরির চেষ্টা করুন; তবে প্রতিটি প্রকল্পভিত্তিক পাঠে /solutions ফোল্ডারে সেই কোড পাওয়া যাবে। অন্য একটি ধারণা হচ্ছে বন্ধুদের সাথে একটি স্টাডি গ্রুপ তৈরি করে একসঙ্গে বিষয়বস্তু পর্যালোচনা করা। অতিরিক্ত অধ্যয়নের জন্য আমরা [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn) সুপারিশ করি। +> **[শিক্ষার্থীগণ](https://aka.ms/student-page)**, এই কারিকুলাম নিজের জন্য ব্যবহার করতে হলে পুরো রিপো ফর্ক করুন এবং নিজে নিজে কেনা-বেচার কাজগুলো করুন - প্রথমে প্রাক-লেকচার কুইজ দিয়ে শুরু করুন, তারপর লেকচার পড়ুন এবং বাকী কার্যগুলো শেষ করুন। প্রকল্পগুলো বুঝে তৈরি করার চেষ্টা করুন, শুধু সমাধান কোড অনুলিপি না করে; যাহোক, ওই কোডগুলো /solutions ফোল্ডারে প্রতিটি প্রকল্পমুখী লেসনে উপলব্ধ। আরেকটি ধারণা হলো বন্ধুদের সাথে একটি স্টাডি গ্রুপ তৈরি করে একসাথে বিষয়বস্তু অনুসরণ করা। আরও অধ্যয়নের জন্য, আমরা [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn) ব্যবহার করার পরামর্শ দেই। -এই কোর্সের ভিডিও ওভারভিউ দেখতে, এই ভিডিওটি দেখুন: +এই কোর্সের একটি ভিডিও ওভারভিউ দেখতে, এই ভিডিওটি দেখুন: -[![Promo video](https://img.youtube.com/vi/bccEMm8gRuc/0.jpg)](https://youtube.com/watch?v=bccEMm8gRuc "Promo video") +[![প্রমো ভিডিও](https://img.youtube.com/vi/bccEMm8gRuc/0.jpg)](https://youtube.com/watch?v=bccEMm8gRuc "প্রমো ভিডিও") -> 🎥 প্রকল্প সম্পর্কে একটি ভিডিও দেখতে উপরের ছবিতে ক্লিক করুন! +> 🎥 প্রকল্পের একটি ভিডিও দেখতে উপরে ছবিতে ক্লিক করুন! -## শিক্ষাদান পদ্ধতি +## শিক্ষাদান দর্শন -আমরা এই কারিকুলাম নির্মাণের সময় দুটি শিক্ষাদান মূলনীতি বেছে নিয়েছি: এটি প্রকল্পভিত্তিক নিশ্চিত করা এবং নিয়মিত কুইজ অন্তর্ভুক্ত করা। এই সিরিজের শেষে, শিক্ষার্থীরা একটি উদ্ভিদ পর্যবেক্ষণ ও জলদান ব্যবস্থা, একটি যানবাহন ট্র্যাকার, একটি স্মার্ট ফ্যাক্টরি সেটআপ যা খাদ্য পরীক্ষা করে এবং একটি ভয়েস-কন্ট্রোলড রান্নার টাইমার তৈরি করবে, এবং ইন্টারনেট অফ থিংসের মৌলিক বিষয় যেমন ডিভাইস কোড লেখা, ক্লাউডে সংযোগ, টেলিমেট্রি বিশ্লেষণ এবং এজে AI চালানো শিখবে। +এই কারিকুলাম তৈরির সময় আমরা দুটি মূল শিক্ষাদান নীতি নির্বাচন করেছি: এটি প্রকল্পভিত্তিক হওয়া এবং এতে ঘন ঘন কুইজ অন্তর্ভুক্ত করা। এই সিরিজের শেষে, শিক্ষার্থীরা একটি উদ্ভিদ পর্যবেক্ষণ এবং জল দেওয়ার ব্যবস্থা, এক যানের অবস্থানসংকেতক, একটি স্মার্ট কারখানা যা খাদ্য পরীক্ষা করে, এবং একটি ভয়েস-কন্ট্রোলড রান্নার টাইমার তৈরি করবে, এবং IoT এর বেসিক শিখবে যার মধ্যে অন্তর্ভুক্ত থাকবে ডিভাইস কোড লেখা, ক্লাউডে সংযোগ, টেলিমেট্রি বিশ্লেষণ এবং এজে AI চালানো। -বিষয়বস্তুকে প্রকল্পের সাথে সঙ্গতিপূর্ণ করে, শিক্ষার্থীদের জন্য প্রক্রিয়া আরও আকর্ষণীয় হয় এবং ধারনার ধারাবাহিকতা বৃদ্ধি পায়। +বিষয়গুলো প্রকল্পের সঙ্গে সঙ্গতিপূর্ণ করে প্রক্রিয়াটি শিক্ষার্থীদের জন্য আকর্ষণীয় করে তোলা হয় এবং ধারণাগুলো মনের মাঝে গভীরভাবে গেঁথে যায়। -অতিরিক্তভাবে, ক্লাসের আগে একটি কম চাপের কুইজ ছাত্রের শেখার মনোযোগ কেন্দ্রীভূত করে, আর ক্লাসের পরের কুইজ ধারাবাহিকতা নিশ্চিত করে। এই কারিকুলাম নমনীয় এবং মজাদার হওয়ার জন্য ডিজাইন করা হয়েছে এবং সম্পূর্ণ বা আংশিক নিতে পারেন। প্রকল্পগুলো ছোট থেকে শুরু করে ১২ সপ্তাহের শেষে ক্রমশ জটিল হয়ে ওঠে। +এর পাশাপাশি, ক্লাসের পূর্বে একটি কম-ঝুঁকিপূর্ণ কুইজ শিক্ষার্থীর মধ্যে একটি বিষয় শেখার মনোভাব তৈরি করে, এবং ক্লাসের পরে দ্বিতীয় কুইজ বিষয়টির ধারণা আরও মজবুত করে। এই কারিকুলামটি নমনীয় এবং মজাদার করে ডিজাইন করা হয়েছে এবং সম্পূর্ণ বা আংশিকভাবে নেওয়া যেতে পারে। প্রকল্পের আকার ছোট থেকে শুরু করে ১২ সপ্তাহের শেষে ক্রমবর্ধমান জটিল হয়। -প্রত্যেক প্রকল্পে বাস্তব জগতের হার্ডওয়্যার ব্যাবহার করা হয়েছে যা শিক্ষার্থী ও হবি ডেভেলপারদের জন্য উপলব্ধ। প্রকল্পগুলো নির্দিষ্ট প্রজেক্ট ডোমেইন নিয়ে কাজ করে, প্রাসঙ্গিক পটভূমি জ্ঞান প্রদান করে। সফল ডেভেলপার হতে হলে যেখানে সমস্যা সমাধান করছেন সেটি বুঝতে হবে, এই পটভূমি জ্ঞান শিক্ষার্থীদের তাদের IoT সমাধান ও শেখার প্রেক্ষাপটে চিন্তা করতে সাহায্য করে। শিক্ষার্থীরা তাদের তৈরি সমাধানের 'কারণ' শেখে এবং পরবর্তী ব্যবহারকারীদের মূল্যায়ন পায়। +প্রতিটি প্রকল্প শিক্ষার্থী ও শখের ডেভেলপারদের জন্য উপলব্ধ বাস্তব হার্ডওয়্যারকে কেন্দ্র করে তৈরি। প্রতিটি প্রকল্প প্রাসঙ্গিক পটভূমির জ্ঞান প্রদান করে, যাতে সফল ডেভেলপার হতে সমস্যা সমাধানের ক্ষেত্রটি বোঝা যায়। এই পটভূমি শিক্ষার্থীদের তাদের IoT সমাধান এবং শেখাগুলো বাস্তব বিশ্বের সমস্যার প্রেক্ষাপটে ভাবতে সাহায্য করে। শিক্ষার্থীরা তারা যা তৈরি করছে তার 'কারণ' বোঝে এবং ব্যবহারকারীর প্রতি সম্মান বৃদ্ধি পায়। ## হার্ডওয়্যার +আমাদের কাছে প্রকল্পগুলোর জন্য ব্যক্তিগত পছন্দ, প্রোগ্রামিং ভাষার জ্ঞান বা পছন্দ, শেখার লক্ষ্য এবং উপলব্ধতার উপর নির্ভর করে ব্যবহারের জন্য দুটি আইওটি হার্ডওয়্যার বিকল্প রয়েছে। যারা হার্ডওয়্যারে প্রবেশাধিকার নেই বা কেনার আগে আরো শিখতে চান তাদের জন্য আমরা একটি 'ভার্চুয়াল হার্ডওয়্যার' সংস্করণও প্রদান করেছি। আপনি আরও পড়তে পারেন এবং [হার্ডওয়্যার পৃষ্ঠায়](./hardware.md) একটি 'কেনাকাটার তালিকা' খুঁজে পেতে পারেন, যেখানে আমাদের বন্ধু Seeed Studio থেকে সম্পূর্ণ কিট কিনতে লিঙ্ক রয়েছে। -আমাদের প্রকল্পগুলির জন্য ব্যক্তিগত পছন্দ, প্রোগ্রামিং ভাষার জ্ঞান বা পছন্দ, শেখার লক্ষ্য ও প্রাপ্যতার উপর ভিত্তি করে দুটি ধরনের IoT হার্ডওয়্যার রয়েছে। যারা হার্ডওয়্যার অ্যাক্সেস করতে পারেন না বা কেনার আগে আরও জানতে চান তাদের জন্য একটি 'ভার্চুয়াল হার্ডওয়্যার' সংস্করণও আমরা দিয়েছি। [হার্ডওয়্যার পৃষ্ঠা](./hardware.md) এ আরও পড়তে পারেন এবং Seeed Studio এর কাছ থেকে পূর্ণ কিট কেনার জন্য লিঙ্কও পাবেন। -> 💁 আমাদের [আচরণবিধি](CODE_OF_CONDUCT.md), [অবদান](CONTRIBUTING.md), এবং [অনুবাদ](TRANSLATIONS.md) নির্দেশিকা দেখুন। আমরা আপনার গঠনমূলক প্রতিক্রিয়ার জন্য স্বাগত জানাই! +> 💁 আমাদের [আচরণবিধি](CODE_OF_CONDUCT.md), [অবদান](CONTRIBUTING.md), এবং [অনুবাদ](TRANSLATIONS.md) নির্দেশিকা খুঁজুন। আমরা আপনার গঠনমূলক মতামত স্বাগত জানাই! > -> 🔧 সমস্যায় পড়েছেন? সাধারণ সমস্যাগুলির সমাধানের জন্য আমাদের [সমস্যা সমাধানের গাইড](TROUBLESHOOTING.md) দেখুন। +> 🔧 সমস্যা হচ্ছে? সাধারণ সমস্যার সমাধানের জন্য আমাদের [সমস্যা সমাধান গাইড](TROUBLESHOOTING.md) দেখুন। ## প্রতিটি পাঠে অন্তর্ভুক্ত: - স্কেচনোট -- ঐচ্ছিক সম্পূরক ভিডিও -- প্রাক-পাঠের ওয়ার্মআপ কুইজ +- ঐচ্ছিক অতিরিক্ত ভিডিও +- পাঠের আগে ওয়ার্মআপ কুইজ - লিখিত পাঠ -- প্রকল্প-ভিত্তিক পাঠের জন্য, প্রকল্পটি কীভাবে তৈরি করবেন তার ধাপে ধাপে গাইড -- জ্ঞান যাচাইকরণ +- প্রকল্প ভিত্তিক পাঠগুলোর জন্য, প্রকল্প নির্মাণের ধাপে ধাপে নির্দেশিকা +- জ্ঞান যাচাই - একটি চ্যালেঞ্জ -- সম্পূরক পাঠ্য +- অতিরিক্ত পাঠ্যপুস্তক - অ্যাসাইনমেন্ট - [পোস্ট-পাঠ কুইজ](https://ff-quizzes.netlify.app/en/) -> **কুইজ সম্পর্কে একটি নোট**: সমস্ত কুইজ কুইজ-অ্যাপ ফোল্ডারের মধ্যে রয়েছে, প্রতিটি কুইজে তিনটি প্রশ্নসহ মোট ৪৮টি কুইজ। এগুলি পাঠের মধ্যে লিঙ্ক করা হয়েছে কিন্তু কুইজ অ্যাপটি স্থানীয়ভাবে চালানো বা Azure-এ ডেপ্লয় করা যেতে পারে; `quiz-app` ফোল্ডারের নির্দেশনা অনুসরণ করুন। এগুলি ধীরে ধীরে ভাষান্তরিত হচ্ছে। +> **কুইজ সম্পর্কে একটি টিপস**: সমস্ত কুইজ quiz-app ফোল্ডারে অন্তর্ভুক্ত, মোট ৪৮টি কুইজ তিনটি প্রশ্ন সহ। সেগুলো পাঠের মধ্যে লিঙ্ক করা হয়েছে কিন্তু কুইজ অ্যাপ স্থানীয়ভাবে চালাতে বা অ্যাজুরে প্রয়োগ করা যেতে পারে; `quiz-app` ফোল্ডারের নির্দেশাবলী অনুসরণ করুন। ধীরে ধীরে এগুলো স্থানীয়করণ করা হচ্ছে। ## পাঠসমূহ -| | প্রকল্পের নাম | শেখানো ধারণাসমূহ | শেখার উদ্দেশ্য | লিঙ্কযুক্ত পাঠ | -| :---: | :------------------------------------: | :---------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------: | -| 01 | [শুরু করা](./1-getting-started/README.md) | IoT পরিচিতি | IoT-এর মৌলিক নীতিমালা এবং সেন্সর ও ক্লাউড সার্ভিসের মতো IoT সমাধানের মৌলিক উপাদানগুলি সম্পর্কে শিখুন যখন আপনি আপনার প্রথম IoT ডিভাইস সেট আপ করছেন | [IoT পরিচিতি](./1-getting-started/lessons/1-introduction-to-iot/README.md) | -| 02 | [শুরু করা](./1-getting-started/README.md) | IoT-তে গভীর অন্বেষণ | IoT সিস্টেমের উপাদানসমূহ, সাথে মাইক্রোকন্ট্রোলার এবং সিঙ্গল-বোর্ড কম্পিউটার সম্পর্কে আরও জানুন | [IoT-তে গভীর অন্বেষণ](./1-getting-started/lessons/2-deeper-dive/README.md) | -| 03 | [শুরু করা](./1-getting-started/README.md) | সেন্সর ও অ্যাকচুয়েটর দিয়ে বাস্তব জগতের সাথে ইন্টারঅ্যাক্ট করুন | শারীরিক বিশ্বের তথ্য সংগ্রহে সেন্সর এবং ফিডব্যাক পাঠাতে অ্যাকচুয়েটরগুলোর বিষয়ে জানুন, যখন আপনি একটি নাইটলাইট তৈরি করছেন | [সেন্সর ও অ্যাকচুয়েটর দিয়ে বাস্তব জগতের সাথে ইন্টারঅ্যাক্ট করুন](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | -| 04 | [শুরু করা](./1-getting-started/README.md) | আপনার ডিভাইস ইন্টারনেটে সংযুক্ত করুন | একটি IoT ডিভাইসকে ইন্টারনেটে সংযুক্ত করার বিষয়ে শিখুন বার্তা পাঠানো ও গ্রহণের জন্য, আপনার নাইটলাইট MQTT ব্রোকারের সাথে সংযুক্ত করার মাধ্যমে | [আপনার ডিভাইস ইন্টারনেটে সংযুক্ত করুন](./1-getting-started/lessons/4-connect-internet/README.md) | -| 05 | [ফার্ম](./2-farm/README.md) | উদ্ভিদের বৃদ্ধির পূর্বাভাস দিন | IoT ডিভাইস দ্বারা সংগ্রহকৃত তাপমাত্রার তথ্য ব্যবহার করে উদ্ভিদের বৃদ্ধি কিভাবে পূর্বাভাস করবেন শিখুন | [উদ্ভিদের বৃদ্ধির পূর্বাভাস দিন](./2-farm/lessons/1-predict-plant-growth/README.md) | -| 06 | [ফার্ম](./2-farm/README.md) | মাটির আর্দ্রতা সনাক্ত করুন | মাটির আর্দ্রতা সনাক্ত করা এবং একটি মাটির আর্দ্রতা সেন্সর ক্যালিব্রেট করার পদ্ধতি শিখুন | [মাটির আর্দ্রতা সনাক্ত করুন](./2-farm/lessons/2-detect-soil-moisture/README.md) | -| 07 | [ফার্ম](./2-farm/README.md) | স্বয়ংক্রিয় উদ্ভিদ সেচ | রিলে এবং MQTT ব্যবহার করে সেচ স্বয়ংক্রিয় ও সময়মতো করার পদ্ধতি শিখুন | [স্বয়ংক্রিয় উদ্ভিদ সেচ](./2-farm/lessons/3-automated-plant-watering/README.md) | -| 08 | [ফার্ম](./2-farm/README.md) | আপনার উদ্ভিদকে ক্লাউডে স্থানান্তর করুন | ক্লাউড ও ক্লাউড-হোস্টেড IoT পরিষেবাগুলো সম্পর্কে জানুন এবং কিভাবে আপনার উদ্ভিদকে পাবলিক MQTT ব্রোকারের পরিবর্তে এর মধ্যে একটির সাথে সংযুক্ত করবেন | [আপনার উদ্ভিদকে ক্লাউডে স্থানান্তর করুন](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | -| 09 | [ফার্ম](./2-farm/README.md) | আপনার অ্যাপ্লিকেশন লজিক ক্লাউডে স্থানান্তর করুন | কিভাবে আপনি ক্লাউডে IoT মেসেজের প্রতিক্রিয়ায় অ্যাপ্লিকেশন লজিক লিখতে পারেন তা সম্পর্কে জানুন | [আপনার অ্যাপ্লিকেশন লজিক ক্লাউডে স্থানান্তর করুন](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | -| 10 | [ফার্ম](./2-farm/README.md) | আপনার উদ্ভিদ নিরাপদ রাখুন | IoT নিরাপত্তা সম্পর্কে জানুন এবং কী ও সনদপত্র দিয়ে কিভাবে আপনার উদ্ভিদকে নিরাপদ রাখা যায় তা শিখুন | [আপনার উদ্ভিদ নিরাপদ রাখুন](./2-farm/lessons/6-keep-your-plant-secure/README.md) | -| 11 | [পরিবহন](./3-transport/README.md) | অবস্থান ট্র্যাকিং | IoT ডিভাইসের জন্য GPS অবস্থান ট্র্যাকিং সম্পর্কে শিখুন | [অবস্থান ট্র্যাকিং](./3-transport/lessons/1-location-tracking/README.md) | -| 12 | [পরিবহন](./3-transport/README.md) | অবস্থানের তথ্য সংরক্ষণ | পরে দেখা বা বিশ্লেষণের জন্য IoT তথ্য কীভাবে সংরক্ষণ করবেন তা শিখুন | [অবস্থানের তথ্য সংরক্ষণ](./3-transport/lessons/2-store-location-data/README.md) | -| 13 | [পরিবহন](./3-transport/README.md) | অবস্থানের তথ্য চিত্রায়ন করুন | মানচিত্রে অবস্থানের তথ্য চিত্রায়নের পদ্ধতি, এবং মানচিত্র কীভাবে বাস্তব 3D জগতকে 2D-তে উপস্থাপন করে তা শিখুন | [অবস্থানের তথ্য চিত্রায়ন করুন](./3-transport/lessons/3-visualize-location-data/README.md) | -| 14 | [পরিবহন](./3-transport/README.md) | জিওফেন্স | জিওফেন্স সম্পর্কে শিখুন, এবং সাপ্লাই চেইনের যানবাহন তাদের গন্তব্যস্থলের কাছে আসলে কীভাবে সতর্ক করা যায় তা জানুন | [জিওফেন্স](./3-transport/lessons/4-geofences/README.md) | -| 15 | [উৎপাদন](./4-manufacturing/README.md) | একটি ফলের মান শনাক্তকারী প্রশিক্ষণ দিন | ক্লাউডে একটি ইমেজ ক্লাসিফায়ার প্রশিক্ষণ দিয়ে ফলের গুণগত মান শনাক্ত করার পদ্ধতি শিখুন | [একটি ফলের মান শনাক্তকারী প্রশিক্ষণ দিন](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | -| 16 | [উৎপাদন](./4-manufacturing/README.md) | একটি IoT ডিভাইস থেকে ফলের গুণগত মান পরীক্ষা করুন | আপনার ফলের গুণগত মান শনাক্তকারী IoT ডিভাইস থেকে কীভাবে ব্যবহার করবেন তা শিখুন | [একটি IoT ডিভাইস থেকে ফলের গুণগত মান পরীক্ষা করুন](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | -| 17 | [উৎপাদন](./4-manufacturing/README.md) | আপনার ফল শনাক্তকারী এজে চালান | একটি IoT ডিভাইসে আপনার ফল শনাক্তকারী এজে চালানো সম্পর্কে শিখুন | [আপনার ফল শনাক্তকারী এজে চালান](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | -| 18 | [উৎপাদন](./4-manufacturing/README.md) | একটি সেন্সর থেকে ফলের গুণগত মান শনাক্তকরণ ট্রিগার করুন | একটি সেন্সর থেকে ফলের গুণগত মান শনাক্তকরণ ট্রিগার করার বিষয়ে জানুন | [একটি সেন্সর থেকে ফলের গুণগত মান শনাক্তকরণ ট্রিগার করুন](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | -| 19 | [খুচরা](./5-retail/README.md) | একটি স্টক শনাক্তকারী প্রশিক্ষণ দিন | একটি দোকানে স্টক গণনার জন্য অবজেক্ট ডিটেকশন ব্যবহার করে একটি স্টক শনাক্তকারী কীভাবে প্রশিক্ষণ করবেন তা শিখুন | [একটি স্টক শনাক্তকারী প্রশিক্ষণ দিন](./5-retail/lessons/1-train-stock-detector/README.md) | -| 20 | [খুচরা](./5-retail/README.md) | একটি IoT ডিভাইস থেকে স্টক পরীক্ষা করুন | অবজেক্ট ডিটেকশন মডেল ব্যবহার করে একটি IoT ডিভাইস থেকে স্টক কীভাবে পরীক্ষা করবেন তা শিখুন | [একটি IoT ডিভাইস থেকে স্টক পরীক্ষা করুন](./5-retail/lessons/2-check-stock-device/README.md) | -| 21 | [ভোক্তা](./6-consumer/README.md) | একটি IoT ডিভাইস দিয়ে বক্তৃতা সনাক্ত করুন | একটি স্মার্ট টাইমার তৈরির জন্য IoT ডিভাইস থেকে বক্তৃতা কীভাবে সনাক্ত করবেন তা শিখুন | [একটি IoT ডিভাইস দিয়ে বক্তৃতা সনাক্ত করুন](./6-consumer/lessons/1-speech-recognition/README.md) | -| 22 | [ভোক্তা](./6-consumer/README.md) | ভাষা বুঝুন | একটি IoT ডিভাইসকে বলা বাক্যগুলি কীভাবে বুঝতে হয় তা শিখুন | [ভাষা বুঝুন](./6-consumer/lessons/2-language-understanding/README.md) | -| 23 | [ভোক্তা](./6-consumer/README.md) | একটি টাইমার সেট করুন এবং মৌখিক প্রতিক্রিয়া প্রদান করুন | একটি IoT ডিভাইসে টাইমার কীভাবে সেট করবেন এবং টাইমার কখন শুরু হয়েছে ও শেষ হয়েছে তার মৌখিক প্রতিক্রিয়া কীভাবে দেবেন তা শিখুন | [একটি টাইমার সেট করুন এবং মৌখিক প্রতিক্রিয়া প্রদান করুন](./6-consumer/lessons/3-spoken-feedback/README.md) | -| 24 | [ভোক্তা](./6-consumer/README.md) | একাধিক ভাষাকে সমর্থন করুন | একাধিক ভাষার সমর্থন কীভাবে করবেন, যেমন কথা বলা এবং স্মার্ট টাইমারের থেকে উত্তর দেওয়া | [একাধিক ভাষাকে সমর্থন করুন](./6-consumer/lessons/4-multiple-language-support/README.md) | +| | প্রকল্পের নাম | শেখানো বিষয় | শেখার উদ্দেশ্য | লিঙ্ক করা পাঠ | +| :---: | :------------------------------------: | :---------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------: | +| ০১ | [শুরু করাঃ](./1-getting-started/README.md) | আইওটির পরিচিতি | আইওটির মৌলিক নীতিগুলো শিখুন এবং আইওটি সমাধানের মৌলিক উপাদান যেমন সেন্সর ও ক্লাউড সার্ভিস সম্পর্কে জানুন, যখন আপনি আপনার প্রথম আইওটি ডিভাইস সেটআপ করছেন | [আইওটির পরিচিতি](./1-getting-started/lessons/1-introduction-to-iot/README.md) | +| ০২ | [শুরু করাঃ](./1-getting-started/README.md) | আইওটির গভীরে নজর | আইওটি সিস্টেমের উপাদান, মাইক্রোকন্ট্রোলার ও সিঙ্গেল-বোর্ড কম্পিউটার সম্পর্কে আরও জানুন | [আইওটির গভীরে নজর](./1-getting-started/lessons/2-deeper-dive/README.md) | +| ০৩ | [শুরু করাঃ](./1-getting-started/README.md) | শারীরিক বিশ্বের সাথে সেন্সর ও অ্যাকচুয়েটর দিয়ে ইন্টারঅ্যাক্ট করুন | শারীরিক বিশ্ব থেকে তথ্য সংগ্রহের জন্য সেন্সর সম্পর্কে এবং প্রতিক্রিয়া পাঠানোর জন্য অ্যাকচুয়েটর সম্পর্কে জানুন, যখন আপনি একটি নাইটলাইট তৈরি করছেন | [শারীরিক বিশ্বের সাথে সেন্সর ও অ্যাকচুয়েটর দিয়ে ইন্টারঅ্যাক্ট করুন](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | +| ০৪ | [শুরু করাঃ](./1-getting-started/README.md) | আপনার ডিভাইস ইন্টারনেটের সাথে সংযুক্ত করুন | একটি আইওটি ডিভাইসকে ইন্টারনেটে সংযুক্ত করে বার্তা পাঠানো এবং গ্রহণের প্রক্রিয়া শিখুন, যখন আপনি আপনার নাইটলাইটকে MQTT ব্রোকারের সাথে সংযুক্ত করছেন | [আপনার ডিভাইস ইন্টারনেটের সাথে সংযুক্ত করুন](./1-getting-started/lessons/4-connect-internet/README.md) | +| ০৫ | [খামার](./2-farm/README.md) | গাছপালার বৃদ্ধি পূর্বাভাস | একটি আইওটি ডিভাইস দ্বারা ক্যাপচার করা তাপমাত্রা তথ্য ব্যবহার করে গাছপালার বৃদ্ধি কিভাবে পূর্বাভাস করা যায় শিখুন | [গাছপালার বৃদ্ধি পূর্বাভাস](./2-farm/lessons/1-predict-plant-growth/README.md) | +| ০৬ | [খামার](./2-farm/README.md) | মাটির আর্দ্রতা সনাক্ত করুন | মাটির আর্দ্রতা সনাক্ত করা এবং একটি মাটির আর্দ্রতা সেন্সর ক্যালিব্রেট করা শিখুন | [মাটির আর্দ্রতা সনাক্ত করুন](./2-farm/lessons/2-detect-soil-moisture/README.md) | +| ০৭ | [খামার](./2-farm/README.md) | স্বয়ংক্রিয় গাছপালার জলদান | রিলে এবং MQTT ব্যবহার করে জলদান স্বয়ংক্রিয়করণ এবং সময় নির্ধারণ শিখুন | [স্বয়ংক্রিয় গাছপালার জলদান](./2-farm/lessons/3-automated-plant-watering/README.md) | +| ০৮ | [খামার](./2-farm/README.md) | আপনার গাছপালা ক্লাউডে স্থানান্তর করুন | ক্লাউড এবং ক্লাউড-হোস্টেড আইওটি সার্ভিসের সম্পর্কে জানুন এবং একটি পাবলিক MQTT ব্রোকারের পরিবর্তে আপনার গাছকে এগুলোর সাথে কিভাবে সংযুক্ত করবেন শিখুন | [আপনার গাছপালা ক্লাউডে স্থানান্তর করুন](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | +| ০৯ | [খামার](./2-farm/README.md) | আপনার অ্যাপ্লিকেশন লজিক ক্লাউডে স্থানান্তর করুন | আইওটি বার্তা গ্রহণে সাড়া দেওয়ার জন্য ক্লাউডে অ্যাপ্লিকেশন লজিক লেখার পদ্ধতি শিখুন | [আপনার অ্যাপ্লিকেশন লজিক ক্লাউডে স্থানান্তর করুন](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | +| ১০ | [খামার](./2-farm/README.md) | আপনার গাছ নিরাপদ রাখুন | আইওটিতে সিকিউরিটি সম্পর্কে জানুন এবং কী ও সার্টিফিকেট ব্যবহার করে আপনার গাছ কিভাবে নিরাপদ রাখা যায় শিখুন | [আপনার গাছ নিরাপদ রাখুন](./2-farm/lessons/6-keep-your-plant-secure/README.md) | +| ১১ | [পরিবহন](./3-transport/README.md) | অবস্থান ট্র্যাকিং | আইওটি ডিভাইসের জন্য GPS অবস্থান ট্র্যাকিং সম্পর্কে জানুন | [অবস্থান ট্র্যাকিং](./3-transport/lessons/1-location-tracking/README.md) | +| ১২ | [পরিবহন](./3-transport/README.md) | অবস্থান তথ্য সংরক্ষণ | পরে বিশ্লেষণ বা দৃশ্যায়নের জন্য আইওটি তথ্য কিভাবে সংরক্ষণ করবেন শিখুন | [অবস্থান তথ্য সংরক্ষণ](./3-transport/lessons/2-store-location-data/README.md) | +| ১৩ | [পরিবহন](./3-transport/README.md) | অবস্থান তথ্য দৃশ্যায়ন | মানচিত্রে অবস্থান তথ্য কীভাবে দৃশ্যায়িত হয় এবং মানচিত্র কিভাবে বাস্তব ৩ডি বিশ্বের ২ ডাইমেনশন রূপে প্রতিনিধিত্ব করে শিখুন | [অবস্থান তথ্য দৃশ্যায়ন](./3-transport/lessons/3-visualize-location-data/README.md) | +| ১৪ | [পরিবহন](./3-transport/README.md) | জিওফেন্স | জিওফেন্স সম্পর্কে জানুন এবং সরবরাহ শৃঙ্খলের গাড়িগুলো তাদের গন্তব্যের কাছে আসতে কতটা নিকটে সেই সম্পর্কে অ্যালার্ট দেয়ার পদ্ধতি শিখুন | [জিওফেন্স](./3-transport/lessons/4-geofences/README.md) | +| ১৫ | [উৎপাদন](./4-manufacturing/README.md) | একটি ফলের গুণগতমান সনাক্তকারী প্রশিক্ষণ দিন | ফলের গুণগতমান সনাক্ত করতে ক্লাউডে একটি ইমেজ ক্লাসিফায়ার প্রশিক্ষণের পদ্ধতি শিখুন | [ফলের গুণগতমান সনাক্তকারী প্রশিক্ষণ দিন](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | +| ১৬ | [উৎপাদন](./4-manufacturing/README.md) | একটি আইওটি ডিভাইস থেকে ফলের গুণগতমান পরীক্ষা করুন | একটি আইওটি ডিভাইস থেকে আপনার ফলের গুণগতমান সনাক্তকারী কীভাবে ব্যবহার করবেন শিখুন | [একটি আইওটি ডিভাইস থেকে ফলের গুণগতমান পরীক্ষা করুন](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | +| ১৭ | [উৎপাদন](./4-manufacturing/README.md) | এজে আপনার ফল সনাক্তকারী চালান | একটি আইওটি ডিভাইসের এজে আপনার ফল সনাক্তকারী কীভাবে চালাবেন শিখুন | [এজে আপনার ফল সনাক্তকারী চালান](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | +| ১৮ | [উৎপাদন](./4-manufacturing/README.md) | একটি সেন্সর থেকে ফলের গুণগতমান সনাক্তকরণ ট্রিগার করুন | একটি সেন্সর থেকে ফল গুণগতমান সনাক্তকরণ কীভাবে ট্রিগার করবেন শিখুন | [একটি সেন্সর থেকে ফলের গুণগতমান সনাক্তকরণ ট্রিগার করুন](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | +| ১৯ | [রিটেইল](./5-retail/README.md) | একটি স্টক সনাক্তকারী প্রশিক্ষণ দিন | একটি দোকানে স্টক গণনা করতে অবজেক্ট ডিটেকশন কীভাবে ব্যবহার করবেন শিখুন | [একটি স্টক সনাক্তকারী প্রশিক্ষণ দিন](./5-retail/lessons/1-train-stock-detector/README.md) | +| ২০ | [রিটেইল](./5-retail/README.md) | একটি আইওটি ডিভাইস থেকে স্টক পরীক্ষা করুন | একটি অবজেক্ট ডিটেকশন মডেল ব্যবহার করে একটি আইওটি ডিভাইস থেকে স্টক কিভাবে পরীক্ষা করবেন শিখুন | [একটি আইওটি ডিভাইস থেকে স্টক পরীক্ষা করুন](./5-retail/lessons/2-check-stock-device/README.md) | +| ২১ | [ভোক্তা](./6-consumer/README.md) | একটি আইওটি ডিভাইস দিয়ে ভাষণ সনাক্তকরণ | একটি আইওটি ডিভাইস থেকে ভাষণ চিনে স্মার্ট টাইমার তৈরি করার পদ্ধতি শিখুন | [একটি আইওটি ডিভাইস দিয়ে ভাষণ সনাক্তকরণ](./6-consumer/lessons/1-speech-recognition/README.md) | +| ২২ | [ভোক্তা](./6-consumer/README.md) | ভাষা বোঝা | একটি আইওটি ডিভাইসে বলা বাক্যগুলো বুঝতে শিখুন | [ভাষা বোঝা](./6-consumer/lessons/2-language-understanding/README.md) | +| ২৩ | [ভোক্তা](./6-consumer/README.md) | একটি টাইমার সেট করুন এবং কথা বলা তথ্য প্রদানের জন্য | একটি আইওটি ডিভাইসে কিভাবে টাইমার সেট করবেন এবং টাইমার সেট ও শেষ হওয়ার সময় কথায় তথ্য প্রদান করবেন তা শিখুন | [একটি টাইমার সেট করুন এবং কথা বলা তথ্য প্রদানের জন্য](./6-consumer/lessons/3-spoken-feedback/README.md) | +| ২৪ | [ভোক্তা](./6-consumer/README.md) | একাধিক ভাষা সমর্থন করুন | একাধিক ভাষা সমর্থনের পদ্ধতি শিখুন, যা কথোপকথনে প্রয়োগযোগ্য এবং আপনার স্মার্ট টাইমার থেকে প্রতিক্রিয়াতে ব্যবহৃত হবে | [একাধিক ভাষা সমর্থন করুন](./6-consumer/lessons/4-multiple-language-support/README.md) | ## অফলাইন অ্যাক্সেস -আপনি [Docsify](https://docsify.js.org/#/) ব্যবহার করে এই ডকুমেন্টেশন অফলাইনে চালাতে পারেন। এই রিপোটি ফর্ক করুন, আপনার স্থানীয় মেশিনে [Docsify ইনস্টল করুন](https://docsify.js.org/#/quickstart), এবং এই রিপোর মূল ফোল্ডারে `docsify serve` টাইপ করুন। ওয়েবসাইটটি আপনার লোকালহোস্টের ৩০০০ নম্বর পোর্টে চালানো হবে: `localhost:3000`। +আপনি [Docsify](https://docsify.js.org/#/) ব্যবহার করে এই ডকুমেন্টেশনটি অফলাইনে চালাতে পারেন। এই রিপোজিটরিটি ফর্ক করুন, আপনার স্থানীয় মেশিনে [Docsify ইনস্টল করুন](https://docsify.js.org/#/quickstart) এবং তারপর এই রিপোজিটরির মূল ফোল্ডারে `docsify serve` টাইপ করুন। ওয়েবসাইটটি পোর্ট ৩০০০ এ চালানো হবে আপনার লোকালহোস্টে: `localhost:3000`। ## কুইজ -প্রতিটি অধ্যায়ে আপনার জ্ঞান যাচাই করার জন্য ইন্টারেক্টিভ কুইজ হোস্ট করার জন্য কমিউনিটিকে ধন্যবাদ। আপনি এখানে [আপনার জ্ঞান পরীক্ষা করতে পারেন](https://ff-quizzes.netlify.app/en/) +প্রতিটি অধ্যায়ে আপনার জ্ঞান পরীক্ষা করার জন্য ইন্টারেক্টিভ কুইজ হোสต์ করার জন্য কমিউনিটিকে ধন্যবাদ। আপনি আপনার জ্ঞান [এখানে পরীক্ষা করতে পারেন](https://ff-quizzes.netlify.app/en/)। ### পিডিএফ -প্রয়োজনে অফলাইনে অ্যাক্সেসের জন্য এই বিষয়বস্তুর PDF তৈরি করতে পারেন। এটি করতে, নিশ্চিত করুন যে আপনার কাছে [npm ইনস্টল করা আছে](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) এবং এই রিপোর মূল ফোল্ডারে নিম্নলিখিত কমান্ডগুলি চালান: +যদি প্রয়োজন হয়, আপনি অফলাইনে অ্যাক্সেসের জন্য এই কনটেন্টের পিডিএফ তৈরি করতে পারেন। এর জন্য নিশ্চিত করুন যে আপনার কাছে [npm ইনস্টল করা আছে](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) এবং এই রিপোজিটরির মূল ফোল্ডারে নিম্নলিখিত কমান্ডগুলো চালান: ```sh npm i npm run convert ``` -### স্লাইড - -কিছু পাঠের জন্য স্লাইড ডেক রয়েছে [slides](../../slides) ফোল্ডারে। +### স্লাইডস +কিছু পাঠের জন্য [slides](../../slides) ফোল্ডারে স্লাইড ডেক রয়েছে। -## অন্যান্য পাঠ্যক্রম +## অন্যান্য কর্মসূচি -আমাদের দল অন্যান্য পাঠ্যক্রমও তৈরি করে! দেখুন: +আমাদের দল অন্যান্য কর্মসূচিও তৈরি করে! চেক করুন: ### LangChain -[![শুরুদের জন্য LangChain4j](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) -[![শুরুদের জন্য LangChain.js](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) - +[![শিখতে সম্পূর্ণ নতুনদের জন্য LangChain4j](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) +[![শিখতে সম্পূর্ণ নতুনদের জন্য LangChain.js](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![শিখতে সম্পূর্ণ নতুনদের জন্য LangChain](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- ### Azure / Edge / MCP / Agents -[![শুরুদের জন্য AZD](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) -[![শুরুদের জন্য Edge AI](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![শুরুদের জন্য MCP](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![শুরু করার জন্য AI এজেন্টসমূহ](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![শিখতে সম্পূর্ণ নতুনদের জন্য AZD](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) +[![শুরুদের জন্য এজ এআই](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![শুরুদের জন্য এমসিপি](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![শুরুদের জন্য এআই এজেন্টস](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### জেনারেটিভ AI সিরিজ -[![শুরু করার জন্য জেনারেটিভ AI](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![জেনারেটিভ AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![জেনারেটিভ AI (জাভা)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![জেনারেটিভ AI (জাভাস্ক্রিপ্ট)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +### জেনারেটিভ এআই সিরিজ +[![শুরুদের জন্য জেনারেটিভ এআই](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![জেনারেটিভ এআই (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![জেনারেটিভ এআই (জাভা)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![জেনারেটিভ এআই (জাভাস্ক্রিপ্ট)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- ### মূল শিক্ষা -[![শুরু করার জন্য মেশিন লার্নিং](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![শুরু করার জন্য ডেটা সায়েন্স](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![শুরু করার জন্য AI](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![শুরু করার জন্য সাইবারসিকিউরিটি](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![শুরু করার জন্য ওয়েব ডেভেলপমেন্ট](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![শুরু করার জন্য IoT](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![শুরু করার জন্য XR ডেভেলপমেন্ট](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +[![শুরুদের জন্য এমএল](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![শুরুদের জন্য ডেটা সায়েন্স](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![শুরুদের জন্য এআই](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![শুরুদের জন্য সাইবারসিকিউরিটি](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![শুরুদের জন্য ওয়েব ডেভ](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![শুরুদের জন্য আইওটি](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![শুরুদের জন্য এক্সআর ডেভেলপমেন্ট](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### কপাইলট সিরিজ -[![AI পেয়ারড প্রোগ্রামিংয়ের জন্য কপাইলট](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![C#/.NET-এর জন্য কপাইলট](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![কপাইলট এডভেঞ্চার](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +[![কপাইলট ফর এআই পেয়ারড প্রোগ্রামিং](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![কপাইলট ফর সি#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![কপাইলট অ্যাডভেঞ্চার](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## ছবি সম্পর্কিত তথ্য +## ইমেজ অ্যাট্রিবিউশন -এই পাঠক্রমে ব্যবহৃত ছবিগুলির সমস্ত তথ্য পেতে আপনি প্রয়োজন অনুসারে [Attributions](./attributions.md) এ যেতে পারেন। +আপনি এই কারিকুলামে ব্যবহৃত ছবিগুলোর সমস্ত ক্রেডিট প্রয়োজন অনুযায়ী [Attributions](./attributions.md) এ খুঁজে পেতে পারেন। --- -**দ্রষ্টব্য**: -এই নথিটি AI অনুবাদ সেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনূদিত হয়েছে। আমরা যথাসাধ্য সঠিকতার চেষ্টা করি, কিন্তু স্বয়ংক্রিয় অনুবাদে ভুল বা অসম্পূর্ণতা থাকতে পারে। মূল নথিটি এর নিজস্ব ভাষায় প্রাধান্যপ্রাপ্ত উৎস হিসেবে গণ্য করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য পেশাদার মানব অনুবাদ গ্রহণ করা উত্তম। এই অনুবাদের ব্যবহারে উদ্ভূত কোনও ভুলবোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। +**অস্বীকৃতি**: +এই দলিলটি AI অনুবাদ সেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহারের মাধ্যমে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব যথার্থতার জন্য চেষ্টা করি, তবে অনুগ্রহ করে জানুন যে স্বয়ংক্রিয় অনুবাদে ভুল বা অসঙ্গতি থাকতে পারে। মূল নথিটি তার স্বভাষায় পাওয়া দলিলকেই কর্তৃত্বস্বরূপ ধরা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদের ব্যবহার থেকে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/hardware.md b/translations/bn/hardware.md index bce70cfd0..390201d02 100644 --- a/translations/bn/hardware.md +++ b/translations/bn/hardware.md @@ -26,7 +26,7 @@ Seeed Studios খুবই সদয়ভাবে সমস্ত হার্ **[Seeed এবং Microsoft-এর সাথে IoT শিক্ষার্থীদের জন্য - Raspberry Pi 4 স্টার্টার কিট](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html)** -[![Raspberry Pi টার্মিনাল হার্ডওয়্যার কিট](../../translated_images/bn/pi-hardware-kit.26dbadaedb7dd44c73b0131d5d68ea29472ed0a9744f90d5866c6d82f2d16380.png)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) +[![Raspberry Pi টার্মিনাল হার্ডওয়্যার কিট](../../translated_images/bn/pi-hardware-kit.26dbadaedb7dd44c.webp)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) ## Arduino diff --git a/translations/cs/.co-op-translator.json b/translations/cs/.co-op-translator.json index 61fc62c9e..1b17f4df7 100644 --- a/translations/cs/.co-op-translator.json +++ b/translations/cs/.co-op-translator.json @@ -738,8 +738,8 @@ "language_code": "cs" }, "README.md": { - "original_hash": "3fcc056cd3837e33d2bdf79f9c359fcf", - "translation_date": "2026-01-30T02:27:27+00:00", + "original_hash": "accf69391fa4450eadbf492ca024cccf", + "translation_date": "2026-04-06T16:35:35+00:00", "source_file": "README.md", "language_code": "cs" }, diff --git a/translations/cs/1-getting-started/lessons/1-introduction-to-iot/README.md b/translations/cs/1-getting-started/lessons/1-introduction-to-iot/README.md index bf4efc1e1..82a1ae835 100644 --- a/translations/cs/1-getting-started/lessons/1-introduction-to-iot/README.md +++ b/translations/cs/1-getting-started/lessons/1-introduction-to-iot/README.md @@ -1,6 +1,6 @@ # Úvod do IoT -![Přehled této lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-1.2606670fa61ee904687da5d6fa4e726639d524d064c895117da1b95b9ff6251d.jpg) +![Přehled této lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-1.2606670fa61ee904.webp) > Sketchnote vytvořil [Nitya Narasimhan](https://github.com/nitya). Klikněte na obrázek pro větší verzi. diff --git a/translations/cs/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md b/translations/cs/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md index 02c76c375..8e7158176 100644 --- a/translations/cs/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md +++ b/translations/cs/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md @@ -203,7 +203,7 @@ Jako druhý krok 'Hello World' spustíte aplikaci CounterFit a připojíte k ní Aplikace se spustí a otevře ve vašem webovém prohlížeči: - ![Aplikace Counter Fit spuštěná v prohlížeči](../../../../../translated_images/cs/counterfit-first-run.433326358b669b31d0e99c3513cb01bfbb13724d162c99cdcc8f51ecf5f9c779.png) + ![Aplikace Counter Fit spuštěná v prohlížeči](../../../../../translated_images/cs/counterfit-first-run.433326358b669b31.webp) Bude označena jako *Disconnected* a LED v pravém horním rohu bude vypnutá. @@ -224,7 +224,7 @@ Jako druhý krok 'Hello World' spustíte aplikaci CounterFit a připojíte k ní 1. V tomto novém terminálu spusťte soubor `app.py` jako dříve. Stav CounterFit se změní na **Connected** a LED se rozsvítí. - ![Counter Fit zobrazený jako připojený](../../../../../translated_images/cs/counterfit-connected.ed30b46d8f79b0921f3fc70be10366e596a89dca3f80c2224a9d9fc98fccf884.png) + ![Counter Fit zobrazený jako připojený](../../../../../translated_images/cs/counterfit-connected.ed30b46d8f79b092.webp) > 💁 Tento kód najdete ve složce [code/virtual-device](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/virtual-device). diff --git a/translations/cs/1-getting-started/lessons/2-deeper-dive/README.md b/translations/cs/1-getting-started/lessons/2-deeper-dive/README.md index 95dce0554..f8ec86421 100644 --- a/translations/cs/1-getting-started/lessons/2-deeper-dive/README.md +++ b/translations/cs/1-getting-started/lessons/2-deeper-dive/README.md @@ -1,6 +1,6 @@ # Hlubší pohled na IoT -![Přehled lekce ve formě sketchnotu](../../../../../translated_images/cs/lesson-2.324b0580d620c25e0a24fb7fddfc0b29a846dd4b82c08e7a9466d580ee78ce51.jpg) +![Přehled lekce ve formě sketchnotu](../../../../../translated_images/cs/lesson-2.324b0580d620c25e.webp) > Sketchnote od [Nitya Narasimhan](https://github.com/nitya). Klikněte na obrázek pro větší verzi. @@ -38,7 +38,7 @@ IoT aplikace se skládá ze dvou hlavních částí: *Internetu* a *zařízení* Tato zařízení interagují s fyzickým světem buď pomocí senzorů, které sbírají data z okolí, nebo pomocí výstupů či akčních členů, které provádějí fyzické změny. Typickým příkladem je chytrý termostat – zařízení, které má teplotní senzor, prostředek pro nastavení požadované teploty, jako je otočný knoflík nebo dotyková obrazovka, a připojení k topnému nebo chladicímu systému, který lze zapnout, když je detekovaná teplota mimo požadovaný rozsah. Teplotní senzor zjistí, že je v místnosti příliš chladno, a akční člen zapne topení. -![Schéma ukazující teplotu a otočný knoflík jako vstupy do IoT zařízení a ovládání topení jako výstup](../../../../../translated_images/cs/basic-thermostat.a923217fd1f37e5a6f3390396a65c22a387419ea2dd17e518ec24315ba6ae9a8.png) +![Schéma ukazující teplotu a otočný knoflík jako vstupy do IoT zařízení a ovládání topení jako výstup](../../../../../translated_images/cs/basic-thermostat.a923217fd1f37e5a.webp) Existuje obrovská škála různých zařízení, která mohou fungovat jako IoT zařízení, od specializovaného hardwaru, který snímá jednu věc, až po univerzální zařízení, dokonce i váš chytrý telefon! Chytrý telefon může pomocí senzorů detekovat okolní svět a pomocí akčních členů s ním interagovat – například pomocí GPS senzoru zjistit vaši polohu a pomocí reproduktoru vám poskytnout navigační pokyny k cíli. @@ -54,7 +54,7 @@ Zařízení se také nemusí vždy připojovat přímo k internetu přes WiFi ne V případě chytrého termostatu by se termostat připojil k domácí WiFi a následně ke cloudové službě. Odesílal by data o teplotě do této služby, kde by byla uložena do databáze, což by umožnilo majiteli domu kontrolovat aktuální a historické teploty pomocí aplikace na telefonu. Jiná služba v cloudu by věděla, jakou teplotu majitel domu požaduje, a posílala by zprávy zpět do IoT zařízení přes cloudovou službu, aby řídila topný systém. -![Schéma ukazující teplotu a otočný knoflík jako vstupy do IoT zařízení, obousměrnou komunikaci mezi IoT zařízením a cloudem, který dále komunikuje s telefonem, a ovládání topení jako výstup z IoT zařízení](../../../../../translated_images/cs/mobile-controlled-thermostat.4a994010473d8d6a52ba68c67e5f02dc8928c717e93ca4b9bc55525aa75bbb60.png) +![Schéma ukazující teplotu a otočný knoflík jako vstupy do IoT zařízení, obousměrnou komunikaci mezi IoT zařízením a cloudem, který dále komunikuje s telefonem, a ovládání topení jako výstup z IoT zařízení](../../../../../translated_images/cs/mobile-controlled-thermostat.4a994010473d8d6a.webp) Ještě chytřejší verze by mohla využívat AI v cloudu s daty z dalších senzorů připojených k jiným IoT zařízením, jako jsou senzory obsazenosti, které detekují, které místnosti jsou využívány, stejně jako data o počasí nebo váš kalendář, aby inteligentně nastavovala teplotu. Například by mohla vypnout topení, pokud zjistí z vašeho kalendáře, že jste na dovolené, nebo vypnout topení v jednotlivých místnostech podle toho, které místnosti používáte, a postupně se učit z dat, aby byla stále přesnější. @@ -94,7 +94,7 @@ Rychlost hodin je měřena v [Hertzích (Hz)](https://wikipedia.org/wiki/Hertz), > 💁 CPU vykonávají programy pomocí [cyklu načtení-dekódování-vykonání](https://wikipedia.org/wiki/Instruction_cycle). Každý tik hodin CPU načte další instrukci z paměti, dekóduje ji a poté ji vykoná, například pomocí aritmeticko-logické jednotky (ALU) k sečtení dvou čísel. Některé instrukce trvají více tiků, takže další cyklus začne po dokončení předchozí instrukce. -![Cyklus načtení-dekódování-vykonání ukazující načtení instrukce z programu uloženého v RAM, její dekódování a vykonání na CPU](../../../../../translated_images/cs/fetch-decode-execute.2fd6f150f6280392807f4475382319abd0cee0b90058e1735444d6baa6f2078c.png) +![Cyklus načtení-dekódování-vykonání ukazující načtení instrukce z programu uloženého v RAM, její dekódování a vykonání na CPU](../../../../../translated_images/cs/fetch-decode-execute.2fd6f150f6280392.webp) Mikrokontroléry mají mnohem nižší rychlosti hodin než stolní nebo přenosné počítače, nebo dokonce většina chytrých telefonů. Například Wio Terminal má CPU, který běží na 120 MHz, tedy 120 000 000 cyklů za sekundu. @@ -182,7 +182,7 @@ Desky Arduino se programují v jazycích C nebo C++. Použití C/C++ umožňuje, Do funkce `setup` byste napsali svůj inicializační kód, například připojení k WiFi a cloudovým službám nebo inicializaci pinů pro vstup a výstup. Do funkce `loop` byste pak napsali zpracovatelský kód, například čtení ze senzoru a odesílání hodnoty do cloudu. Obvykle byste do každé smyčky přidali zpoždění, například pokud chcete, aby se data ze senzoru odesílala každých 10 sekund, přidali byste na konci smyčky zpoždění 10 sekund, aby mikrokontrolér mohl spát, šetřit energii, a poté spustit smyčku znovu, když je potřeba. -![Sketch Arduino spouštějící nejprve setup, poté opakovaně loop](../../../../../translated_images/cs/arduino-sketch.79590cb837ff7a7c6a68d1afda6cab83fd53d3bb1bd9a8bf2eaf8d693a4d3ea6.png) +![Sketch Arduino spouštějící nejprve setup, poté opakovaně loop](../../../../../translated_images/cs/arduino-sketch.79590cb837ff7a7c.webp) ✅ Tato architektura programu je známá jako *event loop* nebo *message loop*. Mnoho aplikací ji používá na pozadí a je standardem pro většinu desktopových aplikací, které běží na OS jako Windows, macOS nebo Linux. Funkce `loop` naslouchá zprávám z komponent uživatelského rozhraní, jako jsou tlačítka, nebo zařízení, jako je klávesnice, a na ně reaguje. Více si můžete přečíst v tomto [článku o event loop](https://wikipedia.org/wiki/Event_loop). diff --git a/translations/cs/1-getting-started/lessons/3-sensors-and-actuators/README.md b/translations/cs/1-getting-started/lessons/3-sensors-and-actuators/README.md index 43100ba1a..49b874d37 100644 --- a/translations/cs/1-getting-started/lessons/3-sensors-and-actuators/README.md +++ b/translations/cs/1-getting-started/lessons/3-sensors-and-actuators/README.md @@ -1,6 +1,6 @@ # Interakce s fyzickým světem pomocí senzorů a akčních členů -![Přehled lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-3.cc3b7b4cd646de598698cce043c0393fd62ef42bac2eaf60e61272cd844250f4.jpg) +![Přehled lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-3.cc3b7b4cd646de59.webp) > Sketchnote od [Nitya Narasimhan](https://github.com/nitya). Klikněte na obrázek pro větší verzi. @@ -92,7 +92,7 @@ Digitální senzory, stejně jako analogové senzory, detekují svět kolem sebe Nejjednodušším digitálním senzorem je tlačítko nebo spínač. Jedná se o senzor se dvěma stavy, zapnuto nebo vypnuto. -![Tlačítko přijímá 5 voltů. Když není stisknuto, vrací 0 voltů, když je stisknuto, vrací 5 voltů](../../../../../translated_images/cs/button.eadb560b77ac45e56f523d9d8876e40444f63b419e33eb820082d461fa79490b.png) +![Tlačítko přijímá 5 voltů. Když není stisknuto, vrací 0 voltů, když je stisknuto, vrací 5 voltů](../../../../../translated_images/cs/button.eadb560b77ac45e5.webp) Piny na IoT zařízeních, jako jsou GPIO piny, mohou tento signál přímo měřit jako 0 nebo 1. Pokud je napětí odeslané stejné jako napětí vrácené, hodnota je 1, jinak je hodnota 0. Není potřeba signál převádět, může být pouze 1 nebo 0. @@ -125,7 +125,7 @@ Mezi běžné akční členy patří: Postupujte podle příslušného návodu níže a přidejte akční člen do svého IoT zařízení, který bude ovládán senzorem, abyste vytvořili IoT noční světlo. Bude shromažďovat úrovně světla ze světelného senzoru a používat akční člen ve formě LED diody k vyzařování světla, když je detekovaná úroveň světla příliš nízká. -![Diagram úkolu ukazující čtení a kontrolu úrovní světla a ovládání LED](../../../../../translated_images/cs/assignment-1-flow.7552a51acb1a5ec858dca6e855cdbb44206434006df8ba3799a25afcdab1665d.png) +![Diagram úkolu ukazující čtení a kontrolu úrovní světla a ovládání LED](../../../../../translated_images/cs/assignment-1-flow.7552a51acb1a5ec8.webp) * [Arduino - Wio Terminal](wio-terminal-actuator.md) * [Jednodeskový počítač - Raspberry Pi](pi-actuator.md) @@ -140,7 +140,7 @@ Stejně jako senzory, akční členy mohou být buď analogové, nebo digitáln Analogové akční členy přijímají analogový signál a převádějí jej na nějakou formu interakce, kde se interakce mění na základě dodaného napětí. Jedním z příkladů je stmívatelné světlo, například to, které můžete mít doma. Množství dodaného napětí určuje, jak jasně svítí. -![Světlo ztlumené při nízkém napětí a jasnější při vyšším napětí](../../../../../translated_images/cs/dimmable-light.9ceffeb195dec1a849da718b2d71b32c35171ff7dfea9c07bbf82646a67acf6b.png) +![Světlo ztlumené při nízkém napětí a jasnější při vyšším napětí](../../../../../translated_images/cs/dimmable-light.9ceffeb195dec1a8.webp) Stejně jako u senzorů, skutečné IoT zařízení pracuje s digitálními signály, nikoli analogovými. To znamená, že k odeslání analogového signálu potřebuje IoT zařízení převodník z digitálního na analogový signál (DAC), buď přímo na IoT zařízení, nebo na připojovací desce. Ten převede 0 a 1 z IoT zařízení na analogové napětí, které může aktuátor využít. @@ -187,7 +187,7 @@ Digitální aktuátory, stejně jako digitální senzory, mají buď dva stavy o Jednoduchým digitálním aktuátorem je LED dioda. Když zařízení pošle digitální signál 1, odešle se vysoké napětí, které LED diodu rozsvítí. Když se pošle digitální signál 0, napětí klesne na 0V a LED dioda se vypne. -![LED dioda je vypnutá při 0 voltech a zapnutá při 5V](../../../../../translated_images/cs/led.ec6d94f66676a174ad06d9fa9ea49c2ee89beb18b312d5c6476467c66375b07f.png) +![LED dioda je vypnutá při 0 voltech a zapnutá při 5V](../../../../../translated_images/cs/led.ec6d94f66676a174.webp) ✅ Jaké další jednoduché dvoustavové aktuátory vás napadají? Jedním příkladem je solenoid, což je elektromagnet, který lze aktivovat k provádění úkonů, jako je pohyb závory dveří při zamykání/odemykání. diff --git a/translations/cs/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md b/translations/cs/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md index 55b8ef1af..ffe4ac226 100644 --- a/translations/cs/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md +++ b/translations/cs/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md @@ -26,7 +26,7 @@ Grove LED je dodávána jako modul s výběrem LED diod, což vám umožňuje zv Připojte LED. -![Grove LED](../../../../../translated_images/cs/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![Grove LED](../../../../../translated_images/cs/grove-led.6c853be93f473cf2.webp) 1. Vyberte svou oblíbenou LED diodu a vložte její nožičky do dvou otvorů na modulu LED. @@ -40,7 +40,7 @@ Připojte LED. 1. S vypnutým Raspberry Pi připojte druhý konec Grove kabelu k digitální zásuvce označené **D5** na Grove Base hat připojeném k Pi. Tato zásuvka je druhá zleva v řadě zásuvek vedle GPIO pinů. -![Grove LED připojená k zásuvce D5](../../../../../translated_images/cs/pi-led.97f1d474981dc35d1c7996c7b17de355d3d0a6bc9606d79fa5f89df933415122.png) +![Grove LED připojená k zásuvce D5](../../../../../translated_images/cs/pi-led.97f1d474981dc35d.webp) ## Naprogramujte noční světlo diff --git a/translations/cs/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md b/translations/cs/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md index a0782d5a0..607282522 100644 --- a/translations/cs/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md +++ b/translations/cs/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md @@ -16,13 +16,13 @@ Grove světelný senzor, který se používá k detekci úrovní světla, musí Připojte světelný senzor. -![Grove světelný senzor](../../../../../translated_images/cs/grove-light-sensor.b8127b7c434e632d6bcdb57587a14e9ef69a268a22df95d08628f62b8fa5505c.png) +![Grove světelný senzor](../../../../../translated_images/cs/grove-light-sensor.b8127b7c434e632d.webp) 1. Zasuňte jeden konec Grove kabelu do konektoru na modulu světelného senzoru. Kabel lze zasunout pouze jedním způsobem. 1. S vypnutým Raspberry Pi připojte druhý konec Grove kabelu do analogového konektoru označeného **A0** na Grove Base hat připojeném k Pi. Tento konektor je druhý zprava v řadě konektorů vedle GPIO pinů. -![Grove světelný senzor připojený ke konektoru A0](../../../../../translated_images/cs/pi-light-sensor.66cc1e31fa48cd7d5f23400d4b2119aa41508275cb7c778053a7923b4e972d7e.png) +![Grove světelný senzor připojený ke konektoru A0](../../../../../translated_images/cs/pi-light-sensor.66cc1e31fa48cd7d.webp) ## Naprogramujte světelný senzor diff --git a/translations/cs/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md b/translations/cs/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md index 7aec8c89d..568be98f4 100644 --- a/translations/cs/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md +++ b/translations/cs/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md @@ -36,11 +36,11 @@ Přidejte LED diodu do aplikace CounterFit. 1. Vyberte tlačítko **Add** pro vytvoření LED diody na pinu 5. - ![Nastavení LED diody](../../../../../translated_images/cs/counterfit-create-led.ba9db1c9b8c622a635d6dfae5cdc4e70c2b250635bd4f0601c6cf0bd22b7ba46.png) + ![Nastavení LED diody](../../../../../translated_images/cs/counterfit-create-led.ba9db1c9b8c622a6.webp) LED dioda bude vytvořena a objeví se v seznamu akčních členů. - ![Vytvořená LED dioda](../../../../../translated_images/cs/counterfit-led.c0ab02de6d256ad84d9bad4d67a7faa709f0ea83e410cfe9b5561ef0cef30b1c.png) + ![Vytvořená LED dioda](../../../../../translated_images/cs/counterfit-led.c0ab02de6d256ad8.webp) Jakmile je LED dioda vytvořena, můžete změnit její barvu pomocí výběru *Color*. Vyberte tlačítko **Set** pro změnu barvy po jejím výběru. diff --git a/translations/cs/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md b/translations/cs/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md index 86f9c608c..a92832f62 100644 --- a/translations/cs/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md +++ b/translations/cs/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md @@ -28,11 +28,11 @@ Přidejte světelný senzor do aplikace CounterFit. 1. Klikněte na tlačítko **Add**, abyste vytvořili světelný senzor na pinu 0. - ![Nastavení světelného senzoru](../../../../../translated_images/cs/counterfit-create-light-sensor.9f36a5e0d4458d8d554d54b34d2c806d56093d6e49fddcda2d20f6fef7f5cce1.png) + ![Nastavení světelného senzoru](../../../../../translated_images/cs/counterfit-create-light-sensor.9f36a5e0d4458d8d.webp) Světelný senzor bude vytvořen a objeví se v seznamu senzorů. - ![Vytvořený světelný senzor](../../../../../translated_images/cs/counterfit-light-sensor.5d0f5584df56b90f6b2561910d9cb20dfbd73eeff2177c238d38f4de54aefae1.png) + ![Vytvořený světelný senzor](../../../../../translated_images/cs/counterfit-light-sensor.5d0f5584df56b90f.webp) ## Naprogramujte světelný senzor diff --git a/translations/cs/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md b/translations/cs/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md index 0c32abf8f..19b0d3118 100644 --- a/translations/cs/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md +++ b/translations/cs/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md @@ -26,7 +26,7 @@ Grove LED je dodávána jako modul s výběrem LED diod, což vám umožňuje zv Připojte LED. -![Grove LED](../../../../../translated_images/cs/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![Grove LED](../../../../../translated_images/cs/grove-led.6c853be93f473cf2.webp) 1. Vyberte si svou oblíbenou LED a vložte její nožičky do dvou otvorů na modulu LED. diff --git a/translations/cs/1-getting-started/lessons/4-connect-internet/README.md b/translations/cs/1-getting-started/lessons/4-connect-internet/README.md index 2f9c4dfbf..70f7045be 100644 --- a/translations/cs/1-getting-started/lessons/4-connect-internet/README.md +++ b/translations/cs/1-getting-started/lessons/4-connect-internet/README.md @@ -1,6 +1,6 @@ # Připojte své zařízení k internetu -![Přehled lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-4.7344e074ea68fa545fd320b12dce36d72dd62d28c3b4596cb26cf315f434b98f.jpg) +![Přehled lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-4.7344e074ea68fa54.webp) > Sketchnote od [Nitya Narasimhan](https://github.com/nitya). Klikněte na obrázek pro větší verzi. @@ -47,7 +47,7 @@ MQTT je nejpopulárnější komunikační protokol pro IoT zařízení a je pokr MQTT má jednoho brokeru a více klientů. Všichni klienti se připojují k brokeru, který směruje zprávy relevantním klientům. Zprávy jsou směrovány pomocí pojmenovaných témat, místo aby byly odesílány přímo jednotlivým klientům. Klient může publikovat do tématu a všichni klienti, kteří se k tomuto tématu přihlásí, obdrží zprávu. -![IoT zařízení publikující telemetrii na téma /telemetry a cloudová služba přihlašující se k tomuto tématu](../../../../../translated_images/cs/mqtt.cbf7f21d9adc3e17548b359444cc11bb4bf2010543e32ece9a47becf54438c23.png) +![IoT zařízení publikující telemetrii na téma /telemetry a cloudová služba přihlašující se k tomuto tématu](../../../../../translated_images/cs/mqtt.cbf7f21d9adc3e17.webp) ✅ Udělejte si průzkum. Pokud máte mnoho IoT zařízení, jak zajistíte, že váš MQTT broker zvládne všechny zprávy? @@ -69,7 +69,7 @@ Namísto řešení složitostí nastavení MQTT brokeru jako součást tohoto ú > 💁 Tento testovací broker je veřejný a není zabezpečený. Kdokoliv může poslouchat, co publikujete, takže by neměl být používán s daty, která je třeba uchovat v soukromí. -![Diagram úkolu ukazující čtení a kontrolu úrovní světla a ovládání LED](../../../../../translated_images/cs/assignment-1-internet-flow.3256feab5f052fd273bf4e331157c574c2c3fa42e479836fc9c3586f41db35a5.png) +![Diagram úkolu ukazující čtení a kontrolu úrovní světla a ovládání LED](../../../../../translated_images/cs/assignment-1-internet-flow.3256feab5f052fd2.webp) Postupujte podle relevantního kroku níže pro připojení vašeho zařízení k MQTT brokeru: @@ -350,7 +350,7 @@ Pro stroje byste možná chtěli data uchovat, zejména pokud se používají k Návrháři IoT zařízení by také měli zvážit, zda lze IoT zařízení používat během výpadku internetu nebo ztráty signálu způsobené lokalitou. Chytrý termostat by měl být schopen provádět některá omezená rozhodnutí o řízení vytápění, pokud nemůže odesílat telemetrii do cloudu kvůli výpadku. -[![Tento Ferrari přestal fungovat, protože někdo zkusil provést aktualizaci pod zemí, kde není signál](../../../../../translated_images/cs/bricked-car.dc38f8efadc6c59d76211f981a521efb300939283dee468f79503aae3ec67615.png)](https://twitter.com/internetofshit/status/1315736960082808832) +[![Tento Ferrari přestal fungovat, protože někdo zkusil provést aktualizaci pod zemí, kde není signál](../../../../../translated_images/cs/bricked-car.dc38f8efadc6c59d.webp)](https://twitter.com/internetofshit/status/1315736960082808832) Aby MQTT zvládlo ztrátu připojení, musí být zařízení a serverový kód zodpovědné za zajištění doručení zpráv, pokud je to potřeba, například vyžadováním, aby na všechny odeslané zprávy byly odpovězeno dalšími zprávami na odpovědním tématu. Pokud ne, jsou ručně zařazeny do fronty k pozdějšímu přehrání. @@ -358,7 +358,7 @@ Aby MQTT zvládlo ztrátu připojení, musí být zařízení a serverový kód Příkazy jsou zprávy odeslané z cloudu do zařízení, které mu nařizují něco udělat. Většinou to zahrnuje nějaký výstup přes akční člen, ale může to být i instrukce pro samotné zařízení, například restartovat nebo shromáždit další telemetrii a vrátit ji jako odpověď na příkaz. -![Internetem připojený termostat přijímá příkaz k zapnutí topení](../../../../../translated_images/cs/commands.d6c06bbbb3a02cce95f2831a1c331daf6dedd4e470c4aa2b0ae54f332016e504.png) +![Internetem připojený termostat přijímá příkaz k zapnutí topení](../../../../../translated_images/cs/commands.d6c06bbbb3a02cce.webp) Termostat by mohl přijmout příkaz z cloudu k zapnutí topení. Na základě telemetrických dat ze všech senzorů cloudová služba rozhodla, že topení by mělo být zapnuto, a tak odešle příslušný příkaz. diff --git a/translations/cs/2-farm/lessons/1-predict-plant-growth/README.md b/translations/cs/2-farm/lessons/1-predict-plant-growth/README.md index ccc9d9767..f675be813 100644 --- a/translations/cs/2-farm/lessons/1-predict-plant-growth/README.md +++ b/translations/cs/2-farm/lessons/1-predict-plant-growth/README.md @@ -1,6 +1,6 @@ # Předpověď růstu rostlin pomocí IoT -![Přehled této lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-5.42b234299279d263143148b88ab4583861a32ddb03110c6c1120e41bb88b2592.jpg) +![Přehled této lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-5.42b234299279d263.webp) > Sketchnote od [Nitya Narasimhan](https://github.com/nitya). Klikněte na obrázek pro větší verzi. @@ -102,7 +102,7 @@ Postup, jak to udělat ručně, je následující: Například, pokud je nejvyšší teplota za den 25 °C a nejnižší 12 °C: -![GDD = 25 + 12 děleno 2, poté odečtěte 10 z výsledku, což dává 8.5](../../../../../translated_images/cs/gdd-calculation-strawberries.59f57db94b22adb8ff6efb951ace33af104a1c6ccca3ffb0f8169c14cb160c90.png) +![GDD = 25 + 12 děleno 2, poté odečtěte 10 z výsledku, což dává 8.5](../../../../../translated_images/cs/gdd-calculation-strawberries.59f57db94b22adb8.webp) * 25 + 12 = 37 * 37 / 2 = 18.5 diff --git a/translations/cs/2-farm/lessons/1-predict-plant-growth/assignment.md b/translations/cs/2-farm/lessons/1-predict-plant-growth/assignment.md index 471c7a14a..b2830aacb 100644 --- a/translations/cs/2-farm/lessons/1-predict-plant-growth/assignment.md +++ b/translations/cs/2-farm/lessons/1-predict-plant-growth/assignment.md @@ -33,7 +33,7 @@ Jakmile máte teplotní data, můžete použít Jupyter Notebook v tomto repozit Jupyter se spustí a otevře notebook ve vašem prohlížeči. Projděte si instrukce v notebooku, vizualizujte naměřené teploty a vypočítejte růstové stupně (GDD). - ![Jupyter notebook](../../../../../translated_images/cs/gdd-jupyter-notebook.c5b52cf21094f158a61f47f455490fd95f1729777ff90861a4521820bf354cdc.png) + ![Jupyter notebook](../../../../../translated_images/cs/gdd-jupyter-notebook.c5b52cf21094f158.webp) ## Hodnocení diff --git a/translations/cs/2-farm/lessons/1-predict-plant-growth/pi-temp.md b/translations/cs/2-farm/lessons/1-predict-plant-growth/pi-temp.md index 8af14ef99..9f032f5ee 100644 --- a/translations/cs/2-farm/lessons/1-predict-plant-growth/pi-temp.md +++ b/translations/cs/2-farm/lessons/1-predict-plant-growth/pi-temp.md @@ -16,13 +16,13 @@ Teplotní senzor Grove lze připojit k Raspberry Pi. Připojte teplotní senzor. -![Teplotní senzor Grove](../../../../../translated_images/cs/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![Teplotní senzor Grove](../../../../../translated_images/cs/grove-dht11.07f8eafceee17004.webp) 1. Zasuňte jeden konec kabelu Grove do konektoru na senzoru vlhkosti a teploty. Kabel lze zasunout pouze jedním směrem. 1. S vypnutým Raspberry Pi připojte druhý konec kabelu Grove do digitálního konektoru označeného **D5** na Grove Base hat připojeném k Pi. Tento konektor je druhý zleva v řadě konektorů vedle GPIO pinů. -![Teplotní senzor Grove připojený ke konektoru A0](../../../../../translated_images/cs/pi-temperature-sensor.3ff82fff672c8e565ef25a39d26d111de006b825a7e0867227ef4e7fbff8553c.png) +![Teplotní senzor Grove připojený ke konektoru A0](../../../../../translated_images/cs/pi-temperature-sensor.3ff82fff672c8e56.webp) ## Naprogramování teplotního senzoru diff --git a/translations/cs/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md b/translations/cs/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md index 3723eec4f..5b632a21f 100644 --- a/translations/cs/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md +++ b/translations/cs/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md @@ -38,11 +38,11 @@ Přidejte senzory vlhkosti a teploty do aplikace CounterFit. 1. Klikněte na tlačítko **Add** pro vytvoření senzoru vlhkosti na pinu 5. - ![Nastavení senzoru vlhkosti](../../../../../translated_images/cs/counterfit-create-humidity-sensor.2750e27b6f30e09cf4e22101defd5252710717620816ab41ba688f91f757c49a.png) + ![Nastavení senzoru vlhkosti](../../../../../translated_images/cs/counterfit-create-humidity-sensor.2750e27b6f30e09c.webp) Senzor vlhkosti bude vytvořen a objeví se v seznamu senzorů. - ![Vytvořený senzor vlhkosti](../../../../../translated_images/cs/counterfit-humidity-sensor.7b12f7f339e430cb26c8211d2dba4ef75261b353a01da0932698b5bebd693f27.png) + ![Vytvořený senzor vlhkosti](../../../../../translated_images/cs/counterfit-humidity-sensor.7b12f7f339e430cb.webp) 1. Vytvořte teplotní senzor: @@ -54,11 +54,11 @@ Přidejte senzory vlhkosti a teploty do aplikace CounterFit. 1. Klikněte na tlačítko **Add** pro vytvoření teplotního senzoru na pinu 6. - ![Nastavení teplotního senzoru](../../../../../translated_images/cs/counterfit-create-temperature-sensor.199350ed34f7343d79dccbe95eaf6c11d2121f03d1c35ab9613b330c23f39b29.png) + ![Nastavení teplotního senzoru](../../../../../translated_images/cs/counterfit-create-temperature-sensor.199350ed34f7343d.webp) Teplotní senzor bude vytvořen a objeví se v seznamu senzorů. - ![Vytvořený teplotní senzor](../../../../../translated_images/cs/counterfit-temperature-sensor.f0560236c96a9016bafce7f6f792476fe3367bc6941a1f7d5811d144d4bcbfff.png) + ![Vytvořený teplotní senzor](../../../../../translated_images/cs/counterfit-temperature-sensor.f0560236c96a9016.webp) ## Naprogramování aplikace pro teplotní senzor diff --git a/translations/cs/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md b/translations/cs/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md index 54b4ed445..0c3fea260 100644 --- a/translations/cs/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md +++ b/translations/cs/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md @@ -18,7 +18,7 @@ Grove teplotní senzor lze připojit k digitálnímu portu Wio Terminalu. Připojte teplotní senzor. -![Grove teplotní senzor](../../../../../translated_images/cs/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![Grove teplotní senzor](../../../../../translated_images/cs/grove-dht11.07f8eafceee17004.webp) 1. Zasuňte jeden konec Grove kabelu do konektoru na senzoru vlhkosti a teploty. Kabel lze zasunout pouze jedním směrem. diff --git a/translations/cs/2-farm/lessons/2-detect-soil-moisture/README.md b/translations/cs/2-farm/lessons/2-detect-soil-moisture/README.md index 0f3afa4e1..861d075f4 100644 --- a/translations/cs/2-farm/lessons/2-detect-soil-moisture/README.md +++ b/translations/cs/2-farm/lessons/2-detect-soil-moisture/README.md @@ -13,7 +13,7 @@ I²C má sběrnici složenou ze 2 hlavních vodičů spolu s 2 napájecími vodi | VCC | Voltage common collector | Napájení pro zařízení. Je připojeno k vodičům SDA a SCL, aby jim poskytovalo napájení přes pull-up rezistor, který vypíná signál, když žádné zařízení není řadičem. | | GND | Ground | Poskytuje společnou zem pro elektrický obvod. | -![I2C sběrnice se 3 zařízeními připojenými k vodičům SDA a SCL, sdílející společný zemnící vodič](../../../../../translated_images/cs/i2c.83da845dde02256bdd462dbe0d5145461416b74930571b89d1ae142841eeb584.png) +![I2C sběrnice se 3 zařízeními připojenými k vodičům SDA a SCL, sdílející společný zemnící vodič](../../../../../translated_images/cs/i2c.83da845dde02256b.webp) Pro přenos dat jedno zařízení vydá startovací podmínku, aby ukázalo, že je připraveno posílat data. Poté se stane řadičem. Řadič následně pošle adresu zařízení, se kterým chce komunikovat, spolu s informací, zda chce data číst nebo zapisovat. Po přenosu dat řadič pošle stopovací podmínku, aby naznačil, že skončil. Poté se jiné zařízení může stát řadičem a posílat nebo přijímat data. diff --git a/translations/cs/2-farm/lessons/2-detect-soil-moisture/assignment.md b/translations/cs/2-farm/lessons/2-detect-soil-moisture/assignment.md index d617f1b96..bf0c075f3 100644 --- a/translations/cs/2-farm/lessons/2-detect-soil-moisture/assignment.md +++ b/translations/cs/2-farm/lessons/2-detect-soil-moisture/assignment.md @@ -20,7 +20,7 @@ Tyto kroky budete muset opakovat několikrát, pokaždé s různou vlhkostí pů Gravimetrická vlhkost půdy se vypočítá jako: -![vlhkost půdy % je hmotnost mokré půdy minus hmotnost suché půdy, děleno hmotností suché půdy, krát 100](../../../../../translated_images/cs/gsm-calculation.6da38c6201eec14e7573bb2647aa18892883193553d23c9d77e5dc681522dfb2.png) +![vlhkost půdy % je hmotnost mokré půdy minus hmotnost suché půdy, děleno hmotností suché půdy, krát 100](../../../../../translated_images/cs/gsm-calculation.6da38c6201eec14e.webp) * W - hmotnost mokré půdy @@ -29,7 +29,7 @@ Gravimetrická vlhkost půdy se vypočítá jako: Například, máte vzorek půdy, který váží 212 g mokrý a 197 g suchý. -![Vyplněný výpočet](../../../../../translated_images/cs/gsm-calculation-example.99f9803b4f29e97668e7c15412136c0c399ab12dbba0b89596fdae9d8aedb6fb.png) +![Vyplněný výpočet](../../../../../translated_images/cs/gsm-calculation-example.99f9803b4f29e976.webp) * W = 212 g * W = 197 g diff --git a/translations/cs/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md b/translations/cs/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md index 91c1b26eb..aea5a301a 100644 --- a/translations/cs/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md +++ b/translations/cs/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md @@ -18,13 +18,13 @@ Senzor vlhkosti půdy Grove lze připojit k Raspberry Pi. Připojte senzor vlhkosti půdy. -![Senzor vlhkosti půdy Grove](../../../../../translated_images/cs/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![Senzor vlhkosti půdy Grove](../../../../../translated_images/cs/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. Zasuňte jeden konec kabelu Grove do konektoru na senzoru vlhkosti půdy. Kabel lze zasunout pouze jedním směrem. 1. S vypnutým Raspberry Pi připojte druhý konec kabelu Grove do analogového konektoru označeného **A0** na Grove Base Hat připojeném k Raspberry Pi. Tento konektor je druhý zprava v řadě konektorů vedle GPIO pinů. -![Senzor vlhkosti půdy Grove připojený do konektoru A0](../../../../../translated_images/cs/pi-soil-moisture-sensor.fdd7eb2393792cf6739cacf1985d9f55beda16d372f30d0b5a51d586f978a870.png) +![Senzor vlhkosti půdy Grove připojený do konektoru A0](../../../../../translated_images/cs/pi-soil-moisture-sensor.fdd7eb2393792cf6.webp) 1. Zasuňte senzor vlhkosti půdy do půdy. Senzor má "nejvyšší poziční čáru" - bílou čáru přes senzor. Zasuňte senzor až k této čáře, ale ne dál. diff --git a/translations/cs/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md b/translations/cs/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md index 111a1be70..4871eff36 100644 --- a/translations/cs/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md +++ b/translations/cs/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md @@ -34,11 +34,11 @@ Přidejte senzor vlhkosti půdy do aplikace CounterFit. 1. Klikněte na tlačítko **Add** pro vytvoření senzoru *Soil Moisture* na pinu 0. - ![Nastavení senzoru vlhkosti půdy](../../../../../translated_images/cs/counterfit-create-soil-moisture-sensor.35266135a5e0ae68b29a684d7db0d2933a8098b2307d197f7c71577b724603aa.png) + ![Nastavení senzoru vlhkosti půdy](../../../../../translated_images/cs/counterfit-create-soil-moisture-sensor.35266135a5e0ae68.webp) Senzor vlhkosti půdy bude vytvořen a objeví se v seznamu senzorů. - ![Vytvořený senzor vlhkosti půdy](../../../../../translated_images/cs/counterfit-soil-moisture-sensor.81742b2de0e9de60a3b3b9a2ff8ecc686d428eb6d71820f27a693be26e5aceee.png) + ![Vytvořený senzor vlhkosti půdy](../../../../../translated_images/cs/counterfit-soil-moisture-sensor.81742b2de0e9de60.webp) ## Naprogramování aplikace senzoru vlhkosti půdy diff --git a/translations/cs/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md b/translations/cs/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md index c2dc1549a..3bf11c6d4 100644 --- a/translations/cs/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md +++ b/translations/cs/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md @@ -18,7 +18,7 @@ Grove senzor vlhkosti půdy lze připojit k konfigurovatelnému analogovému/dig Připojte senzor vlhkosti půdy. -![Grove senzor vlhkosti půdy](../../../../../translated_images/cs/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![Grove senzor vlhkosti půdy](../../../../../translated_images/cs/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. Zasuňte jeden konec Grove kabelu do konektoru na senzoru vlhkosti půdy. Kabel lze zasunout pouze jedním způsobem. diff --git a/translations/cs/2-farm/lessons/3-automated-plant-watering/README.md b/translations/cs/2-farm/lessons/3-automated-plant-watering/README.md index 4240edf80..dedc44f73 100644 --- a/translations/cs/2-farm/lessons/3-automated-plant-watering/README.md +++ b/translations/cs/2-farm/lessons/3-automated-plant-watering/README.md @@ -1,6 +1,6 @@ # Automatické zavlažování rostlin -![Přehled této lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-7.30b5f577d3cb8e031238751475cb519c7d6dbaea261b5df4643d086ffb2a03bb.jpg) +![Přehled této lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-7.30b5f577d3cb8e03.webp) > Sketchnote od [Nitya Narasimhan](https://github.com/nitya). Klikněte na obrázek pro větší verzi. @@ -32,7 +32,7 @@ IoT zařízení používají nízké napětí. Zatímco to stačí pro senzory a Řešením je mít čerpadlo připojené k externímu zdroji napájení a použít aktuátor k zapnutí čerpadla, podobně jako byste zapnuli světlo. K zapnutí vypínače stačí malá množství energie (ve formě energie vašeho těla), což připojí světlo k síťovému napájení běžícímu na 110V/240V. -![Vypínač zapíná napájení světla](../../../../../translated_images/cs/light-switch.760317ad6ab8bd6d611da5352dfe9c73a94a0822ccec7df3c8bae35da18e1658.png) +![Vypínač zapíná napájení světla](../../../../../translated_images/cs/light-switch.760317ad6ab8bd6d.webp) > 🎓 [Síťová elektřina](https://wikipedia.org/wiki/Mains_electricity) označuje elektřinu dodávanou do domácností a podniků prostřednictvím národní infrastruktury v mnoha částech světa. @@ -72,7 +72,7 @@ Když se páka pohybuje, obvykle slyšíte, jak se dotkne elektromagnetu s dobř Elektromagnet nepotřebuje mnoho energie k aktivaci a přitažení páky, může být ovládán pomocí 3,3V nebo 5V výstupu z IoT vývojové desky. Výstupní obvod může přenášet mnohem více energie, v závislosti na relé, včetně síťového napětí nebo dokonce vyšších úrovní výkonu pro průmyslové použití. Tímto způsobem může IoT vývojová deska ovládat zavlažovací systém, od malého čerpadla pro jednu rostlinu až po masivní průmyslový systém pro celé komerční farmy. -![Relé Grove s označeným ovládacím obvodem, výstupním obvodem a relé](../../../../../translated_images/cs/grove-relay-labelled.293e068f5c3c2a199bd7892f2661fdc9e10c920b535cfed317fbd6d1d4ae1168.png) +![Relé Grove s označeným ovládacím obvodem, výstupním obvodem a relé](../../../../../translated_images/cs/grove-relay-labelled.293e068f5c3c2a19.webp) Obrázek výše ukazuje relé Grove. Ovládací obvod se připojuje k IoT zařízení a zapíná nebo vypíná relé pomocí 3,3V nebo 5V. Výstupní obvod má dva terminály, jeden může být napájení nebo uzemnění. Výstupní obvod může zvládnout až 250V při 10A, což je dost pro řadu zařízení napájených ze sítě. Můžete získat relé, která zvládnou ještě vyšší úrovně výkonu. diff --git a/translations/cs/2-farm/lessons/3-automated-plant-watering/pi-relay.md b/translations/cs/2-farm/lessons/3-automated-plant-watering/pi-relay.md index 5b24a5cf2..0ae717a6d 100644 --- a/translations/cs/2-farm/lessons/3-automated-plant-watering/pi-relay.md +++ b/translations/cs/2-farm/lessons/3-automated-plant-watering/pi-relay.md @@ -18,13 +18,13 @@ Grove relé lze připojit k Raspberry Pi. Připojte relé. -![Grove relé](../../../../../translated_images/cs/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) +![Grove relé](../../../../../translated_images/cs/grove-relay.d426958ca210fbd0.webp) 1. Zasuňte jeden konec Grove kabelu do konektoru na relé. Kabel lze zasunout pouze jedním způsobem. 1. S vypnutým Raspberry Pi připojte druhý konec Grove kabelu do digitálního konektoru označeného **D5** na Grove Base Hat připojeném k Pi. Tento konektor je druhý zleva v řadě konektorů vedle GPIO pinů. Senzor vlhkosti půdy ponechte připojený ke konektoru **A0**. -![Grove relé připojené ke konektoru D5 a senzor vlhkosti půdy připojený ke konektoru A0](../../../../../translated_images/cs/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e69ec716cd2719ce117700bd1fc933eaf93476c103c57939b.png) +![Grove relé připojené ke konektoru D5 a senzor vlhkosti půdy připojený ke konektoru A0](../../../../../translated_images/cs/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e.webp) 1. Zasuňte senzor vlhkosti půdy do půdy, pokud tam již není z předchozí lekce. diff --git a/translations/cs/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md b/translations/cs/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md index 4a7455c81..90344f207 100644 --- a/translations/cs/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md +++ b/translations/cs/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md @@ -28,11 +28,11 @@ Přidejte relé do aplikace CounterFit. 1. Klikněte na tlačítko **Add**, abyste vytvořili relé na pinu 5. - ![Nastavení relé](../../../../../translated_images/cs/counterfit-create-relay.fa7c40fd0f2f6afc33b35ea94fcb235085be4861e14e3fe6b9b7bcfc82d1c888.png) + ![Nastavení relé](../../../../../translated_images/cs/counterfit-create-relay.fa7c40fd0f2f6afc.webp) Relé bude vytvořeno a objeví se v seznamu aktuátorů. - ![Vytvořené relé](../../../../../translated_images/cs/counterfit-relay.bbf74c1dbdc8b9acd983367fcbd06703a402aefef6af54ddb28e11307ba8a12c.png) + ![Vytvořené relé](../../../../../translated_images/cs/counterfit-relay.bbf74c1dbdc8b9ac.webp) ## Naprogramování relé diff --git a/translations/cs/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md b/translations/cs/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md index 4f3be602d..59456a3b4 100644 --- a/translations/cs/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md +++ b/translations/cs/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md @@ -18,7 +18,7 @@ Grove relé lze připojit k digitálnímu portu Wio Terminalu. Připojte relé. -![Grove relé](../../../../../translated_images/cs/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) +![Grove relé](../../../../../translated_images/cs/grove-relay.d426958ca210fbd0.webp) 1. Zasuňte jeden konec Grove kabelu do zásuvky na relé. Kabel lze zasunout pouze jedním způsobem. diff --git a/translations/cs/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md b/translations/cs/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md index 20d6b5a63..57028976f 100644 --- a/translations/cs/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md +++ b/translations/cs/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md @@ -1,6 +1,6 @@ # Přesuňte svou rostlinu do cloudu -![Přehled této lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-8.3f21f3c11159e6a0a376351973ea5724d5de68fa23b4288853a174bed9ac48c3.jpg) +![Přehled této lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-8.3f21f3c11159e6a0.webp) > Sketchnote od [Nitya Narasimhan](https://github.com/nitya). Klikněte na obrázek pro větší verzi. @@ -46,8 +46,8 @@ To mohlo být velmi drahé, vyžadovalo širokou škálu kvalifikovaných zaměs Cloud je často žertovně označován jako "počítač někoho jiného". Původní myšlenka byla jednoduchá - místo nákupu počítačů si pronajmete počítač někoho jiného. Někdo jiný, poskytovatel cloudových služeb, by spravoval obrovská datová centra. Byl by zodpovědný za nákup a instalaci hardwaru, správu napájení a chlazení, síťovou infrastrukturu, zabezpečení budovy, aktualizace hardwaru a softwaru, vše. Jako zákazník byste si pronajali počítače, které potřebujete, pronajímali více, když poptávka stoupá, a snižovali počet pronajatých počítačů, když poptávka klesá. Tato cloudová datová centra jsou po celém světě. -![Microsoft cloudové datové centrum](../../../../../translated_images/cs/azure-region-existing.73f704604f2aa6cb9b5a49ed40e93d4fd81ae3f4e6af4a8ca504023902832f56.png) -![Plánovaná expanze Microsoft cloudového datového centra](../../../../../translated_images/cs/azure-region-planned-expansion.a5074a1e8af74f156a73552d502429e5b126ea5019274d767ecb4b9afdad442b.png) +![Microsoft cloudové datové centrum](../../../../../translated_images/cs/azure-region-existing.73f704604f2aa6cb.webp) +![Plánovaná expanze Microsoft cloudového datového centra](../../../../../translated_images/cs/azure-region-planned-expansion.a5074a1e8af74f15.webp) Tato datová centra mohou mít rozlohu několika čtverečních kilometrů. Obrázky výše byly pořízeny před několika lety v Microsoft cloudovém datovém centru a ukazují počáteční velikost spolu s plánovanou expanzí. Oblast vyčištěná pro expanzi má přes 5 čtverečních kilometrů. @@ -108,11 +108,11 @@ IoT služby v cloudu tyto problémy řeší. Jsou spravovány velkými poskytova IoT zařízení se připojují ke cloudové službě buď pomocí SDK zařízení (knihovny, která poskytuje kód pro práci s funkcemi služby), nebo přímo prostřednictvím komunikačního protokolu, jako je MQTT nebo HTTP. SDK zařízení je obvykle nejjednodušší cesta, protože se postará o vše, například o to, jaké témata publikovat nebo odebírat, a jak řešit zabezpečení. -![Zařízení se připojují ke službě pomocí SDK zařízení. Serverový kód se také připojuje ke službě prostřednictvím SDK](../../../../../translated_images/cs/iot-service-connectivity.7e873847921a5d6fd60d0ba3a943210194518cee0d4e362476624316443275c3.png) +![Zařízení se připojují ke službě pomocí SDK zařízení. Serverový kód se také připojuje ke službě prostřednictvím SDK](../../../../../translated_images/cs/iot-service-connectivity.7e873847921a5d6f.webp) Vaše zařízení pak komunikuje s ostatními částmi vaší aplikace prostřednictvím této služby - podobně jako jste posílali telemetrii a přijímali příkazy přes MQTT. To se obvykle děje pomocí SDK služby nebo podobné knihovny. Zprávy přicházejí z vašeho zařízení do služby, kde je ostatní komponenty vaší aplikace mohou číst, a zprávy mohou být posílány zpět na vaše zařízení. -![Zařízení bez platného tajného klíče se nemohou připojit k IoT službě](../../../../../translated_images/cs/iot-service-allowed-denied-connection.818b0063ac213fb84204a7229303764d9b467ca430fb822b4ac2fca267d56726.png) +![Zařízení bez platného tajného klíče se nemohou připojit k IoT službě](../../../../../translated_images/cs/iot-service-allowed-denied-connection.818b0063ac213fb8.webp) Tyto služby implementují zabezpečení tím, že znají všechna zařízení, která se mohou připojit a posílat data, buď tím, že jsou zařízení předem registrována u služby, nebo tím, že zařízení mají tajné klíče nebo certifikáty, které mohou použít k registraci u služby při prvním připojení. Neznámá zařízení se nemohou připojit, pokud se o to pokusí, služba připojení odmítne a ignoruje zprávy, které posílají. @@ -124,7 +124,7 @@ Ostatní komponenty vaší aplikace se mohou připojit k IoT službě a zjistit Nyní, když máte předplatné Azure, můžete se přihlásit k IoT službě. IoT služba od Microsoftu se nazývá Azure IoT Hub. -![Logo Azure IoT Hub](../../../../../translated_images/cs/azure-iot-hub-logo.28a19de76d0a1932464d858f7558712bcdace3e5ec69c434d482ed7ce41c3a26.png) +![Logo Azure IoT Hub](../../../../../translated_images/cs/azure-iot-hub-logo.28a19de76d0a1932.webp) Níže uvedené video poskytuje krátký přehled o Azure IoT Hub: diff --git a/translations/cs/2-farm/lessons/5-migrate-application-to-the-cloud/README.md b/translations/cs/2-farm/lessons/5-migrate-application-to-the-cloud/README.md index 32666ef23..a8699b412 100644 --- a/translations/cs/2-farm/lessons/5-migrate-application-to-the-cloud/README.md +++ b/translations/cs/2-farm/lessons/5-migrate-application-to-the-cloud/README.md @@ -1,6 +1,6 @@ # Přesuňte logiku své aplikace do cloudu -![Přehled této lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-9.dfe99c8e891f48e179724520da9f5794392cf9a625079281ccdcbf09bd85e1b6.jpg) +![Přehled této lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-9.dfe99c8e891f48e1.webp) > Sketchnote od [Nitya Narasimhan](https://github.com/nitya). Klikněte na obrázek pro větší verzi. @@ -28,7 +28,7 @@ V této lekci se zaměříme na: Serverless, nebo serverless computing, zahrnuje vytváření malých bloků kódu, které se spouštějí v cloudu v reakci na různé typy událostí. Když k události dojde, váš kód se spustí a předají se mu data o této události. Tyto události mohou pocházet z různých zdrojů, včetně webových požadavků, zpráv vložených do fronty, změn dat v databázi nebo zpráv odeslaných IoT zařízeními do IoT služby. -![Události odesílané z IoT služby do serverless služby, všechny zpracovávané současně více funkcemi](../../../../../translated_images/cs/iot-messages-to-serverless.0194da1cc0732bb7d0f823aed3fce54735c6b1ad3bf36089804d8aaefc0a774f.png) +![Události odesílané z IoT služby do serverless služby, všechny zpracovávané současně více funkcemi](../../../../../translated_images/cs/iot-messages-to-serverless.0194da1cc0732bb7.webp) > 💁 Pokud jste někdy používali databázové triggery, můžete si to představit jako něco podobného – kód se spouští na základě události, například vložení řádku. @@ -54,7 +54,7 @@ Pro IoT vývojáře je serverless model ideální. Můžete napsat funkci, kter Serverless služba od Microsoftu se nazývá Azure Functions. -![Logo Azure Functions](../../../../../translated_images/cs/azure-functions-logo.1cfc8e3204c9c44aaf80fcf406fc8544d80d7f00f8d3e8ed6fed764563e17564.png) +![Logo Azure Functions](../../../../../translated_images/cs/azure-functions-logo.1cfc8e3204c9c44a.webp) Krátké video níže poskytuje přehled Azure Functions. diff --git a/translations/cs/2-farm/lessons/6-keep-your-plant-secure/README.md b/translations/cs/2-farm/lessons/6-keep-your-plant-secure/README.md index f4da84697..34ea09940 100644 --- a/translations/cs/2-farm/lessons/6-keep-your-plant-secure/README.md +++ b/translations/cs/2-farm/lessons/6-keep-your-plant-secure/README.md @@ -1,6 +1,6 @@ # Udržujte svou rostlinu v bezpečí -![Přehled lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-10.829c86b80b9403bb770929ee553a1d293afe50dc23121aaf9be144673ae012cc.jpg) +![Přehled lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-10.829c86b80b9403bb.webp) > Sketchnote od [Nitya Narasimhan](https://github.com/nitya). Klikněte na obrázek pro větší verzi. @@ -52,11 +52,11 @@ Toto jsou scénáře z reálného světa, které se dějí neustále. Některé Když se zařízení připojuje k IoT službě, používá ID k identifikaci. Problém je, že toto ID může být zkopírováno – hacker by mohl nastavit škodlivé zařízení, které používá stejné ID jako skutečné zařízení, ale posílá falešná data. -![Platná i škodlivá zařízení mohou používat stejné ID k odesílání telemetrie](../../../../../translated_images/cs/iot-device-and-hacked-device-connecting.e0671675df74d6d99eb1dedb5a670e606f698efa6202b1ad4c8ae548db299cc6.png) +![Platná i škodlivá zařízení mohou používat stejné ID k odesílání telemetrie](../../../../../translated_images/cs/iot-device-and-hacked-device-connecting.e0671675df74d6d9.webp) Řešením je převést data, která jsou odesílána, do zašifrovaného formátu pomocí hodnoty známé pouze zařízení a cloudu. Tento proces se nazývá *šifrování* a hodnota použitá k šifrování dat se nazývá *šifrovací klíč*. -![Pokud je použito šifrování, budou přijímány pouze zašifrované zprávy, ostatní budou odmítnuty](../../../../../translated_images/cs/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f979e46f2849b573564eeb4a4dc5b52f669f62745397492fb.png) +![Pokud je použito šifrování, budou přijímány pouze zašifrované zprávy, ostatní budou odmítnuty](../../../../../translated_images/cs/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f.webp) Cloudová služba pak může data převést zpět do čitelného formátu pomocí procesu nazývaného *dešifrování*, buď pomocí stejného šifrovacího klíče, nebo *dešifrovacího klíče*. Pokud zašifrovanou zprávu nelze dešifrovat klíčem, zařízení bylo hacknuto a zpráva je odmítnuta. diff --git a/translations/cs/3-transport/lessons/1-location-tracking/README.md b/translations/cs/3-transport/lessons/1-location-tracking/README.md index 28df7dcfc..06b4192f1 100644 --- a/translations/cs/3-transport/lessons/1-location-tracking/README.md +++ b/translations/cs/3-transport/lessons/1-location-tracking/README.md @@ -1,6 +1,6 @@ # Sledování polohy -![Přehled této lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-11.9fddbac4b664c6d50ab7ac9bb32f1fc3f945f03760e72f7f43938073762fb017.jpg) +![Přehled této lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-11.9fddbac4b664c6d5.webp) > Sketchnote od [Nitya Narasimhan](https://github.com/nitya). Klikněte na obrázek pro větší verzi. @@ -63,13 +63,13 @@ Země je koule – trojrozměrný kruh. Z tohoto důvodu jsou body definovány r > 💁 Nikdo přesně neví, proč jsou kruhy rozděleny na 360 stupňů. [Stránka o stupních (úhlech) na Wikipedii](https://wikipedia.org/wiki/Degree_(angle)) pokrývá některé možné důvody. -![Čáry zeměpisné šířky od 90° na severním pólu, 45° v polovině mezi severním pólem a rovníkem, 0° na rovníku, -45° v polovině mezi rovníkem a jižním pólem a -90° na jižním pólu](../../../../../translated_images/cs/latitude-lines.11d8d91dfb2014a57437272d7db7fd6607243098e8685f06e0c5f1ec984cb7eb.png) +![Čáry zeměpisné šířky od 90° na severním pólu, 45° v polovině mezi severním pólem a rovníkem, 0° na rovníku, -45° v polovině mezi rovníkem a jižním pólem a -90° na jižním pólu](../../../../../translated_images/cs/latitude-lines.11d8d91dfb2014a5.webp) Zeměpisná šířka se měří pomocí čar, které obkružují Zemi a běží paralelně s rovníkem, rozdělují severní a jižní polokouli na 90° každou. Rovník je na 0°, severní pól je na 90°, také známý jako 90° severní šířky, a jižní pól je na -90°, nebo 90° jižní šířky. Zeměpisná délka se měří jako počet stupňů na východ a západ. Nulový poledník, označovaný jako *Prime Meridian*, byl v roce 1884 definován jako čára od severního k jižnímu pólu, která prochází [Královskou observatoří v Greenwichi, Anglie](https://wikipedia.org/wiki/Royal_Observatory,_Greenwich). -![Čáry zeměpisné délky od -180° západně od Prime Meridian, přes 0° na Prime Meridian, až po 180° východně od Prime Meridian](../../../../../translated_images/cs/longitude-meridians.ab4ef1c91c064586b0185a3c8d39e585903696c6a7d28c098a93a629cddb5d20.png) +![Čáry zeměpisné délky od -180° západně od Prime Meridian, přes 0° na Prime Meridian, až po 180° východně od Prime Meridian](../../../../../translated_images/cs/longitude-meridians.ab4ef1c91c064586.webp) > 🎓 Poledník je imaginární přímka, která vede od severního pólu k jižnímu pólu a tvoří půlkruh. @@ -100,7 +100,7 @@ Souřadnice bodu se vždy uvádějí jako `zeměpisná šířka, zeměpisná dé * Zeměpisnou šířku 47.6423109 (47.6423109 stupňů severně od rovníku) * Zeměpisnou délku -122.1390293 (122.1390293 stupňů západně od Prime Meridian). -![Kampus Microsoftu na 47.6423109,-122.117198](../../../../../translated_images/cs/microsoft-gps-location-world.a321d481b010f6adfcca139b2ba0adc53b79f58a540495b8e2ce7f779ea64bfe.png) +![Kampus Microsoftu na 47.6423109,-122.117198](../../../../../translated_images/cs/microsoft-gps-location-world.a321d481b010f6ad.webp) ## Globální polohové systémy (GPS) @@ -112,7 +112,7 @@ GPS systémy fungují tak, že mají řadu satelitů, které vysílají signál > 💁 GPS senzory potřebují antény k detekci rádiových vln. Antény zabudované do nákladních aut a aut s vestavěným GPS jsou umístěny tak, aby měly dobrý signál, obvykle na čelním skle nebo střeše. Pokud používáte samostatný GPS systém, například chytrý telefon nebo IoT zařízení, musíte zajistit, aby anténa zabudovaná do GPS systému nebo telefonu měla jasný výhled na oblohu, například byla namontována na čelním skle. -![Díky znalosti vzdálenosti od senzoru k více satelitům lze vypočítat polohu](../../../../../translated_images/cs/gps-satellites.04acf1148fe25fbf1586bc2e8ba698e8d79b79a50c36824b38417dd13372b90f.png) +![Díky znalosti vzdálenosti od senzoru k více satelitům lze vypočítat polohu](../../../../../translated_images/cs/gps-satellites.04acf1148fe25fbf.webp) GPS satelity obíhají Zemi, nejsou na pevném bodě nad senzorem, takže data o poloze zahrnují nadmořskou výšku nad hladinou moře i zeměpisnou šířku a délku. diff --git a/translations/cs/3-transport/lessons/1-location-tracking/pi-gps-sensor.md b/translations/cs/3-transport/lessons/1-location-tracking/pi-gps-sensor.md index 17ac15406..130368bff 100644 --- a/translations/cs/3-transport/lessons/1-location-tracking/pi-gps-sensor.md +++ b/translations/cs/3-transport/lessons/1-location-tracking/pi-gps-sensor.md @@ -18,13 +18,13 @@ Grove GPS senzor lze připojit k Raspberry Pi. Připojte GPS senzor. -![Grove GPS senzor](../../../../../translated_images/cs/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![Grove GPS senzor](../../../../../translated_images/cs/grove-gps-sensor.247943bf69b03f0d.webp) 1. Zasuňte jeden konec Grove kabelu do konektoru na GPS senzoru. Kabel lze zasunout pouze jedním směrem. 1. S vypnutým Raspberry Pi připojte druhý konec Grove kabelu do konektoru UART označeného **UART** na Grove Base hat připojeném k Pi. Tento konektor se nachází ve střední řadě na straně blíže k slotu na SD kartu, na opačné straně od USB portů a ethernetového konektoru. - ![Grove GPS senzor připojený k UART konektoru](../../../../../translated_images/cs/pi-gps-sensor.1f99ee2b2f6528915047ec78967bd362e0e4ee0ed594368a3837b9cf9cdaca64.png) + ![Grove GPS senzor připojený k UART konektoru](../../../../../translated_images/cs/pi-gps-sensor.1f99ee2b2f652891.webp) 1. Umístěte GPS senzor tak, aby připojená anténa měla viditelnost na oblohu - ideálně vedle otevřeného okna nebo venku. Je snazší získat jasnější signál, pokud anténě nic nepřekáží. diff --git a/translations/cs/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md b/translations/cs/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md index c3ec9a1fe..5cd8ff247 100644 --- a/translations/cs/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md +++ b/translations/cs/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md @@ -38,11 +38,11 @@ Přidejte GPS senzor do aplikace CounterFit. 1. Vyberte tlačítko **Add** pro vytvoření GPS senzoru na portu `/dev/ttyAMA0`. - ![Nastavení GPS senzoru](../../../../../translated_images/cs/counterfit-create-gps-sensor.6385dc9357d85ad1d47b4abb2525e7651fd498917d25eefc5a72feab09eedc70.png) + ![Nastavení GPS senzoru](../../../../../translated_images/cs/counterfit-create-gps-sensor.6385dc9357d85ad1.webp) GPS senzor bude vytvořen a objeví se v seznamu senzorů. - ![Vytvořený GPS senzor](../../../../../translated_images/cs/counterfit-gps-sensor.3fbb15af0a5367566f2f11324ef5a6f30861cdf2b497071a5e002b7aa473550e.png) + ![Vytvořený GPS senzor](../../../../../translated_images/cs/counterfit-gps-sensor.3fbb15af0a536756.webp) ## Programování GPS senzoru @@ -102,17 +102,17 @@ Naprogramujte aplikaci GPS senzoru. * Nastavte **Source** na `Lat/Lon` a zadejte konkrétní zeměpisnou šířku, délku a počet satelitů použitých k získání GPS fixu. Tato hodnota bude odeslána pouze jednou, takže zaškrtněte políčko **Repeat**, aby se data opakovala každou sekundu. - ![GPS senzor s vybraným lat lon](../../../../../translated_images/cs/counterfit-gps-sensor-latlon.008c867d75464fbe7f84107cc57040df565ac07cb57d2f21db37d087d470197d.png) + ![GPS senzor s vybraným lat lon](../../../../../translated_images/cs/counterfit-gps-sensor-latlon.008c867d75464fbe.webp) * Nastavte **Source** na `NMEA` a přidejte některé NMEA věty do textového pole. Všechny tyto hodnoty budou odeslány, s prodlevou 1 sekundy před každou novou větou GGA (fixace polohy). - ![GPS senzor s nastavenými NMEA větami](../../../../../translated_images/cs/counterfit-gps-sensor-nmea.c62eea442171e17e19528b051b104cfcecdc9cd18db7bc72920f29821ae63f73.png) + ![GPS senzor s nastavenými NMEA větami](../../../../../translated_images/cs/counterfit-gps-sensor-nmea.c62eea442171e17e.webp) Můžete použít nástroj jako [nmeagen.org](https://www.nmeagen.org) k vytvoření těchto vět nakreslením na mapě. Tyto hodnoty budou odeslány pouze jednou, takže zaškrtněte políčko **Repeat**, aby se data opakovala jednu sekundu poté, co byla všechna odeslána. * Nastavte **Source** na GPX soubor a nahrajte GPX soubor s trasovými lokacemi. GPX soubory můžete stáhnout z řady populárních mapovacích a turistických webů, jako je [AllTrails](https://www.alltrails.com/). Tyto soubory obsahují více GPS lokací jako trasu a GPS senzor vrátí každou novou lokaci v intervalech 1 sekundy. - ![GPS senzor s nastaveným GPX souborem](../../../../../translated_images/cs/counterfit-gps-sensor-gpxfile.8310b063ce8a425ccc8ebeec8306aeac5e8e55207f007d52c6e1194432a70cd9.png) + ![GPS senzor s nastaveným GPX souborem](../../../../../translated_images/cs/counterfit-gps-sensor-gpxfile.8310b063ce8a425c.webp) Tyto hodnoty budou odeslány pouze jednou, takže zaškrtněte políčko **Repeat**, aby se data opakovala jednu sekundu poté, co byla všechna odeslána. diff --git a/translations/cs/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md b/translations/cs/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md index b61591050..78c312452 100644 --- a/translations/cs/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md +++ b/translations/cs/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md @@ -18,7 +18,7 @@ Grove GPS senzor lze připojit k Wio Terminalu. Připojte GPS senzor. -![Grove GPS senzor](../../../../../translated_images/cs/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![Grove GPS senzor](../../../../../translated_images/cs/grove-gps-sensor.247943bf69b03f0d.webp) 1. Zasuňte jeden konec Grove kabelu do konektoru na GPS senzoru. Kabel lze zasunout pouze jedním směrem. diff --git a/translations/cs/3-transport/lessons/2-store-location-data/README.md b/translations/cs/3-transport/lessons/2-store-location-data/README.md index ab10b865a..80d27592c 100644 --- a/translations/cs/3-transport/lessons/2-store-location-data/README.md +++ b/translations/cs/3-transport/lessons/2-store-location-data/README.md @@ -1,6 +1,6 @@ # Ukládání dat o poloze -![Přehled této lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-12.ca7f53039712a3ec14ad6474d8445361c84adab643edc53fa6269b77895606bb.jpg) +![Přehled této lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-12.ca7f53039712a3ec.webp) > Sketchnote od [Nitya Narasimhan](https://github.com/nitya). Klikněte na obrázek pro větší verzi. @@ -75,7 +75,7 @@ NoSQL databáze se nazývají NoSQL, protože nemají stejnou pevnou strukturu j > 💁 Navzdory svému názvu některé NoSQL databáze umožňují používat SQL k dotazování na data. -![Dokumenty ve složkách v NoSQL databázi](../../../../../translated_images/cs/noqsl-database.62d24ccf5b73f60d35c245a8533f1c7147c0928e955b82cb290b2e184bb434df.png) +![Dokumenty ve složkách v NoSQL databázi](../../../../../translated_images/cs/noqsl-database.62d24ccf5b73f60d.webp) NoSQL databáze nemají předem definované schéma, které by omezovalo způsob ukládání dat. Můžete do nich vkládat jakákoli nestrukturovaná data, obvykle ve formátu JSON. Tyto dokumenty mohou být organizovány do složek, podobně jako soubory na vašem počítači. Každý dokument může mít jiné pole než ostatní dokumenty - například pokud byste ukládali IoT data z vašich zemědělských vozidel, některá mohou mít pole pro data z akcelerometru a rychlosti, jiná mohou mít pole pro teplotu v přívěsu. Pokud byste přidali nový typ nákladního vozu, například s vestavěnými váhami pro sledování hmotnosti přepravovaného zboží, vaše IoT zařízení by mohlo přidat toto nové pole a mohlo by být uloženo bez jakýchkoli změn v databázi. @@ -89,7 +89,7 @@ V této lekci budete používat NoSQL úložiště pro ukládání IoT dat. V minulé lekci jste zachytili GPS data z GPS senzoru připojeného k vašemu IoT zařízení. Aby bylo možné tato IoT data uložit v cloudu, je potřeba je odeslat do IoT služby. Opět budete používat Azure IoT Hub, stejnou IoT cloudovou službu, kterou jste použili v předchozím projektu. -![Odesílání GPS telemetrie z IoT zařízení do IoT Hubu](../../../../../translated_images/cs/gps-telemetry-iot-hub.8115335d51cd2c1285d20e9d1b18cf685e59a8e093e7797291ef173445af6f3d.png) +![Odesílání GPS telemetrie z IoT zařízení do IoT Hubu](../../../../../translated_images/cs/gps-telemetry-iot-hub.8115335d51cd2c12.webp) ### Úkol - odesílání GPS dat do IoT Hubu @@ -171,7 +171,7 @@ Studená data jsou ukládána v datových skladech - databázích navržených p Jakmile data proudí do vašeho IoT Hubu, můžete napsat serverless kód, který bude naslouchat událostem publikovaným na Event-Hub kompatibilním endpointu. Toto je teplá cesta - tato data budou uložena a použita v další lekci pro reportování cesty. -![Odesílání GPS telemetrie z IoT zařízení do IoT Hubu a poté do Azure Functions pomocí triggeru Event Hub](../../../../../translated_images/cs/gps-telemetry-iot-hub-functions.24d3fa5592455e9f4e2fe73856b40c3915a292b90263c31d652acfd976cfedd8.png) +![Odesílání GPS telemetrie z IoT zařízení do IoT Hubu a poté do Azure Functions pomocí triggeru Event Hub](../../../../../translated_images/cs/gps-telemetry-iot-hub-functions.24d3fa5592455e9f.webp) ### Úkol - zpracování GPS událostí pomocí serverless kódu @@ -193,7 +193,7 @@ Jakmile data proudí do vašeho IoT Hubu, můžete napsat serverless kód, kter ## Účty Azure Storage -![Logo Azure Storage](../../../../../translated_images/cs/azure-storage-logo.605c0f602c640d482a80f1b35a2629a32d595711b7ab1d7ceea843250615ff32.png) +![Logo Azure Storage](../../../../../translated_images/cs/azure-storage-logo.605c0f602c640d48.webp) Účty Azure Storage jsou univerzální službou úložiště, která umožňuje ukládat data různými způsoby. Data můžete ukládat jako blob, do front, do tabulek nebo jako soubory, a to vše současně. diff --git a/translations/cs/3-transport/lessons/3-visualize-location-data/README.md b/translations/cs/3-transport/lessons/3-visualize-location-data/README.md index c198dba1e..d1ae48d8c 100644 --- a/translations/cs/3-transport/lessons/3-visualize-location-data/README.md +++ b/translations/cs/3-transport/lessons/3-visualize-location-data/README.md @@ -1,6 +1,6 @@ # Vizualizace dat o poloze -![Přehled této lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-13.a259db1485021be7d7c72e90842fbe0ab977529e8684c179b5fb1ea75e92b3ef.jpg) +![Přehled této lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-13.a259db1485021be7.webp) > Sketchnote od [Nitya Narasimhan](https://github.com/nitya). Klikněte na obrázek pro větší verzi. @@ -64,11 +64,11 @@ Jednoduchý příklad - v projektu farmy jste zachytili údaje o vlhkosti půdy. Pro člověka může být pochopení těchto dat obtížné. Je to jen stěna čísel bez jakéhokoli významu. Jako první krok k vizualizaci těchto dat je možné je vykreslit na čárovém grafu: -![Čárový graf výše uvedených dat](../../../../../translated_images/cs/chart-soil-moisture.fd6d9d0cdc0b5f75e78038ecb8945dfc84b38851359de99d84b16e3336d6d7c2.png) +![Čárový graf výše uvedených dat](../../../../../translated_images/cs/chart-soil-moisture.fd6d9d0cdc0b5f75.webp) Tento graf lze dále vylepšit přidáním čáry, která označuje, kdy byl automatický zavlažovací systém zapnut při hodnotě vlhkosti půdy 450: -![Čárový graf vlhkosti půdy s čárou na hodnotě 450](../../../../../translated_images/cs/chart-soil-moisture-relay.fbb391236d34a64d0abf1df396e9197e0a24df14150620b9cc820a64a55c9326.png) +![Čárový graf vlhkosti půdy s čárou na hodnotě 450](../../../../../translated_images/cs/chart-soil-moisture-relay.fbb391236d34a64d.webp) Tento graf velmi rychle ukazuje nejen úroveň vlhkosti půdy, ale také body, kdy byl zavlažovací systém zapnut. @@ -84,7 +84,7 @@ Při práci s GPS daty může být nejjasnější vizualizací vykreslení dat n Práce s mapami je zajímavé cvičení a existuje mnoho možností, jako jsou Bing Maps, Leaflet, Open Street Maps a Google Maps. V této lekci se naučíte o [Azure Maps](https://azure.microsoft.com/services/azure-maps/?WT.mc_id=academic-17441-jabenn) a jak mohou zobrazovat vaše GPS data. -![Logo Azure Maps](../../../../../translated_images/cs/azure-maps-logo.35d01dcfbd81fe6140e94257aaa1538f785a58c91576d14e0ebe7a2f6c694b99.png) +![Logo Azure Maps](../../../../../translated_images/cs/azure-maps-logo.35d01dcfbd81fe61.webp) Azure Maps je "sbírka geospace služeb a SDK, které využívají aktuální mapová data k poskytování geografického kontextu webovým a mobilním aplikacím." Vývojáři mají k dispozici nástroje pro vytváření krásných, interaktivních map, které mohou například poskytovat doporučené trasy, informace o dopravních incidentech, navigaci uvnitř budov, vyhledávací funkce, informace o nadmořské výšce, povětrnostní služby a další. @@ -185,7 +185,7 @@ Nyní můžete přejít k dalšímu kroku, kterým je zobrazení mapy na webové Pokud otevřete svůj soubor `index.html` v webovém prohlížeči, měli byste vidět načtenou mapu zaměřenou na oblast Seattlu. - ![Mapa zobrazující Seattle, město ve státě Washington, USA](../../../../../translated_images/cs/map-image.8fb2c53eb23ef39c1c0a4410a5282e879b3b452b707eb066ff04c5488d3d72b7.png) + ![Mapa zobrazující Seattle, město ve státě Washington, USA](../../../../../translated_images/cs/map-image.8fb2c53eb23ef39c.webp) ✅ Experimentujte s parametry zoomu a centra pro změnu zobrazení mapy. Můžete přidat různé souřadnice odpovídající zeměpisné šířce a délce vašich dat pro přemístění mapy. @@ -319,7 +319,7 @@ Pokud provedete požadavek na své úložiště, abyste získali data, můžete 1. Načtěte HTML stránku ve svém prohlížeči. Načte mapu, poté načte všechna GPS data z úložiště a vykreslí je na mapě. - ![Mapa Saint Edward State Park poblíž Seattlu, s kruhy zobrazujícími cestu kolem okraje parku](../../../../../translated_images/cs/map-path.896832e72dc696ffe20650e4051027d4855442d955f93fdbb80bb417ca8a406f.png) + ![Mapa Saint Edward State Park poblíž Seattlu, s kruhy zobrazujícími cestu kolem okraje parku](../../../../../translated_images/cs/map-path.896832e72dc696ff.webp) > 💁 Tento kód najdete ve složce [code](../../../../../3-transport/lessons/3-visualize-location-data/code). diff --git a/translations/cs/3-transport/lessons/4-geofences/README.md b/translations/cs/3-transport/lessons/4-geofences/README.md index 0637ee0d3..1ba266c0c 100644 --- a/translations/cs/3-transport/lessons/4-geofences/README.md +++ b/translations/cs/3-transport/lessons/4-geofences/README.md @@ -1,6 +1,6 @@ # Geofencing -![Přehled této lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-14.63980c5150ae3c153e770fb71d044c1845dce79248d86bed9fc525adf3ede73c.jpg) +![Přehled této lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-14.63980c5150ae3c15.webp) > Sketchnote od [Nitya Narasimhan](https://github.com/nitya). Klikněte na obrázek pro větší verzi. @@ -35,7 +35,7 @@ V této lekci se zaměříme na: Geofence je virtuální obvod pro geografickou oblast v reálném světě. Geofences mohou být kruhy definované jako bod a poloměr (například kruh o průměru 100 m kolem budovy) nebo polygon pokrývající oblast, jako je školní zóna, hranice města nebo univerzitní či kancelářský kampus. -![Několik příkladů geofencí ukazujících kruhovou geofence kolem obchodu Microsoft a polygonovou geofence kolem západního kampusu Microsoft](../../../../../translated_images/cs/geofence-examples.172fbc534665769f6e1a1ddcf75e3b25183cd10354c80cc603ba44b635390e1a.png) +![Několik příkladů geofencí ukazujících kruhovou geofence kolem obchodu Microsoft a polygonovou geofence kolem západního kampusu Microsoft](../../../../../translated_images/cs/geofence-examples.172fbc534665769f.webp) > 💁 Možná jste již používali geofences, aniž byste o tom věděli. Pokud jste nastavili připomínku pomocí aplikace iOS Reminders nebo Google Keep na základě polohy, použili jste geofence. Tyto aplikace nastaví geofence na základě zadané polohy a upozorní vás, když váš telefon vstoupí do geofence. @@ -212,7 +212,7 @@ Je důležité znát vzdálenost k okraji geofence a kombinovat ji s dalšími i Například si představte GPS záznamy ukazující, že vozidlo jelo po silnici, která končí vedle geofence. Pokud jediná GPS hodnota není přesná a umístí vozidlo uvnitř geofence, přestože tam není žádný přístup pro vozidla, může být ignorována. -![GPS stopa ukazující vozidlo projíždějící kolem kampusu Microsoft na 520, s GPS záznamy podél silnice kromě jednoho na kampusu, uvnitř geofence](../../../../../translated_images/cs/geofence-crossing-inaccurate-gps.6a3ed911202ad9cabb66d3964888cec03a42c61d5b8f536ad5bdc99716b370f5.png) +![GPS stopa ukazující vozidlo projíždějící kolem kampusu Microsoft na 520, s GPS záznamy podél silnice kromě jednoho na kampusu, uvnitř geofence](../../../../../translated_images/cs/geofence-crossing-inaccurate-gps.6a3ed911202ad9ca.webp) Na obrázku je geofence pokrývající část kampusu Microsoftu. Červená čára ukazuje trasu nákladního vozu jedoucího po dálnici 520, s kruhy označujícími GPS záznamy. Většina záznamů je přesná a odpovídá trase po dálnici 520, ale jeden nepřesný záznam se nachází uvnitř geofence. Tento záznam nemůže být správný – neexistují žádné silnice, po kterých by se nákladní vůz mohl náhle odchýlit z dálnice 520 na kampus a poté se vrátit zpět na dálnici 520. Kód, který kontroluje tuto geofence, bude muset vzít v úvahu předchozí záznamy, než začne jednat na základě výsledků testu geofence. ✅ Jaké další údaje byste potřebovali zkontrolovat, abyste zjistili, zda lze GPS záznam považovat za správný? @@ -284,7 +284,7 @@ Jak si pamatujete z předchozích lekcí, IoT Hub umožňuje přehrávat událos Odpověď je, že to nemůže! Místo toho můžete definovat více samostatných připojení pro čtení událostí, a každé z nich může spravovat přehrávání nepřečtených zpráv. Tyto se nazývají *consumer groups*. Když se připojíte k endpointu, můžete specifikovat, ke které consumer group se chcete připojit. Každá komponenta vaší aplikace se připojí k jiné consumer group. -![Jeden IoT Hub se 3 consumer groups distribuující stejné zprávy do 3 různých Functions aplikací](../../../../../translated_images/cs/consumer-groups.a3262e26fc27ba2092863678ad57af15c7223416e388a23f330c058cf4358630.png) +![Jeden IoT Hub se 3 consumer groups distribuující stejné zprávy do 3 různých Functions aplikací](../../../../../translated_images/cs/consumer-groups.a3262e26fc27ba20.webp) Teoreticky se může ke každé consumer group připojit až 5 aplikací, a všechny obdrží zprávy, když dorazí. Nejlepší praxí je mít pouze jednu aplikaci přistupující ke každé consumer group, aby se zabránilo duplicitnímu zpracování zpráv a zajistilo, že při restartování budou všechny zařazené zprávy správně zpracovány. Například pokud spustíte svou Functions aplikaci lokálně i v cloudu, obě budou zpracovávat zprávy, což povede k duplicitním blobům uloženým v úložišti. diff --git a/translations/cs/4-manufacturing/lessons/1-train-fruit-detector/README.md b/translations/cs/4-manufacturing/lessons/1-train-fruit-detector/README.md index 8f7ab3962..bcc6f7120 100644 --- a/translations/cs/4-manufacturing/lessons/1-train-fruit-detector/README.md +++ b/translations/cs/4-manufacturing/lessons/1-train-fruit-detector/README.md @@ -1,6 +1,6 @@ # Trénink detektoru kvality ovoce -![Přehled této lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-15.843d21afdc6fb2bba70cd9db7b7d2f91598859fafda2078b0bdc44954194b6c0.jpg) +![Přehled této lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-15.843d21afdc6fb2bb.webp) > Sketchnote od [Nitya Narasimhan](https://github.com/nitya). Klikněte na obrázek pro větší verzi. @@ -38,7 +38,7 @@ Ne všechny plodiny dozrávají rovnoměrně. Například rajčata mohou mít na Rozmach automatizované sklizně přesunul třídění plodin ze sklizně do továren. Potraviny se pohybovaly na dlouhých dopravníkových pásech, kde týmy lidí vybíraly plodiny, které neodpovídaly požadovaným kvalitativním standardům. Sklizeň byla díky strojům levnější, ale stále zde byly náklady na ruční třídění potravin. -![Pokud je detekováno červené rajče, pokračuje na pásu. Pokud je detekováno zelené rajče, páka ho odhodí do odpadního koše.](../../../../../translated_images/cs/optical-tomato-sorting.61aa134bdda4e5b1bfb16a212c1e35a6ef0c426cbb8b1c975f79d7bfbf48d068.png) +![Pokud je detekováno červené rajče, pokračuje na pásu. Pokud je detekováno zelené rajče, páka ho odhodí do odpadního koše.](../../../../../translated_images/cs/optical-tomato-sorting.61aa134bdda4e5b1.webp) Další evolucí bylo použití strojů k třídění, buď zabudovaných do sklízecích strojů, nebo v zpracovatelských závodech. První generace těchto strojů používala optické senzory k detekci barev, ovládající akční členy, které zelená rajčata odhazovaly do odpadního koše pomocí pák nebo proudů vzduchu, zatímco červená rajčata pokračovala na síti dopravníkových pásů. @@ -62,7 +62,7 @@ Například můžete modelu poskytnout miliony obrázků nezralých banánů jak > 🎓 Výsledky modelů ML se nazývají *predikce*. -![2 banány, jeden zralý s predikcí 99,7 % zralý, 0,3 % nezralý, a jeden nezralý s predikcí 1,4 % zralý, 98,6 % nezralý.](../../../../../translated_images/cs/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50ece4e4589e724b142da0681f35470fe3db3f7d51240f69c85.png) +![2 banány, jeden zralý s predikcí 99,7 % zralý, 0,3 % nezralý, a jeden nezralý s predikcí 1,4 % zralý, 98,6 % nezralý.](../../../../../translated_images/cs/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50e.webp) Modely ML neposkytují binární odpověď, místo toho poskytují pravděpodobnosti. Například model může dostat obrázek banánu a předpovědět `zralý` s 99,7 % a `nezralý` s 0,3 %. Váš kód poté vybere nejlepší predikci a rozhodne, že banán je zralý. @@ -90,7 +90,7 @@ Existuje široká škála nástrojů, které vám s tím mohou pomoci, včetně Custom Vision je cloudový nástroj pro trénink klasifikátorů obrázků. Umožňuje vám trénovat klasifikátor pomocí pouze malého počtu obrázků. Obrázky můžete nahrávat prostřednictvím webového portálu, webového API nebo SDK, přičemž každému obrázku přiřadíte *tag*, který představuje klasifikaci daného obrázku. Poté model vytrénujete a otestujete, jak dobře funguje. Jakmile jste s modelem spokojeni, můžete publikovat jeho verze, které lze přistupovat prostřednictvím webového API nebo SDK. -![Logo Azure Custom Vision](../../../../../translated_images/cs/custom-vision-logo.d3d4e7c8a87ec9daf825e72e210576c3cbf60312577be7a139e22dd97ab7f1e6.png) +![Logo Azure Custom Vision](../../../../../translated_images/cs/custom-vision-logo.d3d4e7c8a87ec9da.webp) > 💁 Model Custom Vision můžete trénovat s pouhými 5 obrázky na klasifikaci, ale více je lepší. Lepších výsledků dosáhnete s alespoň 30 obrázky. @@ -146,7 +146,7 @@ Pro použití Custom Vision musíte nejprve vytvořit dva zdroje kognitivních s Při vytváření projektu se ujistěte, že používáte zdroj `fruit-quality-detector-training`, který jste vytvořili dříve. Použijte typ projektu *Classification*, typ klasifikace *Multiclass* a doménu *Food*. - ![Nastavení projektu Custom Vision s názvem fruit-quality-detector, bez popisu, zdrojem nastaveným na fruit-quality-detector-training, typem projektu nastaveným na classification, typem klasifikace na multi class a doménou na food.](../../../../../translated_images/cs/custom-vision-create-project.cf46325b92d8b131089f6647cf5e07b664cb77850e106d66e3c057b6b69756c6.png) + ![Nastavení projektu Custom Vision s názvem fruit-quality-detector, bez popisu, zdrojem nastaveným na fruit-quality-detector-training, typem projektu nastaveným na classification, typem klasifikace na multi class a doménou na food.](../../../../../translated_images/cs/custom-vision-create-project.cf46325b92d8b131.webp) ✅ Věnujte nějaký čas prozkoumání uživatelského rozhraní Custom Vision pro váš klasifikátor obrázků. @@ -164,7 +164,7 @@ Klasifikátory obrázků pracují s velmi nízkým rozlišením. Například Cus * Použijte 2 zralé banány, vyfoťte každý z nich z několika různých úhlů, pořiďte alespoň 7 obrázků (5 pro trénink, 2 pro testování), ale ideálně více. - ![Fotografie 2 různých banánů](../../../../../translated_images/cs/banana-training-images.530eb203346d73bc23b8b990fb4609470bf4ff7c942ccc13d4cfffeed9be1ad4.png) + ![Fotografie 2 různých banánů](../../../../../translated_images/cs/banana-training-images.530eb203346d73bc.webp) * Opakujte stejný proces s 2 nezralými banány. @@ -174,7 +174,7 @@ Klasifikátory obrázků pracují s velmi nízkým rozlišením. Například Cus 1. Postupujte podle [sekce nahrání a označení obrázků v rychlém startu pro vytvoření klasifikátoru na Microsoft Docs](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) a nahrajte své trénovací obrázky. Označte zralé ovoce jako `ripe` a nezralé ovoce jako `unripe`. - ![Dialogy nahrávání ukazující nahrávání obrázků zralých a nezralých banánů](../../../../../translated_images/cs/image-upload-bananas.0751639f3815e0ec42bdbc6254d1e4357a185834d1ae10c9948a0e7d6d336695.png) + ![Dialogy nahrávání ukazující nahrávání obrázků zralých a nezralých banánů](../../../../../translated_images/cs/image-upload-bananas.0751639f3815e0ec.webp) 1. Postupujte podle [sekce trénování klasifikátoru v rychlém startu pro vytvoření klasifikátoru na Microsoft Docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#train-the-classifier) a natrénujte klasifikátor obrázků na svých nahraných obrázcích. @@ -192,7 +192,7 @@ Jakmile je váš klasifikátor natrénován, můžete jej otestovat tím, že mu 1. Postupujte podle [dokumentace testování modelu na Microsoft Docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/test-your-model?WT.mc_id=academic-17441-jabenn#test-your-model) a otestujte svůj klasifikátor obrázků. Použijte testovací obrázky, které jste vytvořili dříve, nikoli žádné z obrázků, které jste použili pro trénování. - ![Nezralý banán předpovězen jako nezralý s pravděpodobností 98,9 %, zralý s pravděpodobností 1,1 %](../../../../../translated_images/cs/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64886422438850ea14f0be6ac918c217ea3b255c685abfabe7.png) + ![Nezralý banán předpovězen jako nezralý s pravděpodobností 98,9 %, zralý s pravděpodobností 1,1 %](../../../../../translated_images/cs/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64.webp) 1. Vyzkoušejte všechny testovací obrázky, které máte k dispozici, a sledujte pravděpodobnosti. diff --git a/translations/cs/4-manufacturing/lessons/2-check-fruit-from-device/README.md b/translations/cs/4-manufacturing/lessons/2-check-fruit-from-device/README.md index b0235a8b9..d9a3dced3 100644 --- a/translations/cs/4-manufacturing/lessons/2-check-fruit-from-device/README.md +++ b/translations/cs/4-manufacturing/lessons/2-check-fruit-from-device/README.md @@ -1,6 +1,6 @@ # Kontrola kvality ovoce pomocí IoT zařízení -![Přehled této lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-16.215daf18b00631fbdfd64c6fc2dc6044dff5d544288825d8076f9fb83d964c23.jpg) +![Přehled této lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-16.215daf18b00631fb.webp) > Sketchnote od [Nitya Narasimhan](https://github.com/nitya). Klikněte na obrázek pro větší verzi. @@ -26,7 +26,7 @@ V této lekci se zaměříme na: Kamerové senzory, jak název napovídá, jsou kamery, které můžete připojit k vašemu IoT zařízení. Mohou pořizovat statické obrázky nebo zachytávat streamované video. Některé vracejí surová obrazová data, jiné komprimují obrazová data do souborů, jako je JPEG nebo PNG. Obvykle jsou kamery, které fungují s IoT zařízeními, mnohem menší a mají nižší rozlišení, než na jaké jste zvyklí, ale můžete získat kamery s vysokým rozlišením, které se vyrovnají špičkovým telefonům. Můžete si pořídit různé vyměnitelné objektivy, sestavy s více kamerami, infračervené termální kamery nebo UV kamery. -![Světlo ze scény prochází objektivem a je zaostřeno na CMOS senzor](../../../../../translated_images/cs/cmos-sensor.75f9cd74decb137149a4c9ea825251a4549497d67c0ae2776159e6102bb53aa9.png) +![Světlo ze scény prochází objektivem a je zaostřeno na CMOS senzor](../../../../../translated_images/cs/cmos-sensor.75f9cd74decb1371.webp) Většina kamerových senzorů používá obrazové senzory, kde každý pixel je fotodioda. Objektiv zaostřuje obraz na obrazový senzor a tisíce nebo miliony fotodiod detekují světlo dopadající na každou z nich a zaznamenávají to jako obrazová data. @@ -74,7 +74,7 @@ Iterace se publikují z portálu Custom Vision. 1. Klikněte na tlačítko **Publikovat** pro danou iteraci. - ![Tlačítko publikovat](../../../../../translated_images/cs/custom-vision-publish-button.b7174e1977b0c33b8b72d4e5b1326c779e0af196f3849d09985ee2d7d5493a39.png) + ![Tlačítko publikovat](../../../../../translated_images/cs/custom-vision-publish-button.b7174e1977b0c33b.webp) 1. V dialogu *Publikovat model* nastavte *Predikční zdroj* na zdroj `fruit-quality-detector-prediction`, který jste vytvořili v minulé lekci. Název ponechte jako `Iteration2` a klikněte na tlačítko **Publikovat**. @@ -88,7 +88,7 @@ Iterace se publikují z portálu Custom Vision. Také si zkopírujte hodnotu *Prediction-Key*. Toto je bezpečnostní klíč, který musíte předat při volání modelu. Pouze aplikace, které předají tento klíč, mají povolení používat model, všechny ostatní aplikace jsou odmítnuty. - ![Dialog predikčního API zobrazující URL a klíč](../../../../../translated_images/cs/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![Dialog predikčního API zobrazující URL a klíč](../../../../../translated_images/cs/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ Když je publikována nová iterace, bude mít jiný název. Jak si myslíte, že byste změnili iteraci, kterou IoT zařízení používá? @@ -109,7 +109,7 @@ Může se stát, že výsledky, které získáte při použití kamery připojen Abyste dosáhli nejlepších výsledků u klasifikátoru obrázků, chcete model trénovat na obrázcích, které jsou co nejpodobnější obrázkům používaným pro predikce. Pokud jste například použili kameru telefonu k zachycení obrázků pro trénování, kvalita obrázku, ostrost a barvy budou odlišné od kamery připojené k IoT zařízení. -![2 obrázky banánů, jeden s nízkým rozlišením a špatným osvětlením z IoT zařízení, druhý s vysokým rozlišením a dobrým osvětlením z telefonu](../../../../../translated_images/cs/banana-picture-compare.174df164dc326a42cf7fb051a7497e6113c620e91552d92ca914220305d47d9a.png) +![2 obrázky banánů, jeden s nízkým rozlišením a špatným osvětlením z IoT zařízení, druhý s vysokým rozlišením a dobrým osvětlením z telefonu](../../../../../translated_images/cs/banana-picture-compare.174df164dc326a42.webp) Na obrázku výše byl obrázek banánu vlevo pořízen pomocí kamery Raspberry Pi, zatímco obrázek vpravo byl pořízen stejného banánu na stejném místě pomocí iPhonu. Je zde znatelný rozdíl v kvalitě – obrázek z iPhonu je ostřejší, s jasnějšími barvami a větším kontrastem. diff --git a/translations/cs/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md b/translations/cs/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md index 873e4baef..b7c6d2404 100644 --- a/translations/cs/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md +++ b/translations/cs/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md @@ -16,7 +16,7 @@ Kamera se k Raspberry Pi připojuje pomocí plochého kabelu. ### Úkol - připojte kameru -![Kamera Raspberry Pi](../../../../../translated_images/cs/pi-camera-module.4278753c31bd6e757aa2b858be97d72049f71616278cefe4fb5abb485b40a078.png) +![Kamera Raspberry Pi](../../../../../translated_images/cs/pi-camera-module.4278753c31bd6e75.webp) 1. Vypněte Raspberry Pi. @@ -24,17 +24,17 @@ Kamera se k Raspberry Pi připojuje pomocí plochého kabelu. Animaci, jak otevřít klip a vložit kabel, najdete v [dokumentaci Raspberry Pi Getting Started with the Camera module](https://projects.raspberrypi.org/en/projects/getting-started-with-picamera/2). - ![Plochý kabel zasunutý do kamerového modulu](../../../../../translated_images/cs/pi-camera-ribbon-cable.0bf82acd251611c21ac616f082849413e2b322a261d0e4f8fec344248083b07e.png) + ![Plochý kabel zasunutý do kamerového modulu](../../../../../translated_images/cs/pi-camera-ribbon-cable.0bf82acd251611c2.webp) 1. Odstraňte Grove Base Hat z Raspberry Pi. 1. Provlékněte plochý kabel otvorem pro kameru v Grove Base Hat. Ujistěte se, že modrá strana kabelu směřuje k analogovým portům označeným **A0**, **A1** atd. - ![Plochý kabel procházející Grove Base Hat](../../../../../translated_images/cs/grove-base-hat-ribbon-cable.501fed202fcf73b11b2b68f6d246189f7d15d3e4423c572ddee79d77b4632b47.png) + ![Plochý kabel procházející Grove Base Hat](../../../../../translated_images/cs/grove-base-hat-ribbon-cable.501fed202fcf73b1.webp) 1. Zasuňte plochý kabel do kamerového portu na Raspberry Pi. Opět vytáhněte černý plastový klip nahoru, vložte kabel a poté klip zatlačte zpět. Modrá strana kabelu by měla směřovat k USB a ethernetovým portům. - ![Plochý kabel připojený ke kamerovému portu na Raspberry Pi](../../../../../translated_images/cs/pi-camera-socket-ribbon-cable.a18309920b11800911082ed7aa6fb28e6d9be3a022e4079ff990016cae3fca10.png) + ![Plochý kabel připojený ke kamerovému portu na Raspberry Pi](../../../../../translated_images/cs/pi-camera-socket-ribbon-cable.a18309920b118009.webp) 1. Nasaďte zpět Grove Base Hat. @@ -101,7 +101,7 @@ Naprogramujte zařízení. Řádek `camera.rotation = 0` nastavuje rotaci obrázku. Plochý kabel vychází ze spodní části kamery, ale pokud je vaše kamera otočena, aby lépe mířila na objekt, který chcete klasifikovat, můžete tento řádek změnit na počet stupňů rotace. - ![Kamera zavěšená nad plechovkou nápoje](../../../../../translated_images/cs/pi-camera-upside-down.5376961ba31459883362124152ad6b823d5ac5fc14e85f317e22903bd681c2b6.png) + ![Kamera zavěšená nad plechovkou nápoje](../../../../../translated_images/cs/pi-camera-upside-down.5376961ba3145988.webp) Například pokud zavěsíte plochý kabel nad něco tak, že je nahoře kamery, nastavte rotaci na 180: diff --git a/translations/cs/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md b/translations/cs/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md index 67f49e5a3..e7045509e 100644 --- a/translations/cs/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md +++ b/translations/cs/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md @@ -84,7 +84,7 @@ Služba Custom Vision má Python SDK, které můžete použít ke klasifikaci ob Budete schopni vidět obrázek, který byl pořízen, a tyto hodnoty na záložce **Predictions** v Custom Vision. - ![Banán v Custom Vision předpovězený jako zralý na 56,8 % a nezralý na 43,1 %](../../../../../translated_images/cs/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![Banán v Custom Vision předpovězený jako zralý na 56,8 % a nezralý na 43,1 %](../../../../../translated_images/cs/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 Tento kód najdete ve složce [code-classify/pi](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/pi) nebo [code-classify/virtual-iot-device](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/virtual-iot-device). diff --git a/translations/cs/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md b/translations/cs/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md index 60937e625..93af2aa44 100644 --- a/translations/cs/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md +++ b/translations/cs/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md @@ -34,11 +34,11 @@ Přidejte kameru do aplikace CounterFit. 1. Vyberte tlačítko **Add** pro vytvoření kamery. - ![Nastavení kamery](../../../../../translated_images/cs/counterfit-create-camera.a5de97f59c0bd3cbe0416d7e89a3cfe86d19fbae05c641c53a91286412af0a34.png) + ![Nastavení kamery](../../../../../translated_images/cs/counterfit-create-camera.a5de97f59c0bd3cb.webp) Kamera bude vytvořena a objeví se v seznamu senzorů. - ![Vytvořená kamera](../../../../../translated_images/cs/counterfit-camera.001ec52194c8ee5d3f617173da2c79e1df903d10882adc625cbfc493525125d4.png) + ![Vytvořená kamera](../../../../../translated_images/cs/counterfit-camera.001ec52194c8ee5d.webp) ## Programování kamery @@ -103,7 +103,7 @@ Naprogramujte zařízení. 1. Nakonfigurujte obrázek, který kamera v CounterFit zachytí. Můžete buď nastavit *Source* na *File*, poté nahrát obrázkový soubor, nebo nastavit *Source* na *WebCam*, a obrázky budou zachyceny z vaší webové kamery. Ujistěte se, že po výběru obrázku nebo webové kamery stisknete tlačítko **Set**. - ![CounterFit s nastaveným souborem jako zdrojem obrázku a webovou kamerou zobrazující osobu držící banán v náhledu webové kamery](../../../../../translated_images/cs/counterfit-camera-options.eb3bd5150a8e7dffbf24bc5bcaba0cf2cdef95fbe6bbe393695d173817d6b8df.png) + ![CounterFit s nastaveným souborem jako zdrojem obrázku a webovou kamerou zobrazující osobu držící banán v náhledu webové kamery](../../../../../translated_images/cs/counterfit-camera-options.eb3bd5150a8e7dff.webp) 1. Obrázek bude zachycen a uložen jako `image.jpg` v aktuální složce. Tento soubor uvidíte v průzkumníku VS Code. Vyberte soubor pro zobrazení obrázku. Pokud je potřeba rotace, upravte řádek `camera.rotation = 0` podle potřeby a pořiďte další snímek. diff --git a/translations/cs/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md b/translations/cs/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md index 3fe519c0b..f4a4df039 100644 --- a/translations/cs/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md +++ b/translations/cs/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md @@ -16,7 +16,7 @@ ArduCam nemá Grove konektor, místo toho se připojuje k SPI a I2C sběrnicím Připojte kameru. -![Senzor ArduCam](../../../../../translated_images/cs/arducam.20e4e4cbb268296570b5914e20d6c349fc42ddac9ed4e1b9deba2188204eebae.png) +![Senzor ArduCam](../../../../../translated_images/cs/arducam.20e4e4cbb2682965.webp) 1. Piny na spodní straně ArduCam musí být připojeny k GPIO pinům na Wio Terminalu. Aby bylo snazší najít správné piny, připevněte kolem pinů nálepku GPIO pinů, která je součástí Wio Terminalu: @@ -35,7 +35,7 @@ Připojte kameru. | SDA | 3 (I2C1_SDA) | I2C Serial Data | | SCL | 5 (I2C1_SCL) | I2C Serial Clock | - ![Wio Terminal připojený k ArduCam pomocí propojovacích vodičů](../../../../../translated_images/cs/arducam-wio-terminal-connections.a4d5a4049bdb5ab800a2877389fc6ecf5e4ff307e6451ff56c517e6786467d0a.png) + ![Wio Terminal připojený k ArduCam pomocí propojovacích vodičů](../../../../../translated_images/cs/arducam-wio-terminal-connections.a4d5a4049bdb5ab8.webp) Připojení GND a VCC poskytuje napájení 5V pro ArduCam. Kamera běží na 5V, na rozdíl od Grove senzorů, které běží na 3V. Toto napájení pochází přímo z USB-C připojení, které napájí zařízení. @@ -456,7 +456,7 @@ Wio Terminal podporuje pouze microSD karty o velikosti až 16GB. Pokud máte vě 1. Vypněte microSD kartu a vysuňte ji mírným zatlačením a uvolněním, a karta vyskočí. Možná budete potřebovat tenký nástroj, abyste to udělali. Připojte microSD kartu k vašemu počítači, abyste si mohli prohlédnout obrázky. - ![Obrázek banánu zachycený pomocí ArduCam](../../../../../translated_images/cs/banana-arducam.be1b32d4267a8194b0fd042362e56faa431da9cd4af172051b37243ea9be0256.jpg) + ![Obrázek banánu zachycený pomocí ArduCam](../../../../../translated_images/cs/banana-arducam.be1b32d4267a8194.webp) 💁 Může trvat několik snímků, než se vyvážení bílé kamery samo upraví. Všimnete si toho podle barvy zachycených snímků, první několik může vypadat barevně nesprávně. Vždy to můžete obejít změnou kódu tak, aby zachytil několik snímků, které jsou ignorovány ve funkci `setup`. diff --git a/translations/cs/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md b/translations/cs/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md index 666eb4e6a..7bb84e79d 100644 --- a/translations/cs/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md +++ b/translations/cs/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md @@ -208,7 +208,7 @@ Certifikáty obsahují veřejné klíče a není nutné je uchovávat v tajnosti Budete schopni vidět obrázek, který byl pořízen, a tyto hodnoty na záložce **Predictions** ve službě Custom Vision. - ![Banán v Custom Vision předpovězený jako zralý na 56.8% a nezralý na 43.1%](../../../../../translated_images/cs/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![Banán v Custom Vision předpovězený jako zralý na 56.8% a nezralý na 43.1%](../../../../../translated_images/cs/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 Tento kód najdete ve složce [code-classify/wio-terminal](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/wio-terminal). diff --git a/translations/cs/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md b/translations/cs/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md index 5fffa13e7..4d19c51ab 100644 --- a/translations/cs/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md +++ b/translations/cs/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md @@ -1,6 +1,6 @@ # Spusťte detektor ovoce na okraji -![Přehled této lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-17.bc333c3c35ba8e42cce666cfffa82b915f787f455bd94e006aea2b6f2722421a.jpg) +![Přehled této lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-17.bc333c3c35ba8e42.webp) > Sketchnote od [Nitya Narasimhan](https://github.com/nitya). Klikněte na obrázek pro větší verzi. @@ -33,11 +33,11 @@ V této lekci se zaměříme na: Edge computing zahrnuje použití počítačů, které zpracovávají data IoT co nejblíže místu, kde jsou data generována. Místo zpracování v cloudu se přesouvá na okraj cloudu - do vaší interní sítě. -![Diagram architektury zobrazující internetové služby v cloudu a IoT zařízení v lokální síti](../../../../../translated_images/cs/cloud-without-edge.b4da641f6022c95ed6b91fde8b5323abd2f94e0d52073ad54172ae8f5dac90e9.png) +![Diagram architektury zobrazující internetové služby v cloudu a IoT zařízení v lokální síti](../../../../../translated_images/cs/cloud-without-edge.b4da641f6022c95e.webp) V dosavadních lekcích jste měli zařízení, která shromažďovala data a odesílala je do cloudu k analýze, kde běžely serverless funkce nebo AI modely. -![Diagram architektury zobrazující IoT zařízení v lokální síti připojená k edge zařízením, která se připojují k cloudu](../../../../../translated_images/cs/cloud-with-edge.1e26462c62c126fe150bd15a5714ddf0be599f09bacbad08b85be02b76ea1ae1.png) +![Diagram architektury zobrazující IoT zařízení v lokální síti připojená k edge zařízením, která se připojují k cloudu](../../../../../translated_images/cs/cloud-with-edge.1e26462c62c126fe.webp) Edge computing zahrnuje přesun některých cloudových služeb z cloudu na počítače běžící ve stejné síti jako IoT zařízení, přičemž komunikace s cloudem probíhá pouze v případě potřeby. Například můžete spouštět AI modely na edge zařízeních pro analýzu zralosti ovoce a do cloudu odesílat pouze analytická data, jako je počet zralých kusů ovoce oproti nezralým. @@ -85,7 +85,7 @@ Pro IoT systémy budete často chtít kombinaci cloudového a edge computingu, v ## Azure IoT Edge -![Logo Azure IoT Edge](../../../../../translated_images/cs/azure-iot-edge-logo.c1c076749b5cba2e8755262fadc2f19ca1146b948d76990b1229199ac2292d79.png) +![Logo Azure IoT Edge](../../../../../translated_images/cs/azure-iot-edge-logo.c1c076749b5cba2e.webp) Azure IoT Edge je služba, která vám může pomoci přesunout pracovní zátěže z cloudu na okraj. Nastavíte zařízení jako edge zařízení a z cloudu můžete na toto edge zařízení nasadit kód. To vám umožňuje kombinovat schopnosti cloudu a okraje. @@ -99,7 +99,7 @@ IoT Edge je součástí IoT Hubu, takže můžete spravovat edge zařízení pom IoT Edge spouští kód z *kontejnerů* - samostatných aplikací, které běží izolovaně od ostatních aplikací na vašem počítači. Když spustíte kontejner, chová se jako samostatný počítač běžící uvnitř vašeho počítače, se svým vlastním softwarem, službami a aplikacemi. Většinou kontejnery nemohou přistupovat k ničemu na vašem počítači, pokud se nerozhodnete sdílet například složku s kontejnerem. Kontejner pak zpřístupňuje služby prostřednictvím otevřeného portu, ke kterému se můžete připojit nebo jej zpřístupnit vaší síti. -![Webový požadavek přesměrovaný do kontejneru](../../../../../translated_images/cs/container-web-browser.4ee81dd4f0d8838ce622b2a0d600b6a4322b5d4fe43159facd87b7b34f84d66a.png) +![Webový požadavek přesměrovaný do kontejneru](../../../../../translated_images/cs/container-web-browser.4ee81dd4f0d8838c.webp) Například můžete mít kontejner s webovou stránkou běžící na portu 80, což je výchozí HTTP port, a můžete jej zpřístupnit z vašeho počítače také na portu 80. @@ -195,11 +195,11 @@ Jakmile je model natrénován, je třeba jej exportovat jako kontejner. ## Příprava kontejneru pro nasazení -![Kontejnery jsou vytvořeny, poté nahrány do registru kontejnerů a nasazeny na edge zařízení pomocí IoT Edge](../../../../../translated_images/cs/container-edge-flow.c246050dd60ceefdb6ace026a4ce5c6aa4112bb5898ae23fbb2ab4be29ae3e1b.png) +![Kontejnery jsou vytvořeny, poté nahrány do registru kontejnerů a nasazeny na edge zařízení pomocí IoT Edge](../../../../../translated_images/cs/container-edge-flow.c246050dd60ceefd.webp) Jakmile stáhnete svůj model, je třeba jej sestavit do kontejneru a poté nahrát do registru kontejnerů – online úložiště, kde můžete kontejnery uchovávat. IoT Edge poté může stáhnout kontejner z registru a nasadit jej na vaše zařízení. -![Logo Azure Container Registry](../../../../../translated_images/cs/azure-container-registry-logo.09494206991d4b295025ebff7d4e2900325e527a59184ffbc8464b6ab59654be.png) +![Logo Azure Container Registry](../../../../../translated_images/cs/azure-container-registry-logo.09494206991d4b29.webp) Registr kontejnerů, který budete používat v této lekci, je Azure Container Registry. Tato služba není zdarma, takže abyste ušetřili peníze, ujistěte se, že [vyčistíte svůj projekt](../../../clean-up.md), jakmile skončíte. diff --git a/translations/cs/4-manufacturing/lessons/4-trigger-fruit-detector/README.md b/translations/cs/4-manufacturing/lessons/4-trigger-fruit-detector/README.md index be637a14f..298d97c24 100644 --- a/translations/cs/4-manufacturing/lessons/4-trigger-fruit-detector/README.md +++ b/translations/cs/4-manufacturing/lessons/4-trigger-fruit-detector/README.md @@ -1,6 +1,6 @@ # Spuštění detekce kvality ovoce pomocí senzoru -![Přehled lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-18.92c32ed1d354caa5a54baa4032cf0b172d4655e8e326ad5d46c558a0def15365.jpg) +![Přehled lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-18.92c32ed1d354caa5.webp) > Sketchnote od [Nitya Narasimhan](https://github.com/nitya). Klikněte na obrázek pro větší verzi. @@ -39,7 +39,7 @@ IoT aplikace lze popsat jako *věci* (zařízení), které odesílají data, je ### Referenční IoT architektura -![Referenční IoT architektura](../../../../../translated_images/cs/iot-reference-architecture.2278b98b55c6d4e89bde18eada3688d893861d43507641804dd2f9d3079cfaa0.png) +![Referenční IoT architektura](../../../../../translated_images/cs/iot-reference-architecture.2278b98b55c6d4e8.webp) Výše uvedený diagram ukazuje referenční IoT architekturu. @@ -49,7 +49,7 @@ Výše uvedený diagram ukazuje referenční IoT architekturu. * **Poznatky** pocházejí ze serverless aplikací nebo z analýz prováděných na uložených datech. * **Akce** mohou být příkazy odeslané zařízením nebo vizualizace dat umožňující lidem činit rozhodnutí. -![Referenční IoT architektura](../../../../../translated_images/cs/iot-reference-architecture-azure.0b8d2161af924cb18ae48a8558a19541cca47f27264851b5b7e56d7b8bb372ac.png) +![Referenční IoT architektura](../../../../../translated_images/cs/iot-reference-architecture-azure.0b8d2161af924cb1.webp) Výše uvedený diagram ukazuje některé komponenty a služby, které byly dosud v těchto lekcích pokryty, a jak se propojují v referenční IoT architektuře. @@ -89,7 +89,7 @@ Musíte vytvořit systém, kde bude ovoce detekováno při příjezdu na dopravn ### Prototypování vaší aplikace -![Referenční IoT architektura pro kontrolu kvality ovoce](../../../../../translated_images/cs/iot-reference-architecture-fruit-quality.cc705f121c3b6fa71c800d9630935ac34bc08223a04601e35f41d5e9b5dd5207.png) +![Referenční IoT architektura pro kontrolu kvality ovoce](../../../../../translated_images/cs/iot-reference-architecture-fruit-quality.cc705f121c3b6fa7.webp) Výše uvedený diagram ukazuje referenční architekturu pro tento prototyp aplikace. @@ -124,7 +124,7 @@ Projděte si příslušného průvodce, jak použít proximity senzor k detekci Prototyp detektoru ovoce má více komponent, které spolu komunikují. -![Komponenty komunikující mezi sebou](../../../../../translated_images/cs/fruit-quality-detector-message-flow.adf2a65da8fd8741ac7af11361574de89adc126785d67606bb4d2ec00467e380.png) +![Komponenty komunikující mezi sebou](../../../../../translated_images/cs/fruit-quality-detector-message-flow.adf2a65da8fd8741.webp) * Proximity senzor měří vzdálenost k ovoci a odesílá ji do IoT Hubu. * Příkaz k ovládání kamery přichází z IoT Hubu do zařízení s kamerou. diff --git a/translations/cs/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md b/translations/cs/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md index ead5f75fb..b989b924d 100644 --- a/translations/cs/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md +++ b/translations/cs/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md @@ -20,7 +20,7 @@ Senzor Grove Time of Flight lze připojit k Raspberry Pi. Připojte senzor Time of Flight. -![Senzor Grove Time of Flight](../../../../../translated_images/cs/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![Senzor Grove Time of Flight](../../../../../translated_images/cs/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. Zasuňte jeden konec Grove kabelu do konektoru na senzoru Time of Flight. Kabel lze zasunout pouze jedním způsobem. diff --git a/translations/cs/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md b/translations/cs/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md index 9b83e1088..002001784 100644 --- a/translations/cs/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md +++ b/translations/cs/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md @@ -36,11 +36,11 @@ Přidejte senzor vzdálenosti do aplikace CounterFit. 1. Klikněte na tlačítko **Add** pro vytvoření senzoru vzdálenosti. - ![Nastavení senzoru vzdálenosti](../../../../../translated_images/cs/counterfit-create-distance-sensor.967c9fb98f27888d95920c9784d004c972490eb71f70397fe13bd70a79a879a3.png) + ![Nastavení senzoru vzdálenosti](../../../../../translated_images/cs/counterfit-create-distance-sensor.967c9fb98f27888d.webp) Senzor vzdálenosti bude vytvořen a objeví se v seznamu senzorů. - ![Vytvořený senzor vzdálenosti](../../../../../translated_images/cs/counterfit-distance-sensor.079eefeeea0b68afc36431ce8fcbe2f09a7e4916ed1cd5cb30e696db53bc18fa.png) + ![Vytvořený senzor vzdálenosti](../../../../../translated_images/cs/counterfit-distance-sensor.079eefeeea0b68af.webp) ## Naprogramování senzoru vzdálenosti diff --git a/translations/cs/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md b/translations/cs/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md index 3fa9a165c..2885c45a4 100644 --- a/translations/cs/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md +++ b/translations/cs/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md @@ -20,7 +20,7 @@ Grove senzor Time of Flight lze připojit k Wio Terminalu. Připojte senzor Time of Flight. -![Grove senzor Time of Flight](../../../../../translated_images/cs/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![Grove senzor Time of Flight](../../../../../translated_images/cs/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. Zasuňte jeden konec Grove kabelu do konektoru na senzoru Time of Flight. Kabel lze zasunout pouze jedním způsobem. diff --git a/translations/cs/5-retail/lessons/1-train-stock-detector/README.md b/translations/cs/5-retail/lessons/1-train-stock-detector/README.md index 140cc18b9..734373286 100644 --- a/translations/cs/5-retail/lessons/1-train-stock-detector/README.md +++ b/translations/cs/5-retail/lessons/1-train-stock-detector/README.md @@ -1,6 +1,6 @@ # Trénujte detektor zásob -![Přehled této lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-19.cf6973cecadf080c4b526310620dc4d6f5994c80fb0139c6f378cc9ca2d435cd.jpg) +![Přehled této lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-19.cf6973cecadf080c.webp) > Sketchnote od [Nitya Narasimhan](https://github.com/nitya). Klikněte na obrázek pro větší verzi. @@ -36,7 +36,7 @@ Detekce objektů zahrnuje rozpoznávání objektů na obrázcích pomocí AI. Na Klasifikace obrázků se zaměřuje na klasifikaci celého obrázku – jaké jsou pravděpodobnosti, že celý obrázek odpovídá každému štítku. Získáte zpět pravděpodobnosti pro každý štítek použitý při trénování modelu. -![Klasifikace obrázků kešu ořechů a rajčatového protlaku](../../../../../translated_images/cs/image-classifier-cashews-tomato.bc2e16ab8f05cf9ac0f59f73e32efc4227f9a5b601b90b2c60f436694547a965.png) +![Klasifikace obrázků kešu ořechů a rajčatového protlaku](../../../../../translated_images/cs/image-classifier-cashews-tomato.bc2e16ab8f05cf9a.webp) V příkladu výše jsou dva obrázky klasifikovány pomocí modelu trénovaného na klasifikaci kelímků kešu ořechů nebo plechovek rajčatového protlaku. První obrázek je kelímek kešu ořechů a má dva výsledky z klasifikátoru obrázků: @@ -60,7 +60,7 @@ Když jej pak použijete k předpovědi obrázků, místo seznamu štítků a pr > 🎓 *Ohraničující rámečky* jsou rámečky kolem objektu. -![Detekce objektů kešu ořechů a rajčatového protlaku](../../../../../translated_images/cs/object-detector-cashews-tomato.1af7c26686b4db0e709754aeb196f4e73271f54e2085db3bcccb70d4a0d84d97.png) +![Detekce objektů kešu ořechů a rajčatového protlaku](../../../../../translated_images/cs/object-detector-cashews-tomato.1af7c26686b4db0e.webp) Obrázek výše obsahuje jak kelímek kešu ořechů, tak tři plechovky rajčatového protlaku. Detektor objektů detekoval kešu ořechy, vrací ohraničující rámeček, který obsahuje kešu ořechy, s procentní pravděpodobností, že ohraničující rámeček obsahuje objekt, v tomto případě 97.6%. Detektor objektů také detekoval tři plechovky rajčatového protlaku a poskytuje tři samostatné ohraničující rámečky, jeden pro každou detekovanou plechovku, a každá má procentní pravděpodobnost, že ohraničující rámeček obsahuje plechovku rajčatového protlaku. @@ -111,7 +111,7 @@ Detektor objektů můžete trénovat pomocí Custom Vision, podobně jako jste t Při vytváření projektu se ujistěte, že používáte trénovací prostředek `stock-detector-training`, který jste vytvořili dříve. Použijte typ projektu *Detekce objektů* a doménu *Produkty na regálech*. - ![Nastavení projektu Custom Vision s názvem nastaveným na fruit-quality-detector, bez popisu, prostředek nastavený na fruit-quality-detector-training, typ projektu nastavený na klasifikaci, typy klasifikace nastavené na multi class a domény nastavené na food](../../../../../translated_images/cs/custom-vision-create-object-detector-project.32d4fb9aa8e7e7375f8a799bfce517aca970f2cb65e42d4245c5e635c734ab29.png) + ![Nastavení projektu Custom Vision s názvem nastaveným na fruit-quality-detector, bez popisu, prostředek nastavený na fruit-quality-detector-training, typ projektu nastavený na klasifikaci, typy klasifikace nastavené na multi class a domény nastavené na food](../../../../../translated_images/cs/custom-vision-create-object-detector-project.32d4fb9aa8e7e737.webp) ✅ Doména produktů na regálech je specificky zaměřena na detekci zásob na regálech v obchodech. Přečtěte si více o různých doménách v [dokumentaci Výběr domény na Microsoft Docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/select-domain?WT.mc_id=academic-17441-jabenn#object-detection) @@ -133,11 +133,11 @@ K trénování modelu budete potřebovat sadu obrázků obsahujících objekty, 1. Postupujte podle [sekce Nahrání a označení obrázků v rychlém startu Vytvoření detektoru objektů na Microsoft Docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/get-started-build-detector?WT.mc_id=academic-17441-jabenn#upload-and-tag-images) pro nahrání vašich trénovacích obrázků. Vytvořte relevantní štítky podle typů objektů, které chcete detekovat. - ![Dialogy nahrávání ukazující nahrávání obrázků zralých a nezralých banánů](../../../../../translated_images/cs/image-upload-object-detector.77c7892c3093cb59b79018edecd678749a75d71a099bc8a2d2f2f76320f88a5b.png) + ![Dialogy nahrávání ukazující nahrávání obrázků zralých a nezralých banánů](../../../../../translated_images/cs/image-upload-object-detector.77c7892c3093cb59.webp) Když kreslíte ohraničující rámečky pro objekty, udržujte je těsně kolem objektu. Může to chvíli trvat, než označíte všechny obrázky, ale nástroj detekuje, co považuje za ohraničující rámečky, což proces urychlí. - ![Označování rajčatového protlaku](../../../../../translated_images/cs/object-detector-tag-tomato-paste.f47c362fb0f0eb582f3bc68cf3855fb43a805106395358d41896a269c210b7b4.png) + ![Označování rajčatového protlaku](../../../../../translated_images/cs/object-detector-tag-tomato-paste.f47c362fb0f0eb58.webp) > 💁 Pokud máte více než 15 obrázků pro každý objekt, můžete trénovat po 15 a poté použít funkci **Navržené štítky**. Tato funkce použije trénovaný model k detekci objektů na neoznačených obrázcích. Poté můžete potvrdit detekované objekty nebo odmítnout a znovu nakreslit ohraničující rámečky. To může ušetřit *hodně* času. @@ -155,7 +155,7 @@ Jakmile je váš detektor objektů natrénován, můžete jej otestovat tím, ž 1. Použijte tlačítko **Rychlý test** k nahrání testovacích obrázků a ověření, že objekty jsou detekovány. Použijte testovací obrázky, které jste vytvořili dříve, ne žádné z obrázků, které jste použili pro trénování. - ![Detekovány 3 plechovky rajčatového protlaku s pravděpodobnostmi 38%, 35.5% a 34.6%](../../../../../translated_images/cs/object-detector-detected-tomato-paste.52656fe87af4c37b4ee540526d63e73ed075da2e54a9a060aa528e0c562fb1b6.png) + ![Detekovány 3 plechovky rajčatového protlaku s pravděpodobnostmi 38%, 35.5% a 34.6%](../../../../../translated_images/cs/object-detector-detected-tomato-paste.52656fe87af4c37b.webp) 1. Vyzkoušejte všechny testovací obrázky, které máte k dispozici, a pozorujte pravděpodobnosti. diff --git a/translations/cs/5-retail/lessons/2-check-stock-device/README.md b/translations/cs/5-retail/lessons/2-check-stock-device/README.md index 85dd46801..999ddc95c 100644 --- a/translations/cs/5-retail/lessons/2-check-stock-device/README.md +++ b/translations/cs/5-retail/lessons/2-check-stock-device/README.md @@ -1,6 +1,6 @@ # Kontrola zásob pomocí IoT zařízení -![Náčrt přehledu této lekce](../../../../../translated_images/cs/lesson-20.0211df9551a8abb300fc8fcf7dc2789468dea2eabe9202273ac077b0ba37f15e.jpg) +![Náčrt přehledu této lekce](../../../../../translated_images/cs/lesson-20.0211df9551a8abb3.webp) > Náčrt od [Nitya Narasimhan](https://github.com/nitya). Klikněte na obrázek pro větší verzi. @@ -62,7 +62,7 @@ Iterace se publikují z portálu Custom Vision. 1. Klikněte na tlačítko **Publish** pro danou iteraci. - ![Tlačítko publikování](../../../../../translated_images/cs/custom-vision-object-detector-publish-button.34ee379fc650ccb9856c3868d0003f413b9529f102fc73c37168c98d721cc293.png) + ![Tlačítko publikování](../../../../../translated_images/cs/custom-vision-object-detector-publish-button.34ee379fc650ccb9.webp) 1. V dialogu *Publish Model* nastavte *Prediction resource* na zdroj `stock-detector-prediction`, který jste vytvořili v předchozí lekci. Název ponechte jako `Iteration2` a klikněte na tlačítko **Publish**. @@ -76,7 +76,7 @@ Iterace se publikují z portálu Custom Vision. Také si zkopírujte hodnotu *Prediction-Key*. Jedná se o bezpečnostní klíč, který musíte předat při volání modelu. Pouze aplikace, které tento klíč předají, mohou model používat, ostatní aplikace budou odmítnuty. - ![Dialog predikčního API zobrazující URL a klíč](../../../../../translated_images/cs/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![Dialog predikčního API zobrazující URL a klíč](../../../../../translated_images/cs/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ Když je publikována nová iterace, bude mít jiný název. Jak myslíte, že byste změnili iteraci, kterou IoT zařízení používá? @@ -95,7 +95,7 @@ Při použití detektoru objektů získáte nejen detekované objekty s jejich Výsledky predikce na kartě **Predictions** v Custom Vision mají ohraničující rámečky nakreslené na obrázku, který byl odeslán k predikci. -![4 plechovky rajčatového protlaku na regálu s predikcemi pro 4 detekce s pravděpodobnostmi 35,8 %, 33,5 %, 25,7 % a 16,6 %](../../../../../translated_images/cs/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) +![4 plechovky rajčatového protlaku na regálu s predikcemi pro 4 detekce s pravděpodobnostmi 35,8 %, 33,5 %, 25,7 % a 16,6 %](../../../../../translated_images/cs/custom-vision-stock-prediction.942266ab1bcca341.webp) Na obrázku výše byly detekovány 4 plechovky rajčatového protlaku. Ve výsledcích je na každý detekovaný objekt v obrázku překryt červený čtverec, který označuje ohraničující rámeček. @@ -103,7 +103,7 @@ Na obrázku výše byly detekovány 4 plechovky rajčatového protlaku. Ve výsl Ohraničující rámečky jsou definovány 4 hodnotami - horní, levá, výška a šířka. Tyto hodnoty jsou na škále 0-1, což představuje pozice jako procento velikosti obrázku. Počátek (pozice 0,0) je v levém horním rohu obrázku, takže horní hodnota je vzdálenost od horního okraje a spodní část ohraničujícího rámečku je horní hodnota plus výška. -![Ohraničující rámeček kolem plechovky rajčatového protlaku](../../../../../translated_images/cs/bounding-box.1420a7ea0d3d15f71e1ffb5cf4b2271d184fac051f990abc541975168d163684.png) +![Ohraničující rámeček kolem plechovky rajčatového protlaku](../../../../../translated_images/cs/bounding-box.1420a7ea0d3d15f7.webp) Výše uvedený obrázek má šířku 600 pixelů a výšku 800 pixelů. Ohraničující rámeček začíná 320 pixelů dolů, což dává horní souřadnici 0,4 (800 x 0,4 = 320). Zleva začíná ohraničující rámeček 240 pixelů, což dává levou souřadnici 0,4 (600 x 0,4 = 240). Výška ohraničujícího rámečku je 240 pixelů, což dává hodnotu výšky 0,3 (800 x 0,3 = 240). Šířka ohraničujícího rámečku je 120 pixelů, což dává hodnotu šířky 0,2 (600 x 0,2 = 120). @@ -118,7 +118,7 @@ Použití procentuálních hodnot od 0 do 1 znamená, že bez ohledu na to, na j Můžete použít ohraničující rámečky v kombinaci s pravděpodobnostmi k vyhodnocení, jak přesná je detekce. Například detektor objektů může detekovat více objektů, které se překrývají, například detekovat jednu plechovku uvnitř druhé. Váš kód by mohl zkontrolovat ohraničující rámečky, pochopit, že to není možné, a ignorovat jakékoli objekty, které se významně překrývají s jinými objekty. -![Dva překrývající se ohraničující rámečky kolem plechovky rajčatového protlaku](../../../../../translated_images/cs/overlap-object-detection.d431e03cae75072a2760430eca7f2c5fdd43045bfd72dadcbf12711f7cd6c2ae.png) +![Dva překrývající se ohraničující rámečky kolem plechovky rajčatového protlaku](../../../../../translated_images/cs/overlap-object-detection.d431e03cae75072a.webp) V příkladu výše jeden ohraničující rámeček označuje předpokládanou plechovku rajčatového protlaku s pravděpodobností 78,3 %. Druhý ohraničující rámeček je o něco menší a je uvnitř prvního rámečku s pravděpodobností 64,3 %. Váš kód může zkontrolovat ohraničující rámečky, zjistit, že se zcela překrývají, a ignorovat nižší pravděpodobnost, protože není možné, aby jedna plechovka byla uvnitř druhé. diff --git a/translations/cs/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md b/translations/cs/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md index 987094d37..7dfca1f68 100644 --- a/translations/cs/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md +++ b/translations/cs/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md @@ -67,7 +67,7 @@ Kód, který jste použili pro klasifikaci obrázků, je velmi podobný kódu pr Budete schopni vidět obrázek, který byl pořízen, a tyto hodnoty na záložce **Predictions** v Custom Vision. - ![4 plechovky rajčatového protlaku na polici s předpověďmi pro 4 detekce: 35,8 %, 33,5 %, 25,7 % a 16,6 %](../../../../../translated_images/cs/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![4 plechovky rajčatového protlaku na polici s předpověďmi pro 4 detekce: 35,8 %, 33,5 %, 25,7 % a 16,6 %](../../../../../translated_images/cs/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 Tento kód najdete ve složce [code-detect/pi](../../../../../5-retail/lessons/2-check-stock-device/code-detect/pi) nebo [code-detect/virtual-iot-device](../../../../../5-retail/lessons/2-check-stock-device/code-detect/virtual-iot-device). diff --git a/translations/cs/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md b/translations/cs/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md index 2443f8ff5..71cf50606 100644 --- a/translations/cs/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md +++ b/translations/cs/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md @@ -95,7 +95,7 @@ Kód, který jste použili pro klasifikaci obrázků, je velmi podobný kódu pr Budete moci vidět obrázek, který byl pořízen, a tyto hodnoty na kartě **Predictions** v Custom Vision. - ![4 plechovky rajčatového protlaku na polici s predikcemi pro 4 detekce: 35,8 %, 33,5 %, 25,7 % a 16,6 %](../../../../../translated_images/cs/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![4 plechovky rajčatového protlaku na polici s predikcemi pro 4 detekce: 35,8 %, 33,5 %, 25,7 % a 16,6 %](../../../../../translated_images/cs/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 Tento kód najdete ve složce [code-detect/wio-terminal](../../../../../5-retail/lessons/2-check-stock-device/code-detect/wio-terminal). diff --git a/translations/cs/6-consumer/lessons/1-speech-recognition/README.md b/translations/cs/6-consumer/lessons/1-speech-recognition/README.md index 473a2816e..41a528c58 100644 --- a/translations/cs/6-consumer/lessons/1-speech-recognition/README.md +++ b/translations/cs/6-consumer/lessons/1-speech-recognition/README.md @@ -1,6 +1,6 @@ # Rozpoznávání řeči pomocí IoT zařízení -![Přehled této lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-21.e34de51354d6606fb5ee08d8c89d0222eea0a2a7aaf744a8805ae847c4f69dc4.jpg) +![Přehled této lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-21.e34de51354d6606f.webp) > Sketchnote od [Nitya Narasimhan](https://github.com/nitya). Klikněte na obrázek pro větší verzi. @@ -51,7 +51,7 @@ Mikrofony existují v různých typech: Dynamické mikrofony nepotřebují k práci napájení, elektrický signál je vytvářen výhradně mikrofonem. - ![Patti Smith zpívající do mikrofonu Shure SM58 (dynamický typ kardioid)](../../../../../translated_images/cs/dynamic-mic.8babac890a2d80dfb0874b5bf37d4b851fe2aeb9da6fd72945746176978bf3bb.jpg) + ![Patti Smith zpívající do mikrofonu Shure SM58 (dynamický typ kardioid)](../../../../../translated_images/cs/dynamic-mic.8babac890a2d80df.webp) * Páskové – Páskové mikrofony jsou podobné dynamickým mikrofonům, ale místo membrány mají kovovou pásku. Tato páska se pohybuje v magnetickém poli a generuje elektrický proud. Stejně jako dynamické mikrofony, páskové mikrofony nepotřebují napájení. @@ -59,11 +59,11 @@ Mikrofony existují v různých typech: * Kondenzátorové – Kondenzátorové mikrofony mají tenkou kovovou membránu a pevnou kovovou zadní desku. Elektrický proud je aplikován na obě tyto části a jak membrána vibruje, statický náboj mezi deskami se mění a generuje signál. Kondenzátorové mikrofony potřebují napájení – nazývané *Phantom power*. - ![C451B malomembránový kondenzátorový mikrofon od AKG Acoustics](../../../../../translated_images/cs/condenser-mic.6f6ed5b76ca19e0ec3fd0c544601542d4479a6cb7565db336de49fbbf69f623e.jpg) + ![C451B malomembránový kondenzátorový mikrofon od AKG Acoustics](../../../../../translated_images/cs/condenser-mic.6f6ed5b76ca19e0e.webp) * MEMS – Mikroelektromechanické systémy mikrofonů, nebo MEMS, jsou mikrofony na čipu. Mají tlakově citlivou membránu vyrytou na křemíkovém čipu a fungují podobně jako kondenzátorové mikrofony. Tyto mikrofony mohou být velmi malé a integrované do obvodů. - ![MEMS mikrofon na obvodové desce](../../../../../translated_images/cs/mems-microphone.80574019e1f5e4d9ee72fed720ecd25a39fc2969c91355d17ebb24ba4159e4c4.png) + ![MEMS mikrofon na obvodové desce](../../../../../translated_images/cs/mems-microphone.80574019e1f5e4d9.webp) Na obrázku výše je čip označený **LEFT**, což je MEMS mikrofon s malou membránou o šířce méně než milimetr. @@ -159,7 +159,7 @@ Aby se předešlo složitosti trénování a používání modelu pro probouzej ## Převod řeči na text -![Logo služeb řeči](../../../../../translated_images/cs/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![Logo služeb řeči](../../../../../translated_images/cs/azure-speech-logo.a1f08c4befb0159f.webp) Stejně jako u klasifikace obrázků v dřívějším projektu existují předem vytvořené AI služby, které mohou převést řeč jako zvukový soubor na text. Jednou z těchto služeb je Speech Service, součást Cognitive Services, předem vytvořených AI služeb, které můžete použít ve svých aplikacích. diff --git a/translations/cs/6-consumer/lessons/1-speech-recognition/pi-audio.md b/translations/cs/6-consumer/lessons/1-speech-recognition/pi-audio.md index 065de8cb9..4a522654d 100644 --- a/translations/cs/6-consumer/lessons/1-speech-recognition/pi-audio.md +++ b/translations/cs/6-consumer/lessons/1-speech-recognition/pi-audio.md @@ -16,13 +16,13 @@ Tlačítko lze připojit k základní desce Grove. #### Úkol - připojte tlačítko -![Grove tlačítko](../../../../../translated_images/cs/grove-button.a70cfbb809a8563681003250cf5b06d68cdcc68624f9e2f493d5a534ae2da1e5.png) +![Grove tlačítko](../../../../../translated_images/cs/grove-button.a70cfbb809a85636.webp) 1. Zasuňte jeden konec Grove kabelu do konektoru na modulu tlačítka. Kabel lze zasunout pouze jedním způsobem. 1. S vypnutým Raspberry Pi připojte druhý konec Grove kabelu do digitálního konektoru označeného **D5** na základní desce Grove připojené k Pi. Tento konektor je druhý zleva v řadě konektorů vedle GPIO pinů. -![Grove tlačítko připojené ke konektoru D5](../../../../../translated_images/cs/pi-button.c7a1a4f55943341ce1baf1057658e9a205804d4131d258e820c93f951df0abf3.png) +![Grove tlačítko připojené ke konektoru D5](../../../../../translated_images/cs/pi-button.c7a1a4f55943341c.webp) ## Zachycení zvuku diff --git a/translations/cs/6-consumer/lessons/1-speech-recognition/pi-microphone.md b/translations/cs/6-consumer/lessons/1-speech-recognition/pi-microphone.md index d486efc3d..6a3468487 100644 --- a/translations/cs/6-consumer/lessons/1-speech-recognition/pi-microphone.md +++ b/translations/cs/6-consumer/lessons/1-speech-recognition/pi-microphone.md @@ -34,7 +34,7 @@ Mikrofon a reproduktory je třeba připojit a nakonfigurovat. 1. Pokud používáte ReSpeaker 2-Mics Pi HAT, můžete odstranit Grove základní hat a nasadit místo něj ReSpeaker hat. - ![Raspberry Pi s ReSpeaker hat](../../../../../translated_images/cs/pi-respeaker-hat.f00fabe7dd039a93e2e0aa0fc946c9af0c6a9eb17c32fa1ca097fb4e384f69f0.png) + ![Raspberry Pi s ReSpeaker hat](../../../../../translated_images/cs/pi-respeaker-hat.f00fabe7dd039a93.webp) Později v této lekci budete potřebovat Grove tlačítko, ale jedno je již zabudováno v tomto hatu, takže Grove základní hat není potřeba. diff --git a/translations/cs/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md b/translations/cs/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md index 87ddf1d64..524aa5cce 100644 --- a/translations/cs/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md +++ b/translations/cs/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md @@ -10,7 +10,7 @@ Vestavěný mikrofon zachycuje analogový signál, který je převeden na digit ✅ Přečtěte si více o DMA na [stránce o přímém přístupu do paměti na Wikipedii](https://wikipedia.org/wiki/Direct_memory_access). -![Zvuk z mikrofonu jde do ADC a poté do DMAC. Ten zapisuje do jednoho bufferu. Když je tento buffer plný, je zpracován a DMAC zapisuje do druhého bufferu](../../../../../translated_images/cs/dmac-adc-buffers.4509aee49145c90bc2e1be472b8ed2ddfcb2b6a81ad3e559114aca55f5fff759.png) +![Zvuk z mikrofonu jde do ADC a poté do DMAC. Ten zapisuje do jednoho bufferu. Když je tento buffer plný, je zpracován a DMAC zapisuje do druhého bufferu](../../../../../translated_images/cs/dmac-adc-buffers.4509aee49145c90b.webp) DMAC může zachytit zvuk z ADC v pevných intervalech, například 16 000krát za sekundu pro zvuk o frekvenci 16 kHz. Tato zachycená data může zapsat do předem alokovaného paměťového bufferu, a když je tento buffer plný, zpřístupní je vašemu kódu ke zpracování. Použití této paměti může zpozdit zachycení zvuku, ale můžete nastavit více bufferů. DMAC zapisuje do bufferu 1, a když je plný, upozorní váš kód, aby zpracoval buffer 1, zatímco DMAC zapisuje do bufferu 2. Když je buffer 2 plný, upozorní váš kód a vrátí se k zápisu do bufferu 1. Tímto způsobem, pokud zpracujete každý buffer za kratší dobu, než je potřeba k naplnění jednoho, neztratíte žádná data. diff --git a/translations/cs/6-consumer/lessons/2-language-understanding/README.md b/translations/cs/6-consumer/lessons/2-language-understanding/README.md index 7b02e9b3d..ab6d79351 100644 --- a/translations/cs/6-consumer/lessons/2-language-understanding/README.md +++ b/translations/cs/6-consumer/lessons/2-language-understanding/README.md @@ -1,6 +1,6 @@ # Porozumění jazyku -![Přehled lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-22.6148ea28500d9e00c396aaa2649935fb6641362c8f03d8e5e90a676977ab01dd.jpg) +![Přehled lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-22.6148ea28500d9e00.webp) > Sketchnote od [Nitya Narasimhan](https://github.com/nitya). Klikněte na obrázek pro větší verzi. @@ -46,7 +46,7 @@ Modely pro porozumění jazyku jsou AI modely, které jsou trénovány na extrak ## Vytvoření modelu pro porozumění jazyku -![Logo LUIS](../../../../../translated_images/cs/luis-logo.5cb4f3e88c020ee6df4f614e8831f4a4b6809a7247bf52085fb48d629ef9be52.png) +![Logo LUIS](../../../../../translated_images/cs/luis-logo.5cb4f3e88c020ee6.webp) Modely pro porozumění jazyku můžete vytvářet pomocí LUIS, služby pro porozumění jazyku od Microsoftu, která je součástí Cognitive Services. @@ -169,7 +169,7 @@ Pokyny pro použití portálu LUIS najdete v [dokumentaci Quickstart: Build your 1. Jakmile zadáte každý příklad, LUIS začne detekovat entity a podtrhne a označí ty, které najde. - ![Příklady s podtrženými čísly a jednotkami času detekovanými LUIS](../../../../../translated_images/cs/luis-intent-examples.25716580b2d2723cf1bafdf277d015c7f046d8cfa20f27bddf3a0873ec45fab7.png) + ![Příklady s podtrženými čísly a jednotkami času detekovanými LUIS](../../../../../translated_images/cs/luis-intent-examples.25716580b2d2723c.webp) ### Úkol – trénování a testování modelu diff --git a/translations/cs/6-consumer/lessons/3-spoken-feedback/README.md b/translations/cs/6-consumer/lessons/3-spoken-feedback/README.md index 94c96e3c5..6d9057262 100644 --- a/translations/cs/6-consumer/lessons/3-spoken-feedback/README.md +++ b/translations/cs/6-consumer/lessons/3-spoken-feedback/README.md @@ -1,6 +1,6 @@ # Nastavte časovač a poskytněte hlasovou zpětnou vazbu -![Přehled této lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-23.f38483e1d4df4828990d3f02d60e46c978b075d384ae7cb4f7bab738e107c850.jpg) +![Přehled této lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-23.f38483e1d4df4828.webp) > Sketchnote od [Nitya Narasimhan](https://github.com/nitya). Klikněte na obrázek pro větší verzi. diff --git a/translations/cs/6-consumer/lessons/4-multiple-language-support/README.md b/translations/cs/6-consumer/lessons/4-multiple-language-support/README.md index 4267066a0..0090e6d2e 100644 --- a/translations/cs/6-consumer/lessons/4-multiple-language-support/README.md +++ b/translations/cs/6-consumer/lessons/4-multiple-language-support/README.md @@ -1,6 +1,6 @@ # Podpora více jazyků -![Přehled této lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-24.4246968ed058510ab275052e87ef9aa89c7b2f938915d103c605c04dc6cd5bb7.jpg) +![Přehled této lekce ve formě sketchnote](../../../../../translated_images/cs/lesson-24.4246968ed058510a.webp) > Sketchnote od [Nitya Narasimhan](https://github.com/nitya). Klikněte na obrázek pro větší verzi. @@ -74,7 +74,7 @@ Existuje řada AI služeb, které lze použít z vašich aplikací k překladu ### Cognitive services Speech service -![Logo služby Speech](../../../../../translated_images/cs/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![Logo služby Speech](../../../../../translated_images/cs/azure-speech-logo.a1f08c4befb0159f.webp) Služba Speech, kterou jste používali v předchozích lekcích, má schopnosti překladu pro rozpoznávání řeči. Když rozpoznáváte řeč, můžete požádat nejen o text řeči ve stejném jazyce, ale také v jiných jazycích. @@ -82,7 +82,7 @@ Služba Speech, kterou jste používali v předchozích lekcích, má schopnosti ### Cognitive services Translator service -![Logo služby Translator](../../../../../translated_images/cs/azure-translator-logo.c6ed3a4a433edfd2f11577eca105412c50b8396b194cbbd730723dd1d0793bcd.png) +![Logo služby Translator](../../../../../translated_images/cs/azure-translator-logo.c6ed3a4a433edfd2.webp) Služba Translator je specializovaná překladová služba, která dokáže překládat text z jednoho jazyka do jednoho nebo více cílových jazyků. Kromě překladu podporuje širokou škálu dalších funkcí, včetně maskování vulgarismů. Umožňuje také poskytnout konkrétní překlad pro určité slovo nebo větu, aby pracovala s termíny, které nechcete překládat, nebo měla specifický známý překlad. diff --git a/translations/cs/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md b/translations/cs/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md index 3141af196..ae756f357 100644 --- a/translations/cs/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md +++ b/translations/cs/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md @@ -25,7 +25,7 @@ REST API služby pro řeč nepodporuje přímé překlady, místo toho můžete > > Například pokud trénujete LUIS v angličtině, ale chcete použít francouzštinu jako uživatelský jazyk, můžete věty jako "nastav časovač na 2 minuty a 27 sekund" přeložit z angličtiny do francouzštiny pomocí Bing Translate, a poté použít tlačítko **Poslechnout překlad** k vyslovení překladu do mikrofonu. > - > ![Tlačítko Poslechnout překlad na Bing Translate](../../../../../translated_images/cs/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Tlačítko Poslechnout překlad na Bing Translate](../../../../../translated_images/cs/bing-translate.348aa796d6efe2a9.webp) 1. Přidejte klíč API překladatelské služby pod `speech_api_key`: diff --git a/translations/cs/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md b/translations/cs/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md index c1f2463c2..0c344ee79 100644 --- a/translations/cs/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md +++ b/translations/cs/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md @@ -37,7 +37,7 @@ Služba pro rozpoznávání řeči dokáže nejen převést řeč na text ve ste > > Například pokud trénujete LUIS v angličtině, ale chcete použít francouzštinu jako uživatelský jazyk, můžete věty jako „nastav časovač na 2 minuty a 27 sekund“ přeložit z angličtiny do francouzštiny pomocí Bing Translate, a poté použít tlačítko **Poslechnout překlad** k vyslovení překladu do mikrofonu. > - > ![Tlačítko Poslechnout překlad na Bing Translate](../../../../../translated_images/cs/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Tlačítko Poslechnout překlad na Bing Translate](../../../../../translated_images/cs/bing-translate.348aa796d6efe2a9.webp) 1. Nahraďte deklarace `recognizer_config` a `recognizer` následujícím: diff --git a/translations/cs/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md b/translations/cs/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md index 25e1aac57..67440d0c1 100644 --- a/translations/cs/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md +++ b/translations/cs/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md @@ -105,7 +105,7 @@ REST API služby pro řeč nepodporuje přímé překlady, místo toho můžete > > Například pokud trénujete LUIS v angličtině, ale chcete použít francouzštinu jako jazyk uživatele, můžete přeložit věty jako "set a 2 minute and 27 second timer" z angličtiny do francouzštiny pomocí Bing Translate, poté použít tlačítko **Listen translation** k přehrání překladu do mikrofonu. > - > ![Tlačítko pro poslech překladu na Bing Translate](../../../../../translated_images/cs/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Tlačítko pro poslech překladu na Bing Translate](../../../../../translated_images/cs/bing-translate.348aa796d6efe2a9.webp) 1. Přidejte API klíč a umístění překladače pod `SPEECH_LOCATION`: diff --git a/translations/cs/README.md b/translations/cs/README.md index 94018e8d4..58e89dc35 100644 --- a/translations/cs/README.md +++ b/translations/cs/README.md @@ -10,51 +10,61 @@ ### Připojte se ke komunitě Azure AI Foundry -Pokud narazíte na problémy nebo máte jakékoli otázky ohledně vytváření AI aplikací. Připojte se ke komunitě spolužáků a zkušených vývojářů, kde probíhají diskuze o MCP. Je to podporující komunita, kde jsou otázky vítány a znalosti volně sdíleny. +Pokud se zaseknete nebo máte jakékoli otázky ohledně tvorby AI aplikací, přidejte se k ostatním studentům a zkušeným vývojářům v diskusích o MCP. Je to podpůrná komunita, kde jsou otázky vítány a znalosti se sdílí svobodně. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Máte-li zpětnou vazbu k produktu nebo narazíte na chyby při tvorbě, navštivte: +Pokud máte zpětnou vazbu k produktům nebo narazíte na chyby během vývoje, navštivte: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -Postupujte podle těchto kroků, abyste začali používat tyto zdroje: -1. **Forkujte repozitář**: Klikněte na [![GitHub forks](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) -2. **Klonujte repozitář**: `git clone https://github.com/microsoft/IoT-For-Beginners.git` -3. [**Připojte se k Microsot Foundry Discord a setkejte se s experty a dalšími vývojáři**](https://discord.com/invite/ByRwuEEgH4) +Postupujte podle těchto kroků, abyste začali využívat tyto zdroje: +1. **Forkněte repozitář**: Klikněte na [![GitHub forks](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) +2. **Naklonujte repozitář**: `git clone https://github.com/microsoft/IoT-For-Beginners.git` +3. [**Připojte se k Microsoft Foundry Discord a setkejte se s experty a dalšími vývojáři**](https://discord.com/invite/ByRwuEEgH4) ### 🌐 Podpora více jazyků -#### Podporováno přes GitHub Action (automatizované a vždy aktuální) +#### Podporováno přes GitHub Action (automatizováno a vždy aktuální) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](./README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](./README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) -> **Raději klonovat lokálně?** - -> Tento repozitář obsahuje více než 50 jazykových překladů, což výrazně zvětšuje velikost stažení. Pro klonování bez překladů použijte sparse checkout: +> **Dáváte přednost klonování lokálně?** +> +> Tento repozitář obsahuje překlady do více než 50 jazyků, což výrazně zvyšuje velikost stahování. Pro klonování bez překladů použijte sparse checkout: +> +> **Bash / macOS / Linux:** > ```bash > git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git > cd IoT-For-Beginners > git sparse-checkout set --no-cone '/*' '!translations' '!translated_images' > ``` -> Tím získáte vše, co potřebujete k dokončení kurzu, a stahování bude mnohem rychlejší. +> +> **CMD (Windows):** +> ```cmd +> git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git +> cd IoT-For-Beginners +> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" +> ``` +> +> To vám poskytne vše potřebné k dokončení kurzu s mnohem rychlejším stažením. -# IoT pro začátečníky - Výukový program +# IoT pro začátečníky - učební plán -Azure Cloud Advocates v Microsoftu s potěšením představují 12týdenní a 24-lekční výukový program zaměřený na základy IoT. Každá lekce obsahuje před a po lekce kvízy, psané instrukce k dokončení lekce, řešení, úkol a další. Naše projektově orientovaná pedagogika vám umožní učit se během tvorby projektů, což je ověřený způsob, jak si nové dovednosti lépe osvojit. +Obhájci cloudu Azure ve společnosti Microsoft s potěšením nabízejí 12týdenní učební plán s 24 lekcemi o základech IoT. Každá lekce obsahuje kvízy před a po lekci, psané instrukce pro dokončení lekce, řešení, úkol a další. Naše pedagogika založená na projektech vám umožní učit se při tvorbě, což je osvědčený způsob, jak si nové dovednosti opravdu osvojit. -Projekty pokrývají cestu jídla od farmy až na stůl. Zahrnují zemědělství, logistiku, výrobu, maloobchod a spotřebitele - všechna oblíbená průmyslová odvětví pro IoT zařízení. +Projekty pokrývají cestu potravin od farmy až na stůl. Zahrnují zemědělství, logistiku, výrobu, maloobchod a spotřebitele – to vše jsou populární oblasti průmyslu pro IoT zařízení. -![Mapa kurzu s 24 lekcemi pokrývajícími úvod, zemědělství, dopravu, zpracování, maloobchod a vaření](../../translated_images/cs/Roadmap.bb1dec285dda0eda.webp) +![Plán kurzu s 24 lekcemi pokrývajícími úvod, zemědělství, dopravu, zpracování, maloobchod a vaření](../../translated_images/cs/Roadmap.bb1dec285dda0eda.webp) -> Sketchnote od [Nitya Narasimhan](https://github.com/nitya). Klikněte na obrázek pro zvětšení. +> Sketchnote od [Nitya Narasimhan](https://github.com/nitya). Klikněte na obrázek pro větší verzi. -**Srdečné díky našim autorům [Jen Fox](https://github.com/jenfoxbot), [Jen Looper](https://github.com/jlooper), [Jim Bennett](https://github.com/jimbobbennett) a naší sketchnote umělkyni [Nitya Narasimhan](https://github.com/nitya).** +**Srdceplné díky našim autorům [Jen Fox](https://github.com/jenfoxbot), [Jen Looper](https://github.com/jlooper), [Jim Bennett](https://github.com/jimbobbennett) a našem ilustrátorovi sketchnot [Nitya Narasimhan](https://github.com/nitya).** -**Také děkujeme našemu týmu [Microsoft Learn Student Ambassadors](https://studentambassadors.microsoft.com?WT.mc_id=academic-17441-jabenn), kteří tento kurz recenzovali a překládali - [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) a [Zina Kamel](https://www.linkedin.com/in/zina-kamel/).** +**Také děkujeme našemu týmu [Microsoft Learn Student Ambassadors](https://studentambassadors.microsoft.com?WT.mc_id=academic-17441-jabenn), kteří tento učební plán revidovali a překládali – [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) a [Zina Kamel](https://www.linkedin.com/in/zina-kamel/).** Seznamte se s týmem! @@ -62,90 +72,90 @@ Seznamte se s týmem! **Gif od** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Klikněte na obrázek nahoře pro video o projektu! +> 🎥 Klikněte na obrázek výše pro video o projektu! -> **Učitelé**, máme zde [několik doporučení](for-teachers.md) jak tento kurz používat. Pokud chcete vytvořit vlastní lekce, najdete zde také [šablonu lekce](lesson-template/README.md). +> **Učitelé**, přidali jsme [několik návrhů](for-teachers.md) jak tento učební plán využívat. Pokud byste chtěli tvořit vlastní lekce, poskytli jsme také [šablonu lekce](lesson-template/README.md). -> **Studenti** ([https://aka.ms/student-page](https://aka.ms/student-page)), abyste mohli tento kurz využívat sami, forkněte celý repozitář a dokončujte úkoly sami, začínaje přednáškovým kvízem, poté si přečtěte přednášku a dokončte ostatní aktivity. Snažte se projekty tvořit na základě pochopení lekcí, nikoli pouze kopírováním kódu řešení, který je však k dispozici ve složkách /solutions v jednotlivých projektech. Další možností je vytvořit studijní skupinu s přáteli a obsah probírat společně. Pro další studium doporučujeme [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn). +> **Študenti** [students](https://aka.ms/student-page), abyste mohli tento učební plán používat sami, forknete celý repozitář a doplňujete úkoly sami, začínajíce kvízem před lekcí, pak čtením lekce a dokončením aktivit. Snažte se projekty tvořit pochopením lekcí místo pouhého kopírování řešení; tato řešení jsou však k dispozici v adresáři /solutions v každé lekci zaměřené na projekt. Další možností je založit studijní skupinu s přáteli a projít obsah společně. Pro další studium doporučujeme [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn). Pro video přehled tohoto kurzu se podívejte na toto video: [![Promo video](https://img.youtube.com/vi/bccEMm8gRuc/0.jpg)](https://youtube.com/watch?v=bccEMm8gRuc "Promo video") -> 🎥 Klikněte na obrázek nahoře pro video o projektu! +> 🎥 Klikněte na obrázek výše pro video o projektu! ## Pedagogika -Vybrali jsme dva pedagogické principy při tvorbě tohoto kurzu: zajistit, aby byl projektově orientovaný a aby obsahoval časté kvízy. Na konci této série studenti vytvoří systém pro monitorování a zalévání rostlin, sledovač vozidel, chytrou továrnu pro sledování a kontrolu potravin a hlasem ovládaný kuchyňský časovač, a naučí se základům Internetu věcí včetně psaní kódu zařízení, připojení ke cloudu, analýzy telemetrie a provozu AI na okraji sítě. +Při tvorbě tohoto učebního plánu jsme zvolili dva pedagogické principy: zajistit, aby byl založený na projektech, a aby obsahoval časté kvízy. Na konci této série studenti vyrobí systém pro sledování a zalévání rostlin, sledovač vozidel, chytrou továrnu pro sledování a kontrolu potravin a časovač na vaření ovládaný hlasem, a naučí se základy Internetu věcí včetně psaní kódu pro zařízení, připojení k cloudu, analýzy telemetrie a provoz AI na okraji sítě. -Zajištěním, že obsah odpovídá projektům, se proces stává pro studenty atraktivnější a zvyšuje se zapamatování konceptů. +Díky propojení obsahu s projekty je proces pro studenty zajímavější a zvyšuje retenci znalostí. -Navíc nízkorizikový kvíz před hodinou nastavuje záměr studenta na učení daného tématu, zatímco druhý kvíz po hodině zajišťuje další zapamatování. Tento kurz byl navržen tak, aby byl flexibilní a zábavný, lze jej absolvovat celý nebo jen částečně. Projekty začínají malé a postupně se během 12týdenního cyklu stávají složitějšími. +Navíc nízko-náročný kvíz před lekcí nastavuje studentovu pozornost na téma, zatímco druhý kvíz po lekci zaručuje lepší zapamatování. Tento učební plán je navržen tak, aby byl flexibilní a zábavný a lze ho absolvovat celý nebo po částech. Projekty začínají malé a postupně se během 12 týdnů komplikují. -Každý projekt je založen na reálném hardwaru dostupném studentům a amatérům. Každý projekt zkoumá konkrétní obor projektu a poskytuje relevantní základní znalosti. Pro úspěšného vývojáře je důležité rozumět oblasti, ve které řeší problémy; poskytnutím těchto znalostí umožňujeme studentům zamyslet se nad svými IoT řešeními a učením v kontextu reálných problémů, které by mohli jako vývojáři IoT řešit. Studenti pochopí „proč“ svých řešení a získají ocenění pro koncového uživatele. +Každý projekt je založen na reálném hardwaru dostupném studentům a nadšencům. Každý projekt přináší relevantní znalosti z dané oblasti. Pro úspěšného vývojáře je užitečné pochopit oblast, ve které řeší problémy, a poskytnutí těchto znalostí studentům umožňuje přemýšlet o svých IoT řešeních a zkušenostech v kontextu reálných problémů, které mohou být vyžadovány od IoT vývojáře. Studenti tak chápou "proč" řešení, která tvoří, a získávají ocenění pro koncového uživatele. ## Hardware +Máme dvě možnosti IoT hardwaru pro použití na projektech v závislosti na osobních preferencích, znalostech programovacích jazyků nebo preferencích, cílech učení a dostupnosti. Pro ty, kteří nemají přístup k hardwaru nebo chtějí získat více znalostí před nákupem, jsme také připravili verzi „virtuálního hardwaru“. Více informací a „nákupní seznam“ najdete na [stránce s hardwarem](./hardware.md), včetně odkazů na nákup kompletních sad od našich přátel ze Seeed Studio. -Máme na výběr dvě možnosti IoT hardwaru pro projekty v závislosti na osobních preferencích, znalostech programovacích jazyků, cílech učení a dostupnosti. Poskytli jsme také verzi „virtuálního hardwaru“ pro ty, kteří nemají přístup k hardwaru nebo se chtějí dozvědět více před koupí. Více si můžete přečíst a najít „nákupní seznam“ na [stránce hardware](./hardware.md), včetně odkazů na nákup kompletních sad od našich přátel ze Seeed Studio. -> 💁 Najděte náš [Kodex chování](CODE_OF_CONDUCT.md), [Příspěvky](CONTRIBUTING.md) a [Pokyny pro překlad](TRANSLATIONS.md). Vítáme vaši konstruktivní zpětnou vazbu! +> 💁 Najděte náš [Kodex chování](CODE_OF_CONDUCT.md), [Příspěvky](CONTRIBUTING.md) a [Překlady](TRANSLATIONS.md) zásady. Těšíme se na vaše konstruktivní připomínky! > > 🔧 Máte problémy? Podívejte se na náš [Průvodce řešením problémů](TROUBLESHOOTING.md) pro řešení běžných potíží. -## Každá lekce zahrnuje: +## Každá lekce obsahuje: - sketchnote - volitelné doplňkové video -- předběžný kvíz před lekcí -- psaná lekce -- u lekcí založených na projektu krok za krokem návody, jak projekt postavit -- kontroly znalostí +- rozehřívací kvíz před lekcí +- písemnou lekci +- u lekcí založených na projektech krok za krokem návody, jak projekt postavit +- kontrolní otázky na znalosti - výzvu -- doplňkové čtení +- doplňující čtení - úkol - [kvíz po lekci](https://ff-quizzes.netlify.app/en/) -> **Poznámka o kvízech**: Všechny kvízy jsou obsaženy ve složce quiz-app, celkem 48 kvízů po třech otázkách. Jsou propojené z lekcí, ale aplikaci kvízů lze spustit lokálně nebo nasadit na Azure; postupujte podle instrukcí ve složce `quiz-app`. Postupně jsou lokalizovány. +> **Poznámka k kvízům**: Všechny kvízy jsou umístěny ve složce quiz-app, celkem je jich 48, každý se třemi otázkami. Odkazy na ně jsou v lekcích, ale aplikaci kvízu lze spustit lokálně nebo ji nasadit na Azure; následujte pokyny ve složce `quiz-app`. Kvízy se postupně lokalizují. ## Lekce -| | Název projektu | Probírané koncepty | Cíle učení | Propojená lekce | -| :---: | :------------------------------------: | :-------------------------------------------------------------: | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------: | -| 01 | [Začínáme](./1-getting-started/README.md) | Úvod do IoT | Naučte se základní principy IoT a základní stavební kameny řešení IoT jako jsou senzory a cloudové služby, zatímco nastavujete své první IoT zařízení | [Úvod do IoT](./1-getting-started/lessons/1-introduction-to-iot/README.md) | -| 02 | [Začínáme](./1-getting-started/README.md) | Hlouběji do IoT | Naučte se více o součástech IoT systému, stejně jako o mikrokontrolérech a jednodeskových počítačích | [Hlouběji do IoT](./1-getting-started/lessons/2-deeper-dive/README.md) | -| 03 | [Začínáme](./1-getting-started/README.md) | Interakce s fyzickým světem pomocí senzorů a akčních členů | Naučte se o senzorech pro sběr dat z fyzického světa a akčních členech pro odesílání zpětné vazby, zatímco stavíte noční světlo | [Interakce s fyzickým světem pomocí senzorů a akčních členů](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | -| 04 | [Začínáme](./1-getting-started/README.md) | Připojte své zařízení k internetu | Naučte se, jak připojit IoT zařízení k internetu pro odesílání a přijímání zpráv připojením své noční lampy k MQTT brokeru | [Připojte své zařízení k internetu](./1-getting-started/lessons/4-connect-internet/README.md) | -| 05 | [Far­mář­ství](./2-farm/README.md) | Předpověď růstu rostlin | Naučte se předpovídat růst rostlin pomocí teplotních dat zaznamenaných IoT zařízením | [Předpověď růstu rostlin](./2-farm/lessons/1-predict-plant-growth/README.md) | -| 06 | [Far­mář­ství](./2-farm/README.md) | Detekce vlhkosti půdy | Naučte se detekovat vlhkost půdy a kalibrovat senzor vlhkosti půdy | [Detekce vlhkosti půdy](./2-farm/lessons/2-detect-soil-moisture/README.md) | -| 07 | [Far­mář­ství](./2-farm/README.md) | Automatické zavlažování rostlin | Naučte se automatizovat a časovat zavlažování pomocí relé a MQTT | [Automatické zavlažování rostlin](./2-farm/lessons/3-automated-plant-watering/README.md) | -| 08 | [Far­mář­ství](./2-farm/README.md) | Přejděte s rostlinou do cloudu | Naučte se o cloudu a cloudově hostovaných IoT službách a jak připojit rostlinu k některé z nich namísto veřejného MQTT brokeru | [Přejděte s rostlinou do cloudu](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | -| 09 | [Far­mář­ství](./2-farm/README.md) | Přeneste logiku své aplikace do cloudu | Naučte se, jak napsat aplikační logiku v cloudu, která reaguje na IoT zprávy | [Přeneste logiku své aplikace do cloudu](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | -| 10 | [Far­mář­ství](./2-farm/README.md) | Zabezpečte svou rostlinu | Naučte se o bezpečnosti IoT a jak zabezpečit svou rostlinu pomocí klíčů a certifikátů | [Zabezpečte svou rostlinu](./2-farm/lessons/6-keep-your-plant-secure/README.md) | +| | Název projektu | Učené koncepty | Výukové cíle | Odkaz na lekci | +| :---: | :------------------------------------: | :---------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------: | +| 01 | [Začínáme](./1-getting-started/README.md) | Úvod do IoT | Naučte se základní principy IoT a základní stavební kameny řešení IoT, jako jsou senzory a cloudové služby, zatímco nastavujete své první IoT zařízení | [Úvod do IoT](./1-getting-started/lessons/1-introduction-to-iot/README.md) | +| 02 | [Začínáme](./1-getting-started/README.md) | Hlouběji do IoT | Naučte se více o složkách IoT systému, mikrokontrolérech a jednodeskových počítačích | [Hlouběji do IoT](./1-getting-started/lessons/2-deeper-dive/README.md) | +| 03 | [Začínáme](./1-getting-started/README.md) | Interakce s fyzickým světem pomocí senzorů a aktuátorů | Naučte se o senzorech pro sběr dat z fyzického světa a o aktuátorech pro zpětnou vazbu, zatímco stavíte noční světlo | [Interakce s fyzickým světem pomocí senzorů a aktuátorů](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | +| 04 | [Začínáme](./1-getting-started/README.md) | Připojte své zařízení k internetu | Naučte se, jak připojit IoT zařízení k internetu pro odesílání a příjem zpráv připojením nočního světla k MQTT brokeru | [Připojte své zařízení k internetu](./1-getting-started/lessons/4-connect-internet/README.md) | +| 05 | [Farmářství](./2-farm/README.md) | Predikce růstu rostlin | Naučte se předpovídat růst rostlin pomocí teplotních dat zachycených IoT zařízením | [Predikce růstu rostlin](./2-farm/lessons/1-predict-plant-growth/README.md) | +| 06 | [Farmářství](./2-farm/README.md) | Detekce vlhkosti půdy | Naučte se detekovat vlhkost půdy a kalibrovat senzor vlhkosti půdy | [Detekce vlhkosti půdy](./2-farm/lessons/2-detect-soil-moisture/README.md) | +| 07 | [Farmářství](./2-farm/README.md) | Automatické zavlažování rostlin | Naučte se automatizovat a časovat zavlažování pomocí relé a MQTT | [Automatické zavlažování rostlin](./2-farm/lessons/3-automated-plant-watering/README.md) | +| 08 | [Farmářství](./2-farm/README.md) | Migrace rostlin do cloudu | Naučte se o cloudu a cloudových IoT službách a jak připojit svou rostlinu k jedné z nich namísto veřejného MQTT brokeru | [Migrace rostlin do cloudu](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | +| 09 | [Farmářství](./2-farm/README.md) | Migrace aplikační logiky do cloudu | Naučte se, jak psát aplikační logiku v cloudu, která reaguje na IoT zprávy | [Migrace aplikační logiky do cloudu](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | +| 10 | [Farmářství](./2-farm/README.md) | Zabezpečte svou rostlinu | Naučte se o zabezpečení v IoT a jak zabezpečit svou rostlinu pomocí klíčů a certifikátů | [Zabezpečte svou rostlinu](./2-farm/lessons/6-keep-your-plant-secure/README.md) | | 11 | [Doprava](./3-transport/README.md) | Sledování polohy | Naučte se o GPS sledování polohy IoT zařízení | [Sledování polohy](./3-transport/lessons/1-location-tracking/README.md) | -| 12 | [Doprava](./3-transport/README.md) | Ukládání dat o poloze | Naučte se ukládat IoT data pro pozdější vizualizaci nebo analýzu | [Ukládání dat o poloze](./3-transport/lessons/2-store-location-data/README.md) | -| 13 | [Doprava](./3-transport/README.md) | Vizualizace dat o poloze | Naučte se o vizualizaci dat o poloze na mapě a jak mapy zobrazují skutečný trojrozměrný svět ve dvou dimenzích | [Vizualizace dat o poloze](./3-transport/lessons/3-visualize-location-data/README.md) | -| 14 | [Doprava](./3-transport/README.md) | Geoploty | Naučte se o geoplotech a jak je používat k upozornění, když jsou vozidla v dodavatelském řetězci blízko svého cíle | [Geoploty](./3-transport/lessons/4-geofences/README.md) | -| 15 | [Výroba](./4-manufacturing/README.md) | Trénujte detektor kvality ovoce | Naučte se trénovat klasifikátor obrázků v cloudu pro detekci kvality ovoce | [Trénujte detektor kvality ovoce](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | -| 16 | [Výroba](./4-manufacturing/README.md) | Zkontrolujte kvalitu ovoce z IoT zařízení | Naučte se využívat detektor kvality ovoce z IoT zařízení | [Zkontrolujte kvalitu ovoce z IoT zařízení](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | -| 17 | [Výroba](./4-manufacturing/README.md) | Spusťte detektor ovoce na okraji | Naučte se, jak spustit detektor ovoce na IoT zařízení na okraji | [Spusťte detektor ovoce na okraji](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | -| 18 | [Výroba](./4-manufacturing/README.md) | Spusťte detekci kvality ovoce ze senzoru | Naučte se spustit detekci kvality ovoce ze senzoru | [Spusťte detekci kvality ovoce ze senzoru](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | -| 19 | [Maloobchod](./5-retail/README.md) | Trénujte detektor zásob | Naučte se používat detekci objektů k trénování detektoru zásob pro počítání zásob v obchodě | [Trénujte detektor zásob](./5-retail/lessons/1-train-stock-detector/README.md) | -| 20 | [Maloobchod](./5-retail/README.md) | Zkontrolujte zásoby z IoT zařízení | Naučte se kontrolovat zásoby z IoT zařízení s využitím modelu detekce objektů | [Zkontrolujte zásoby z IoT zařízení](./5-retail/lessons/2-check-stock-device/README.md) | -| 21 | [Spotřebitel](./6-consumer/README.md) | Rozpoznání řeči s IoT zařízením | Naučte se rozpoznávat řeč z IoT zařízení pro stavbu chytrého časovače | [Rozpoznání řeči s IoT zařízením](./6-consumer/lessons/1-speech-recognition/README.md) | -| 22 | [Spotřebitel](./6-consumer/README.md) | Porozumění jazyku | Naučte se porozumět větám vysloveným k IoT zařízení | [Porozumění jazyku](./6-consumer/lessons/2-language-understanding/README.md) | -| 23 | [Spotřebitel](./6-consumer/README.md) | Nastavte časovač a poskytujte hlasovou zpětnou vazbu | Naučte se nastavit časovač na IoT zařízení a dávat hlasovou zpětnou vazbu o nastavení časovače a jeho ukončení | [Nastavte časovač a poskytujte hlasovou zpětnou vazbu](./6-consumer/lessons/3-spoken-feedback/README.md) | -| 24 | [Spotřebitel](./6-consumer/README.md) | Podpora více jazyků | Naučte se podporovat více jazyků, jak v řeči, tak ve zpětných reakcích vašeho chytrého časovače | [Podpora více jazyků](./6-consumer/lessons/4-multiple-language-support/README.md) | +| 12 | [Doprava](./3-transport/README.md) | Ukládání dat o poloze | Naučte se, jak ukládat IoT data pro pozdější vizualizaci nebo analýzu | [Ukládání dat o poloze](./3-transport/lessons/2-store-location-data/README.md) | +| 13 | [Doprava](./3-transport/README.md) | Vizualizace dat o poloze | Naučte se o vizualizaci dat o poloze na mapě a jak mapy reprezentují skutečný 3D svět ve 2D | [Vizualizace dat o poloze](./3-transport/lessons/3-visualize-location-data/README.md) | +| 14 | [Doprava](./3-transport/README.md) | Geozóny | Naučte se o geozónách a jak mohou být použity k upozornění, když jsou vozidla v dodavatelském řetězci blízko svého cíle | [Geozóny](./3-transport/lessons/4-geofences/README.md) | +| 15 | [Výroba](./4-manufacturing/README.md) | Trénink detektoru kvality ovoce | Naučte se, jak vytrénovat klasifikátor obrázků v cloudu pro detekci kvality ovoce | [Trénink detektoru kvality ovoce](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | +| 16 | [Výroba](./4-manufacturing/README.md) | Kontrola kvality ovoce z IoT zařízení | Naučte se používat detektor kvality ovoce z IoT zařízení | [Kontrola kvality ovoce z IoT zařízení](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | +| 17 | [Výroba](./4-manufacturing/README.md) | Spuštění detektoru ovoce na okraji | Naučte se, jak spustit detektor ovoce na IoT zařízení na okraji | [Spuštění detektoru ovoce na okraji](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | +| 18 | [Výroba](./4-manufacturing/README.md) | Spuštění detekce kvality ovoce ze senzoru | Naučte se spouštět detekci kvality ovoce ze senzoru | [Spuštění detekce kvality ovoce ze senzoru](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | +| 19 | [Maloobchod](./5-retail/README.md) | Trénink detektoru zásob | Naučte se používat detekci objektů k tréninku detektoru zásob pro počítání zásob v prodejně | [Trénink detektoru zásob](./5-retail/lessons/1-train-stock-detector/README.md) | +| 20 | [Maloobchod](./5-retail/README.md) | Kontrola zásob z IoT zařízení | Naučte se kontrolovat zásoby z IoT zařízení pomocí modelu detekce objektů | [Kontrola zásob z IoT zařízení](./5-retail/lessons/2-check-stock-device/README.md) | +| 21 | [Spotřebitel](./6-consumer/README.md) | Rozpoznávání řeči pomocí IoT zařízení | Naučte se rozpoznávat řeč z IoT zařízení k vytvoření chytrého časovače | [Rozpoznávání řeči pomocí IoT zařízení](./6-consumer/lessons/1-speech-recognition/README.md) | +| 22 | [Spotřebitel](./6-consumer/README.md) | Porozumění jazyku | Naučte se rozumět větám vysloveným k IoT zařízení | [Porozumění jazyku](./6-consumer/lessons/2-language-understanding/README.md) | +| 23 | [Spotřebitel](./6-consumer/README.md) | Nastavení časovače a poskytování hlasové zpětné vazby | Naučte se nastavit časovač na IoT zařízení a poskytnout hlasovou zpětnou vazbu, kdy je časovač nastaven a kdy skončí | [Nastavení časovače a poskytování hlasové zpětné vazby](./6-consumer/lessons/3-spoken-feedback/README.md) | +| 24 | [Spotřebitel](./6-consumer/README.md) | Podpora více jazyků | Naučte se podporovat více jazyků, jak při mluvení k zařízení, tak při odpovědích z vašeho chytrého časovače | [Podpora více jazyků](./6-consumer/lessons/4-multiple-language-support/README.md) | ## Offline přístup -Tuto dokumentaci si můžete spustit offline pomocí [Docsify](https://docsify.js.org/#/). Vytvořte fork tohoto repozitáře, [nainstalujte Docsify](https://docsify.js.org/#/quickstart) na svůj lokální počítač, a pak v kořenové složce repozitáře zadejte `docsify serve`. Web bude dostupný na portu 3000 na vašem localhostu: `localhost:3000`. +Tuto dokumentaci můžete spustit offline pomocí [Docsify](https://docsify.js.org/#/). Vytvořte fork tohoto repozitáře, [nainstalujte Docsify](https://docsify.js.org/#/quickstart) na svém počítači a pak v kořenové složce tohoto repozitáře zadejte příkaz `docsify serve`. Webové stránky poběží na portu 3000 na vaší lokální adrese: `localhost:3000`. ## Kvíz -Díky komunitě za hostování interaktivního kvízu, který testuje vaše znalosti ke každé kapitole. Otestujte si své znalosti [zde](https://ff-quizzes.netlify.app/en/) +Díky komunitě za hostování interaktivního kvízu, který testuje vaše znalosti v každé kapitole. Znalosti si můžete ověřit [zde](https://ff-quizzes.netlify.app/en/). ### PDF -Můžete si vygenerovat PDF tohoto obsahu pro offline přístup, pokud je to potřeba. K tomu si zajistěte, že máte [npm nainstalovaný](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) a spusťte následující příkazy v kořenové složce tohoto repozitáře: +Pokud potřebujete, můžete si vytvořit PDF této obsahu pro offline přístup. Abyste to mohli udělat, ujistěte se, že máte [nainstalovaný npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) a spusťte následující příkazy v kořenové složce tohoto repozitáře: ```sh npm i @@ -154,60 +164,59 @@ npm run convert ### Prezentace -Pro některé lekce existují prezentační sady ve složce [slides](../../slides). +Některé lekce mají k dispozici prezentace ve složce [slides](../../slides). +## Další kurzy -## Další Kurikula - -Náš tým vytváří i další kurikula! Podívejte se na: +Náš tým vytváří i jiné kurzy! Mrkněte na: ### LangChain -[![LangChain4j pro začátečníky](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) -[![LangChain.js pro začátečníky](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) - +[![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) +[![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- -### Azure / Edge / MCP / Agenti -[![AZD pro začátečníky](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) +### Azure / Edge / MCP / Agents +[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI pro začátečníky](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) [![MCP pro začátečníky](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agenti pro Začátečníky](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI Agents pro začátečníky](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Séria Generativní AI -[![Generativní AI pro Začátečníky](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +### Série Generativní AI +[![Generativní AI pro začátečníky](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) [![Generativní AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) [![Generativní AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) [![Generativní AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- -### Základní Vzdělávání -[![Strojové Učení pro Začátečníky](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Datová Věda pro Začátečníky](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![AI pro Začátečníky](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![Kyberbezpečnost pro Začátečníky](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![Webový Vývoj pro Začátečníky](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![IoT pro Začátečníky](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![Vývoj XR pro Začátečníky](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +### Základní vzdělávání +[![ML pro začátečníky](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Data Science pro začátečníky](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![AI pro začátečníky](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Kybernetická bezpečnost pro začátečníky](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Webový vývoj pro začátečníky](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![IoT pro začátečníky](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![Vývoj XR pro začátečníky](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### Série Copilot -[![Copilot pro AI Párové Programování](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot pro AI párované programování](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) [![Copilot pro C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) [![Copilot Dobrodružství](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## Odkazy na zdroje obrázků +## Uznání obrázků -Všechny odkazy na zdroje použitých obrázků v tomto kurikulu najdete v sekci [Odkazy](./attributions.md). +Všechna uznání za obrázky použité v tomto kurikulu najdete tam, kde je to potřeba, v [Uznání](./attributions.md). --- -**Prohlášení o omezení odpovědnosti**: -Tento dokument byl přeložen pomocí AI překladatelské služby [Co-op Translator](https://github.com/Azure/co-op-translator). I když usilujeme o přesnost, mějte prosím na paměti, že automatické překlady mohou obsahovat chyby nebo nepřesnosti. Originální dokument v jeho původním jazyce by měl být považován za autoritativní zdroj. Pro zásadní informace se doporučuje profesionální lidský překlad. Nejsme odpovědní za žádná nedorozumění či nesprávné výklady vzniklé použitím tohoto překladu. +**Prohlášení o vyloučení odpovědnosti**: +Tento dokument byl přeložen pomocí AI překladatelské služby [Co-op Translator](https://github.com/Azure/co-op-translator). Přestože usilujeme o přesnost, mějte prosím na paměti, že automatizované překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho mateřském jazyce by měl být považován za autoritativní zdroj. Pro kritické informace se doporučuje profesionální lidský překlad. Nejsme odpovědní za jakékoliv nedorozumění nebo chybné interpretace vyplývající z použití tohoto překladu. \ No newline at end of file diff --git a/translations/cs/hardware.md b/translations/cs/hardware.md index 116a6af00..8ec78a3f0 100644 --- a/translations/cs/hardware.md +++ b/translations/cs/hardware.md @@ -26,7 +26,7 @@ Seeed Studios velmi laskavě zpřístupnili veškerý hardware jako snadno zakou **[IoT pro začátečníky se Seeed a Microsoft - Raspberry Pi 4 Starter Kit](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html)** -[![Sada hardwaru Raspberry Pi Terminal](../../translated_images/cs/pi-hardware-kit.26dbadaedb7dd44c73b0131d5d68ea29472ed0a9744f90d5866c6d82f2d16380.png)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) +[![Sada hardwaru Raspberry Pi Terminal](../../translated_images/cs/pi-hardware-kit.26dbadaedb7dd44c.webp)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) ## Arduino diff --git a/translations/da/.co-op-translator.json b/translations/da/.co-op-translator.json index 46fe7020e..0fbf7c612 100644 --- a/translations/da/.co-op-translator.json +++ b/translations/da/.co-op-translator.json @@ -738,8 +738,8 @@ "language_code": "da" }, "README.md": { - "original_hash": "3fcc056cd3837e33d2bdf79f9c359fcf", - "translation_date": "2026-01-30T02:03:42+00:00", + "original_hash": "accf69391fa4450eadbf492ca024cccf", + "translation_date": "2026-04-06T16:07:21+00:00", "source_file": "README.md", "language_code": "da" }, diff --git a/translations/da/1-getting-started/lessons/1-introduction-to-iot/README.md b/translations/da/1-getting-started/lessons/1-introduction-to-iot/README.md index 87c34eef0..dd0b38403 100644 --- a/translations/da/1-getting-started/lessons/1-introduction-to-iot/README.md +++ b/translations/da/1-getting-started/lessons/1-introduction-to-iot/README.md @@ -1,6 +1,6 @@ # Introduktion til IoT -![En sketchnote oversigt over denne lektion](../../../../../translated_images/da/lesson-1.2606670fa61ee904687da5d6fa4e726639d524d064c895117da1b95b9ff6251d.jpg) +![En sketchnote oversigt over denne lektion](../../../../../translated_images/da/lesson-1.2606670fa61ee904.webp) > Sketchnote af [Nitya Narasimhan](https://github.com/nitya). Klik på billedet for en større version. diff --git a/translations/da/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md b/translations/da/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md index 890dedb32..79537fd9b 100644 --- a/translations/da/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md +++ b/translations/da/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md @@ -203,7 +203,7 @@ Som et andet 'Hello World'-trin vil du køre CounterFit-appen og forbinde din ko Appen vil begynde at køre og åbne i din webbrowser: - ![CounterFit-appen kører i en browser](../../../../../translated_images/da/counterfit-first-run.433326358b669b31d0e99c3513cb01bfbb13724d162c99cdcc8f51ecf5f9c779.png) + ![CounterFit-appen kører i en browser](../../../../../translated_images/da/counterfit-first-run.433326358b669b31.webp) Den vil være markeret som *Disconnected*, med LED'en i øverste højre hjørne slukket. @@ -224,7 +224,7 @@ Som et andet 'Hello World'-trin vil du køre CounterFit-appen og forbinde din ko 1. I denne nye terminal skal du køre `app.py`-filen som før. Status for CounterFit vil ændre sig til **Connected**, og LED'en vil lyse op. - ![CounterFit viser som connected](../../../../../translated_images/da/counterfit-connected.ed30b46d8f79b0921f3fc70be10366e596a89dca3f80c2224a9d9fc98fccf884.png) + ![CounterFit viser som connected](../../../../../translated_images/da/counterfit-connected.ed30b46d8f79b092.webp) > 💁 Du kan finde denne kode i [code/virtual-device](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/virtual-device)-mappen. diff --git a/translations/da/1-getting-started/lessons/2-deeper-dive/README.md b/translations/da/1-getting-started/lessons/2-deeper-dive/README.md index 1c4baea57..8ff545d73 100644 --- a/translations/da/1-getting-started/lessons/2-deeper-dive/README.md +++ b/translations/da/1-getting-started/lessons/2-deeper-dive/README.md @@ -1,6 +1,6 @@ # En dybere indsigt i IoT -![En sketchnote oversigt over denne lektion](../../../../../translated_images/da/lesson-2.324b0580d620c25e0a24fb7fddfc0b29a846dd4b82c08e7a9466d580ee78ce51.jpg) +![En sketchnote oversigt over denne lektion](../../../../../translated_images/da/lesson-2.324b0580d620c25e.webp) > Sketchnote af [Nitya Narasimhan](https://github.com/nitya). Klik på billedet for en større version. @@ -38,7 +38,7 @@ De to komponenter i en IoT-applikation er *Internet* og *ting*. Lad os se nærme Disse enheder interagerer med den fysiske verden, enten ved at bruge sensorer til at indsamle data fra deres omgivelser eller ved at kontrollere output eller aktuatorer for at foretage fysiske ændringer. Et typisk eksempel er en smart termostat - en enhed, der har en temperatursensor, en måde at indstille en ønsket temperatur på, såsom en drejeknap eller touchscreen, og en forbindelse til et varme- eller kølesystem, der kan tændes, når den registrerede temperatur er uden for det ønskede område. Temperatursensoren registrerer, at rummet er for koldt, og en aktuator tænder for varmen. -![Et diagram, der viser temperatur og en drejeknap som input til en IoT-enhed, og kontrol af en varmeenhed som output](../../../../../translated_images/da/basic-thermostat.a923217fd1f37e5a6f3390396a65c22a387419ea2dd17e518ec24315ba6ae9a8.png) +![Et diagram, der viser temperatur og en drejeknap som input til en IoT-enhed, og kontrol af en varmeenhed som output](../../../../../translated_images/da/basic-thermostat.a923217fd1f37e5a.webp) Der findes et enormt udvalg af forskellige ting, der kan fungere som IoT-enheder, fra dedikeret hardware, der registrerer én ting, til generelle enheder, endda din smartphone! En smartphone kan bruge sensorer til at registrere verden omkring sig og aktuatorer til at interagere med verden - for eksempel ved at bruge en GPS-sensor til at registrere din placering og en højttaler til at give dig navigationsinstruktioner til en destination. @@ -54,7 +54,7 @@ Enheder forbinder heller ikke altid direkte til internettet via WiFi eller kabel Med eksemplet med en smart termostat ville termostaten forbinde via hjemmets WiFi til en cloud-tjeneste, der kører i skyen. Den ville sende temperaturdata til denne cloud-tjeneste, og derfra ville dataene blive skrevet til en slags database, der gør det muligt for husejeren at tjekke aktuelle og tidligere temperaturer via en telefonapp. En anden tjeneste i skyen ville vide, hvilken temperatur husejeren ønsker, og sende beskeder tilbage til IoT-enheden via cloud-tjenesten for at fortælle varmesystemet, om det skal tændes eller slukkes. -![Et diagram, der viser temperatur og en drejeknap som input til en IoT-enhed, IoT-enheden med tovejskommunikation til skyen, som igen har tovejskommunikation til en telefon, og kontrol af en varmeenhed som output fra IoT-enheden](../../../../../translated_images/da/mobile-controlled-thermostat.4a994010473d8d6a52ba68c67e5f02dc8928c717e93ca4b9bc55525aa75bbb60.png) +![Et diagram, der viser temperatur og en drejeknap som input til en IoT-enhed, IoT-enheden med tovejskommunikation til skyen, som igen har tovejskommunikation til en telefon, og kontrol af en varmeenhed som output fra IoT-enheden](../../../../../translated_images/da/mobile-controlled-thermostat.4a994010473d8d6a.webp) En endnu smartere version kunne bruge AI i skyen med data fra andre sensorer, der er forbundet til andre IoT-enheder, såsom bevægelsessensorer, der registrerer, hvilke rum der er i brug, samt data som vejr og endda din kalender, for at træffe beslutninger om, hvordan temperaturen skal indstilles på en intelligent måde. For eksempel kunne den slukke for varmen, hvis den læser fra din kalender, at du er på ferie, eller slukke for varmen rum for rum afhængigt af, hvilke rum du bruger, og lære af dataene for at blive mere og mere præcis over tid. @@ -94,7 +94,7 @@ Jo hurtigere clock-cyklussen er, jo flere instruktioner kan behandles pr. sekund > 💁 CPU'er udfører programmer ved hjælp af [fetch-decode-execute-cyklussen](https://wikipedia.org/wiki/Instruction_cycle). For hver clock-tik vil CPU'en hente den næste instruktion fra hukommelsen, afkode den og derefter udføre den, såsom at bruge en aritmetisk logisk enhed (ALU) til at lægge 2 tal sammen. Nogle udførelser vil tage flere tik at køre, så den næste cyklus vil køre ved næste tik, efter instruktionen er afsluttet. -![Fetch-decode-execute-cyklussen, der viser, hvordan fetch henter en instruktion fra programmet, der er gemt i RAM, og derefter afkoder og udfører den på en CPU](../../../../../translated_images/da/fetch-decode-execute.2fd6f150f6280392807f4475382319abd0cee0b90058e1735444d6baa6f2078c.png) +![Fetch-decode-execute-cyklussen, der viser, hvordan fetch henter en instruktion fra programmet, der er gemt i RAM, og derefter afkoder og udfører den på en CPU](../../../../../translated_images/da/fetch-decode-execute.2fd6f150f6280392.webp) Mikrocontrollere har meget lavere clock-hastigheder end stationære eller bærbare computere eller endda de fleste smartphones. Wio Terminal har for eksempel en CPU, der kører ved 120MHz eller 120.000.000 cyklusser pr. sekund. @@ -182,7 +182,7 @@ Arduino-boards programmeres i C eller C++. Brug af C/C++ gør det muligt at komp Du vil skrive din opsætningskode i `setup`-funktionen, såsom at oprette forbindelse til WiFi og cloud-tjenester eller initialisere pins til input og output. Din loop-kode vil derefter indeholde behandlingskode, såsom at læse fra en sensor og sende værdien til skyen. Du vil normalt inkludere en forsinkelse i hver loop, for eksempel hvis du kun vil sende sensordata hvert 10. sekund, vil du tilføje en forsinkelse på 10 sekunder i slutningen af loopen, så mikrocontrolleren kan sove og spare strøm, og derefter køre loopen igen, når det er nødvendigt 10 sekunder senere. -![En Arduino-sketch, der kører setup først og derefter kører loop gentagne gange](../../../../../translated_images/da/arduino-sketch.79590cb837ff7a7c6a68d1afda6cab83fd53d3bb1bd9a8bf2eaf8d693a4d3ea6.png) +![En Arduino-sketch, der kører setup først og derefter kører loop gentagne gange](../../../../../translated_images/da/arduino-sketch.79590cb837ff7a7c.webp) ✅ Denne programarkitektur kaldes en *event loop* eller *message loop*. Mange applikationer bruger dette under motorhjelmen og er standarden for de fleste desktop-applikationer, der kører på OS'er som Windows, macOS eller Linux. `loop` lytter efter beskeder fra brugergrænsefladekomponenter som knapper eller enheder som tastaturet og reagerer på dem. Du kan læse mere i denne [artikel om event loops](https://wikipedia.org/wiki/Event_loop). diff --git a/translations/da/1-getting-started/lessons/3-sensors-and-actuators/README.md b/translations/da/1-getting-started/lessons/3-sensors-and-actuators/README.md index ce0986dc3..4c48c497b 100644 --- a/translations/da/1-getting-started/lessons/3-sensors-and-actuators/README.md +++ b/translations/da/1-getting-started/lessons/3-sensors-and-actuators/README.md @@ -1,6 +1,6 @@ # Interager med den fysiske verden med sensorer og aktuatorer -![En sketchnote oversigt over denne lektion](../../../../../translated_images/da/lesson-3.cc3b7b4cd646de598698cce043c0393fd62ef42bac2eaf60e61272cd844250f4.jpg) +![En sketchnote oversigt over denne lektion](../../../../../translated_images/da/lesson-3.cc3b7b4cd646de59.webp) > Sketchnote af [Nitya Narasimhan](https://github.com/nitya). Klik på billedet for en større version. @@ -92,7 +92,7 @@ Digitale sensorer, ligesom analoge sensorer, registrerer verden omkring dem ved Den enkleste digitale sensor er en knap eller kontakt. Dette er en sensor med to tilstande, tændt eller slukket. -![En knap modtager 5 volt. Når den ikke er trykket, returnerer den 0 volt, når den er trykket, returnerer den 5 volt](../../../../../translated_images/da/button.eadb560b77ac45e56f523d9d8876e40444f63b419e33eb820082d461fa79490b.png) +![En knap modtager 5 volt. Når den ikke er trykket, returnerer den 0 volt, når den er trykket, returnerer den 5 volt](../../../../../translated_images/da/button.eadb560b77ac45e5.webp) Pins på IoT-enheder, såsom GPIO-pins, kan måle dette signal direkte som en 0 eller 1. Hvis den sendte spænding er den samme som den returnerede spænding, læses værdien som 1, ellers læses værdien som 0. Der er ingen grund til at konvertere signalet, det kan kun være 1 eller 0. @@ -125,7 +125,7 @@ Nogle almindelige aktuatorer inkluderer: Følg den relevante vejledning nedenfor for at tilføje en aktuator til din IoT-enhed, styret af sensoren, for at bygge en IoT-natlampe. Den vil indsamle lysniveauer fra lyssensoren og bruge en aktuator i form af en LED til at udsende lys, når det registrerede lysniveau er for lavt. -![Et flowdiagram over opgaven, der viser lysniveauer, der bliver læst og kontrolleret, og LED'en bliver styret](../../../../../translated_images/da/assignment-1-flow.7552a51acb1a5ec858dca6e855cdbb44206434006df8ba3799a25afcdab1665d.png) +![Et flowdiagram over opgaven, der viser lysniveauer, der bliver læst og kontrolleret, og LED'en bliver styret](../../../../../translated_images/da/assignment-1-flow.7552a51acb1a5ec8.webp) * [Arduino - Wio Terminal](wio-terminal-actuator.md) * [Single-board computer - Raspberry Pi](pi-actuator.md) @@ -140,7 +140,7 @@ Ligesom sensorer er aktuatorer enten analoge eller digitale. Analoge aktuatorer tager et analogt signal og konverterer det til en form for interaktion, hvor interaktionen ændrer sig baseret på den leverede spænding. Et eksempel er en dæmpbar lampe, såsom dem du måske har i dit hjem. Mængden af spænding, der leveres til lampen, bestemmer, hvor lys den er. -![En lysdæmper ved lav spænding og lysere ved højere spænding](../../../../../translated_images/da/dimmable-light.9ceffeb195dec1a849da718b2d71b32c35171ff7dfea9c07bbf82646a67acf6b.png) +![En lysdæmper ved lav spænding og lysere ved højere spænding](../../../../../translated_images/da/dimmable-light.9ceffeb195dec1a8.webp) Ligesom med sensorer fungerer den faktiske IoT-enhed med digitale signaler, ikke analoge. Det betyder, at for at sende et analogt signal skal IoT-enheden have en digital-til-analog-konverter (DAC), enten direkte på IoT-enheden eller på et tilslutningskort. Dette konverterer 0'erne og 1'erne fra IoT-enheden til en analog spænding, som aktuatoren kan bruge. @@ -187,7 +187,7 @@ Digitale aktuatorer, ligesom digitale sensorer, har enten to tilstande, der styr En simpel digital aktuator er en LED. Når en enhed sender et digitalt signal på 1, sendes en høj spænding, der tænder LED'en. Når et digitalt signal på 0 sendes, falder spændingen til 0V, og LED'en slukkes. -![En LED er slukket ved 0 volt og tændt ved 5V](../../../../../translated_images/da/led.ec6d94f66676a174ad06d9fa9ea49c2ee89beb18b312d5c6476467c66375b07f.png) +![En LED er slukket ved 0 volt og tændt ved 5V](../../../../../translated_images/da/led.ec6d94f66676a174.webp) ✅ Hvilke andre simple 2-tilstands aktuatorer kan du komme i tanke om? Et eksempel er en solenoid, som er en elektromagnet, der kan aktiveres til at gøre ting som at flytte en dørlås, der låser/oplåser en dør. diff --git a/translations/da/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md b/translations/da/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md index 01d004405..89a9ced8c 100644 --- a/translations/da/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md +++ b/translations/da/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md @@ -26,7 +26,7 @@ Grove LED'en leveres som en modul med et udvalg af LED'er, så du kan vælge far Tilslut LED'en. -![En Grove LED](../../../../../translated_images/da/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![En Grove LED](../../../../../translated_images/da/grove-led.6c853be93f473cf2.webp) 1. Vælg din foretrukne LED, og indsæt benene i de to huller på LED-modulet. @@ -40,7 +40,7 @@ Tilslut LED'en. 1. Med Raspberry Pi slukket skal du tilslutte den anden ende af Grove-kablet til det digitale stik mærket **D5** på Grove Base-hatten, der er tilsluttet Pi'en. Dette stik er det andet fra venstre i rækken af stik ved siden af GPIO-pindene. -![Grove LED tilsluttet stik D5](../../../../../translated_images/da/pi-led.97f1d474981dc35d1c7996c7b17de355d3d0a6bc9606d79fa5f89df933415122.png) +![Grove LED tilsluttet stik D5](../../../../../translated_images/da/pi-led.97f1d474981dc35d.webp) ## Programmer natlampen diff --git a/translations/da/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md b/translations/da/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md index f9b042875..6b9521f90 100644 --- a/translations/da/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md +++ b/translations/da/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md @@ -16,13 +16,13 @@ Grove-lyssensoren, der bruges til at registrere lysniveauer, skal forbindes til Tilslut lyssensoren. -![En Grove-lyssensor](../../../../../translated_images/da/grove-light-sensor.b8127b7c434e632d6bcdb57587a14e9ef69a268a22df95d08628f62b8fa5505c.png) +![En Grove-lyssensor](../../../../../translated_images/da/grove-light-sensor.b8127b7c434e632d.webp) 1. Sæt den ene ende af et Grove-kabel i stikket på lyssensormodulet. Det kan kun sættes i på én måde. 1. Med Raspberry Pi slukket, tilslut den anden ende af Grove-kablet til det analoge stik mærket **A0** på Grove Base-hatten, der er tilsluttet Pi'en. Dette stik er det andet fra højre i rækken af stik ved siden af GPIO-pindene. -![Grove-lyssensoren tilsluttet stik A0](../../../../../translated_images/da/pi-light-sensor.66cc1e31fa48cd7d5f23400d4b2119aa41508275cb7c778053a7923b4e972d7e.png) +![Grove-lyssensoren tilsluttet stik A0](../../../../../translated_images/da/pi-light-sensor.66cc1e31fa48cd7d.webp) ## Programmer lyssensoren diff --git a/translations/da/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md b/translations/da/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md index b2fc70fd1..957a93e3f 100644 --- a/translations/da/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md +++ b/translations/da/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md @@ -36,11 +36,11 @@ Tilføj LED'en til CounterFit-appen. 1. Vælg knappen **Add** for at oprette LED'en på Pin 5. - ![LED-indstillingerne](../../../../../translated_images/da/counterfit-create-led.ba9db1c9b8c622a635d6dfae5cdc4e70c2b250635bd4f0601c6cf0bd22b7ba46.png) + ![LED-indstillingerne](../../../../../translated_images/da/counterfit-create-led.ba9db1c9b8c622a6.webp) LED'en vil blive oprettet og vises i listen over aktuatorer. - ![LED'en oprettet](../../../../../translated_images/da/counterfit-led.c0ab02de6d256ad84d9bad4d67a7faa709f0ea83e410cfe9b5561ef0cef30b1c.png) + ![LED'en oprettet](../../../../../translated_images/da/counterfit-led.c0ab02de6d256ad8.webp) Når LED'en er oprettet, kan du ændre farven ved hjælp af *Color*-vælgeren. Vælg knappen **Set** for at ændre farven, efter du har valgt den. diff --git a/translations/da/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md b/translations/da/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md index 9f01109be..4afc53aea 100644 --- a/translations/da/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md +++ b/translations/da/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md @@ -28,11 +28,11 @@ Tilføj lyssensoren til CounterFit-appen. 1. Klik på knappen **Add** for at oprette lyssensoren på Pin 0. - ![Indstillinger for lyssensoren](../../../../../translated_images/da/counterfit-create-light-sensor.9f36a5e0d4458d8d554d54b34d2c806d56093d6e49fddcda2d20f6fef7f5cce1.png) + ![Indstillinger for lyssensoren](../../../../../translated_images/da/counterfit-create-light-sensor.9f36a5e0d4458d8d.webp) Lyssensoren vil blive oprettet og vises i sensorlisten. - ![Lyssensoren oprettet](../../../../../translated_images/da/counterfit-light-sensor.5d0f5584df56b90f6b2561910d9cb20dfbd73eeff2177c238d38f4de54aefae1.png) + ![Lyssensoren oprettet](../../../../../translated_images/da/counterfit-light-sensor.5d0f5584df56b90f.webp) ## Programmer lyssensoren diff --git a/translations/da/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md b/translations/da/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md index 594ebdc0a..05bc068bb 100644 --- a/translations/da/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md +++ b/translations/da/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md @@ -26,7 +26,7 @@ Grove LED'en kommer som en modul med et udvalg af LED'er, så du kan vælge farv Tilslut LED'en. -![En Grove LED](../../../../../translated_images/da/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![En Grove LED](../../../../../translated_images/da/grove-led.6c853be93f473cf2.webp) 1. Vælg din favorit LED og indsæt benene i de to huller på LED-modulet. diff --git a/translations/da/1-getting-started/lessons/4-connect-internet/README.md b/translations/da/1-getting-started/lessons/4-connect-internet/README.md index c9f12333e..0bfc59aaa 100644 --- a/translations/da/1-getting-started/lessons/4-connect-internet/README.md +++ b/translations/da/1-getting-started/lessons/4-connect-internet/README.md @@ -1,6 +1,6 @@ # Tilslut din enhed til internettet -![En sketchnote-oversigt over denne lektion](../../../../../translated_images/da/lesson-4.7344e074ea68fa545fd320b12dce36d72dd62d28c3b4596cb26cf315f434b98f.jpg) +![En sketchnote-oversigt over denne lektion](../../../../../translated_images/da/lesson-4.7344e074ea68fa54.webp) > Sketchnote af [Nitya Narasimhan](https://github.com/nitya). Klik på billedet for en større version. @@ -47,7 +47,7 @@ MQTT er den mest populære kommunikationsprotokol for IoT-enheder og dækkes i d MQTT har en enkelt broker og flere klienter. Alle klienter forbinder til brokeren, og brokeren videresender beskeder til de relevante klienter. Beskeder videresendes ved hjælp af navngivne emner (topics) i stedet for at blive sendt direkte til en individuel klient. En klient kan publicere til et emne, og alle klienter, der abonnerer på det emne, vil modtage beskeden. -![IoT-enhed, der publicerer telemetri på /telemetry-emnet, og cloud-tjenesten, der abonnerer på det emne](../../../../../translated_images/da/mqtt.cbf7f21d9adc3e17548b359444cc11bb4bf2010543e32ece9a47becf54438c23.png) +![IoT-enhed, der publicerer telemetri på /telemetry-emnet, og cloud-tjenesten, der abonnerer på det emne](../../../../../translated_images/da/mqtt.cbf7f21d9adc3e17.webp) ✅ Lav noget research. Hvis du har mange IoT-enheder, hvordan kan du sikre, at din MQTT-broker kan håndtere alle beskederne? @@ -69,7 +69,7 @@ I stedet for at håndtere kompleksiteten ved at opsætte en MQTT-broker som en d > 💁 Denne testbroker er offentlig og ikke sikker. Enhver kan lytte til, hvad du publicerer, så den bør ikke bruges til data, der skal holdes private. -![Et flowdiagram over opgaven, der viser lysniveauer, der aflæses og kontrolleres, og LED'en, der styres](../../../../../translated_images/da/assignment-1-internet-flow.3256feab5f052fd273bf4e331157c574c2c3fa42e479836fc9c3586f41db35a5.png) +![Et flowdiagram over opgaven, der viser lysniveauer, der aflæses og kontrolleres, og LED'en, der styres](../../../../../translated_images/da/assignment-1-internet-flow.3256feab5f052fd2.webp) Følg det relevante trin nedenfor for at forbinde din enhed til MQTT-brokeren: @@ -352,7 +352,7 @@ For maskiner vil du måske beholde dataene, især hvis de bruges til at lede eft IoT-enhedsdesignere bør også overveje, om IoT-enheden kan bruges under en internetafbrydelse eller tab af signal forårsaget af placering. En smart termostat bør kunne træffe nogle begrænsede beslutninger for at kontrollere opvarmning, hvis den ikke kan sende telemetri til skyen på grund af en afbrydelse. -[![Denne Ferrari blev ubrugelig, fordi nogen forsøgte at opgradere den under jorden, hvor der ikke er mobilsignal](../../../../../translated_images/da/bricked-car.dc38f8efadc6c59d76211f981a521efb300939283dee468f79503aae3ec67615.png)](https://twitter.com/internetofshit/status/1315736960082808832) +[![Denne Ferrari blev ubrugelig, fordi nogen forsøgte at opgradere den under jorden, hvor der ikke er mobilsignal](../../../../../translated_images/da/bricked-car.dc38f8efadc6c59d.webp)](https://twitter.com/internetofshit/status/1315736960082808832) For MQTT til at håndtere tab af forbindelse skal enheden og serverkoden være ansvarlige for at sikre beskedlevering, hvis det er nødvendigt, f.eks. ved at kræve, at alle beskeder, der sendes, besvares med yderligere beskeder på et svar-emne, og hvis ikke, bliver de manuelt køet til at blive afspillet senere. @@ -360,7 +360,7 @@ For MQTT til at håndtere tab af forbindelse skal enheden og serverkoden være a Kommandoer er beskeder sendt af skyen til en enhed, der instruerer den i at gøre noget. Det involverer ofte at give en form for output via en aktuator, men det kan også være en instruktion til selve enheden, såsom at genstarte eller indsamle ekstra telemetri og returnere det som svar på kommandoen. -![En internetforbundet termostat modtager en kommando om at tænde for varmen](../../../../../translated_images/da/commands.d6c06bbbb3a02cce95f2831a1c331daf6dedd4e470c4aa2b0ae54f332016e504.png) +![En internetforbundet termostat modtager en kommando om at tænde for varmen](../../../../../translated_images/da/commands.d6c06bbbb3a02cce.webp) En termostat kunne modtage en kommando fra skyen om at tænde for varmen. Baseret på telemetridata fra alle sensorer, hvis cloud-tjenesten har besluttet, at varmen skal være tændt, sender den den relevante kommando. diff --git a/translations/da/2-farm/lessons/1-predict-plant-growth/README.md b/translations/da/2-farm/lessons/1-predict-plant-growth/README.md index aab6cc479..7aa7cd3bc 100644 --- a/translations/da/2-farm/lessons/1-predict-plant-growth/README.md +++ b/translations/da/2-farm/lessons/1-predict-plant-growth/README.md @@ -1,6 +1,6 @@ # Forudsig plantevækst med IoT -![En sketchnote-oversigt over denne lektion](../../../../../translated_images/da/lesson-5.42b234299279d263143148b88ab4583861a32ddb03110c6c1120e41bb88b2592.jpg) +![En sketchnote-oversigt over denne lektion](../../../../../translated_images/da/lesson-5.42b234299279d263.webp) > Sketchnote af [Nitya Narasimhan](https://github.com/nitya). Klik på billedet for en større version. @@ -90,7 +90,7 @@ Vækstgradedage, eller GDD, beregnes pr. dag som den gennemsnitlige temperatur i Den fulde formel for GDD er lidt kompliceret, men der findes en forenklet ligning, der ofte bruges som en god tilnærmelse: -![GDD = T max + T min divideret med 2, alt minus T base](../../../../../translated_images/da/gdd-calculation.79b3660f9c5757aa92dc2dd2cdde75344e2d2c1565c4b3151640f7887edc0275.png) +![GDD = T max + T min divideret med 2, alt minus T base](../../../../../translated_images/da/gdd-calculation.79b3660f9c5757aa.webp) * **GDD** - dette er antallet af vækstgradedage * **T max** - dette er den daglige maksimumtemperatur i grader Celsius @@ -118,7 +118,7 @@ Ved at indsætte disse tal i vores beregning: Dette giver en beregning på: -![GDD = 16 + 12 divideret med 2, alt minus 10, hvilket giver et svar på 4](../../../../../translated_images/da/gdd-calculation-corn.64a58b7a7afcd0dfd46ff733996d939f17f4f3feac9f0d1c632be3523e51ebd9.png) +![GDD = 16 + 12 divideret med 2, alt minus 10, hvilket giver et svar på 4](../../../../../translated_images/da/gdd-calculation-corn.64a58b7a7afcd0df.webp) Majsen modtog 4 GDD den dag. Hvis vi antager en majsvariant, der har brug for 800 GDD for at modne, vil den have brug for yderligere 796 GDD for at nå modenhed. @@ -239,7 +239,7 @@ Trinene til at gøre dette manuelt er: For eksempel, hvis dagens højeste temperatur er 25°C, og den laveste er 12°C: -![GDD = 25 + 12 divideret med 2, derefter træk 10 fra resultatet, hvilket giver 8.5](../../../../../translated_images/da/gdd-calculation-strawberries.59f57db94b22adb8ff6efb951ace33af104a1c6ccca3ffb0f8169c14cb160c90.png) +![GDD = 25 + 12 divideret med 2, derefter træk 10 fra resultatet, hvilket giver 8.5](../../../../../translated_images/da/gdd-calculation-strawberries.59f57db94b22adb8.webp) * 25 + 12 = 37 * 37 / 2 = 18.5 diff --git a/translations/da/2-farm/lessons/1-predict-plant-growth/assignment.md b/translations/da/2-farm/lessons/1-predict-plant-growth/assignment.md index 62c5a60d3..d03b96cfc 100644 --- a/translations/da/2-farm/lessons/1-predict-plant-growth/assignment.md +++ b/translations/da/2-farm/lessons/1-predict-plant-growth/assignment.md @@ -33,7 +33,7 @@ Når du har temperaturdata, kan du bruge Jupyter Notebook i dette repo til at vi Jupyter starter op og åbner notebooken i din browser. Arbejd dig igennem instruktionerne i notebooken for at visualisere de målte temperaturer og beregne vækstdage (GDD). - ![Jupyter Notebook](../../../../../translated_images/da/gdd-jupyter-notebook.c5b52cf21094f158a61f47f455490fd95f1729777ff90861a4521820bf354cdc.png) + ![Jupyter Notebook](../../../../../translated_images/da/gdd-jupyter-notebook.c5b52cf21094f158.webp) ## Vurderingskriterier diff --git a/translations/da/2-farm/lessons/1-predict-plant-growth/pi-temp.md b/translations/da/2-farm/lessons/1-predict-plant-growth/pi-temp.md index 272cb04dd..4e56abc6f 100644 --- a/translations/da/2-farm/lessons/1-predict-plant-growth/pi-temp.md +++ b/translations/da/2-farm/lessons/1-predict-plant-growth/pi-temp.md @@ -16,13 +16,13 @@ Grove-temperatursensoren kan tilsluttes Raspberry Pi. Tilslut temperatursensoren -![En Grove-temperatursensor](../../../../../translated_images/da/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![En Grove-temperatursensor](../../../../../translated_images/da/grove-dht11.07f8eafceee17004.webp) 1. Sæt den ene ende af et Grove-kabel i stikket på fugtigheds- og temperatursensoren. Det kan kun sættes i på én måde. 1. Med Raspberry Pi slukket, tilslut den anden ende af Grove-kablet til det digitale stik markeret **D5** på Grove Base-hatten, der er tilsluttet Pi'en. Dette stik er det andet fra venstre i rækken af stik ved siden af GPIO-pinnene. -![Grove-temperatursensoren tilsluttet stik A0](../../../../../translated_images/da/pi-temperature-sensor.3ff82fff672c8e565ef25a39d26d111de006b825a7e0867227ef4e7fbff8553c.png) +![Grove-temperatursensoren tilsluttet stik A0](../../../../../translated_images/da/pi-temperature-sensor.3ff82fff672c8e56.webp) ## Programmer temperatursensoren diff --git a/translations/da/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md b/translations/da/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md index ebc2c8ff1..32b979c74 100644 --- a/translations/da/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md +++ b/translations/da/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md @@ -38,11 +38,11 @@ Tilføj fugtigheds- og temperatursensorerne til CounterFit-appen. 1. Vælg knappen **Add** for at oprette fugtighedssensoren på Pin 5. - ![Indstillinger for fugtighedssensor](../../../../../translated_images/da/counterfit-create-humidity-sensor.2750e27b6f30e09cf4e22101defd5252710717620816ab41ba688f91f757c49a.png) + ![Indstillinger for fugtighedssensor](../../../../../translated_images/da/counterfit-create-humidity-sensor.2750e27b6f30e09c.webp) Fugtighedssensoren vil blive oprettet og vises i sensorlisten. - ![Fugtighedssensor oprettet](../../../../../translated_images/da/counterfit-humidity-sensor.7b12f7f339e430cb26c8211d2dba4ef75261b353a01da0932698b5bebd693f27.png) + ![Fugtighedssensor oprettet](../../../../../translated_images/da/counterfit-humidity-sensor.7b12f7f339e430cb.webp) 1. Opret en temperatursensor: @@ -54,11 +54,11 @@ Tilføj fugtigheds- og temperatursensorerne til CounterFit-appen. 1. Vælg knappen **Add** for at oprette temperatursensoren på Pin 6. - ![Indstillinger for temperatursensor](../../../../../translated_images/da/counterfit-create-temperature-sensor.199350ed34f7343d79dccbe95eaf6c11d2121f03d1c35ab9613b330c23f39b29.png) + ![Indstillinger for temperatursensor](../../../../../translated_images/da/counterfit-create-temperature-sensor.199350ed34f7343d.webp) Temperatursensoren vil blive oprettet og vises i sensorlisten. - ![Temperatursensor oprettet](../../../../../translated_images/da/counterfit-temperature-sensor.f0560236c96a9016bafce7f6f792476fe3367bc6941a1f7d5811d144d4bcbfff.png) + ![Temperatursensor oprettet](../../../../../translated_images/da/counterfit-temperature-sensor.f0560236c96a9016.webp) ## Programmer temperatursensor-appen diff --git a/translations/da/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md b/translations/da/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md index b4cf36115..b048bc191 100644 --- a/translations/da/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md +++ b/translations/da/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md @@ -18,7 +18,7 @@ Grove-temperatursensoren kan tilsluttes Wio Terminalens digitale port. Tilslut temperatursensoren. -![En Grove-temperatursensor](../../../../../translated_images/da/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![En Grove-temperatursensor](../../../../../translated_images/da/grove-dht11.07f8eafceee17004.webp) 1. Sæt den ene ende af et Grove-kabel i stikket på fugtigheds- og temperatursensoren. Det kan kun sættes i på én måde. diff --git a/translations/da/2-farm/lessons/2-detect-soil-moisture/README.md b/translations/da/2-farm/lessons/2-detect-soil-moisture/README.md index 05f998f75..9a0592d8d 100644 --- a/translations/da/2-farm/lessons/2-detect-soil-moisture/README.md +++ b/translations/da/2-farm/lessons/2-detect-soil-moisture/README.md @@ -13,7 +13,7 @@ I²C har en bus bestående af 2 hovedledninger samt 2 strømledninger: | VCC | Voltage common collector | Strømforsyningen til enhederne. Denne er forbundet til SDA- og SCL-ledningerne for at levere deres strøm via en pull-up modstand, der slukker signalet, når ingen enhed er controller. | | GND | Ground | Dette giver en fælles jordforbindelse for det elektriske kredsløb. | -![I2C-bus med 3 enheder forbundet til SDA- og SCL-ledningerne, der deler en fælles jordledning](../../../../../translated_images/da/i2c.83da845dde02256bdd462dbe0d5145461416b74930571b89d1ae142841eeb584.png) +![I2C-bus med 3 enheder forbundet til SDA- og SCL-ledningerne, der deler en fælles jordledning](../../../../../translated_images/da/i2c.83da845dde02256b.webp) For at sende data vil en enhed udsende en startbetingelse for at vise, at den er klar til at sende data. Den vil derefter blive controller. Controlleren sender derefter adressen på den enhed, den ønsker at kommunikere med, sammen med information om, hvorvidt den vil læse eller skrive data. Når dataene er blevet overført, sender controlleren en stopbetingelse for at indikere, at den er færdig. Herefter kan en anden enhed blive controller og sende eller modtage data. diff --git a/translations/da/2-farm/lessons/2-detect-soil-moisture/assignment.md b/translations/da/2-farm/lessons/2-detect-soil-moisture/assignment.md index e5518a2e1..0882e83b9 100644 --- a/translations/da/2-farm/lessons/2-detect-soil-moisture/assignment.md +++ b/translations/da/2-farm/lessons/2-detect-soil-moisture/assignment.md @@ -20,14 +20,14 @@ Du skal gentage disse trin flere gange for at få de nødvendige målinger, med Den gravimetriske jordfugtighed beregnes som: -![jordfugtighed % er vægt våd minus vægt tør, divideret med vægt tør, gange 100](../../../../../translated_images/da/gsm-calculation.6da38c6201eec14e7573bb2647aa18892883193553d23c9d77e5dc681522dfb2.png) +![jordfugtighed % er vægt våd minus vægt tør, divideret med vægt tør, gange 100](../../../../../translated_images/da/gsm-calculation.6da38c6201eec14e.webp) * W - vægten af den våde jord * W - vægten af den tørre jord For eksempel, lad os sige, at du har en jordprøve, der vejer 212g våd og 197g tør. -![Beregningen udfyldt](../../../../../translated_images/da/gsm-calculation-example.99f9803b4f29e97668e7c15412136c0c399ab12dbba0b89596fdae9d8aedb6fb.png) +![Beregningen udfyldt](../../../../../translated_images/da/gsm-calculation-example.99f9803b4f29e976.webp) * W = 212g * W = 197g diff --git a/translations/da/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md b/translations/da/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md index 91ddbd8a5..96d904d81 100644 --- a/translations/da/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md +++ b/translations/da/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md @@ -18,13 +18,13 @@ Grove jordfugtighedssensoren kan tilsluttes Raspberry Pi'en. Tilslut jordfugtighedssensoren. -![En Grove jordfugtighedssensor](../../../../../translated_images/da/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![En Grove jordfugtighedssensor](../../../../../translated_images/da/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. Sæt den ene ende af et Grove-kabel i stikket på jordfugtighedssensoren. Det kan kun sættes i på én måde. 1. Med Raspberry Pi'en slukket, tilslut den anden ende af Grove-kablet til det analoge stik mærket **A0** på Grove Base Hat, der er tilsluttet Pi'en. Dette stik er det næstsidste til højre i rækken af stik ved siden af GPIO-pins. -![Grove jordfugtighedssensor tilsluttet A0-stikket](../../../../../translated_images/da/pi-soil-moisture-sensor.fdd7eb2393792cf6739cacf1985d9f55beda16d372f30d0b5a51d586f978a870.png) +![Grove jordfugtighedssensor tilsluttet A0-stikket](../../../../../translated_images/da/pi-soil-moisture-sensor.fdd7eb2393792cf6.webp) 1. Sæt jordfugtighedssensoren i jorden. Den har en 'højeste positionslinje' - en hvid linje på tværs af sensoren. Sæt sensoren i jorden op til, men ikke over, denne linje. diff --git a/translations/da/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md b/translations/da/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md index 0a366c579..d14417336 100644 --- a/translations/da/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md +++ b/translations/da/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md @@ -34,11 +34,11 @@ Tilføj jordfugtighedssensoren til CounterFit-appen. 1. Vælg knappen **Add** for at oprette *Soil Moisture*-sensoren på Pin 0. - ![Indstillinger for jordfugtighedssensoren](../../../../../translated_images/da/counterfit-create-soil-moisture-sensor.35266135a5e0ae68b29a684d7db0d2933a8098b2307d197f7c71577b724603aa.png) + ![Indstillinger for jordfugtighedssensoren](../../../../../translated_images/da/counterfit-create-soil-moisture-sensor.35266135a5e0ae68.webp) Jordfugtighedssensoren vil blive oprettet og vises i sensorlisten. - ![Den oprettede jordfugtighedssensor](../../../../../translated_images/da/counterfit-soil-moisture-sensor.81742b2de0e9de60a3b3b9a2ff8ecc686d428eb6d71820f27a693be26e5aceee.png) + ![Den oprettede jordfugtighedssensor](../../../../../translated_images/da/counterfit-soil-moisture-sensor.81742b2de0e9de60.webp) ## Programmer jordfugtighedssensor-appen diff --git a/translations/da/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md b/translations/da/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md index 806d202d3..2f739becf 100644 --- a/translations/da/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md +++ b/translations/da/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md @@ -18,7 +18,7 @@ Grove jordfugtighedssensoren kan tilsluttes Wio Terminalens konfigurerbare analo Tilslut jordfugtighedssensoren. -![En Grove jordfugtighedssensor](../../../../../translated_images/da/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![En Grove jordfugtighedssensor](../../../../../translated_images/da/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. Sæt den ene ende af et Grove-kabel i stikket på jordfugtighedssensoren. Det kan kun sættes i på én måde. diff --git a/translations/da/2-farm/lessons/3-automated-plant-watering/README.md b/translations/da/2-farm/lessons/3-automated-plant-watering/README.md index 7819addb0..4ed230889 100644 --- a/translations/da/2-farm/lessons/3-automated-plant-watering/README.md +++ b/translations/da/2-farm/lessons/3-automated-plant-watering/README.md @@ -1,6 +1,6 @@ # Automatisk plantevanding -![En sketchnote oversigt over denne lektion](../../../../../translated_images/da/lesson-7.30b5f577d3cb8e031238751475cb519c7d6dbaea261b5df4643d086ffb2a03bb.jpg) +![En sketchnote oversigt over denne lektion](../../../../../translated_images/da/lesson-7.30b5f577d3cb8e03.webp) > Sketchnote af [Nitya Narasimhan](https://github.com/nitya). Klik på billedet for en større version. @@ -32,7 +32,7 @@ IoT-enheder bruger lav spænding. Selvom dette er nok til sensorer og lavstrøms Løsningen på dette er at have en pumpe tilsluttet en ekstern strømforsyning og bruge en aktuator til at tænde pumpen, ligesom du ville tænde en lampe. Det kræver en lille mængde energi (i form af energi i din krop) for din finger at trykke på en kontakt, og dette forbinder lampen til elnettet, der kører på 110v/240v. -![En lyskontakt tænder strømmen til en lampe](../../../../../translated_images/da/light-switch.760317ad6ab8bd6d611da5352dfe9c73a94a0822ccec7df3c8bae35da18e1658.png) +![En lyskontakt tænder strømmen til en lampe](../../../../../translated_images/da/light-switch.760317ad6ab8bd6d.webp) > 🎓 [Elnet](https://wikipedia.org/wiki/Mains_electricity) refererer til den elektricitet, der leveres til hjem og virksomheder gennem national infrastruktur i mange dele af verden. @@ -72,7 +72,7 @@ Når armen bevæger sig, kan du normalt høre den lave kontakt med elektromagnet Elektromagneten behøver ikke meget strøm for at aktivere og trække armen; den kan styres med 3,3V eller 5V output fra en IoT-udviklingskit. Udgangskredsløbet kan bære meget mere strøm, afhængigt af relæet, inklusive elnetspænding eller endda højere strømniveauer til industriel brug. På denne måde kan en IoT-udviklingskit styre et vandingssystem, fra en lille pumpe til en enkelt plante, op til et massivt industrielt system til en hel kommerciel gård. -![Et Grove-relæ med kontrolkredsløb, udgangskredsløb og relæ mærket](../../../../../translated_images/da/grove-relay-labelled.293e068f5c3c2a199bd7892f2661fdc9e10c920b535cfed317fbd6d1d4ae1168.png) +![Et Grove-relæ med kontrolkredsløb, udgangskredsløb og relæ mærket](../../../../../translated_images/da/grove-relay-labelled.293e068f5c3c2a19.webp) Billedet ovenfor viser et Grove-relæ. Kontrolkredsløbet forbinder til en IoT-enhed og tænder eller slukker relæet ved hjælp af 3,3V eller 5V. Udgangskredsløbet har to terminaler, hvoraf en kan være strøm eller jord. Udgangskredsløbet kan håndtere op til 250V ved 10A, nok til en række enheder, der drives af elnettet. Du kan få relæer, der kan håndtere endnu højere strømniveauer. diff --git a/translations/da/2-farm/lessons/3-automated-plant-watering/pi-relay.md b/translations/da/2-farm/lessons/3-automated-plant-watering/pi-relay.md index 550dfc3d3..ef0212594 100644 --- a/translations/da/2-farm/lessons/3-automated-plant-watering/pi-relay.md +++ b/translations/da/2-farm/lessons/3-automated-plant-watering/pi-relay.md @@ -18,13 +18,13 @@ Grove-relæet kan tilsluttes Raspberry Pi'en. Tilslut relæet. -![Et Grove-relæ](../../../../../translated_images/da/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) +![Et Grove-relæ](../../../../../translated_images/da/grove-relay.d426958ca210fbd0.webp) 1. Sæt den ene ende af et Grove-kabel i stikket på relæet. Det kan kun sættes i på én måde. 1. Med Raspberry Pi'en slukket, tilslut den anden ende af Grove-kablet til det digitale stik markeret **D5** på Grove Base Hat, der er tilsluttet Pi'en. Dette stik er det andet fra venstre på rækken af stik ved siden af GPIO-pinnene. Lad jordfugtighedssensoren være tilsluttet **A0**-stikket. -![Grove-relæet tilsluttet D5-stikket og jordfugtighedssensoren tilsluttet A0-stikket](../../../../../translated_images/da/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e69ec716cd2719ce117700bd1fc933eaf93476c103c57939b.png) +![Grove-relæet tilsluttet D5-stikket og jordfugtighedssensoren tilsluttet A0-stikket](../../../../../translated_images/da/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e.webp) 1. Sæt jordfugtighedssensoren i jorden, hvis den ikke allerede er det fra den forrige lektion. diff --git a/translations/da/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md b/translations/da/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md index 5382effe1..c89cb01d0 100644 --- a/translations/da/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md +++ b/translations/da/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md @@ -28,11 +28,11 @@ Tilføj relæet til CounterFit-appen. 1. Vælg **Add**-knappen for at oprette relæet på Pin 5. - ![Relæindstillingerne](../../../../../translated_images/da/counterfit-create-relay.fa7c40fd0f2f6afc33b35ea94fcb235085be4861e14e3fe6b9b7bcfc82d1c888.png) + ![Relæindstillingerne](../../../../../translated_images/da/counterfit-create-relay.fa7c40fd0f2f6afc.webp) Relæet vil blive oprettet og vises i listen over aktuatorer. - ![Relæet oprettet](../../../../../translated_images/da/counterfit-relay.bbf74c1dbdc8b9acd983367fcbd06703a402aefef6af54ddb28e11307ba8a12c.png) + ![Relæet oprettet](../../../../../translated_images/da/counterfit-relay.bbf74c1dbdc8b9ac.webp) ## Programmer relæet diff --git a/translations/da/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md b/translations/da/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md index fa7efa826..a863de6b6 100644 --- a/translations/da/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md +++ b/translations/da/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md @@ -18,7 +18,7 @@ Grove-relæet kan tilsluttes Wio Terminalens digitale port. Tilslut relæet. -![Et Grove-relæ](../../../../../translated_images/da/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) +![Et Grove-relæ](../../../../../translated_images/da/grove-relay.d426958ca210fbd0.webp) 1. Sæt den ene ende af et Grove-kabel i stikket på relæet. Det kan kun sættes i på én måde. diff --git a/translations/da/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md b/translations/da/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md index 6e2ff70de..773e70bf1 100644 --- a/translations/da/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md +++ b/translations/da/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md @@ -1,6 +1,6 @@ # Migrér din plante til skyen -![En sketchnote-oversigt over denne lektion](../../../../../translated_images/da/lesson-8.3f21f3c11159e6a0a376351973ea5724d5de68fa23b4288853a174bed9ac48c3.jpg) +![En sketchnote-oversigt over denne lektion](../../../../../translated_images/da/lesson-8.3f21f3c11159e6a0.webp) > Sketchnote af [Nitya Narasimhan](https://github.com/nitya). Klik på billedet for en større version. @@ -46,8 +46,8 @@ Dette kunne være meget dyrt, kræve en bred vifte af dygtige medarbejdere og v Skyen omtales ofte spøgende som 'en andens computer'. Den oprindelige idé var simpel - i stedet for at købe computere, lejer du en andens computer. En anden, en cloud-udbyder, ville administrere enorme datacentre. De ville være ansvarlige for at købe og installere hardware, håndtere strøm og køling, netværk, bygningssikkerhed, hardware- og softwareopdateringer, alt. Som kunde ville du leje de computere, du har brug for, leje flere, når efterspørgslen stiger, og reducere antallet, når efterspørgslen falder. Disse cloud-datacentre findes over hele verden. -![Et Microsoft cloud-datacenter](../../../../../translated_images/da/azure-region-existing.73f704604f2aa6cb9b5a49ed40e93d4fd81ae3f4e6af4a8ca504023902832f56.png) -![Planlagt udvidelse af et Microsoft cloud-datacenter](../../../../../translated_images/da/azure-region-planned-expansion.a5074a1e8af74f156a73552d502429e5b126ea5019274d767ecb4b9afdad442b.png) +![Et Microsoft cloud-datacenter](../../../../../translated_images/da/azure-region-existing.73f704604f2aa6cb.webp) +![Planlagt udvidelse af et Microsoft cloud-datacenter](../../../../../translated_images/da/azure-region-planned-expansion.a5074a1e8af74f15.webp) Disse datacentre kan være flere kvadratkilometer store. Billederne ovenfor blev taget for nogle år siden i et Microsoft cloud-datacenter og viser den oprindelige størrelse sammen med en planlagt udvidelse. Området, der er ryddet til udvidelsen, er over 5 kvadratkilometer. @@ -108,11 +108,11 @@ IoT-tjenester i skyen løser disse problemer. De vedligeholdes af store cloud-ud IoT-enheder forbinder til en cloud-tjeneste enten ved hjælp af en enheds-SDK (et bibliotek, der leverer kode til at arbejde med tjenestens funktioner) eller direkte via en kommunikationsprotokol som MQTT eller HTTP. Enheds-SDK'en er normalt den nemmeste vej at tage, da den håndterer alt for dig, såsom at vide, hvilke emner der skal publiceres eller abonneres på, og hvordan man håndterer sikkerhed. -![Enheder forbinder til en tjeneste ved hjælp af en enheds-SDK. Serverkode forbinder også til tjenesten via en SDK](../../../../../translated_images/da/iot-service-connectivity.7e873847921a5d6fd60d0ba3a943210194518cee0d4e362476624316443275c3.png) +![Enheder forbinder til en tjeneste ved hjælp af en enheds-SDK. Serverkode forbinder også til tjenesten via en SDK](../../../../../translated_images/da/iot-service-connectivity.7e873847921a5d6f.webp) Din enhed kommunikerer derefter med andre dele af din applikation via denne tjeneste - ligesom du sendte telemetri og modtog kommandoer via MQTT. Dette sker normalt ved hjælp af en service-SDK eller et lignende bibliotek. Beskeder kommer fra din enhed til tjenesten, hvor andre komponenter i din applikation derefter kan læse dem, og beskeder kan derefter sendes tilbage til din enhed. -![Enheder uden en gyldig hemmelig nøgle kan ikke forbinde til IoT-tjenesten](../../../../../translated_images/da/iot-service-allowed-denied-connection.818b0063ac213fb84204a7229303764d9b467ca430fb822b4ac2fca267d56726.png) +![Enheder uden en gyldig hemmelig nøgle kan ikke forbinde til IoT-tjenesten](../../../../../translated_images/da/iot-service-allowed-denied-connection.818b0063ac213fb8.webp) Disse tjenester implementerer sikkerhed ved at kende til alle de enheder, der kan forbinde og sende data, enten ved at have enhederne forudregistreret hos tjenesten eller ved at give enhederne hemmelige nøgler eller certifikater, som de kan bruge til at registrere sig selv hos tjenesten første gang, de forbinder. Ukendte enheder kan ikke forbinde; hvis de prøver, afviser tjenesten forbindelsen og ignorerer beskeder sendt af dem. @@ -124,7 +124,7 @@ Andre komponenter i din applikation kan forbinde til IoT-tjenesten og lære om a Nu hvor du har et Azure-abonnement, kan du tilmelde dig en IoT-tjeneste. IoT-tjenesten fra Microsoft hedder Azure IoT Hub. -![Azure IoT Hub-logoet](../../../../../translated_images/da/azure-iot-hub-logo.28a19de76d0a1932464d858f7558712bcdace3e5ec69c434d482ed7ce41c3a26.png) +![Azure IoT Hub-logoet](../../../../../translated_images/da/azure-iot-hub-logo.28a19de76d0a1932.webp) Videoen nedenfor giver en kort oversigt over Azure IoT Hub: diff --git a/translations/da/2-farm/lessons/5-migrate-application-to-the-cloud/README.md b/translations/da/2-farm/lessons/5-migrate-application-to-the-cloud/README.md index c443272d9..01dda680d 100644 --- a/translations/da/2-farm/lessons/5-migrate-application-to-the-cloud/README.md +++ b/translations/da/2-farm/lessons/5-migrate-application-to-the-cloud/README.md @@ -1,6 +1,6 @@ # Migrer din applikationslogik til skyen -![En sketchnote-oversigt over denne lektion](../../../../../translated_images/da/lesson-9.dfe99c8e891f48e179724520da9f5794392cf9a625079281ccdcbf09bd85e1b6.jpg) +![En sketchnote-oversigt over denne lektion](../../../../../translated_images/da/lesson-9.dfe99c8e891f48e1.webp) > Sketchnote af [Nitya Narasimhan](https://github.com/nitya). Klik på billedet for en større version. @@ -28,7 +28,7 @@ I denne lektion dækker vi: Serverløs, eller serverløs computing, indebærer at oprette små kodeblokke, der køres i skyen som svar på forskellige typer hændelser. Når hændelsen opstår, køres din kode, og den får data om hændelsen. Disse hændelser kan komme fra mange forskellige kilder, herunder webanmodninger, beskeder i en kø, ændringer i en database eller beskeder sendt til en IoT-tjeneste af IoT-enheder. -![Hændelser, der sendes fra en IoT-tjeneste til en serverløs tjeneste, og behandles samtidig af flere funktioner](../../../../../translated_images/da/iot-messages-to-serverless.0194da1cc0732bb7d0f823aed3fce54735c6b1ad3bf36089804d8aaefc0a774f.png) +![Hændelser, der sendes fra en IoT-tjeneste til en serverløs tjeneste, og behandles samtidig af flere funktioner](../../../../../translated_images/da/iot-messages-to-serverless.0194da1cc0732bb7.webp) > 💁 Hvis du tidligere har brugt database-triggere, kan du tænke på dette som noget lignende: kode, der udløses af en hændelse som f.eks. indsættelse af en række. @@ -54,7 +54,7 @@ Som IoT-udvikler er den serverløse model ideel. Du kan skrive en funktion, der Den serverløse computing-tjeneste fra Microsoft kaldes Azure Functions. -![Azure Functions-logoet](../../../../../translated_images/da/azure-functions-logo.1cfc8e3204c9c44aaf80fcf406fc8544d80d7f00f8d3e8ed6fed764563e17564.png) +![Azure Functions-logoet](../../../../../translated_images/da/azure-functions-logo.1cfc8e3204c9c44a.webp) Den korte video nedenfor giver et overblik over Azure Functions. diff --git a/translations/da/2-farm/lessons/6-keep-your-plant-secure/README.md b/translations/da/2-farm/lessons/6-keep-your-plant-secure/README.md index 5a6452e53..8da9e193c 100644 --- a/translations/da/2-farm/lessons/6-keep-your-plant-secure/README.md +++ b/translations/da/2-farm/lessons/6-keep-your-plant-secure/README.md @@ -1,6 +1,6 @@ # Hold din plante sikker -![En sketchnote-oversigt over denne lektion](../../../../../translated_images/da/lesson-10.829c86b80b9403bb770929ee553a1d293afe50dc23121aaf9be144673ae012cc.jpg) +![En sketchnote-oversigt over denne lektion](../../../../../translated_images/da/lesson-10.829c86b80b9403bb.webp) > Sketchnote af [Nitya Narasimhan](https://github.com/nitya). Klik på billedet for en større version. @@ -52,11 +52,11 @@ Dette er scenarier fra den virkelige verden og sker hele tiden. Nogle eksempler Når en enhed opretter forbindelse til en IoT-tjeneste, bruger den en ID til at identificere sig selv. Problemet er, at denne ID kan klones - en hacker kunne opsætte en ondsindet enhed, der bruger den samme ID som en rigtig enhed, men sender falske data. -![Både gyldige og ondsindede enheder kunne bruge den samme ID til at sende telemetri](../../../../../translated_images/da/iot-device-and-hacked-device-connecting.e0671675df74d6d99eb1dedb5a670e606f698efa6202b1ad4c8ae548db299cc6.png) +![Både gyldige og ondsindede enheder kunne bruge den samme ID til at sende telemetri](../../../../../translated_images/da/iot-device-and-hacked-device-connecting.e0671675df74d6d9.webp) Løsningen på dette er at konvertere de data, der sendes, til et krypteret format ved hjælp af en værdi, der kun er kendt af enheden og skyen. Denne proces kaldes *kryptering*, og værdien, der bruges til at kryptere dataene, kaldes en *krypteringsnøgle*. -![Hvis kryptering bruges, accepteres kun krypterede meddelelser, andre afvises](../../../../../translated_images/da/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f979e46f2849b573564eeb4a4dc5b52f669f62745397492fb.png) +![Hvis kryptering bruges, accepteres kun krypterede meddelelser, andre afvises](../../../../../translated_images/da/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f.webp) Skytjenesten kan derefter konvertere dataene tilbage til et læsbart format ved hjælp af en proces kaldet *dekryptering*, enten ved hjælp af den samme krypteringsnøgle eller en *dekrypteringsnøgle*. Hvis den krypterede meddelelse ikke kan dekrypteres med nøglen, er enheden blevet hacket, og meddelelsen afvises. diff --git a/translations/da/3-transport/lessons/1-location-tracking/README.md b/translations/da/3-transport/lessons/1-location-tracking/README.md index 9a9928225..6a07d9ab9 100644 --- a/translations/da/3-transport/lessons/1-location-tracking/README.md +++ b/translations/da/3-transport/lessons/1-location-tracking/README.md @@ -1,6 +1,6 @@ # Sporing af placering -![En sketchnote oversigt over denne lektion](../../../../../translated_images/da/lesson-11.9fddbac4b664c6d50ab7ac9bb32f1fc3f945f03760e72f7f43938073762fb017.jpg) +![En sketchnote oversigt over denne lektion](../../../../../translated_images/da/lesson-11.9fddbac4b664c6d5.webp) > Sketchnote af [Nitya Narasimhan](https://github.com/nitya). Klik på billedet for en større version. @@ -63,13 +63,13 @@ Jorden er en kugle - en tredimensionel cirkel. På grund af dette defineres punk > 💁 Ingen ved helt præcist, hvorfor cirkler oprindeligt blev opdelt i 360 grader. [Wikipedia-siden om grader (vinkel)](https://wikipedia.org/wiki/Degree_(angle)) dækker nogle af de mulige årsager. -![Linjer af breddegrad fra 90° ved Nordpolen, 45° halvvejs mellem Nordpolen og ækvator, 0° ved ækvator, -45° halvvejs mellem ækvator og Sydpolen og -90° ved Sydpolen](../../../../../translated_images/da/latitude-lines.11d8d91dfb2014a57437272d7db7fd6607243098e8685f06e0c5f1ec984cb7eb.png) +![Linjer af breddegrad fra 90° ved Nordpolen, 45° halvvejs mellem Nordpolen og ækvator, 0° ved ækvator, -45° halvvejs mellem ækvator og Sydpolen og -90° ved Sydpolen](../../../../../translated_images/da/latitude-lines.11d8d91dfb2014a5.webp) Breddegrad måles ved hjælp af linjer, der cirkler Jorden og løber parallelt med ækvator, og opdeler den nordlige og sydlige halvkugle i hver 90°. Ækvator er ved 0°, Nordpolen er ved 90°, også kendt som 90° Nord, og Sydpolen er ved -90°, eller 90° Syd. Længdegrad måles som antallet af grader målt øst og vest. 0°-udgangspunktet for længdegrad kaldes *Prime Meridian* og blev i 1884 defineret som en linje fra Nordpolen til Sydpolen, der går gennem [British Royal Observatory i Greenwich, England](https://wikipedia.org/wiki/Royal_Observatory,_Greenwich). -![Linjer af længdegrad, der går fra -180° vest for Prime Meridian, til 0° på Prime Meridian, til 180° øst for Prime Meridian](../../../../../translated_images/da/longitude-meridians.ab4ef1c91c064586b0185a3c8d39e585903696c6a7d28c098a93a629cddb5d20.png) +![Linjer af længdegrad, der går fra -180° vest for Prime Meridian, til 0° på Prime Meridian, til 180° øst for Prime Meridian](../../../../../translated_images/da/longitude-meridians.ab4ef1c91c064586.webp) > 🎓 En meridian er en imaginær lige linje, der går fra Nordpolen til Sydpolen og danner en halvcirkel. @@ -100,7 +100,7 @@ Koordinater for et punkt gives altid som `breddegrad, længdegrad`, så eksemple * En breddegrad på 47.6423109 (47.6423109 grader nord for ækvator) * En længdegrad på -122.1390293 (122.1390293 grader vest for Prime Meridian). -![Microsoft Campus på 47.6423109,-122.117198](../../../../../translated_images/da/microsoft-gps-location-world.a321d481b010f6adfcca139b2ba0adc53b79f58a540495b8e2ce7f779ea64bfe.png) +![Microsoft Campus på 47.6423109,-122.117198](../../../../../translated_images/da/microsoft-gps-location-world.a321d481b010f6ad.webp) ## Global Positioning Systems (GPS) @@ -112,7 +112,7 @@ GPS-systemer fungerer ved at have et antal satellitter, der sender et signal med > 💁 GPS-sensorer har brug for antenner for at opfange radiobølger. Antennerne, der er indbygget i lastbiler og biler med indbygget GPS, er placeret for at få et godt signal, normalt på forruden eller taget. Hvis du bruger et separat GPS-system, såsom en smartphone eller en IoT-enhed, skal du sikre dig, at antennen, der er indbygget i GPS-systemet eller telefonen, har frit udsyn til himlen, såsom at være monteret på din forrude. -![Ved at kende afstanden fra sensoren til flere satellitter kan placeringen beregnes](../../../../../translated_images/da/gps-satellites.04acf1148fe25fbf1586bc2e8ba698e8d79b79a50c36824b38417dd13372b90f.png) +![Ved at kende afstanden fra sensoren til flere satellitter kan placeringen beregnes](../../../../../translated_images/da/gps-satellites.04acf1148fe25fbf.webp) GPS-satellitter kredser om Jorden, ikke på et fast punkt over sensoren, så placeringsdata inkluderer højde over havets overflade samt bredde- og længdegrad. diff --git a/translations/da/3-transport/lessons/1-location-tracking/pi-gps-sensor.md b/translations/da/3-transport/lessons/1-location-tracking/pi-gps-sensor.md index 7ca9f8ec1..977e92058 100644 --- a/translations/da/3-transport/lessons/1-location-tracking/pi-gps-sensor.md +++ b/translations/da/3-transport/lessons/1-location-tracking/pi-gps-sensor.md @@ -18,13 +18,13 @@ Grove GPS-sensoren kan tilsluttes Raspberry Pi'en. Tilslut GPS-sensoren. -![En Grove GPS-sensor](../../../../../translated_images/da/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![En Grove GPS-sensor](../../../../../translated_images/da/grove-gps-sensor.247943bf69b03f0d.webp) 1. Sæt den ene ende af et Grove-kabel i stikket på GPS-sensoren. Det kan kun sættes i på én måde. 1. Med Raspberry Pi'en slukket, tilslut den anden ende af Grove-kablet til UART-stikket markeret **UART** på Grove Base-hatten, der er tilsluttet Pi'en. Dette stik er placeret på den midterste række, på siden tættest på SD-kortslottet, i den modsatte ende af USB-portene og ethernet-stikket. - ![Grove GPS-sensoren tilsluttet UART-stikket](../../../../../translated_images/da/pi-gps-sensor.1f99ee2b2f6528915047ec78967bd362e0e4ee0ed594368a3837b9cf9cdaca64.png) + ![Grove GPS-sensoren tilsluttet UART-stikket](../../../../../translated_images/da/pi-gps-sensor.1f99ee2b2f652891.webp) 1. Placer GPS-sensoren, så den tilkoblede antenne har udsyn til himlen - ideelt set ved et åbent vindue eller udenfor. Det er lettere at få et klart signal uden forhindringer foran antennen. diff --git a/translations/da/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md b/translations/da/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md index 4ba341753..599cd2165 100644 --- a/translations/da/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md +++ b/translations/da/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md @@ -38,11 +38,11 @@ Tilføj GPS-sensoren til CounterFit-appen. 1. Vælg knappen **Add** for at oprette GPS-sensoren på porten `/dev/ttyAMA0`. - ![Indstillinger for GPS-sensoren](../../../../../translated_images/da/counterfit-create-gps-sensor.6385dc9357d85ad1d47b4abb2525e7651fd498917d25eefc5a72feab09eedc70.png) + ![Indstillinger for GPS-sensoren](../../../../../translated_images/da/counterfit-create-gps-sensor.6385dc9357d85ad1.webp) GPS-sensoren vil blive oprettet og vises i sensorlisten. - ![Den oprettede GPS-sensor](../../../../../translated_images/da/counterfit-gps-sensor.3fbb15af0a5367566f2f11324ef5a6f30861cdf2b497071a5e002b7aa473550e.png) + ![Den oprettede GPS-sensor](../../../../../translated_images/da/counterfit-gps-sensor.3fbb15af0a536756.webp) ## Programmer GPS-sensoren @@ -102,17 +102,17 @@ Programmer GPS-sensor-appen. * Indstil **Source** til `Lat/Lon`, og angiv en specifik breddegrad, længdegrad og antal satellitter, der bruges til at få GPS-fix. Denne værdi sendes kun én gang, så marker **Repeat**-boksen for at få dataene til at gentage hvert sekund. - ![GPS-sensoren med lat/lon valgt](../../../../../translated_images/da/counterfit-gps-sensor-latlon.008c867d75464fbe7f84107cc57040df565ac07cb57d2f21db37d087d470197d.png) + ![GPS-sensoren med lat/lon valgt](../../../../../translated_images/da/counterfit-gps-sensor-latlon.008c867d75464fbe.webp) * Indstil **Source** til `NMEA`, og tilføj nogle NMEA-sætninger i tekstboksen. Alle disse værdier sendes med en forsinkelse på 1 sekund, før hver ny GGA (positionsfix)-sætning kan læses. - ![GPS-sensoren med NMEA-sætninger indstillet](../../../../../translated_images/da/counterfit-gps-sensor-nmea.c62eea442171e17e19528b051b104cfcecdc9cd18db7bc72920f29821ae63f73.png) + ![GPS-sensoren med NMEA-sætninger indstillet](../../../../../translated_images/da/counterfit-gps-sensor-nmea.c62eea442171e17e.webp) Du kan bruge et værktøj som [nmeagen.org](https://www.nmeagen.org) til at generere disse sætninger ved at tegne på et kort. Disse værdier sendes kun én gang, så marker **Repeat**-boksen for at få dataene til at gentage 1 sekund efter, at de alle er sendt. * Indstil **Source** til GPX-fil, og upload en GPX-fil med spor-lokationer. Du kan downloade GPX-filer fra en række populære kort- og vandresider, såsom [AllTrails](https://www.alltrails.com/). Disse filer indeholder flere GPS-lokationer som en rute, og GPS-sensoren returnerer hver ny lokation med 1 sekunds interval. - ![GPS-sensoren med en GPX-fil indstillet](../../../../../translated_images/da/counterfit-gps-sensor-gpxfile.8310b063ce8a425ccc8ebeec8306aeac5e8e55207f007d52c6e1194432a70cd9.png) + ![GPS-sensoren med en GPX-fil indstillet](../../../../../translated_images/da/counterfit-gps-sensor-gpxfile.8310b063ce8a425c.webp) Disse værdier sendes kun én gang, så marker **Repeat**-boksen for at få dataene til at gentage 1 sekund efter, at de alle er sendt. diff --git a/translations/da/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md b/translations/da/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md index 431131d72..df287b5ed 100644 --- a/translations/da/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md +++ b/translations/da/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md @@ -18,7 +18,7 @@ Grove GPS-sensoren kan tilsluttes Wio Terminal. Tilslut GPS-sensoren. -![En Grove GPS-sensor](../../../../../translated_images/da/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![En Grove GPS-sensor](../../../../../translated_images/da/grove-gps-sensor.247943bf69b03f0d.webp) 1. Sæt den ene ende af et Grove-kabel i stikket på GPS-sensoren. Det kan kun sættes i på én måde. diff --git a/translations/da/3-transport/lessons/2-store-location-data/README.md b/translations/da/3-transport/lessons/2-store-location-data/README.md index 879284e19..e6471837d 100644 --- a/translations/da/3-transport/lessons/2-store-location-data/README.md +++ b/translations/da/3-transport/lessons/2-store-location-data/README.md @@ -1,6 +1,6 @@ # Gem lokationsdata -![En sketchnote-oversigt over denne lektion](../../../../../translated_images/da/lesson-12.ca7f53039712a3ec14ad6474d8445361c84adab643edc53fa6269b77895606bb.jpg) +![En sketchnote-oversigt over denne lektion](../../../../../translated_images/da/lesson-12.ca7f53039712a3ec.webp) > Sketchnote af [Nitya Narasimhan](https://github.com/nitya). Klik på billedet for en større version. @@ -75,7 +75,7 @@ NoSQL-databaser kaldes NoSQL, fordi de ikke har den samme faste struktur som SQL > 💁 På trods af deres navn tillader nogle NoSQL-databaser, at du bruger SQL til at forespørge data. -![Dokumenter i mapper i en NoSQL-database](../../../../../translated_images/da/noqsl-database.62d24ccf5b73f60d35c245a8533f1c7147c0928e955b82cb290b2e184bb434df.png) +![Dokumenter i mapper i en NoSQL-database](../../../../../translated_images/da/noqsl-database.62d24ccf5b73f60d.webp) NoSQL-databaser har ikke et foruddefineret skema, der begrænser, hvordan data gemmes. I stedet kan du indsætte enhver form for ustrukturerede data, normalt ved hjælp af JSON-dokumenter. Disse dokumenter kan organiseres i mapper, ligesom filer på din computer. Hvert dokument kan have forskellige felter fra andre dokumenter - for eksempel, hvis du gemte IoT-data fra dine landbrugskøretøjer, kunne nogle have felter for accelerometer- og hastighedsdata, mens andre kunne have felter for temperaturen i traileren. Hvis du tilføjede en ny lastbiltype, såsom en med indbyggede vægte til at spore vægten af den transporterede last, kunne din IoT-enhed tilføje dette nye felt, og det kunne gemmes uden ændringer i databasen. @@ -89,7 +89,7 @@ I denne lektion vil du bruge NoSQL-lagring til at gemme IoT-data. I den sidste lektion indfangede du GPS-data fra en GPS-sensor, der var forbundet til din IoT-enhed. For at gemme disse IoT-data i skyen skal du sende dem til en IoT-tjeneste. Igen vil du bruge Azure IoT Hub, den samme IoT-skytjeneste, som du brugte i det forrige projekt. -![Afsendelse af GPS-telemetri fra en IoT-enhed til IoT Hub](../../../../../translated_images/da/gps-telemetry-iot-hub.8115335d51cd2c1285d20e9d1b18cf685e59a8e093e7797291ef173445af6f3d.png) +![Afsendelse af GPS-telemetri fra en IoT-enhed til IoT Hub](../../../../../translated_images/da/gps-telemetry-iot-hub.8115335d51cd2c12.webp) ### Opgave - send GPS-data til en IoT Hub @@ -171,7 +171,7 @@ Cold path-data gemmes i datalagre - databaser designet til at gemme store mængd Når data flyder ind i din IoT Hub, kan du skrive noget serverløs kode til at lytte efter hændelser, der offentliggøres til den Event-Hub-kompatible endpoint. Dette er warm path - disse data vil blive gemt og brugt i den næste lektion til rapportering om rejsen. -![Afsendelse af GPS-telemetri fra en IoT-enhed til IoT Hub og derefter til Azure Functions via en event hub-trigger](../../../../../translated_images/da/gps-telemetry-iot-hub-functions.24d3fa5592455e9f4e2fe73856b40c3915a292b90263c31d652acfd976cfedd8.png) +![Afsendelse af GPS-telemetri fra en IoT-enhed til IoT Hub og derefter til Azure Functions via en event hub-trigger](../../../../../translated_images/da/gps-telemetry-iot-hub-functions.24d3fa5592455e9f.webp) ### Opgave - håndter GPS-hændelser med serverløs kode @@ -193,7 +193,7 @@ Når data flyder ind i din IoT Hub, kan du skrive noget serverløs kode til at l ## Azure Storage-konti -![Azure Storage-logoet](../../../../../translated_images/da/azure-storage-logo.605c0f602c640d482a80f1b35a2629a32d595711b7ab1d7ceea843250615ff32.png) +![Azure Storage-logoet](../../../../../translated_images/da/azure-storage-logo.605c0f602c640d48.webp) Azure Storage-konti er en alsidig lagringstjeneste, der kan gemme data på forskellige måder. Du kan gemme data som blobs, i køer, i tabeller eller som filer – og alt dette på samme tid. diff --git a/translations/da/3-transport/lessons/3-visualize-location-data/README.md b/translations/da/3-transport/lessons/3-visualize-location-data/README.md index 73cb239c0..0fb8856e8 100644 --- a/translations/da/3-transport/lessons/3-visualize-location-data/README.md +++ b/translations/da/3-transport/lessons/3-visualize-location-data/README.md @@ -1,6 +1,6 @@ # Visualiser lokationsdata -![En sketchnote oversigt over denne lektion](../../../../../translated_images/da/lesson-13.a259db1485021be7d7c72e90842fbe0ab977529e8684c179b5fb1ea75e92b3ef.jpg) +![En sketchnote oversigt over denne lektion](../../../../../translated_images/da/lesson-13.a259db1485021be7.webp) > Sketchnote af [Nitya Narasimhan](https://github.com/nitya). Klik på billedet for en større version. @@ -64,11 +64,11 @@ Lad os tage et simpelt eksempel - tilbage i landbrugsprojektet indsamlede du dat Som menneske kan det være svært at forstå disse data. Det er en mur af tal uden nogen mening. Som et første skridt til at visualisere disse data kan de plottes på et linjediagram: -![Et linjediagram af ovenstående data](../../../../../translated_images/da/chart-soil-moisture.fd6d9d0cdc0b5f75e78038ecb8945dfc84b38851359de99d84b16e3336d6d7c2.png) +![Et linjediagram af ovenstående data](../../../../../translated_images/da/chart-soil-moisture.fd6d9d0cdc0b5f75.webp) Dette kan yderligere forbedres ved at tilføje en linje, der indikerer, hvornår det automatiske vandingssystem blev tændt ved en jordfugtighedsaflæsning på 450: -![Et linjediagram af jordfugtighed med en linje ved 450](../../../../../translated_images/da/chart-soil-moisture-relay.fbb391236d34a64d0abf1df396e9197e0a24df14150620b9cc820a64a55c9326.png) +![Et linjediagram af jordfugtighed med en linje ved 450](../../../../../translated_images/da/chart-soil-moisture-relay.fbb391236d34a64d.webp) Dette diagram viser meget hurtigt ikke kun, hvad jordfugtighedsniveauerne var, men også de punkter, hvor vandingssystemet blev tændt. @@ -84,7 +84,7 @@ Når man arbejder med GPS-data, kan den mest klare visualisering være at plotte At arbejde med kort er en interessant øvelse, og der er mange at vælge imellem, såsom Bing Maps, Leaflet, Open Street Maps og Google Maps. I denne lektion vil du lære om [Azure Maps](https://azure.microsoft.com/services/azure-maps/?WT.mc_id=academic-17441-jabenn) og hvordan de kan vise dine GPS-data. -![Azure Maps-logoet](../../../../../translated_images/da/azure-maps-logo.35d01dcfbd81fe6140e94257aaa1538f785a58c91576d14e0ebe7a2f6c694b99.png) +![Azure Maps-logoet](../../../../../translated_images/da/azure-maps-logo.35d01dcfbd81fe61.webp) Azure Maps er "en samling af geospatiale tjenester og SDK'er, der bruger friske kortdata til at give geografisk kontekst til web- og mobilapplikationer." Udviklere får værktøjer til at skabe smukke, interaktive kort, der kan gøre ting som at give anbefalede trafikruter, give information om trafikulykker, indendørs navigation, søgefunktioner, højdeinformation, vejrtjenester og mere. @@ -185,7 +185,7 @@ Nu kan du tage det næste skridt, som er at vise dit kort på en webside. Vi vil Hvis du åbner din `index.html`-side i en webbrowser, bør du se et kort indlæst og fokuseret på Seattle-området. - ![Et kort, der viser Seattle, en by i staten Washington, USA](../../../../../translated_images/da/map-image.8fb2c53eb23ef39c1c0a4410a5282e879b3b452b707eb066ff04c5488d3d72b7.png) + ![Et kort, der viser Seattle, en by i staten Washington, USA](../../../../../translated_images/da/map-image.8fb2c53eb23ef39c.webp) ✅ Eksperimentér med zoom- og centerparametrene for at ændre dit korts visning. Du kan tilføje forskellige koordinater, der svarer til din datas bredde- og længdegrad, for at re-centrere kortet. @@ -318,7 +318,7 @@ Hvis du foretager et kald til din lagring for at hente dataene, kan du blive ove 1. Indlæs HTML-siden i din browser. Den vil indlæse kortet, derefter indlæse alle GPS-data fra lagringen og plotte dem på kortet. - ![Et kort over Saint Edward State Park nær Seattle, med cirkler, der viser en rute rundt om parkens kant](../../../../../translated_images/da/map-path.896832e72dc696ffe20650e4051027d4855442d955f93fdbb80bb417ca8a406f.png) + ![Et kort over Saint Edward State Park nær Seattle, med cirkler, der viser en rute rundt om parkens kant](../../../../../translated_images/da/map-path.896832e72dc696ff.webp) > 💁 Du kan finde denne kode i [code](../../../../../3-transport/lessons/3-visualize-location-data/code)-mappen. diff --git a/translations/da/3-transport/lessons/4-geofences/README.md b/translations/da/3-transport/lessons/4-geofences/README.md index 8b64714bd..332e12454 100644 --- a/translations/da/3-transport/lessons/4-geofences/README.md +++ b/translations/da/3-transport/lessons/4-geofences/README.md @@ -1,6 +1,6 @@ # Geofences -![En sketchnote-oversigt over denne lektion](../../../../../translated_images/da/lesson-14.63980c5150ae3c153e770fb71d044c1845dce79248d86bed9fc525adf3ede73c.jpg) +![En sketchnote-oversigt over denne lektion](../../../../../translated_images/da/lesson-14.63980c5150ae3c15.webp) > Sketchnote af [Nitya Narasimhan](https://github.com/nitya). Klik på billedet for en større version. @@ -35,7 +35,7 @@ I denne lektion dækker vi: En geofence er en virtuel afgrænsning for et geografisk område i den virkelige verden. Geofences kan være cirkler defineret som et punkt og en radius (for eksempel en cirkel på 100 m omkring en bygning) eller en polygon, der dækker et område som en skolezone, bygrænser eller et universitets- eller kontorområde. -![Nogle eksempler på geofences, der viser en cirkulær geofence omkring Microsofts firmabutik og en polygon-geofence omkring Microsofts vestcampus](../../../../../translated_images/da/geofence-examples.172fbc534665769f6e1a1ddcf75e3b25183cd10354c80cc603ba44b635390e1a.png) +![Nogle eksempler på geofences, der viser en cirkulær geofence omkring Microsofts firmabutik og en polygon-geofence omkring Microsofts vestcampus](../../../../../translated_images/da/geofence-examples.172fbc534665769f.webp) > 💁 Du har måske allerede brugt geofences uden at vide det. Hvis du har sat en påmindelse i iOS' påmindelsesapp eller Google Keep baseret på en placering, har du brugt en geofence. Disse apps opsætter en geofence baseret på den angivne placering og giver dig besked, når din telefon træder ind i geofencen. @@ -212,7 +212,7 @@ Det er vigtigt at kende afstanden til kanten af geofencen og kombinere dette med For eksempel, forestil dig GPS-aflæsninger, der viser, at et køretøj kører langs en vej, der ender med at løbe tæt på en geofence. Hvis en enkelt GPS-værdi er unøjagtig og placerer køretøjet inden for geofencen, på trods af at der ikke er nogen adgangsvej, kan den ignoreres. -![En GPS-rute, der viser et køretøj, der passerer Microsoft-campus på 520, med GPS-aflæsninger langs vejen undtagen én på campus, inden for en geofence](../../../../../translated_images/da/geofence-crossing-inaccurate-gps.6a3ed911202ad9cabb66d3964888cec03a42c61d5b8f536ad5bdc99716b370f5.png) +![En GPS-rute, der viser et køretøj, der passerer Microsoft-campus på 520, med GPS-aflæsninger langs vejen undtagen én på campus, inden for en geofence](../../../../../translated_images/da/geofence-crossing-inaccurate-gps.6a3ed911202ad9ca.webp) På billedet ovenfor er der en geofence over en del af Microsoft-campus. Den røde linje viser en lastbil, der kører langs 520, med cirkler, der viser GPS-aflæsningerne. De fleste af disse aflæsninger er præcise og følger 520, men én aflæsning er unøjagtig og befinder sig inden for geofencen. Denne aflæsning kan umuligt være korrekt – der er ingen veje, hvor lastbilen pludselig kan dreje fra 520 ind på campus og derefter tilbage på 520. Koden, der tjekker denne geofence, skal tage de tidligere aflæsninger i betragtning, før den handler på resultaterne af geofence-testen. ✅ Hvilke yderligere data ville du have brug for at tjekke for at afgøre, om en GPS-aflæsning kan betragtes som korrekt? @@ -284,7 +284,7 @@ Som du måske husker fra tidligere lektioner, giver IoT Hub dig mulighed for at Svaret er, at det kan den ikke! I stedet kan du definere flere separate forbindelser til at læse hændelser, og hver af dem kan administrere afspilningen af ulæste meddelelser. Disse kaldes *forbrugergrupper*. Når du opretter forbindelse til endpointet, kan du angive, hvilken forbrugergruppe du vil oprette forbindelse til. Hver komponent i din applikation vil oprette forbindelse til en anden forbrugergruppe. -![En IoT Hub med 3 forbrugergrupper, der distribuerer de samme meddelelser til 3 forskellige Functions-apps](../../../../../translated_images/da/consumer-groups.a3262e26fc27ba2092863678ad57af15c7223416e388a23f330c058cf4358630.png) +![En IoT Hub med 3 forbrugergrupper, der distribuerer de samme meddelelser til 3 forskellige Functions-apps](../../../../../translated_images/da/consumer-groups.a3262e26fc27ba20.webp) I teorien kan op til 5 applikationer oprette forbindelse til hver forbrugergruppe, og de vil alle modtage meddelelser, når de ankommer. Det er bedst at have kun én applikation, der tilgår hver forbrugergruppe, for at undgå dobbeltbehandling af meddelelser og sikre, at alle køede meddelelser behandles korrekt ved genstart. For eksempel, hvis du kører din Functions-app lokalt samtidig med, at den kører i skyen, vil begge behandle meddelelser, hvilket fører til dubletter i blob-lageret. diff --git a/translations/da/4-manufacturing/lessons/1-train-fruit-detector/README.md b/translations/da/4-manufacturing/lessons/1-train-fruit-detector/README.md index a07873795..973301b1e 100644 --- a/translations/da/4-manufacturing/lessons/1-train-fruit-detector/README.md +++ b/translations/da/4-manufacturing/lessons/1-train-fruit-detector/README.md @@ -1,6 +1,6 @@ # Træn en frugtkvalitetsdetektor -![En sketchnote-oversigt over denne lektion](../../../../../translated_images/da/lesson-15.843d21afdc6fb2bba70cd9db7b7d2f91598859fafda2078b0bdc44954194b6c0.jpg) +![En sketchnote-oversigt over denne lektion](../../../../../translated_images/da/lesson-15.843d21afdc6fb2bb.webp) > Sketchnote af [Nitya Narasimhan](https://github.com/nitya). Klik på billedet for en større version. @@ -38,7 +38,7 @@ Ikke alle afgrøder modnes jævnt. Tomater, for eksempel, kan stadig have nogle Den stigende automatisering af høst flyttede sorteringen af produkter fra marken til fabrikken. Mad ville rejse på lange transportbånd med hold af mennesker, der gennemgik produkterne og fjernede alt, der ikke levede op til kvalitetsstandarderne. Høst blev billigere takket være maskiner, men der var stadig en omkostning ved manuelt at sortere mad. -![Hvis en rød tomat registreres, fortsætter den sin rejse uforstyrret. Hvis en grøn tomat registreres, skubbes den i en affaldsbeholder af en arm](../../../../../translated_images/da/optical-tomato-sorting.61aa134bdda4e5b1bfb16a212c1e35a6ef0c426cbb8b1c975f79d7bfbf48d068.png) +![Hvis en rød tomat registreres, fortsætter den sin rejse uforstyrret. Hvis en grøn tomat registreres, skubbes den i en affaldsbeholder af en arm](../../../../../translated_images/da/optical-tomato-sorting.61aa134bdda4e5b1.webp) Den næste udvikling var at bruge maskiner til at sortere, enten indbygget i høstmaskinen eller i forarbejdningsanlæggene. Den første generation af disse maskiner brugte optiske sensorer til at registrere farver og styrede aktuatorer til at skubbe grønne tomater i en affaldsbeholder ved hjælp af arme eller lufttryk, mens røde tomater fortsatte på et netværk af transportbånd. @@ -62,7 +62,7 @@ For eksempel kunne du give en model millioner af billeder af umodne bananer som > 🎓 Resultaterne af ML-modeller kaldes *forudsigelser*. -![2 bananer, en moden med en forudsigelse på 99,7% moden, 0,3% umoden, og en umoden med en forudsigelse på 1,4% moden, 98,6% umoden](../../../../../translated_images/da/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50ece4e4589e724b142da0681f35470fe3db3f7d51240f69c85.png) +![2 bananer, en moden med en forudsigelse på 99,7% moden, 0,3% umoden, og en umoden med en forudsigelse på 1,4% moden, 98,6% umoden](../../../../../translated_images/da/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50e.webp) ML-modeller giver ikke et binært svar, men i stedet sandsynligheder. For eksempel kan en model få et billede af en banan og forudsige `moden` med 99,7% og `umoden` med 0,3%. Din kode ville derefter vælge den bedste forudsigelse og beslutte, at bananen er moden. @@ -90,7 +90,7 @@ Der findes en bred vifte af værktøjer, der kan hjælpe dig med dette, herunder Custom Vision er et cloud-baseret værktøj til træning af billedklassifikatorer. Det giver dig mulighed for at træne en klassifikator ved kun at bruge et lille antal billeder. Du kan uploade billeder via en webportal, web-API eller et SDK og give hvert billede en *tag*, der angiver klassifikationen af det billede. Du træner derefter modellen og tester den for at se, hvor godt den fungerer. Når du er tilfreds med modellen, kan du udgive versioner af den, der kan tilgås via en web-API eller et SDK. -![Azure Custom Vision-logoet](../../../../../translated_images/da/custom-vision-logo.d3d4e7c8a87ec9daf825e72e210576c3cbf60312577be7a139e22dd97ab7f1e6.png) +![Azure Custom Vision-logoet](../../../../../translated_images/da/custom-vision-logo.d3d4e7c8a87ec9da.webp) > 💁 Du kan træne en Custom Vision-model med så lidt som 5 billeder pr. klassifikation, men flere er bedre. Du kan opnå bedre resultater med mindst 30 billeder. @@ -146,7 +146,7 @@ For at bruge Custom Vision skal du først oprette to Cognitive Services-ressourc Når du opretter dit projekt, skal du sørge for at bruge den `fruit-quality-detector-training`-ressource, du oprettede tidligere. Brug en *Classification*-projekttype, en *Multiclass*-klassifikationstype og *Food*-domænet. - ![Indstillingerne for Custom Vision-projektet med navnet sat til fruit-quality-detector, ingen beskrivelse, ressourcen sat til fruit-quality-detector-training, projekttypen sat til classification, klassifikationstyperne sat til multi class og domænet sat til food](../../../../../translated_images/da/custom-vision-create-project.cf46325b92d8b131089f6647cf5e07b664cb77850e106d66e3c057b6b69756c6.png) + ![Indstillingerne for Custom Vision-projektet med navnet sat til fruit-quality-detector, ingen beskrivelse, ressourcen sat til fruit-quality-detector-training, projekttypen sat til classification, klassifikationstyperne sat til multi class og domænet sat til food](../../../../../translated_images/da/custom-vision-create-project.cf46325b92d8b131.webp) ✅ Tag dig tid til at udforske Custom Vision-brugergrænsefladen for din billedklassifikator. @@ -164,7 +164,7 @@ Billedklassificeringsmodeller kører ved meget lav opløsning. For eksempel kan * Brug 2 modne bananer, og tag nogle billeder af hver fra forskellige vinkler, mindst 7 billeder (5 til træning, 2 til test), men helst flere. - ![Fotos af 2 forskellige bananer](../../../../../translated_images/da/banana-training-images.530eb203346d73bc23b8b990fb4609470bf4ff7c942ccc13d4cfffeed9be1ad4.png) + ![Fotos af 2 forskellige bananer](../../../../../translated_images/da/banana-training-images.530eb203346d73bc.webp) * Gentag samme proces med 2 umodne bananer. @@ -174,7 +174,7 @@ Billedklassificeringsmodeller kører ved meget lav opløsning. For eksempel kan 1. Følg [upload og tag billeder-sektionen i quickstart-guiden til at bygge en klassificeringsmodel på Microsoft Docs](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) for at uploade dine træningsbilleder. Tag de modne frugter som `ripe` og de umodne som `unripe`. - ![Upload-dialoger, der viser upload af billeder af modne og umodne bananer](../../../../../translated_images/da/image-upload-bananas.0751639f3815e0ec42bdbc6254d1e4357a185834d1ae10c9948a0e7d6d336695.png) + ![Upload-dialoger, der viser upload af billeder af modne og umodne bananer](../../../../../translated_images/da/image-upload-bananas.0751639f3815e0ec.webp) 1. Følg [træn klassificeringsmodellen-sektionen i quickstart-guiden til at bygge en klassificeringsmodel på Microsoft Docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#train-the-classifier) for at træne billedklassificeringsmodellen med dine uploadede billeder. @@ -192,7 +192,7 @@ Når din model er trænet, kan du teste den ved at give den et nyt billede til k 1. Følg [test din model-dokumentationen på Microsoft Docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/test-your-model?WT.mc_id=academic-17441-jabenn#test-your-model) for at teste din billedklassificeringsmodel. Brug de testbilleder, du oprettede tidligere, ikke nogen af de billeder, du brugte til træning. - ![En umoden banan forudsagt som umoden med 98,9% sandsynlighed, moden med 1,1% sandsynlighed](../../../../../translated_images/da/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64886422438850ea14f0be6ac918c217ea3b255c685abfabe7.png) + ![En umoden banan forudsagt som umoden med 98,9% sandsynlighed, moden med 1,1% sandsynlighed](../../../../../translated_images/da/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64.webp) 1. Prøv alle de testbilleder, du har adgang til, og observer sandsynlighederne. diff --git a/translations/da/4-manufacturing/lessons/2-check-fruit-from-device/README.md b/translations/da/4-manufacturing/lessons/2-check-fruit-from-device/README.md index 868ac3ef4..2f1679875 100644 --- a/translations/da/4-manufacturing/lessons/2-check-fruit-from-device/README.md +++ b/translations/da/4-manufacturing/lessons/2-check-fruit-from-device/README.md @@ -1,6 +1,6 @@ # Kontroller frugtkvalitet med en IoT-enhed -![En sketchnote oversigt over denne lektion](../../../../../translated_images/da/lesson-16.215daf18b00631fbdfd64c6fc2dc6044dff5d544288825d8076f9fb83d964c23.jpg) +![En sketchnote oversigt over denne lektion](../../../../../translated_images/da/lesson-16.215daf18b00631fb.webp) > Sketchnote af [Nitya Narasimhan](https://github.com/nitya). Klik på billedet for en større version. @@ -26,7 +26,7 @@ I denne lektion dækker vi: Kamerasensorer, som navnet antyder, er kameraer, du kan tilslutte til din IoT-enhed. De kan tage stillbilleder eller optage streamingvideo. Nogle returnerer rå billeddata, mens andre komprimerer billeddataene til en billedfil som JPEG eller PNG. Normalt er de kameraer, der fungerer med IoT-enheder, meget mindre og har lavere opløsning end dem, du måske er vant til, men du kan få kameraer med høj opløsning, der kan konkurrere med de bedste smartphones. Du kan få alle slags udskiftelige linser, opsætninger med flere kameraer, infrarøde termiske kameraer eller UV-kameraer. -![Lyset fra en scene passerer gennem en linse og fokuseres på en CMOS-sensor](../../../../../translated_images/da/cmos-sensor.75f9cd74decb137149a4c9ea825251a4549497d67c0ae2776159e6102bb53aa9.png) +![Lyset fra en scene passerer gennem en linse og fokuseres på en CMOS-sensor](../../../../../translated_images/da/cmos-sensor.75f9cd74decb1371.webp) De fleste kamerasensorer bruger billedsensorer, hvor hver pixel er en fotodiode. En linse fokuserer billedet på billedsensoren, og tusinder eller millioner af fotodioder registrerer lyset, der falder på hver enkelt, og gemmer det som pixeldata. @@ -74,7 +74,7 @@ Iterationer publiceres fra Custom Vision-portalen. 1. Vælg knappen **Publish** for iterationen. - ![Publiceringsknappen](../../../../../translated_images/da/custom-vision-publish-button.b7174e1977b0c33b8b72d4e5b1326c779e0af196f3849d09985ee2d7d5493a39.png) + ![Publiceringsknappen](../../../../../translated_images/da/custom-vision-publish-button.b7174e1977b0c33b.webp) 1. I dialogboksen *Publish Model* skal du indstille *Prediction resource* til den `fruit-quality-detector-prediction`-ressource, du oprettede i den sidste lektion. Lad navnet være `Iteration2`, og vælg knappen **Publish**. @@ -88,7 +88,7 @@ Iterationer publiceres fra Custom Vision-portalen. Tag også en kopi af værdien *Prediction-Key*. Dette er en sikker nøgle, som du skal sende, når du kalder modellen. Kun applikationer, der sender denne nøgle, har tilladelse til at bruge modellen, alle andre applikationer afvises. - ![Dialogboksen for forudsigelses-API, der viser URL og nøgle](../../../../../translated_images/da/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![Dialogboksen for forudsigelses-API, der viser URL og nøgle](../../../../../translated_images/da/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ Når en ny iteration publiceres, vil den have et andet navn. Hvordan tror du, du ville ændre den iteration, en IoT-enhed bruger? @@ -109,7 +109,7 @@ Du kan opleve, at de resultater, du får, når du bruger kameraet tilsluttet din For at få de bedste resultater for en billedklassifikator vil du gerne træne modellen med billeder, der er så ens som muligt med de billeder, der bruges til forudsigelser. Hvis du for eksempel brugte dit telefonkamera til at tage billeder til træning, vil billedkvaliteten, skarpheden og farverne være anderledes end et kamera tilsluttet en IoT-enhed. -![2 bananbilleder, et lavopløsningsbillede med dårlig belysning fra en IoT-enhed, og et højopløsningsbillede med god belysning fra en telefon](../../../../../translated_images/da/banana-picture-compare.174df164dc326a42cf7fb051a7497e6113c620e91552d92ca914220305d47d9a.png) +![2 bananbilleder, et lavopløsningsbillede med dårlig belysning fra en IoT-enhed, og et højopløsningsbillede med god belysning fra en telefon](../../../../../translated_images/da/banana-picture-compare.174df164dc326a42.webp) På billedet ovenfor blev bananbilledet til venstre taget med et Raspberry Pi-kamera, mens det til højre blev taget af den samme banan på samme sted med en iPhone. Der er en tydelig forskel i kvalitet - iPhone-billedet er skarpere, med lysere farver og mere kontrast. diff --git a/translations/da/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md b/translations/da/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md index 0c6312234..f0cb36ff4 100644 --- a/translations/da/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md +++ b/translations/da/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md @@ -16,7 +16,7 @@ Kameraet kan tilsluttes Raspberry Pi ved hjælp af et fladkabel. ### Opgave - tilslut kameraet -![Et Raspberry Pi Camera](../../../../../translated_images/da/pi-camera-module.4278753c31bd6e757aa2b858be97d72049f71616278cefe4fb5abb485b40a078.png) +![Et Raspberry Pi Camera](../../../../../translated_images/da/pi-camera-module.4278753c31bd6e75.webp) 1. Sluk for Pi'en. @@ -24,17 +24,17 @@ Kameraet kan tilsluttes Raspberry Pi ved hjælp af et fladkabel. Du kan finde en animation, der viser, hvordan man åbner klipsen og indsætter kablet, i [Raspberry Pi Getting Started with the Camera module documentation](https://projects.raspberrypi.org/en/projects/getting-started-with-picamera/2). - ![Fladkablet indsat i kameramodulet](../../../../../translated_images/da/pi-camera-ribbon-cable.0bf82acd251611c21ac616f082849413e2b322a261d0e4f8fec344248083b07e.png) + ![Fladkablet indsat i kameramodulet](../../../../../translated_images/da/pi-camera-ribbon-cable.0bf82acd251611c2.webp) 1. Fjern Grove Base Hat fra Pi'en. 1. Før fladkablet gennem kamerahullet i Grove Base Hat. Sørg for, at den blå side af kablet vender mod de analoge porte mærket **A0**, **A1** osv. - ![Fladkablet føres gennem grove base hat](../../../../../translated_images/da/grove-base-hat-ribbon-cable.501fed202fcf73b11b2b68f6d246189f7d15d3e4423c572ddee79d77b4632b47.png) + ![Fladkablet føres gennem grove base hat](../../../../../translated_images/da/grove-base-hat-ribbon-cable.501fed202fcf73b1.webp) 1. Indsæt fladkablet i kamerastikket på Pi'en. Træk igen den sorte plastikklips op, indsæt kablet, og skub derefter klipsen tilbage på plads. Den blå side af kablet skal vende mod USB- og ethernet-portene. - ![Fladkablet tilsluttet kamerastikket på Pi'en](../../../../../translated_images/da/pi-camera-socket-ribbon-cable.a18309920b11800911082ed7aa6fb28e6d9be3a022e4079ff990016cae3fca10.png) + ![Fladkablet tilsluttet kamerastikket på Pi'en](../../../../../translated_images/da/pi-camera-socket-ribbon-cable.a18309920b118009.webp) 1. Monter Grove Base Hat igen. @@ -101,7 +101,7 @@ Programmer enheden. Linjen `camera.rotation = 0` angiver rotationen af billedet. Fladkablet kommer ind i bunden af kameraet, men hvis dit kamera blev roteret for at gøre det lettere at pege på det objekt, du vil klassificere, kan du ændre denne linje til antallet af grader af rotation. - ![Kameraet hænger ned over en sodavandsdåse](../../../../../translated_images/da/pi-camera-upside-down.5376961ba31459883362124152ad6b823d5ac5fc14e85f317e22903bd681c2b6.png) + ![Kameraet hænger ned over en sodavandsdåse](../../../../../translated_images/da/pi-camera-upside-down.5376961ba3145988.webp) For eksempel, hvis du hænger fladkablet over noget, så det er øverst på kameraet, skal du sætte rotationen til 180: diff --git a/translations/da/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md b/translations/da/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md index 45be5e38f..746faccf7 100644 --- a/translations/da/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md +++ b/translations/da/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md @@ -84,7 +84,7 @@ Custom Vision-tjenesten har et Python SDK, som du kan bruge til at klassificere Du vil kunne se det billede, der blev taget, og disse værdier i fanen **Predictions** i Custom Vision. - ![En banan i Custom Vision forudsagt som moden med 56,8% og umoden med 43,1%](../../../../../translated_images/da/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![En banan i Custom Vision forudsagt som moden med 56,8% og umoden med 43,1%](../../../../../translated_images/da/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 Du kan finde denne kode i mappen [code-classify/pi](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/pi) eller [code-classify/virtual-iot-device](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/virtual-iot-device). diff --git a/translations/da/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md b/translations/da/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md index 4556972af..c45a30f3b 100644 --- a/translations/da/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md +++ b/translations/da/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md @@ -34,11 +34,11 @@ Tilføj kameraet til CounterFit-appen. 1. Vælg knappen **Add** for at oprette kameraet. - ![Kameraindstillingerne](../../../../../translated_images/da/counterfit-create-camera.a5de97f59c0bd3cbe0416d7e89a3cfe86d19fbae05c641c53a91286412af0a34.png) + ![Kameraindstillingerne](../../../../../translated_images/da/counterfit-create-camera.a5de97f59c0bd3cb.webp) Kameraet vil blive oprettet og vises i sensorlisten. - ![Kameraet oprettet](../../../../../translated_images/da/counterfit-camera.001ec52194c8ee5d3f617173da2c79e1df903d10882adc625cbfc493525125d4.png) + ![Kameraet oprettet](../../../../../translated_images/da/counterfit-camera.001ec52194c8ee5d.webp) ## Programmer kameraet @@ -103,7 +103,7 @@ Programmer enheden. 1. Konfigurer billedet, som kameraet i CounterFit vil fange. Du kan enten sætte *Source* til *File* og derefter uploade en billedfil, eller sætte *Source* til *WebCam*, og billeder vil blive fanget fra dit webcam. Sørg for at vælge knappen **Set** efter at have valgt et billede eller dit webcam. - ![CounterFit med en fil sat som billedkilde og et webcam, der viser en person, der holder en banan i en forhåndsvisning af webcammet](../../../../../translated_images/da/counterfit-camera-options.eb3bd5150a8e7dffbf24bc5bcaba0cf2cdef95fbe6bbe393695d173817d6b8df.png) + ![CounterFit med en fil sat som billedkilde og et webcam, der viser en person, der holder en banan i en forhåndsvisning af webcammet](../../../../../translated_images/da/counterfit-camera-options.eb3bd5150a8e7dff.webp) 1. Et billede vil blive fanget og gemt som `image.jpg` i den aktuelle mappe. Du vil se denne fil i VS Code-udforskeren. Vælg filen for at se billedet. Hvis det skal roteres, opdater linjen `camera.rotation = 0` som nødvendigt og tag et nyt billede. diff --git a/translations/da/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md b/translations/da/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md index 5eae902a7..b8bd6408d 100644 --- a/translations/da/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md +++ b/translations/da/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md @@ -16,7 +16,7 @@ ArduCam har ikke en Grove-sokkel, men forbinder i stedet til både SPI- og I2C-b Tilslut kameraet. -![En ArduCam sensor](../../../../../translated_images/da/arducam.20e4e4cbb268296570b5914e20d6c349fc42ddac9ed4e1b9deba2188204eebae.png) +![En ArduCam sensor](../../../../../translated_images/da/arducam.20e4e4cbb2682965.webp) 1. Pindene på bunden af ArduCam skal forbindes til GPIO-pindene på Wio Terminalen. For at gøre det nemmere at finde de rigtige pins, skal du sætte GPIO-pin-klistermærket, der følger med Wio Terminalen, rundt om pindene: @@ -35,7 +35,7 @@ Tilslut kameraet. | SDA | 3 (I2C1_SDA) | I2C Serial Data | | SCL | 5 (I2C1_SCL) | I2C Serial Clock | - ![Wio Terminal forbundet til ArduCam med jumperkabler](../../../../../translated_images/da/arducam-wio-terminal-connections.a4d5a4049bdb5ab800a2877389fc6ecf5e4ff307e6451ff56c517e6786467d0a.png) + ![Wio Terminal forbundet til ArduCam med jumperkabler](../../../../../translated_images/da/arducam-wio-terminal-connections.a4d5a4049bdb5ab8.webp) GND- og VCC-forbindelserne leverer en 5V strømforsyning til ArduCam. Det kører på 5V, i modsætning til Grove-sensorer, der kører på 3V. Denne strøm kommer direkte fra USB-C-forbindelsen, der forsyner enheden. @@ -456,7 +456,7 @@ Wio Terminalen understøtter kun microSD-kort på op til 16GB. Hvis du har et st 1. Sluk for microSD-kortet og fjern det ved at skubbe det lidt ind og slippe, så det springer ud. Du skal muligvis bruge et tyndt værktøj til dette. Sæt microSD-kortet i din computer for at se billederne. - ![Et billede af en banan taget med ArduCam](../../../../../translated_images/da/banana-arducam.be1b32d4267a8194b0fd042362e56faa431da9cd4af172051b37243ea9be0256.jpg) + ![Et billede af en banan taget med ArduCam](../../../../../translated_images/da/banana-arducam.be1b32d4267a8194.webp) > 💁 Det kan tage et par billeder, før kameraets hvidbalance justerer sig selv. Du vil bemærke dette baseret på farven på de billeder, der bliver taget, de første par kan se ud til at have forkert farve. Du kan altid omgå dette ved at ændre koden til at tage et par billeder, der ignoreres i `setup`-funktionen. diff --git a/translations/da/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md b/translations/da/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md index 4c215719a..1022aac21 100644 --- a/translations/da/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md +++ b/translations/da/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md @@ -208,7 +208,7 @@ Disse certifikater indeholder offentlige nøgler og behøver ikke at blive holdt Du vil kunne se det billede, der blev taget, og disse værdier i **Predictions**-fanen i Custom Vision. - ![En banan i Custom Vision forudsagt moden med 56.8% og umoden med 43.1%](../../../../../translated_images/da/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![En banan i Custom Vision forudsagt moden med 56.8% og umoden med 43.1%](../../../../../translated_images/da/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 Du kan finde denne kode i mappen [code-classify/wio-terminal](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/wio-terminal). diff --git a/translations/da/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md b/translations/da/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md index 60803154f..0a917b631 100644 --- a/translations/da/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md +++ b/translations/da/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md @@ -1,6 +1,6 @@ # Kør din frugtdetektor på kanten -![En sketchnote-oversigt over denne lektion](../../../../../translated_images/da/lesson-17.bc333c3c35ba8e42cce666cfffa82b915f787f455bd94e006aea2b6f2722421a.jpg) +![En sketchnote-oversigt over denne lektion](../../../../../translated_images/da/lesson-17.bc333c3c35ba8e42.webp) > Sketchnote af [Nitya Narasimhan](https://github.com/nitya). Klik på billedet for en større version. @@ -33,11 +33,11 @@ I denne lektion dækker vi: Edge computing indebærer, at computere behandler IoT-data så tæt som muligt på det sted, hvor dataene genereres. I stedet for at have denne behandling i skyen, flyttes den til kanten af skyen - dit interne netværk. -![Et arkitekturdiagram, der viser internettjenester i skyen og IoT-enheder på et lokalt netværk](../../../../../translated_images/da/cloud-without-edge.b4da641f6022c95ed6b91fde8b5323abd2f94e0d52073ad54172ae8f5dac90e9.png) +![Et arkitekturdiagram, der viser internettjenester i skyen og IoT-enheder på et lokalt netværk](../../../../../translated_images/da/cloud-without-edge.b4da641f6022c95e.webp) I de tidligere lektioner har du haft enheder, der indsamler data og sender data til skyen for at blive analyseret, hvor serverløse funktioner eller AI-modeller kører i skyen. -![Et arkitekturdiagram, der viser IoT-enheder på et lokalt netværk, der forbinder til edge-enheder, og disse edge-enheder forbinder til skyen](../../../../../translated_images/da/cloud-with-edge.1e26462c62c126fe150bd15a5714ddf0be599f09bacbad08b85be02b76ea1ae1.png) +![Et arkitekturdiagram, der viser IoT-enheder på et lokalt netværk, der forbinder til edge-enheder, og disse edge-enheder forbinder til skyen](../../../../../translated_images/da/cloud-with-edge.1e26462c62c126fe.webp) Edge computing indebærer at flytte nogle af cloud-tjenesterne væk fra skyen og over på computere, der kører på samme netværk som IoT-enhederne, og kun kommunikere med skyen, hvis det er nødvendigt. For eksempel kan du køre AI-modeller på edge-enheder for at analysere frugtens modenhed og kun sende analyser tilbage til skyen, såsom antallet af modne frugter kontra umodne. @@ -85,7 +85,7 @@ For IoT-systemer vil du ofte have en blanding af cloud- og edge computing, hvor ## Azure IoT Edge -![Azure IoT Edge-logoet](../../../../../translated_images/da/azure-iot-edge-logo.c1c076749b5cba2e8755262fadc2f19ca1146b948d76990b1229199ac2292d79.png) +![Azure IoT Edge-logoet](../../../../../translated_images/da/azure-iot-edge-logo.c1c076749b5cba2e.webp) Azure IoT Edge er en tjeneste, der kan hjælpe dig med at flytte arbejdsbelastninger ud af skyen og til kanten. Du opsætter en enhed som en edge-enhed, og fra skyen kan du implementere kode på den edge-enhed. Dette giver dig mulighed for at blande skyens og kantens kapaciteter. @@ -99,7 +99,7 @@ IoT Edge er indbygget i IoT Hub, så du kan administrere edge-enheder ved hjælp IoT Edge kører kode fra *containere* - selvstændige applikationer, der kører isoleret fra resten af applikationerne på din computer. Når du kører en container, fungerer den som en separat computer, der kører inde i din computer, med sin egen software, tjenester og applikationer. De fleste gange kan containere ikke få adgang til noget på din computer, medmindre du vælger at dele ting som en mappe med containeren. Containeren eksponerer derefter tjenester via en åben port, som du kan forbinde til eller eksponere for dit netværk. -![En webanmodning omdirigeret til en container](../../../../../translated_images/da/container-web-browser.4ee81dd4f0d8838ce622b2a0d600b6a4322b5d4fe43159facd87b7b34f84d66a.png) +![En webanmodning omdirigeret til en container](../../../../../translated_images/da/container-web-browser.4ee81dd4f0d8838c.webp) For eksempel kan du have en container med et websted, der kører på port 80, standard HTTP-porten, og du kan derefter eksponere den fra din computer også på port 80. @@ -195,11 +195,11 @@ Når modellen er blevet trænet, skal den eksporteres som en container. ## Forbered din container til implementering -![Containere bygges og pushes derefter til et containerregister, hvorefter de implementeres fra containerregisteret til en edge-enhed ved hjælp af IoT Edge](../../../../../translated_images/da/container-edge-flow.c246050dd60ceefdb6ace026a4ce5c6aa4112bb5898ae23fbb2ab4be29ae3e1b.png) +![Containere bygges og pushes derefter til et containerregister, hvorefter de implementeres fra containerregisteret til en edge-enhed ved hjælp af IoT Edge](../../../../../translated_images/da/container-edge-flow.c246050dd60ceefd.webp) Når du har downloadet din model, skal den bygges som en container og derefter pushes til et containerregister - et online sted, hvor du kan gemme containere. IoT Edge kan derefter downloade containeren fra registeret og sende den til din enhed. -![Azure Container Registry-logoet](../../../../../translated_images/da/azure-container-registry-logo.09494206991d4b295025ebff7d4e2900325e527a59184ffbc8464b6ab59654be.png) +![Azure Container Registry-logoet](../../../../../translated_images/da/azure-container-registry-logo.09494206991d4b29.webp) Det containerregister, du vil bruge i denne lektion, er Azure Container Registry. Dette er ikke en gratis tjeneste, så for at spare penge skal du sørge for at [rydde op i dit projekt](../../../clean-up.md), når du er færdig. diff --git a/translations/da/4-manufacturing/lessons/4-trigger-fruit-detector/README.md b/translations/da/4-manufacturing/lessons/4-trigger-fruit-detector/README.md index bae7178be..5e0532b2e 100644 --- a/translations/da/4-manufacturing/lessons/4-trigger-fruit-detector/README.md +++ b/translations/da/4-manufacturing/lessons/4-trigger-fruit-detector/README.md @@ -1,6 +1,6 @@ # Udløs frugtkvalitetsdetektion fra en sensor -![En sketchnote-oversigt over denne lektion](../../../../../translated_images/da/lesson-18.92c32ed1d354caa5a54baa4032cf0b172d4655e8e326ad5d46c558a0def15365.jpg) +![En sketchnote-oversigt over denne lektion](../../../../../translated_images/da/lesson-18.92c32ed1d354caa5.webp) > Sketchnote af [Nitya Narasimhan](https://github.com/nitya). Klik på billedet for en større version. @@ -39,7 +39,7 @@ IoT-applikationer kan beskrives som *ting* (enheder), der sender data, som gener ### Reference IoT-arkitektur -![En reference IoT-arkitektur](../../../../../translated_images/da/iot-reference-architecture.2278b98b55c6d4e89bde18eada3688d893861d43507641804dd2f9d3079cfaa0.png) +![En reference IoT-arkitektur](../../../../../translated_images/da/iot-reference-architecture.2278b98b55c6d4e8.webp) Diagrammet ovenfor viser en reference IoT-arkitektur. @@ -49,7 +49,7 @@ Diagrammet ovenfor viser en reference IoT-arkitektur. * **Indsigter** kommer fra serverløse applikationer eller fra analyser, der køres på lagrede data. * **Handlinger** kan være kommandoer sendt til enheder eller visualisering af data, der giver mennesker mulighed for at træffe beslutninger. -![En reference IoT-arkitektur](../../../../../translated_images/da/iot-reference-architecture-azure.0b8d2161af924cb18ae48a8558a19541cca47f27264851b5b7e56d7b8bb372ac.png) +![En reference IoT-arkitektur](../../../../../translated_images/da/iot-reference-architecture-azure.0b8d2161af924cb1.webp) Diagrammet ovenfor viser nogle af de komponenter og tjenester, der er dækket indtil videre i disse lektioner, og hvordan de hænger sammen i en reference IoT-arkitektur. @@ -89,7 +89,7 @@ Du skal bygge et system, hvor frugt registreres, når det ankommer på transport ### Prototyping af din applikation -![En reference IoT-arkitektur for frugtkvalitetskontrol](../../../../../translated_images/da/iot-reference-architecture-fruit-quality.cc705f121c3b6fa71c800d9630935ac34bc08223a04601e35f41d5e9b5dd5207.png) +![En reference IoT-arkitektur for frugtkvalitetskontrol](../../../../../translated_images/da/iot-reference-architecture-fruit-quality.cc705f121c3b6fa7.webp) Diagrammet ovenfor viser en referencearkitektur for denne prototype-applikation. @@ -124,7 +124,7 @@ Følg den relevante guide for at bruge en nærhedssensor til at registrere et ob Prototypen af frugtdetektoren har flere komponenter, der kommunikerer med hinanden. -![Komponenterne kommunikerer med hinanden](../../../../../translated_images/da/fruit-quality-detector-message-flow.adf2a65da8fd8741ac7af11361574de89adc126785d67606bb4d2ec00467e380.png) +![Komponenterne kommunikerer med hinanden](../../../../../translated_images/da/fruit-quality-detector-message-flow.adf2a65da8fd8741.webp) * En nærhedssensor måler afstanden til et stykke frugt og sender dette til IoT Hub * Kommandoen til at styre kameraet kommer fra IoT Hub til kameraenheden diff --git a/translations/da/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md b/translations/da/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md index 7aa08da23..b8b306388 100644 --- a/translations/da/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md +++ b/translations/da/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md @@ -20,7 +20,7 @@ Grove time of flight-sensoren kan tilsluttes Raspberry Pi'en. Tilslut time of flight-sensoren. -![En Grove time of flight-sensor](../../../../../translated_images/da/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![En Grove time of flight-sensor](../../../../../translated_images/da/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. Sæt den ene ende af et Grove-kabel i stikket på time of flight-sensoren. Det kan kun sættes i på én måde. diff --git a/translations/da/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md b/translations/da/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md index 5fe4270da..2315dd600 100644 --- a/translations/da/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md +++ b/translations/da/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md @@ -36,11 +36,11 @@ Tilføj afstandssensoren til CounterFit-appen. 1. Vælg knappen **Add** for at oprette afstandssensoren. - ![Indstillinger for afstandssensoren](../../../../../translated_images/da/counterfit-create-distance-sensor.967c9fb98f27888d95920c9784d004c972490eb71f70397fe13bd70a79a879a3.png) + ![Indstillinger for afstandssensoren](../../../../../translated_images/da/counterfit-create-distance-sensor.967c9fb98f27888d.webp) Afstandssensoren vil blive oprettet og vises i sensorlisten. - ![Afstandssensoren oprettet](../../../../../translated_images/da/counterfit-distance-sensor.079eefeeea0b68afc36431ce8fcbe2f09a7e4916ed1cd5cb30e696db53bc18fa.png) + ![Afstandssensoren oprettet](../../../../../translated_images/da/counterfit-distance-sensor.079eefeeea0b68af.webp) ## Programmer afstandssensoren diff --git a/translations/da/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md b/translations/da/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md index bf4356272..3210613ec 100644 --- a/translations/da/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md +++ b/translations/da/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md @@ -20,7 +20,7 @@ Grove Time of Flight-sensoren kan tilsluttes Wio Terminalen. Tilslut Time of Flight-sensoren. -![En Grove Time of Flight-sensor](../../../../../translated_images/da/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![En Grove Time of Flight-sensor](../../../../../translated_images/da/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. Sæt den ene ende af et Grove-kabel i stikket på Time of Flight-sensoren. Det kan kun sættes i på én måde. diff --git a/translations/da/5-retail/lessons/1-train-stock-detector/README.md b/translations/da/5-retail/lessons/1-train-stock-detector/README.md index 4414d0bba..cdd0db1ea 100644 --- a/translations/da/5-retail/lessons/1-train-stock-detector/README.md +++ b/translations/da/5-retail/lessons/1-train-stock-detector/README.md @@ -1,6 +1,6 @@ # Træn en lagerdetektor -![En sketchnote oversigt over denne lektion](../../../../../translated_images/da/lesson-19.cf6973cecadf080c4b526310620dc4d6f5994c80fb0139c6f378cc9ca2d435cd.jpg) +![En sketchnote oversigt over denne lektion](../../../../../translated_images/da/lesson-19.cf6973cecadf080c.webp) > Sketchnote af [Nitya Narasimhan](https://github.com/nitya). Klik på billedet for en større version. @@ -36,7 +36,7 @@ Objektgenkendelse indebærer at finde objekter i billeder ved hjælp af AI. I mo Billedklassifikation handler om at klassificere et billede som helhed - hvad er sandsynligheden for, at hele billedet matcher hvert tag. Du får sandsynligheder tilbage for hvert tag, der blev brugt til at træne modellen. -![Billedklassifikation af cashewnødder og tomatpuré](../../../../../translated_images/da/image-classifier-cashews-tomato.bc2e16ab8f05cf9ac0f59f73e32efc4227f9a5b601b90b2c60f436694547a965.png) +![Billedklassifikation af cashewnødder og tomatpuré](../../../../../translated_images/da/image-classifier-cashews-tomato.bc2e16ab8f05cf9a.webp) I eksemplet ovenfor klassificeres to billeder ved hjælp af en model, der er trænet til at klassificere bøtter med cashewnødder eller dåser med tomatpuré. Det første billede er en bøtte med cashewnødder og har to resultater fra billedklassifikatoren: @@ -60,7 +60,7 @@ Når du derefter bruger den til at forudsige billeder, får du ikke en liste ove > 🎓 *Afgrænsningsbokse* er boksene omkring et objekt. -![Objektgenkendelse af cashewnødder og tomatpuré](../../../../../translated_images/da/object-detector-cashews-tomato.1af7c26686b4db0e709754aeb196f4e73271f54e2085db3bcccb70d4a0d84d97.png) +![Objektgenkendelse af cashewnødder og tomatpuré](../../../../../translated_images/da/object-detector-cashews-tomato.1af7c26686b4db0e.webp) Billedet ovenfor indeholder både en bøtte med cashewnødder og tre dåser tomatpuré. Objektgenkendelsesmodellen har fundet cashewnødderne og returneret afgrænsningsboksen, der indeholder cashewnødderne, med sandsynligheden for, at afgrænsningsboksen indeholder objektet, i dette tilfælde 97.6%. Modellen har også fundet tre dåser tomatpuré og giver tre separate afgrænsningsbokse, én for hver fundet dåse, og hver med en sandsynlighedsprocent for, at afgrænsningsboksen indeholder en dåse tomatpuré. @@ -111,7 +111,7 @@ Du kan træne en objektgenkendelsesmodel ved hjælp af Custom Vision, på en lig Når du opretter dit projekt, skal du sørge for at bruge `stock-detector-training`-ressourcen, du oprettede tidligere. Brug projekttypen *Object Detection* og domænet *Products on Shelves*. - ![Indstillingerne for Custom Vision-projektet med navnet sat til fruit-quality-detector, ingen beskrivelse, ressourcen sat til fruit-quality-detector-training, projekttypen sat til klassifikation, klassifikationstyperne sat til multi class og domænerne sat til food](../../../../../translated_images/da/custom-vision-create-object-detector-project.32d4fb9aa8e7e7375f8a799bfce517aca970f2cb65e42d4245c5e635c734ab29.png) + ![Indstillingerne for Custom Vision-projektet med navnet sat til fruit-quality-detector, ingen beskrivelse, ressourcen sat til fruit-quality-detector-training, projekttypen sat til klassifikation, klassifikationstyperne sat til multi class og domænerne sat til food](../../../../../translated_images/da/custom-vision-create-object-detector-project.32d4fb9aa8e7e737.webp) ✅ Domænet *Products on Shelves* er specifikt målrettet mod at genkende lager på butikshylder. Læs mere om de forskellige domæner i [Select a domain-dokumentationen på Microsoft Docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/select-domain?WT.mc_id=academic-17441-jabenn#object-detection) @@ -133,11 +133,11 @@ For at træne din model skal du bruge et sæt billeder, der indeholder de objekt 1. Følg [Upload og tag billeder-sektionen i Build an object detector quickstart på Microsoft Docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/get-started-build-detector?WT.mc_id=academic-17441-jabenn#upload-and-tag-images) for at uploade dine træningsbilleder. Opret relevante tags afhængigt af de typer objekter, du vil genkende. - ![Upload-dialogerne, der viser upload af billeder af modne og umodne bananer](../../../../../translated_images/da/image-upload-object-detector.77c7892c3093cb59b79018edecd678749a75d71a099bc8a2d2f2f76320f88a5b.png) + ![Upload-dialogerne, der viser upload af billeder af modne og umodne bananer](../../../../../translated_images/da/image-upload-object-detector.77c7892c3093cb59.webp) Når du tegner afgrænsningsbokse for objekter, skal du holde dem stramt omkring objektet. Det kan tage lidt tid at markere alle billederne, men værktøjet vil foreslå, hvad det tror er afgrænsningsboksene, hvilket gør det hurtigere. - ![Tagging af tomatpuré](../../../../../translated_images/da/object-detector-tag-tomato-paste.f47c362fb0f0eb582f3bc68cf3855fb43a805106395358d41896a269c210b7b4.png) + ![Tagging af tomatpuré](../../../../../translated_images/da/object-detector-tag-tomato-paste.f47c362fb0f0eb58.webp) > 💁 Hvis du har mere end 15 billeder for hvert objekt, kan du træne efter 15 og derefter bruge funktionen **Suggested tags**. Dette vil bruge den trænede model til at genkende objekterne i de ikke-mærkede billeder. Du kan derefter bekræfte de genkendte objekter eller afvise og gen-tegne afgrænsningsboksene. Dette kan spare *meget* tid. @@ -155,7 +155,7 @@ Når din objektgenkendelsesmodel er trænet, kan du teste den ved at give den ny 1. Brug knappen **Quick Test** til at uploade testbilleder og verificere, at objekterne genkendes. Brug de testbilleder, du oprettede tidligere, ikke nogen af de billeder, du brugte til træning. - ![3 dåser tomatpuré genkendt med sandsynligheder på 38%, 35.5% og 34.6%](../../../../../translated_images/da/object-detector-detected-tomato-paste.52656fe87af4c37b4ee540526d63e73ed075da2e54a9a060aa528e0c562fb1b6.png) + ![3 dåser tomatpuré genkendt med sandsynligheder på 38%, 35.5% og 34.6%](../../../../../translated_images/da/object-detector-detected-tomato-paste.52656fe87af4c37b.webp) 1. Prøv alle de testbilleder, du har adgang til, og observer sandsynlighederne. diff --git a/translations/da/5-retail/lessons/2-check-stock-device/README.md b/translations/da/5-retail/lessons/2-check-stock-device/README.md index b7442f236..6567d1fb7 100644 --- a/translations/da/5-retail/lessons/2-check-stock-device/README.md +++ b/translations/da/5-retail/lessons/2-check-stock-device/README.md @@ -1,6 +1,6 @@ # Tjek lager fra en IoT-enhed -![En sketchnote-oversigt over denne lektion](../../../../../translated_images/da/lesson-20.0211df9551a8abb300fc8fcf7dc2789468dea2eabe9202273ac077b0ba37f15e.jpg) +![En sketchnote-oversigt over denne lektion](../../../../../translated_images/da/lesson-20.0211df9551a8abb3.webp) > Sketchnote af [Nitya Narasimhan](https://github.com/nitya). Klik på billedet for en større version. @@ -62,7 +62,7 @@ Iterationer udgives fra Custom Vision-portalen. 1. Vælg knappen **Publish** for iterationen. - ![Udgiv-knappen](../../../../../translated_images/da/custom-vision-object-detector-publish-button.34ee379fc650ccb9856c3868d0003f413b9529f102fc73c37168c98d721cc293.png) + ![Udgiv-knappen](../../../../../translated_images/da/custom-vision-object-detector-publish-button.34ee379fc650ccb9.webp) 1. I dialogboksen *Publish Model* skal du indstille *Prediction resource* til den `stock-detector-prediction`-ressource, du oprettede i den sidste lektion. Lad navnet være `Iteration2`, og vælg knappen **Publish**. @@ -76,7 +76,7 @@ Iterationer udgives fra Custom Vision-portalen. Tag også en kopi af værdien *Prediction-Key*. Dette er en sikker nøgle, som du skal sende, når du kalder modellen. Kun applikationer, der sender denne nøgle, har tilladelse til at bruge modellen, alle andre applikationer afvises. - ![Dialogboksen for forudsigelses-API, der viser URL og nøgle](../../../../../translated_images/da/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![Dialogboksen for forudsigelses-API, der viser URL og nøgle](../../../../../translated_images/da/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ Når en ny iteration udgives, vil den have et andet navn. Hvordan tror du, at du ville ændre den iteration, som en IoT-enhed bruger? @@ -95,7 +95,7 @@ Når du bruger objektdetektoren, får du ikke kun de registrerede objekter med d Resultaterne af en forudsigelse i fanen **Predictions** i Custom Vision har afgrænsningsboksene tegnet på det billede, der blev sendt til forudsigelse. -![4 dåser tomatpuré på en hylde med forudsigelser for de 4 registreringer på 35,8 %, 33,5 %, 25,7 % og 16,6 %](../../../../../translated_images/da/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) +![4 dåser tomatpuré på en hylde med forudsigelser for de 4 registreringer på 35,8 %, 33,5 %, 25,7 % og 16,6 %](../../../../../translated_images/da/custom-vision-stock-prediction.942266ab1bcca341.webp) I billedet ovenfor blev 4 dåser tomatpuré registreret. I resultaterne er en rød firkant overlejret for hvert objekt, der blev registreret i billedet, hvilket angiver afgrænsningsboksen for billedet. @@ -103,7 +103,7 @@ I billedet ovenfor blev 4 dåser tomatpuré registreret. I resultaterne er en r Afgrænsningsbokse defineres med 4 værdier - top, venstre, højde og bredde. Disse værdier er på en skala fra 0-1, der repræsenterer positionerne som en procentdel af billedets størrelse. Oprindelsen (0,0-positionen) er øverste venstre hjørne af billedet, så topværdien er afstanden fra toppen, og bunden af afgrænsningsboksen er toppen plus højden. -![En afgrænsningsboks omkring en dåse tomatpuré](../../../../../translated_images/da/bounding-box.1420a7ea0d3d15f71e1ffb5cf4b2271d184fac051f990abc541975168d163684.png) +![En afgrænsningsboks omkring en dåse tomatpuré](../../../../../translated_images/da/bounding-box.1420a7ea0d3d15f7.webp) Billedet ovenfor er 600 pixels bredt og 800 pixels højt. Afgrænsningsboksen starter 320 pixels nede, hvilket giver en topkoordinat på 0,4 (800 x 0,4 = 320). Fra venstre starter afgrænsningsboksen 240 pixels inde, hvilket giver en venstre koordinat på 0,4 (600 x 0,4 = 240). Højden på afgrænsningsboksen er 240 pixels, hvilket giver en højdeværdi på 0,3 (800 x 0,3 = 240). Bredden på afgrænsningsboksen er 120 pixels, hvilket giver en breddeværdi på 0,2 (600 x 0,2 = 120). @@ -118,7 +118,7 @@ Ved at bruge procentværdier fra 0-1 betyder det, at uanset hvilken størrelse b Du kan bruge afgrænsningsbokse kombineret med sandsynligheder til at evaluere, hvor præcis en registrering er. For eksempel kan en objektdetektor registrere flere objekter, der overlapper hinanden, for eksempel registrere én dåse inde i en anden. Din kode kunne se på afgrænsningsboksene, forstå, at dette er umuligt, og ignorere eventuelle objekter, der har en betydelig overlapning med andre objekter. -![To afgrænsningsbokse, der overlapper en dåse tomatpuré](../../../../../translated_images/da/overlap-object-detection.d431e03cae75072a2760430eca7f2c5fdd43045bfd72dadcbf12711f7cd6c2ae.png) +![To afgrænsningsbokse, der overlapper en dåse tomatpuré](../../../../../translated_images/da/overlap-object-detection.d431e03cae75072a.webp) I eksemplet ovenfor angav en afgrænsningsboks en forudsagt dåse tomatpuré med 78,3 %. En anden afgrænsningsboks er lidt mindre og er inde i den første afgrænsningsboks med en sandsynlighed på 64,3 %. Din kode kan tjekke afgrænsningsboksene, se, at de overlapper fuldstændigt, og ignorere den lavere sandsynlighed, da det ikke er muligt, at én dåse er inde i en anden. diff --git a/translations/da/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md b/translations/da/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md index 1377ec26d..83943a315 100644 --- a/translations/da/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md +++ b/translations/da/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md @@ -67,7 +67,7 @@ Koden, du brugte til at klassificere billeder, ligner meget koden til at detekte Du vil kunne se det billede, der blev taget, og disse værdier i **Predictions**-fanen i Custom Vision. - ![4 dåser tomatpuré på en hylde med forudsigelser for de 4 detektioner på 35,8%, 33,5%, 25,7% og 16,6%](../../../../../translated_images/da/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![4 dåser tomatpuré på en hylde med forudsigelser for de 4 detektioner på 35,8%, 33,5%, 25,7% og 16,6%](../../../../../translated_images/da/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 Du kan finde denne kode i mappen [code-detect/pi](../../../../../5-retail/lessons/2-check-stock-device/code-detect/pi) eller [code-detect/virtual-iot-device](../../../../../5-retail/lessons/2-check-stock-device/code-detect/virtual-iot-device). diff --git a/translations/da/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md b/translations/da/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md index 9036fb74b..7fa2b5dfb 100644 --- a/translations/da/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md +++ b/translations/da/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md @@ -95,7 +95,7 @@ Den kode, du brugte til at klassificere billeder, ligner meget koden til at dete Du vil kunne se det billede, der blev taget, og disse værdier i **Predictions**-fanen i Custom Vision. - ![4 dåser tomatpuré på en hylde med forudsigelser for de 4 detektioner på 35,8%, 33,5%, 25,7% og 16,6%](../../../../../translated_images/da/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![4 dåser tomatpuré på en hylde med forudsigelser for de 4 detektioner på 35,8%, 33,5%, 25,7% og 16,6%](../../../../../translated_images/da/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 Du kan finde denne kode i mappen [code-detect/wio-terminal](../../../../../5-retail/lessons/2-check-stock-device/code-detect/wio-terminal). diff --git a/translations/da/6-consumer/lessons/1-speech-recognition/README.md b/translations/da/6-consumer/lessons/1-speech-recognition/README.md index 99b710973..9ff0b57e8 100644 --- a/translations/da/6-consumer/lessons/1-speech-recognition/README.md +++ b/translations/da/6-consumer/lessons/1-speech-recognition/README.md @@ -1,6 +1,6 @@ # Genkend tale med en IoT-enhed -![En sketchnote-oversigt over denne lektion](../../../../../translated_images/da/lesson-21.e34de51354d6606fb5ee08d8c89d0222eea0a2a7aaf744a8805ae847c4f69dc4.jpg) +![En sketchnote-oversigt over denne lektion](../../../../../translated_images/da/lesson-21.e34de51354d6606f.webp) > Sketchnote af [Nitya Narasimhan](https://github.com/nitya). Klik på billedet for en større version. @@ -51,7 +51,7 @@ Mikrofoner findes i forskellige typer: Dynamiske mikrofoner behøver ikke strøm for at fungere; det elektriske signal skabes udelukkende af mikrofonen. - ![Patti Smith synger i en Shure SM58 (dynamisk cardioid-type) mikrofon](../../../../../translated_images/da/dynamic-mic.8babac890a2d80dfb0874b5bf37d4b851fe2aeb9da6fd72945746176978bf3bb.jpg) + ![Patti Smith synger i en Shure SM58 (dynamisk cardioid-type) mikrofon](../../../../../translated_images/da/dynamic-mic.8babac890a2d80df.webp) * Bånd - Båndmikrofoner ligner dynamiske mikrofoner, men de har et metalbånd i stedet for en membran. Dette bånd bevæger sig i et magnetfelt og genererer en elektrisk strøm. Ligesom dynamiske mikrofoner behøver båndmikrofoner ikke strøm for at fungere. @@ -59,11 +59,11 @@ Mikrofoner findes i forskellige typer: * Kondensator - Kondensatormikrofoner har en tynd metalmembran og en fast metalbagplade. Elektricitet påføres begge dele, og når membranen vibrerer, ændres den statiske ladning mellem pladerne og genererer et signal. Kondensatormikrofoner kræver strøm for at fungere - kaldet *Phantom power*. - ![C451B små-membran kondensatormikrofon fra AKG Acoustics](../../../../../translated_images/da/condenser-mic.6f6ed5b76ca19e0ec3fd0c544601542d4479a6cb7565db336de49fbbf69f623e.jpg) + ![C451B små-membran kondensatormikrofon fra AKG Acoustics](../../../../../translated_images/da/condenser-mic.6f6ed5b76ca19e0e.webp) * MEMS - Mikroelektromekaniske systemmikrofoner, eller MEMS, er mikrofoner på en chip. De har en trykfølsom membran ætset på en siliciumchip og fungerer på samme måde som en kondensatormikrofon. Disse mikrofoner kan være meget små og integreret i kredsløb. - ![En MEMS-mikrofon på et kredsløb](../../../../../translated_images/da/mems-microphone.80574019e1f5e4d9ee72fed720ecd25a39fc2969c91355d17ebb24ba4159e4c4.png) + ![En MEMS-mikrofon på et kredsløb](../../../../../translated_images/da/mems-microphone.80574019e1f5e4d9.webp) På billedet ovenfor er chippen mærket **LEFT** en MEMS-mikrofon med en lille membran mindre end en millimeter bred. @@ -159,7 +159,7 @@ For at undgå kompleksiteten ved at træne og bruge en vågningsordsmodel vil de ## Konverter tale til tekst -![Logo for taletjenester](../../../../../translated_images/da/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![Logo for taletjenester](../../../../../translated_images/da/azure-speech-logo.a1f08c4befb0159f.webp) Ligesom med billedklassifikation i et tidligere projekt findes der forudbyggede AI-tjenester, der kan tage tale som en lydfil og konvertere det til tekst. En sådan tjeneste er Speech Service, en del af Cognitive Services, forudbyggede AI-tjenester, du kan bruge i dine apps. diff --git a/translations/da/6-consumer/lessons/1-speech-recognition/pi-audio.md b/translations/da/6-consumer/lessons/1-speech-recognition/pi-audio.md index 3a3ce4106..363d5d5b7 100644 --- a/translations/da/6-consumer/lessons/1-speech-recognition/pi-audio.md +++ b/translations/da/6-consumer/lessons/1-speech-recognition/pi-audio.md @@ -16,13 +16,13 @@ Knappen kan tilsluttes Grove-basen. #### Opgave - tilslut knappen -![En Grove-knap](../../../../../translated_images/da/grove-button.a70cfbb809a8563681003250cf5b06d68cdcc68624f9e2f493d5a534ae2da1e5.png) +![En Grove-knap](../../../../../translated_images/da/grove-button.a70cfbb809a85636.webp) 1. Sæt den ene ende af et Grove-kabel i stikket på knapmodulet. Det kan kun sættes i på én måde. 1. Med Raspberry Pi'en slukket, tilslut den anden ende af Grove-kablet til det digitale stik mærket **D5** på Grove Base HAT'en, der er tilsluttet Pi'en. Dette stik er det andet fra venstre i rækken af stik ved siden af GPIO-pindene. -![Grove-knappen tilsluttet stik D5](../../../../../translated_images/da/pi-button.c7a1a4f55943341ce1baf1057658e9a205804d4131d258e820c93f951df0abf3.png) +![Grove-knappen tilsluttet stik D5](../../../../../translated_images/da/pi-button.c7a1a4f55943341c.webp) ## Optag lyd diff --git a/translations/da/6-consumer/lessons/1-speech-recognition/pi-microphone.md b/translations/da/6-consumer/lessons/1-speech-recognition/pi-microphone.md index cb6ad6d32..674d058f9 100644 --- a/translations/da/6-consumer/lessons/1-speech-recognition/pi-microphone.md +++ b/translations/da/6-consumer/lessons/1-speech-recognition/pi-microphone.md @@ -34,7 +34,7 @@ Mikrofonen og højttalerne skal tilsluttes og konfigureres. 1. Hvis du bruger ReSpeaker 2-Mics Pi HAT, kan du fjerne Grove-basen og derefter montere ReSpeaker-hatten i stedet. - ![En Raspberry Pi med en ReSpeaker-hat](../../../../../translated_images/da/pi-respeaker-hat.f00fabe7dd039a93e2e0aa0fc946c9af0c6a9eb17c32fa1ca097fb4e384f69f0.png) + ![En Raspberry Pi med en ReSpeaker-hat](../../../../../translated_images/da/pi-respeaker-hat.f00fabe7dd039a93.webp) Du får brug for en Grove-knap senere i denne lektion, men en er indbygget i denne hat, så Grove-basen er ikke nødvendig. diff --git a/translations/da/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md b/translations/da/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md index c78d17ff2..8fbcca832 100644 --- a/translations/da/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md +++ b/translations/da/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md @@ -10,7 +10,7 @@ Den indbyggede mikrofon opfanger et analogt signal, som bliver konverteret til e ✅ Læs mere om DMA på [siden om direkte hukommelsesadgang på Wikipedia](https://wikipedia.org/wiki/Direct_memory_access). -![Lyd fra mikrofonen går til en ADC og derefter til DMAC. Dette skriver til en buffer. Når denne buffer er fuld, behandles den, og DMAC skriver til en anden buffer](../../../../../translated_images/da/dmac-adc-buffers.4509aee49145c90bc2e1be472b8ed2ddfcb2b6a81ad3e559114aca55f5fff759.png) +![Lyd fra mikrofonen går til en ADC og derefter til DMAC. Dette skriver til en buffer. Når denne buffer er fuld, behandles den, og DMAC skriver til en anden buffer](../../../../../translated_images/da/dmac-adc-buffers.4509aee49145c90b.webp) DMAC kan optage lyd fra ADC'en med faste intervaller, for eksempel 16.000 gange i sekundet for 16KHz lyd. Den kan skrive disse optagede data til en forudallokeret hukommelsesbuffer, og når denne er fuld, gøre den tilgængelig for din kode til behandling. Brug af denne hukommelse kan forsinke lydoptagelsen, men du kan opsætte flere buffere. DMAC skriver til buffer 1, og når den er fuld, giver den besked til din kode om at behandle buffer 1, mens DMAC skriver til buffer 2. Når buffer 2 er fuld, giver den besked til din kode og går tilbage til at skrive til buffer 1. På den måde mister du ingen data, så længe du behandler hver buffer hurtigere, end det tager at fylde en. diff --git a/translations/da/6-consumer/lessons/2-language-understanding/README.md b/translations/da/6-consumer/lessons/2-language-understanding/README.md index ed69920cd..729946b26 100644 --- a/translations/da/6-consumer/lessons/2-language-understanding/README.md +++ b/translations/da/6-consumer/lessons/2-language-understanding/README.md @@ -1,6 +1,6 @@ # Forstå sprog -![En sketchnote oversigt over denne lektion](../../../../../translated_images/da/lesson-22.6148ea28500d9e00c396aaa2649935fb6641362c8f03d8e5e90a676977ab01dd.jpg) +![En sketchnote oversigt over denne lektion](../../../../../translated_images/da/lesson-22.6148ea28500d9e00.webp) > Sketchnote af [Nitya Narasimhan](https://github.com/nitya). Klik på billedet for en større version. @@ -46,7 +46,7 @@ Sprogforståelsesmodeller er AI-modeller, der er trænet til at udtrække visse ## Opret en sprogforståelsesmodel -![LUIS-logoet](../../../../../translated_images/da/luis-logo.5cb4f3e88c020ee6df4f614e8831f4a4b6809a7247bf52085fb48d629ef9be52.png) +![LUIS-logoet](../../../../../translated_images/da/luis-logo.5cb4f3e88c020ee6.webp) Du kan oprette sprogforståelsesmodeller ved hjælp af LUIS, en sprogforståelsestjeneste fra Microsoft, der er en del af Cognitive Services. @@ -169,7 +169,7 @@ Du kan finde instruktioner til brug af LUIS-portalen i [Quickstart: Build your a 1. Når du indtaster hvert eksempel, vil LUIS begynde at registrere entiteter og understrege og mærke dem, den finder. - ![Eksemplerne med tal og tidsenheder understreget af LUIS](../../../../../translated_images/da/luis-intent-examples.25716580b2d2723cf1bafdf277d015c7f046d8cfa20f27bddf3a0873ec45fab7.png) + ![Eksemplerne med tal og tidsenheder understreget af LUIS](../../../../../translated_images/da/luis-intent-examples.25716580b2d2723c.webp) ### Opgave - træn og test modellen diff --git a/translations/da/6-consumer/lessons/3-spoken-feedback/README.md b/translations/da/6-consumer/lessons/3-spoken-feedback/README.md index 65eb18d3f..f8cf146ea 100644 --- a/translations/da/6-consumer/lessons/3-spoken-feedback/README.md +++ b/translations/da/6-consumer/lessons/3-spoken-feedback/README.md @@ -1,6 +1,6 @@ # Indstil en timer og giv mundtlig feedback -![En sketchnote-oversigt over denne lektion](../../../../../translated_images/da/lesson-23.f38483e1d4df4828990d3f02d60e46c978b075d384ae7cb4f7bab738e107c850.jpg) +![En sketchnote-oversigt over denne lektion](../../../../../translated_images/da/lesson-23.f38483e1d4df4828.webp) > Sketchnote af [Nitya Narasimhan](https://github.com/nitya). Klik på billedet for en større version. diff --git a/translations/da/6-consumer/lessons/4-multiple-language-support/README.md b/translations/da/6-consumer/lessons/4-multiple-language-support/README.md index 0a7e4d79a..8d392f7d5 100644 --- a/translations/da/6-consumer/lessons/4-multiple-language-support/README.md +++ b/translations/da/6-consumer/lessons/4-multiple-language-support/README.md @@ -1,6 +1,6 @@ # Understøt flere sprog -![En sketchnote oversigt over denne lektion](../../../../../translated_images/da/lesson-24.4246968ed058510ab275052e87ef9aa89c7b2f938915d103c605c04dc6cd5bb7.jpg) +![En sketchnote oversigt over denne lektion](../../../../../translated_images/da/lesson-24.4246968ed058510a.webp) > Sketchnote af [Nitya Narasimhan](https://github.com/nitya). Klik på billedet for en større version. @@ -74,7 +74,7 @@ Der findes en række AI-tjenester, som du kan bruge fra dine applikationer til a ### Cognitive Services Speech Service -![Logoet for tale-tjenesten](../../../../../translated_images/da/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![Logoet for tale-tjenesten](../../../../../translated_images/da/azure-speech-logo.a1f08c4befb0159f.webp) Tale-tjenesten, som du har brugt i de sidste par lektioner, har oversættelsesmuligheder for talegenkendelse. Når du genkender tale, kan du anmode om ikke kun teksten af talen på samme sprog, men også på andre sprog. @@ -82,7 +82,7 @@ Tale-tjenesten, som du har brugt i de sidste par lektioner, har oversættelsesmu ### Cognitive Services Translator Service -![Logoet for oversætter-tjenesten](../../../../../translated_images/da/azure-translator-logo.c6ed3a4a433edfd2f11577eca105412c50b8396b194cbbd730723dd1d0793bcd.png) +![Logoet for oversætter-tjenesten](../../../../../translated_images/da/azure-translator-logo.c6ed3a4a433edfd2.webp) Translator-tjenesten er en dedikeret oversættelsestjeneste, der kan oversætte tekst fra ét sprog til ét eller flere målsprog. Ud over at oversætte understøtter den en bred vifte af ekstra funktioner, herunder maskering af bandeord. Den giver dig også mulighed for at angive en specifik oversættelse for et bestemt ord eller en sætning, så du kan arbejde med termer, du ikke ønsker oversat, eller have en specifik velkendt oversættelse. diff --git a/translations/da/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md b/translations/da/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md index 71b88773a..f2c13fe2e 100644 --- a/translations/da/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md +++ b/translations/da/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md @@ -25,7 +25,7 @@ REST API'en for taletjenesten understøtter ikke direkte oversættelser, men du > > For eksempel, hvis du træner LUIS på engelsk, men ønsker at bruge fransk som brugersprog, kan du oversætte sætninger som "set a 2 minute and 27 second timer" fra engelsk til fransk ved hjælp af Bing Translate og derefter bruge knappen **Lyt til oversættelse** til at tale oversættelsen ind i din mikrofon. > - > ![Knappen lyt til oversættelse på Bing Translate](../../../../../translated_images/da/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Knappen lyt til oversættelse på Bing Translate](../../../../../translated_images/da/bing-translate.348aa796d6efe2a9.webp) 1. Tilføj oversættelses-API-nøglen under `speech_api_key`: diff --git a/translations/da/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md b/translations/da/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md index 28c9a77be..383f01bf1 100644 --- a/translations/da/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md +++ b/translations/da/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md @@ -37,7 +37,7 @@ Tale-tjenesten kan tage tale og ikke kun konvertere den til tekst på samme spro > > For eksempel, hvis du træner LUIS på engelsk, men ønsker at bruge fransk som brugersprog, kan du oversætte sætninger som "set a 2 minute and 27 second timer" fra engelsk til fransk ved hjælp af Bing Translate og derefter bruge knappen **Lyt til oversættelse** til at tale oversættelsen ind i din mikrofon. > - > ![Knappen Lyt til oversættelse på Bing Translate](../../../../../translated_images/da/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Knappen Lyt til oversættelse på Bing Translate](../../../../../translated_images/da/bing-translate.348aa796d6efe2a9.webp) 1. Erstat deklarationerne `recognizer_config` og `recognizer` med følgende: diff --git a/translations/da/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md b/translations/da/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md index 55f152da6..ab3f91d0f 100644 --- a/translations/da/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md +++ b/translations/da/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md @@ -105,7 +105,7 @@ REST API'en for taletjenesten understøtter ikke direkte oversættelser. I stede > > For eksempel, hvis du træner LUIS på engelsk, men ønsker at bruge fransk som brugersprog, kan du oversætte sætninger som "set a 2 minute and 27 second timer" fra engelsk til fransk ved hjælp af Bing Translate, og derefter bruge knappen **Lyt til oversættelse** til at tale oversættelsen ind i din mikrofon. > - > ![Knappen Lyt til oversættelse på Bing Translate](../../../../../translated_images/da/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Knappen Lyt til oversættelse på Bing Translate](../../../../../translated_images/da/bing-translate.348aa796d6efe2a9.webp) 1. Tilføj oversættelsestjenestens API-nøgle og placering under `SPEECH_LOCATION`: diff --git a/translations/da/README.md b/translations/da/README.md index 4c0b81fde..e736d2909 100644 --- a/translations/da/README.md +++ b/translations/da/README.md @@ -8,53 +8,63 @@ [![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/) -### Deltag i Azure AI Foundry fællesskabet +### Deltag i Azure AI Foundry Community -Hvis du sidder fast eller har spørgsmål om at bygge AI-apps. Deltag i diskussioner om MCP med andre lærende og erfarne udviklere. Det er et støttende fællesskab, hvor spørgsmål er velkomne, og viden deles frit. +Hvis du sidder fast eller har spørgsmål om at bygge AI-apps, så deltag med lærende og erfarne udviklere i diskussioner om MCP. Det er et støttende fællesskab, hvor spørgsmål er velkomne, og viden deles frit. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Hvis du har produktfeedback eller fejl under bygning, besøg: +Hvis du har produktfeedback eller fejl, mens du bygger, besøg: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) Følg disse trin for at komme i gang med at bruge disse ressourcer: -1. **Fork repositoryet**: Klik [![GitHub forks](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) -2. **Klon repositoryet**: `git clone https://github.com/microsoft/IoT-For-Beginners.git` +1. **Fork repository'et**: Klik [![GitHub forks](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) +2. **Klon repository'et**: `git clone https://github.com/microsoft/IoT-For-Beginners.git` 3. [**Deltag i Microsoft Foundry Discord og mød eksperter og andre udviklere**](https://discord.com/invite/ByRwuEEgH4) -### 🌐 Multi-sprogsunderstøttelse +### 🌐 Multisprogunderstøttelse -#### Understøttet via GitHub Action (Automatiseret & altid opdateret) +#### Understøttet via GitHub Action (Automatiseret & Altid Opdateret) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](./README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](./README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) > **Foretrækker du at klone lokalt?** - -> Dette repository inkluderer 50+ sprogoversættelser, som betydeligt øger downloadstørrelsen. For at klone uden oversættelser, brug sparse checkout: +> +> Dette repository inkluderer 50+ sprogoversættelser, hvilket øger downloadstørrelsen markant. For at klone uden oversættelser, brug sparse checkout: +> +> **Bash / macOS / Linux:** > ```bash > git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git > cd IoT-For-Beginners > git sparse-checkout set --no-cone '/*' '!translations' '!translated_images' > ``` +> +> **CMD (Windows):** +> ```cmd +> git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git +> cd IoT-For-Beginners +> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" +> ``` +> > Dette giver dig alt, hvad du behøver for at gennemføre kurset med en meget hurtigere download. -# IoT for Begyndere – Et læseplan +# IoT for Begyndere - Et Curriculum -Azure Cloud Advocates hos Microsoft er glade for at tilbyde en 12-ugers, 24-lektioners læseplan, der handler om IoT-grundlæggende. Hver lektion inkluderer for- og efter-quizzer, skriftlige instruktioner til at gennemføre lektionen, en løsning, en opgave og mere. Vores projektbaserede undervisningsmetode gør det muligt for dig at lære ved at bygge, en dokumenteret måde at fastholde nye færdigheder på. +Azure Cloud Advocates hos Microsoft er glade for at tilbyde et 12-ugers, 24-lektioners curriculum, der handler om IoT grundlæggende. Hver lektion inkluderer quizzer før og efter lektionen, skriftlige instruktioner til at gennemføre lektionen, en løsning, en opgave og mere. Vores projektbaserede pædagogik giver dig mulighed for at lære mens du bygger, en dokumenteret måde for nye færdigheder at 'sætte sig fast'. -Projekterne dækker fødevarens rejse fra mark til bord. Dette inkluderer landbrug, logistik, produktion, detailhandel og forbruger – alle populære industrisektorer for IoT-enheder. +Projekterne dækker fødevarets rejse fra gård til bord. Dette inkluderer landbrug, logistik, fremstilling, detailhandel og forbruger – alle populære brancheområder for IoT-enheder. -![En køreplan for kurset, der viser 24 lektioner om intro, landbrug, transport, forarbejdning, detailhandel og madlavning](../../translated_images/da/Roadmap.bb1dec285dda0eda.webp) +![Et køreplanskort for kurset der viser 24 lektioner, der dækker intro, landbrug, transport, forarbejdning, detail og madlavning](../../translated_images/da/Roadmap.bb1dec285dda0eda.webp) > Sketchnote af [Nitya Narasimhan](https://github.com/nitya). Klik på billedet for en større version. -**En hjertelig tak til vores forfattere [Jen Fox](https://github.com/jenfoxbot), [Jen Looper](https://github.com/jlooper), [Jim Bennett](https://github.com/jimbobbennett), og vores sketchnote-kunstner [Nitya Narasimhan](https://github.com/nitya).** +**En hjertelig tak til vores forfattere [Jen Fox](https://github.com/jenfoxbot), [Jen Looper](https://github.com/jlooper), [Jim Bennett](https://github.com/jimbobbennett), og vores sketchnote-artist [Nitya Narasimhan](https://github.com/nitya).** -**Tak også til vores team af [Microsoft Learn Student Ambassadors](https://studentambassadors.microsoft.com?WT.mc_id=academic-17441-jabenn), som har gennemgået og oversat denne læseplan – [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), og [Zina Kamel](https://www.linkedin.com/in/zina-kamel/).** +**Tak også til vores team af [Microsoft Learn Student Ambassadors](https://studentambassadors.microsoft.com?WT.mc_id=academic-17441-jabenn), som har gennemgået og oversat dette curriculum - [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), og [Zina Kamel](https://www.linkedin.com/in/zina-kamel/).** Mød teamet! @@ -64,9 +74,9 @@ Mød teamet! > 🎥 Klik på billedet ovenfor for en video om projektet! -> **Lærere**, vi har [inkluderet nogle forslag](for-teachers.md) til, hvordan man bruger denne læseplan. Hvis du ønsker at oprette dine egne lektioner, har vi også inkluderet en [lektionsskabelon](lesson-template/README.md). +> **Lærere**, vi har [inkluderet nogle forslag](for-teachers.md) til, hvordan man bruger dette curriculum. Hvis du ønsker at oprette dine egne lektioner, har vi også inkluderet en [lektion-skabelon](lesson-template/README.md). -> **[Studerende](https://aka.ms/student-page)**, for at bruge denne læseplan på egen hånd, forgrene hele repoet og gennemføre øvelserne alene, startende med en for-forelæsningsquiz, derefter læs forelæsningen og gennemfør resten af aktiviteterne. Prøv at skabe projekterne ved at forstå lektionerne i stedet for blot at kopiere løsningskoden; denne kode er dog tilgængelig i /solutions-mapperne i hver projektorienteret lektion. En anden ide er at danne en studiegruppe med venner og gennemgå indholdet sammen. Til yderligere studier anbefaler vi [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn). +> **[Studerende](https://aka.ms/student-page)**, for at bruge dette curriculum på egen hånd, forkynd hele repo'et og gennemfør øvelserne selv, startende med en quiz før lektionen, læs lektionen og gennemfør resten af aktiviteterne. Prøv at skabe projekterne ved at forstå lektionerne i stedet for blot at kopiere løsningskoden; dog er denne kode tilgængelig i /solutions mapperne i hver projektorienterede lektion. En anden idé er at danne en studiegruppe med venner og gennemgå materialet sammen. Til yderligere studie anbefaler vi [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn). For en videooversigt over dette kursus, se denne video: @@ -76,76 +86,76 @@ For en videooversigt over dette kursus, se denne video: ## Pædagogik -Vi har valgt to pædagogiske principper, mens vi byggede denne læseplan: at sikre, at den er projektbaseret, og at den inkluderer hyppige quizzer. Ved slutningen af denne serie vil eleverne have bygget et system til overvågning og vanding af planter, en køretøjs-tracker, et smart fabriks-setup til at spore og kontrollere mad og en stemmestyret madlavningstimer, og vil have lært det grundlæggende om Internet of Things, herunder hvordan man skriver enhedskode, forbinder til skyen, analyserer telemetri og kører AI ved kanten. +Vi har valgt to pædagogiske principper under udformningen af dette curriculum: sikring af at det er projektbaseret og at det indeholder hyppige quizzer. Ved slutningen af denne serie vil de studerende have bygget et system til overvågning og vanding af planter, en køretøjssporing, et smart fabriksetup til at spore og kontrollere mad, og en stemmestyret madlavningstimer, samt lært det grundlæggende om Internet of Things, inklusive hvordan man skriver enhedskode, forbinder til skyen, analyserer telemetri og kører AI ved kanten. -Ved at sikre, at indholdet hænger sammen med projekterne, bliver processen mere engagerende for eleverne, og fastholdelsen af koncepter vil blive forbedret. +Ved at sikre at indholdet stemmer overens med projekterne, bliver processen mere engagerende for de studerende og fastholdelsen af begreber øges. -Derudover sætter en lavrisiko-quiz før en klasse elevens hensigt mod at lære et emne, mens en anden quiz efter klassen sikrer yderligere fastholdelse. Denne læseplan er designet til at være fleksibel og sjov og kan tages helt eller delvist. Projekterne starter småt og bliver gradvist mere komplekse ved slutningen af den 12-ugers cyklus. +Derudover sætter en lavrisiko quiz før en klasse den studerendes intention mod at lære et emne, mens en anden quiz efter klassen sikrer yderligere fastholdelse. Dette curriculum er designet til at være fleksibelt og sjovt og kan tages helt eller delvist. Projekterne starter småt og bliver mere komplekse ved slutningen af den 12-ugers cyklus. -Hvert projekt er baseret på hardware fra den virkelige verden, som er tilgængelig for studerende og hobbyister. Hvert projekt undersøger det specifikke projektområde og giver relevant baggrundsviden. For at være en succesfuld udvikler hjælper det at forstå det domæne, hvor man løser problemer; ved at give denne baggrundsviden kan eleverne tænke over deres IoT-løsninger og læring i konteksten af den slags virkelige problemer, de kunne blive bedt om at løse som IoT-udvikler. Eleverne lærer ’hvorfor’ bag de løsninger, de bygger, og får en forståelse for slutbrugeren. +Hvert projekt er baseret på hardware fra den virkelige verden, som er tilgængelig for studerende og hobbyister. Hvert projekt dykker ned i det specifikke projektområde og giver relevant baggrundsviden. For at blive en succesfuld udvikler hjælper det at forstå domænet, hvor du løser problemer. Denne baggrundsviden giver de studerende mulighed for at tænke over deres IoT-løsninger og lære i konteksten af den slags virkelige problemer, de kan blive bedt om at løse som IoT-udviklere. Studerende lærer 'hvorfor' af de løsninger, de bygger, og får en forståelse for slutbrugeren. ## Hardware +Vi har to valgmuligheder for IoT-hardware til brug for projekterne afhængigt af personlige præferencer, programmeringssprogskundskaber eller præferencer, læringsmål og tilgængelighed. Vi har også leveret en 'virtuel hardware'-version til dem, der ikke har adgang til hardware, eller som ønsker at lære mere, inden de forpligter sig til et køb. Du kan læse mere og finde en 'indkøbsliste' på [hardware-siden](./hardware.md), inklusive links til køb af komplette kits fra vores venner hos Seeed Studio. -Vi har to valgmuligheder for IoT-hardware til projekterne afhængig af personlige præferencer, programmeringssprogs-kendskab, læringsmål og tilgængelighed. Vi har også leveret en 'virtuel hardware'-version for dem, der ikke har adgang til fysisk hardware, eller som ønsker at lære mere inden de køber. Du kan læse mere og finde en ’indkøbsliste’ på [hardware-siden](./hardware.md), inklusive links til at købe komplette kits fra vores venner hos Seeed Studio. -> 💁 Find vores [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md) og [Translation](TRANSLATIONS.md) retningslinjer. Vi byder din konstruktive feedback velkommen! +> 💁 Find vores [Adfærdskodeks](CODE_OF_CONDUCT.md), [Bidrag](CONTRIBUTING.md) og [Oversættelses](TRANSLATIONS.md) retningslinjer. Vi byder din konstruktive feedback velkommen! > -> 🔧 Har du problemer? Se vores [Troubleshooting Guide](TROUBLESHOOTING.md) for løsninger på almindelige problemer. +> 🔧 Har du problemer? Tjek vores [Fejlfinding Guide](TROUBLESHOOTING.md) for løsninger på almindelige problemer. ## Hver lektion inkluderer: - sketchnote - valgfri supplerende video -- warmup quiz før lektionen -- skreven lektion -- for projektbaserede lektioner, trin-for-trin-vejledninger i hvordan man bygger projektet -- videnschecks +- opvarmningsquiz før lektionen +- skriftlig lektion +- for projektbaserede lektioner trin-for-trin vejledninger om, hvordan man bygger projektet +- videnskontroller - en udfordring - supplerende læsning - opgave - [quiz efter lektionen](https://ff-quizzes.netlify.app/en/) -> **En note om quizzer**: Alle quizzer findes i quiz-app mappen, med i alt 48 quizzer med tre spørgsmål hver. De er linket fra lektionerne, men quiz-appen kan køre lokalt eller deployeres til Azure; følg instruktionerne i `quiz-app` mappen. De bliver gradvist lokaliseret. +> **En note om quizzer**: Alle quizzer findes i quiz-app mappen, i alt 48 quizzer med tre spørgsmål hver. De er linket fra lektionerne, men quiz-appen kan køres lokalt eller implementeres på Azure; følg instruktionerne i `quiz-app` mappen. De bliver gradvist oversat. ## Lektioner -| | Projektnavn | Koncepter undervist | Læringsmål | Linket lektion | -| :---: | :------------------------------------: | :---------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------: | -| 01 | [Kom godt i gang](./1-getting-started/README.md) | Introduktion til IoT | Lær de grundlæggende principper for IoT og grundlæggende byggeklodser til IoT-løsninger såsom sensorer og cloud-tjenester mens du opsætter din første IoT-enhed | [Introduktion til IoT](./1-getting-started/lessons/1-introduction-to-iot/README.md) | -| 02 | [Kom godt i gang](./1-getting-started/README.md) | En dybere introduktion til IoT | Lær mere om komponenterne i et IoT-system, samt mikrokontrollere og enkeltkort-computere | [En dybere introduktion til IoT](./1-getting-started/lessons/2-deeper-dive/README.md) | -| 03 | [Kom godt i gang](./1-getting-started/README.md) | Interagér med den fysiske verden med sensorer og aktuatorer | Lær om sensorer til at indsamle data fra den fysiske verden, og aktuatorer til at sende feedback, mens du bygger et natlys | [Interagér med den fysiske verden med sensorer og aktuatorer](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | -| 04 | [Kom godt i gang](./1-getting-started/README.md) | Forbind din enhed til internettet | Lær om, hvordan man forbinder en IoT-enhed til internettet for at sende og modtage beskeder ved at forbinde dit natlys til en MQTT-broker | [Forbind din enhed til internettet](./1-getting-started/lessons/4-connect-internet/README.md) | -| 05 | [Farm](./2-farm/README.md) | Forudsig plantevækst | Lær hvordan man forudsiger plantevækst ved hjælp af temperaturdata indsamlet af en IoT-enhed | [Forudsig plantevækst](./2-farm/lessons/1-predict-plant-growth/README.md) | -| 06 | [Farm](./2-farm/README.md) | Registrer jordfugtighed | Lær hvordan man registrerer jordfugtighed og kalibrerer en jordfugtighedssensor | [Registrer jordfugtighed](./2-farm/lessons/2-detect-soil-moisture/README.md) | -| 07 | [Farm](./2-farm/README.md) | Automatiseret plantevanding | Lær hvordan man automatiserer og timer vanding ved hjælp af et relæ og MQTT | [Automatiseret plantevanding](./2-farm/lessons/3-automated-plant-watering/README.md) | -| 08 | [Farm](./2-farm/README.md) | Migrer din plante til skyen | Lær om skyen og cloud-hostede IoT-tjenester og hvordan du forbinder din plante til en af disse i stedet for en offentlig MQTT-broker | [Migrer din plante til skyen](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | -| 09 | [Farm](./2-farm/README.md) | Migrer din applikationslogik til skyen | Lær om, hvordan du kan skrive applikationslogik i skyen, der reagerer på IoT-beskeder | [Migrer din applikationslogik til skyen](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | -| 10 | [Farm](./2-farm/README.md) | Hold din plante sikker | Lær om sikkerhed med IoT og hvordan du holder din plante sikker med nøgler og certifikater | [Hold din plante sikker](./2-farm/lessons/6-keep-your-plant-secure/README.md) | -| 11 | [Transport](./3-transport/README.md) | Lokationssporing | Lær om GPS-lokationssporing for IoT-enheder | [Lokationssporing](./3-transport/lessons/1-location-tracking/README.md) | -| 12 | [Transport](./3-transport/README.md) | Gem lokationsdata | Lær hvordan man gemmer IoT-data for senere visualisering eller analyse | [Gem lokationsdata](./3-transport/lessons/2-store-location-data/README.md) | -| 13 | [Transport](./3-transport/README.md) | Visualisér lokationsdata | Lær om at visualisere lokationsdata på et kort, og hvordan kort repræsenterer den virkelige 3D-verden i 2 dimensioner | [Visualisér lokationsdata](./3-transport/lessons/3-visualize-location-data/README.md) | -| 14 | [Transport](./3-transport/README.md) | Geofences | Lær om geofences, og hvordan de kan bruges til at advare, når køretøjer i forsyningskæden er tæt på deres destination | [Geofences](./3-transport/lessons/4-geofences/README.md) | -| 15 | [Manufacturing](./4-manufacturing/README.md) | Træn en frugtkvalitetsdetektor | Lær om at træne en billedklassifikator i skyen til at detektere frugtkvalitet | [Træn en frugtkvalitetsdetektor](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | -| 16 | [Manufacturing](./4-manufacturing/README.md) | Tjek frugtkvalitet fra en IoT-enhed | Lær om brugen af din frugtkvalitetsdetektor fra en IoT-enhed | [Tjek frugtkvalitet fra en IoT-enhed](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | -| 17 | [Manufacturing](./4-manufacturing/README.md) | Kør din frugtdetektor på kanten | Lær om at køre din frugtdetektor på en IoT-enhed på kanten | [Kør din frugtdetektor på kanten](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | -| 18 | [Manufacturing](./4-manufacturing/README.md) | Udløs frugtkvalitetsdetektion fra en sensor | Lær om at udløse frugtkvalitetsdetektion fra en sensor | [Udløs frugtkvalitetsdetektion fra en sensor](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | -| 19 | [Retail](./5-retail/README.md) | Træn en lagerdetektor | Lær hvordan du bruger objektdetektion til at træne en lagerdetektor til at tælle lager i en butik | [Træn en lagerdetektor](./5-retail/lessons/1-train-stock-detector/README.md) | -| 20 | [Retail](./5-retail/README.md) | Tjek lager fra en IoT-enhed | Lær hvordan man tjekker lager fra en IoT-enhed ved hjælp af en objektdetekteringsmodel | [Tjek lager fra en IoT-enhed](./5-retail/lessons/2-check-stock-device/README.md) | -| 21 | [Consumer](./6-consumer/README.md) | Genkend tale med en IoT-enhed | Lær hvordan man genkender tale fra en IoT-enhed til at bygge en smart timer | [Genkend tale med en IoT-enhed](./6-consumer/lessons/1-speech-recognition/README.md) | -| 22 | [Consumer](./6-consumer/README.md) | Forstå sprog | Lær hvordan man forstår sætninger talt til en IoT-enhed | [Forstå sprog](./6-consumer/lessons/2-language-understanding/README.md) | -| 23 | [Consumer](./6-consumer/README.md) | Stil en timer og giv talt feedback | Lær hvordan du stiller en timer på en IoT-enhed og giver talt feedback om, hvornår timeren startes og slutter | [Stil en timer og giv talt feedback](./6-consumer/lessons/3-spoken-feedback/README.md) | -| 24 | [Consumer](./6-consumer/README.md) | Understøt flere sprog | Lær hvordan man understøtter flere sprog, både i tale til enheden og i svarene fra din smart timer | [Understøt flere sprog](./6-consumer/lessons/4-multiple-language-support/README.md) | +| | Projekt navn | Underviste begreber | Læringsmål | Linket lektion | +| :---: | :------------------------------------: | :--------------------------------------------------------------: | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------: | +| 01 | [Kom godt i gang](./1-getting-started/README.md) | Introduktion til IoT | Lær de grundlæggende principper for IoT og de grundlæggende byggesten i IoT-løsninger såsom sensorer og cloud-tjenester, mens du opsætter din første IoT-enhed | [Introduktion til IoT](./1-getting-started/lessons/1-introduction-to-iot/README.md) | +| 02 | [Kom godt i gang](./1-getting-started/README.md) | Et dybere dyk i IoT | Lær mere om komponenterne i et IoT-system, samt mikrocontrollere og enkeltkort computere | [Et dybere dyk i IoT](./1-getting-started/lessons/2-deeper-dive/README.md) | +| 03 | [Kom godt i gang](./1-getting-started/README.md) | Interagér med den fysiske verden med sensorer og aktuatorer | Lær om sensorer til at indsamle data fra den fysiske verden og aktuatorer til at sende feedback, mens du bygger en natlampe | [Interagér med den fysiske verden med sensorer og aktuatorer](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | +| 04 | [Kom godt i gang](./1-getting-started/README.md) | Forbind din enhed til internettet | Lær om, hvordan man forbinder en IoT-enhed til internettet for at sende og modtage beskeder ved at forbinde din natlampe til en MQTT-broker | [Forbind din enhed til internettet](./1-getting-started/lessons/4-connect-internet/README.md) | +| 05 | [Farm](./2-farm/README.md) | Forudsige plantevækst | Lær hvordan man forudsiger plantevækst ved hjælp af temperaturdata indsamlet af en IoT-enhed | [Forudsige plantevækst](./2-farm/lessons/1-predict-plant-growth/README.md) | +| 06 | [Farm](./2-farm/README.md) | Registrer jordfugtighed | Lær hvordan man registrerer jordfugtighed og kalibrerer en jordfugtighedssensor | [Registrer jordfugtighed](./2-farm/lessons/2-detect-soil-moisture/README.md) | +| 07 | [Farm](./2-farm/README.md) | Automatiseret vanding af planter | Lær hvordan man automatiserer og tidsindstiller vanding ved hjælp af et relæ og MQTT | [Automatiseret vanding af planter](./2-farm/lessons/3-automated-plant-watering/README.md) | +| 08 | [Farm](./2-farm/README.md) | Migrer din plante til skyen | Lær om skyen og cloud-hostede IoT-tjenester og hvordan du forbinder din plante til en af disse i stedet for en offentlig MQTT-broker | [Migrer din plante til skyen](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | +| 09 | [Farm](./2-farm/README.md) | Migrer din applikationslogik til skyen | Lær hvordan du kan skrive applikationslogik i skyen, der reagerer på IoT-beskeder | [Migrer din applikationslogik til skyen](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | +| 10 | [Farm](./2-farm/README.md) | Hold din plante sikker | Lær om sikkerhed i IoT og hvordan du holder din plante sikker med nøgler og certifikater | [Hold din plante sikker](./2-farm/lessons/6-keep-your-plant-secure/README.md) | +| 11 | [Transport](./3-transport/README.md) | Lokationssporing | Lær om GPS-lokationssporing for IoT-enheder | [Lokationssporing](./3-transport/lessons/1-location-tracking/README.md) | +| 12 | [Transport](./3-transport/README.md) | Gem lokationsdata | Lær hvordan man gemmer IoT-data til senere visualisering eller analyse | [Gem lokationsdata](./3-transport/lessons/2-store-location-data/README.md) | +| 13 | [Transport](./3-transport/README.md) | Visualiser lokationsdata | Lær om visualisering af lokationsdata på et kort, og hvordan kort repræsenterer den rigtige 3D-verden i 2 dimensioner | [Visualiser lokationsdata](./3-transport/lessons/3-visualize-location-data/README.md) | +| 14 | [Transport](./3-transport/README.md) | Geofences | Lær om geofences, og hvordan de kan bruges til at advare, når køretøjer i forsyningskæden er tæt på deres destination | [Geofences](./3-transport/lessons/4-geofences/README.md) | +| 15 | [Manufacturing](./4-manufacturing/README.md) | Træn en frugtkvalitetsdetektor | Lær om at træne en billedklassificerer i skyen til at detektere frugtkvalitet | [Træn en frugtkvalitetsdetektor](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | +| 16 | [Manufacturing](./4-manufacturing/README.md) | Kontroller frugtkvalitet fra en IoT-enhed | Lær om brugen af din frugtkvalitetsdetektor fra en IoT-enhed | [Kontroller frugtkvalitet fra en IoT-enhed](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | +| 17 | [Manufacturing](./4-manufacturing/README.md) | Kør din frugtdetektor på edge-enheden | Lær om at køre din frugtdetektor på en IoT-enhed ved edge | [Kør din frugtdetektor på edge-enheden](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | +| 18 | [Manufacturing](./4-manufacturing/README.md) | Udløs frugtkvalitetsdetektion fra en sensor | Lær om at udløse frugtkvalitetsdetektion fra en sensor | [Udløs frugtkvalitetsdetektion fra en sensor](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | +| 19 | [Retail](./5-retail/README.md) | Træn en lagerdetektor | Lær hvordan du bruger objektdetektion til at træne en lagerdetektor til at tælle lager i en butik | [Træn en lagerdetektor](./5-retail/lessons/1-train-stock-detector/README.md) | +| 20 | [Retail](./5-retail/README.md) | Tjek lagerstatus fra en IoT-enhed | Lær hvordan du tjekker lagerstatus fra en IoT-enhed ved hjælp af en objektdetekteringsmodel | [Tjek lagerstatus fra en IoT-enhed](./5-retail/lessons/2-check-stock-device/README.md) | +| 21 | [Consumer](./6-consumer/README.md) | Genkend tale med en IoT-enhed | Lær hvordan du genkender tale fra en IoT-enhed for at bygge en smart timer | [Genkend tale med en IoT-enhed](./6-consumer/lessons/1-speech-recognition/README.md) | +| 22 | [Consumer](./6-consumer/README.md) | Forstå sprog | Lær hvordan man forstår sætninger talt til en IoT-enhed | [Forstå sprog](./6-consumer/lessons/2-language-understanding/README.md) | +| 23 | [Consumer](./6-consumer/README.md) | Indstil en timer og giv mundtlig feedback | Lær hvordan man indstiller en timer på en IoT-enhed og giver mundtlig feedback om, hvornår timeren starter og slutter | [Indstil en timer og giv mundtlig feedback](./6-consumer/lessons/3-spoken-feedback/README.md) | +| 24 | [Consumer](./6-consumer/README.md) | Understøt flere sprog | Lær hvordan man støtter flere sprog, både til at blive talt til og til svar fra din smarte timer | [Understøt flere sprog](./6-consumer/lessons/4-multiple-language-support/README.md) | ## Offline adgang -Du kan køre denne dokumentation offline ved at bruge [Docsify](https://docsify.js.org/#/). Fork dette repo, [installer Docsify](https://docsify.js.org/#/quickstart) på din lokale maskine, og kør derefter i roden af denne repo `docsify serve`. Hjemmesiden vil blive serveret på port 3000 på din localhost: `localhost:3000`. +Du kan køre denne dokumentation offline ved at bruge [Docsify](https://docsify.js.org/#/). Fork dette repo, [installer Docsify](https://docsify.js.org/#/quickstart) på din lokale maskine, og skriv derefter i rodmappen i dette repo `docsify serve`. Hjemmesiden vil blive serveret på port 3000 på din localhost: `localhost:3000`. ## Quiz -Tak til fællesskabet for at hoste det interaktive quiz, som tester din viden om hvert kapitel. Du kan teste din viden [her](https://ff-quizzes.netlify.app/en/) +Tak til community for at hoste den interaktive quiz, som tester din viden om hvert kapitel. Du kan teste din viden [her](https://ff-quizzes.netlify.app/en/) ### PDF -Du kan generere en PDF af dette indhold til offline brug, hvis nødvendigt. For at gøre dette, sørg for at have [npm installeret](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) og kør følgende kommandoer i roden af denne repo: +Du kan generere en PDF af dette indhold til offline adgang, hvis nødvendigt. For at gøre dette skal du sikre dig, at du har [npm installeret](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) og køre følgende kommandoer i rodmappen i dette repo: ```sh npm i @@ -154,59 +164,60 @@ npm run convert ### Slides -Der er diaspræsentationer til nogle af lektionerne i [slides](../../slides) mappen. +Der findes slide-decks for nogle af lektionerne i [slides](../../slides) mappen. -## Andre pensum -Vores team producerer andre pensum! Tjek: +## Andre læseplaner + +Vores team producerer andre læseplaner! Tjek: ### LangChain [![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) [![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) - +[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- ### Azure / Edge / MCP / Agenter [![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) [![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI-agenter for begyndere](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Generativ AI-serie -[![Generativ AI for begyndere](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Generativ AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![Generativ AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![Generativ AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +### Generativ AI Serie +[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- -### Kerneundervisning -[![ML for begyndere](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Data Science for begyndere](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![AI for begyndere](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![Cybersikkerhed for begyndere](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![Webudvikling for begyndere](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![IoT for begyndere](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![XR-udvikling for begyndere](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +### Kernelæring +[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Copilot-serie -[![Copilot for AI-parprogrammering](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +### Copilot Serie +[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) [![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![Copilot Eventyr](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - +[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) + ## Billedhenvisninger -Du kan finde alle henvisninger til billederne brugt i dette pensum, hvor det er nødvendigt, i [Henvisninger](./attributions.md). +Du kan finde alle henvisninger for billederne brugt i denne læreplan, hvor det er nødvendigt, i [Attributions](./attributions.md). --- -**Ansvarsfraskrivelse**: -Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, bedes du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det oprindelige dokument på dets modersmål bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for misforståelser eller fejltolkninger, der opstår som følge af brugen af denne oversættelse. +**Ansvarsfraskrivelse**: +Dette dokument er blevet oversat ved brug af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, skal du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog skal anses for at være den autoritative kilde. For kritiske oplysninger anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for misforståelser eller fejltolkninger, der opstår som følge af brugen af denne oversættelse. \ No newline at end of file diff --git a/translations/da/hardware.md b/translations/da/hardware.md index 7aba8e41d..1788b86e3 100644 --- a/translations/da/hardware.md +++ b/translations/da/hardware.md @@ -26,7 +26,7 @@ Seeed Studios har venligst gjort al hardware tilgængelig som letkøbte kits: **[IoT for begyndere med Seeed og Microsoft - Raspberry Pi 4 Starter Kit](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html)** -[![Raspberry Pi Terminal hardware kit](../../translated_images/da/pi-hardware-kit.26dbadaedb7dd44c73b0131d5d68ea29472ed0a9744f90d5866c6d82f2d16380.png)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) +[![Raspberry Pi Terminal hardware kit](../../translated_images/da/pi-hardware-kit.26dbadaedb7dd44c.webp)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) ## Arduino diff --git a/translations/de/.co-op-translator.json b/translations/de/.co-op-translator.json index af84026b2..e955a68d3 100644 --- a/translations/de/.co-op-translator.json +++ b/translations/de/.co-op-translator.json @@ -738,8 +738,8 @@ "language_code": "de" }, "README.md": { - "original_hash": "3fcc056cd3837e33d2bdf79f9c359fcf", - "translation_date": "2026-01-30T01:06:34+00:00", + "original_hash": "accf69391fa4450eadbf492ca024cccf", + "translation_date": "2026-04-06T16:39:47+00:00", "source_file": "README.md", "language_code": "de" }, diff --git a/translations/de/1-getting-started/lessons/1-introduction-to-iot/README.md b/translations/de/1-getting-started/lessons/1-introduction-to-iot/README.md index 46b8f7b62..04759fea7 100644 --- a/translations/de/1-getting-started/lessons/1-introduction-to-iot/README.md +++ b/translations/de/1-getting-started/lessons/1-introduction-to-iot/README.md @@ -1,6 +1,6 @@ # Einführung in IoT -![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-1.2606670fa61ee904687da5d6fa4e726639d524d064c895117da1b95b9ff6251d.jpg) +![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-1.2606670fa61ee904.webp) > Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version. diff --git a/translations/de/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md b/translations/de/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md index 78627a2b0..10bf7b52e 100644 --- a/translations/de/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md +++ b/translations/de/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md @@ -203,7 +203,7 @@ Als zweiten "Hallo Welt"-Schritt starten Sie die CounterFit-App und verbinden Ih Die App wird gestartet und in Ihrem Webbrowser geöffnet: - ![Die CounterFit-App läuft in einem Browser](../../../../../translated_images/de/counterfit-first-run.433326358b669b31d0e99c3513cb01bfbb13724d162c99cdcc8f51ecf5f9c779.png) + ![Die CounterFit-App läuft in einem Browser](../../../../../translated_images/de/counterfit-first-run.433326358b669b31.webp) Sie wird als *Disconnected* (Getrennt) angezeigt, und die LED in der oberen rechten Ecke ist ausgeschaltet. @@ -224,7 +224,7 @@ Als zweiten "Hallo Welt"-Schritt starten Sie die CounterFit-App und verbinden Ih 1. Führen Sie in diesem neuen Terminal die Datei `app.py` wie zuvor aus. Der Status von CounterFit ändert sich zu **Connected**, und die LED leuchtet auf. - ![CounterFit zeigt den Status "Connected" an](../../../../../translated_images/de/counterfit-connected.ed30b46d8f79b0921f3fc70be10366e596a89dca3f80c2224a9d9fc98fccf884.png) + ![CounterFit zeigt den Status "Connected" an](../../../../../translated_images/de/counterfit-connected.ed30b46d8f79b092.webp) > 💁 Sie finden diesen Code im Ordner [code/virtual-device](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/virtual-device). diff --git a/translations/de/1-getting-started/lessons/2-deeper-dive/README.md b/translations/de/1-getting-started/lessons/2-deeper-dive/README.md index ce61641c5..1d04de8d3 100644 --- a/translations/de/1-getting-started/lessons/2-deeper-dive/README.md +++ b/translations/de/1-getting-started/lessons/2-deeper-dive/README.md @@ -1,6 +1,6 @@ # Ein tieferer Einblick in IoT -![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-2.324b0580d620c25e0a24fb7fddfc0b29a846dd4b82c08e7a9466d580ee78ce51.jpg) +![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-2.324b0580d620c25e.webp) > Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version. @@ -38,7 +38,7 @@ Der **Ding**-Teil von IoT bezieht sich auf ein Gerät, das mit der physischen We Diese Geräte interagieren mit der physischen Welt, entweder durch Sensoren, die Daten aus ihrer Umgebung sammeln, oder durch Steuerung von Ausgängen oder Aktoren, um physische Änderungen vorzunehmen. Ein typisches Beispiel hierfür ist ein intelligenter Thermostat – ein Gerät, das über einen Temperatursensor, eine Möglichkeit zur Einstellung einer gewünschten Temperatur wie ein Drehregler oder Touchscreen und eine Verbindung zu einem Heiz- oder Kühlsystem verfügt, das eingeschaltet wird, wenn die gemessene Temperatur außerhalb des gewünschten Bereichs liegt. Der Temperatursensor erkennt, dass der Raum zu kalt ist, und ein Aktor schaltet die Heizung ein. -![Ein Diagramm, das Temperatur und einen Drehregler als Eingaben für ein IoT-Gerät sowie die Steuerung einer Heizung als Ausgabe zeigt](../../../../../translated_images/de/basic-thermostat.a923217fd1f37e5a6f3390396a65c22a387419ea2dd17e518ec24315ba6ae9a8.png) +![Ein Diagramm, das Temperatur und einen Drehregler als Eingaben für ein IoT-Gerät sowie die Steuerung einer Heizung als Ausgabe zeigt](../../../../../translated_images/de/basic-thermostat.a923217fd1f37e5a.webp) Es gibt eine riesige Bandbreite an verschiedenen Dingen, die als IoT-Geräte fungieren können, von spezieller Hardware, die eine Sache erfasst, bis hin zu universellen Geräten, sogar Ihrem Smartphone! Ein Smartphone kann Sensoren verwenden, um die Welt um sich herum zu erkennen, und Aktoren, um mit der Welt zu interagieren – zum Beispiel mit einem GPS-Sensor, um Ihren Standort zu bestimmen, und einem Lautsprecher, um Ihnen Navigationsanweisungen zu einem Ziel zu geben. @@ -54,7 +54,7 @@ Geräte verbinden sich auch nicht immer direkt über WLAN oder kabelgebundene Ve Im Beispiel eines intelligenten Thermostats würde sich der Thermostat über das Heim-WLAN mit einem Cloud-Dienst verbinden. Er würde die Temperaturdaten an diesen Cloud-Dienst senden, und von dort aus würden sie in einer Art Datenbank gespeichert, sodass der Hausbesitzer die aktuellen und vergangenen Temperaturen über eine Telefon-App überprüfen kann. Ein anderer Dienst in der Cloud würde wissen, welche Temperatur der Hausbesitzer wünscht, und Nachrichten über den Cloud-Dienst zurück an das IoT-Gerät senden, um dem Heizsystem mitzuteilen, ob es ein- oder ausgeschaltet werden soll. -![Ein Diagramm, das Temperatur und einen Drehregler als Eingaben für ein IoT-Gerät zeigt, das IoT-Gerät mit bidirektionaler Kommunikation zur Cloud, die wiederum bidirektionale Kommunikation zu einem Telefon hat, und die Steuerung einer Heizung als Ausgabe des IoT-Geräts](../../../../../translated_images/de/mobile-controlled-thermostat.4a994010473d8d6a52ba68c67e5f02dc8928c717e93ca4b9bc55525aa75bbb60.png) +![Ein Diagramm, das Temperatur und einen Drehregler als Eingaben für ein IoT-Gerät zeigt, das IoT-Gerät mit bidirektionaler Kommunikation zur Cloud, die wiederum bidirektionale Kommunikation zu einem Telefon hat, und die Steuerung einer Heizung als Ausgabe des IoT-Geräts](../../../../../translated_images/de/mobile-controlled-thermostat.4a994010473d8d6a.webp) Eine noch intelligentere Version könnte KI in der Cloud verwenden, die Daten von anderen Sensoren, die mit anderen IoT-Geräten verbunden sind, wie Belegungssensoren, die erkennen, welche Räume genutzt werden, sowie Daten wie Wetter und sogar Ihren Kalender, um Entscheidungen darüber zu treffen, wie die Temperatur intelligent eingestellt werden kann. Zum Beispiel könnte sie Ihre Heizung ausschalten, wenn sie aus Ihrem Kalender liest, dass Sie im Urlaub sind, oder die Heizung raumweise ausschalten, je nachdem, welche Räume Sie nutzen, und aus den Daten lernen, um mit der Zeit immer genauer zu werden. @@ -94,7 +94,7 @@ Je schneller der Taktzyklus, desto mehr Anweisungen können pro Sekunde verarbei > 💁 CPUs führen Programme mit dem [Fetch-Decode-Execute-Zyklus](https://wikipedia.org/wiki/Instruction_cycle) aus. Bei jedem Taktzyklus holt die CPU die nächste Anweisung aus dem Speicher, dekodiert sie und führt sie aus, z. B. mit einer arithmetisch-logischen Einheit (ALU), um zwei Zahlen zu addieren. Einige Ausführungen benötigen mehrere Ticks, sodass der nächste Zyklus beim nächsten Tick nach Abschluss der Anweisung ausgeführt wird. -![Der Fetch-Decode-Execute-Zyklus zeigt, wie die Anweisung aus dem Programm im RAM abgerufen, dekodiert und auf einer CPU ausgeführt wird](../../../../../translated_images/de/fetch-decode-execute.2fd6f150f6280392807f4475382319abd0cee0b90058e1735444d6baa6f2078c.png) +![Der Fetch-Decode-Execute-Zyklus zeigt, wie die Anweisung aus dem Programm im RAM abgerufen, dekodiert und auf einer CPU ausgeführt wird](../../../../../translated_images/de/fetch-decode-execute.2fd6f150f6280392.webp) Mikrocontroller haben viel niedrigere Taktgeschwindigkeiten als Desktop- oder Laptop-Computer oder sogar die meisten Smartphones. Das Wio Terminal hat beispielsweise eine CPU, die mit 120MHz oder 120.000.000 Zyklen pro Sekunde läuft. @@ -182,7 +182,7 @@ Arduino-Boards werden in C oder C++ programmiert. Die Verwendung von C/C++ ermö In der `setup`-Funktion schreiben Sie Ihren Initialisierungscode, wie z. B. die Verbindung mit WiFi und Cloud-Diensten oder die Initialisierung von Pins für Eingabe und Ausgabe. Ihr Code in der `loop`-Funktion enthält dann die Verarbeitung, wie das Lesen von Sensorwerten und das Senden dieser Werte in die Cloud. Normalerweise fügen Sie am Ende jeder Schleife eine Verzögerung ein, z. B. wenn Sie Sensordaten nur alle 10 Sekunden senden möchten. Dadurch kann der Mikrocontroller Energie sparen, indem er schläft, und die Schleife wird erst nach 10 Sekunden erneut ausgeführt. -![Ein Arduino-Sketch, der zuerst setup ausführt und dann loop wiederholt](../../../../../translated_images/de/arduino-sketch.79590cb837ff7a7c6a68d1afda6cab83fd53d3bb1bd9a8bf2eaf8d693a4d3ea6.png) +![Ein Arduino-Sketch, der zuerst setup ausführt und dann loop wiederholt](../../../../../translated_images/de/arduino-sketch.79590cb837ff7a7c.webp) ✅ Diese Programmarchitektur wird als *Ereignisschleife* oder *Nachrichtenschleife* bezeichnet. Viele Anwendungen verwenden dies im Hintergrund, und es ist der Standard für die meisten Desktop-Anwendungen, die auf Betriebssystemen wie Windows, macOS oder Linux laufen. Die `loop`-Funktion lauscht auf Nachrichten von Benutzeroberflächenkomponenten wie Tasten oder Geräten wie der Tastatur und reagiert darauf. Mehr dazu können Sie in diesem [Artikel über die Ereignisschleife](https://wikipedia.org/wiki/Event_loop) lesen. diff --git a/translations/de/1-getting-started/lessons/3-sensors-and-actuators/README.md b/translations/de/1-getting-started/lessons/3-sensors-and-actuators/README.md index a43e658fb..b9573d201 100644 --- a/translations/de/1-getting-started/lessons/3-sensors-and-actuators/README.md +++ b/translations/de/1-getting-started/lessons/3-sensors-and-actuators/README.md @@ -1,6 +1,6 @@ # Interaktion mit der physischen Welt durch Sensoren und Aktoren -![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-3.cc3b7b4cd646de598698cce043c0393fd62ef42bac2eaf60e61272cd844250f4.jpg) +![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-3.cc3b7b4cd646de59.webp) > Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version. @@ -92,7 +92,7 @@ Digitale Sensoren erfassen wie analoge Sensoren die Welt um sie herum durch Änd Der einfachste digitale Sensor ist ein Knopf oder Schalter. Dies ist ein Sensor mit zwei Zuständen, ein oder aus. -![Ein Knopf erhält 5 Volt. Wenn er nicht gedrückt wird, gibt er 0 Volt zurück, wenn er gedrückt wird, gibt er 5 Volt zurück](../../../../../translated_images/de/button.eadb560b77ac45e56f523d9d8876e40444f63b419e33eb820082d461fa79490b.png) +![Ein Knopf erhält 5 Volt. Wenn er nicht gedrückt wird, gibt er 0 Volt zurück, wenn er gedrückt wird, gibt er 5 Volt zurück](../../../../../translated_images/de/button.eadb560b77ac45e5.webp) Pins an IoT-Geräten wie GPIO-Pins können dieses Signal direkt als 0 oder 1 messen. Wenn die gesendete Spannung mit der zurückgegebenen Spannung übereinstimmt, wird der Wert 1 gelesen, andernfalls wird der Wert 0 gelesen. Es ist keine Umwandlung des Signals erforderlich, es kann nur 1 oder 0 sein. @@ -125,7 +125,7 @@ Einige gängige Aktoren sind: Folgen Sie der entsprechenden Anleitung unten, um einen Aktor zu Ihrem IoT-Gerät hinzuzufügen, der durch den Sensor gesteuert wird, um ein IoT-Nachtlicht zu bauen. Es wird Lichtpegel vom Lichtsensor erfassen und einen Aktor in Form einer LED verwenden, um Licht abzugeben, wenn der erkannte Lichtpegel zu niedrig ist. -![Ein Flussdiagramm der Aufgabe, das zeigt, wie Lichtpegel gelesen und überprüft werden und die LED gesteuert wird](../../../../../translated_images/de/assignment-1-flow.7552a51acb1a5ec858dca6e855cdbb44206434006df8ba3799a25afcdab1665d.png) +![Ein Flussdiagramm der Aufgabe, das zeigt, wie Lichtpegel gelesen und überprüft werden und die LED gesteuert wird](../../../../../translated_images/de/assignment-1-flow.7552a51acb1a5ec8.webp) * [Arduino - Wio Terminal](wio-terminal-actuator.md) * [Einplatinencomputer - Raspberry Pi](pi-actuator.md) @@ -140,7 +140,7 @@ Wie Sensoren sind Aktoren entweder analog oder digital. Analoge Aktoren nehmen ein analoges Signal und wandeln es in eine Art Interaktion um, wobei sich die Interaktion je nach angelegter Spannung ändert. Ein Beispiel ist ein dimmbares Licht, wie Sie es vielleicht in Ihrem Haus haben. Die Menge der angelegten Spannung bestimmt, wie hell es leuchtet. -![Eine Lampe, die bei niedriger Spannung gedimmt und bei höherer Spannung heller ist](../../../../../translated_images/de/dimmable-light.9ceffeb195dec1a849da718b2d71b32c35171ff7dfea9c07bbf82646a67acf6b.png) +![Eine Lampe, die bei niedriger Spannung gedimmt und bei höherer Spannung heller ist](../../../../../translated_images/de/dimmable-light.9ceffeb195dec1a8.webp) Wie bei Sensoren arbeiten IoT-Geräte mit digitalen Signalen, nicht mit analogen. Das bedeutet, dass ein IoT-Gerät einen Digital-zu-Analog-Wandler (DAC) benötigt, entweder direkt im Gerät oder auf einer Anschlussplatine, um ein analoges Signal zu senden. Dieser Wandler konvertiert die 0en und 1en des IoT-Geräts in eine analoge Spannung, die der Aktuator verwenden kann. @@ -187,7 +187,7 @@ Digitale Aktuatoren, wie digitale Sensoren, haben entweder zwei Zustände, die d Ein einfacher digitaler Aktuator ist eine LED. Wenn ein Gerät ein digitales Signal von 1 sendet, wird eine hohe Spannung gesendet, die die LED zum Leuchten bringt. Wenn ein digitales Signal von 0 gesendet wird, fällt die Spannung auf 0V und die LED erlischt. -![Eine LED ist bei 0 Volt aus und bei 5V an](../../../../../translated_images/de/led.ec6d94f66676a174ad06d9fa9ea49c2ee89beb18b312d5c6476467c66375b07f.png) +![Eine LED ist bei 0 Volt aus und bei 5V an](../../../../../translated_images/de/led.ec6d94f66676a174.webp) ✅ Welche anderen einfachen 2-Zustands-Aktuatoren fallen dir ein? Ein Beispiel ist ein Solenoid, ein Elektromagnet, der aktiviert werden kann, um Dinge wie das Bewegen eines Türbolzens zum Verriegeln/Entriegeln einer Tür zu erledigen. diff --git a/translations/de/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md b/translations/de/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md index c8ba95613..9f53dbb63 100644 --- a/translations/de/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md +++ b/translations/de/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md @@ -26,7 +26,7 @@ Die Grove LED wird als Modul mit einer Auswahl an LEDs geliefert, sodass du die Verbinde die LED. -![Eine Grove LED](../../../../../translated_images/de/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![Eine Grove LED](../../../../../translated_images/de/grove-led.6c853be93f473cf2.webp) 1. Wähle deine Lieblings-LED aus und stecke die Beine in die beiden Löcher des LED-Moduls. @@ -40,7 +40,7 @@ Verbinde die LED. 1. Schalte den Raspberry Pi aus und verbinde das andere Ende des Grove-Kabels mit der digitalen Buchse **D5** auf dem Grove Base Hat, der am Pi angebracht ist. Diese Buchse ist die zweite von links in der Reihe der Buchsen neben den GPIO-Pins. -![Die Grove LED verbunden mit Buchse D5](../../../../../translated_images/de/pi-led.97f1d474981dc35d1c7996c7b17de355d3d0a6bc9606d79fa5f89df933415122.png) +![Die Grove LED verbunden mit Buchse D5](../../../../../translated_images/de/pi-led.97f1d474981dc35d.webp) ## Programmiere das Nachtlicht diff --git a/translations/de/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md b/translations/de/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md index 5b7e3640b..f1b7e3009 100644 --- a/translations/de/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md +++ b/translations/de/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md @@ -16,13 +16,13 @@ Der Grove-Lichtsensor, der die Lichtstärke misst, muss mit dem Raspberry Pi ver Verbinde den Lichtsensor. -![Ein Grove-Lichtsensor](../../../../../translated_images/de/grove-light-sensor.b8127b7c434e632d6bcdb57587a14e9ef69a268a22df95d08628f62b8fa5505c.png) +![Ein Grove-Lichtsensor](../../../../../translated_images/de/grove-light-sensor.b8127b7c434e632d.webp) 1. Stecke ein Ende eines Grove-Kabels in die Buchse des Lichtsensormoduls. Es passt nur in einer Richtung. 1. Schalte den Raspberry Pi aus und verbinde das andere Ende des Grove-Kabels mit der analogen Buchse, die mit **A0** auf dem Grove Base Hat markiert ist. Diese Buchse ist die zweite von rechts in der Reihe der Buchsen neben den GPIO-Pins. -![Der Grove-Lichtsensor, verbunden mit Buchse A0](../../../../../translated_images/de/pi-light-sensor.66cc1e31fa48cd7d5f23400d4b2119aa41508275cb7c778053a7923b4e972d7e.png) +![Der Grove-Lichtsensor, verbunden mit Buchse A0](../../../../../translated_images/de/pi-light-sensor.66cc1e31fa48cd7d.webp) ## Programmiere den Lichtsensor diff --git a/translations/de/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md b/translations/de/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md index 3b0e2a699..39ae0d381 100644 --- a/translations/de/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md +++ b/translations/de/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md @@ -36,11 +36,11 @@ Füge die LED zur CounterFit-App hinzu. 1. Wähle die Schaltfläche **Add**, um die LED auf Pin 5 zu erstellen. - ![Die LED-Einstellungen](../../../../../translated_images/de/counterfit-create-led.ba9db1c9b8c622a635d6dfae5cdc4e70c2b250635bd4f0601c6cf0bd22b7ba46.png) + ![Die LED-Einstellungen](../../../../../translated_images/de/counterfit-create-led.ba9db1c9b8c622a6.webp) Die LED wird erstellt und erscheint in der Liste der Aktoren. - ![Die erstellte LED](../../../../../translated_images/de/counterfit-led.c0ab02de6d256ad84d9bad4d67a7faa709f0ea83e410cfe9b5561ef0cef30b1c.png) + ![Die erstellte LED](../../../../../translated_images/de/counterfit-led.c0ab02de6d256ad8.webp) Sobald die LED erstellt wurde, kannst du die Farbe mit dem *Color*-Picker ändern. Wähle die Schaltfläche **Set**, um die Farbe zu ändern, nachdem du sie ausgewählt hast. diff --git a/translations/de/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md b/translations/de/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md index aca9b6231..c772272b9 100644 --- a/translations/de/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md +++ b/translations/de/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md @@ -28,11 +28,11 @@ Fügen Sie den Lichtsensor zur CounterFit-App hinzu. 1. Wählen Sie die Schaltfläche **Add**, um den Lichtsensor auf Pin 0 zu erstellen. - ![Die Einstellungen des Lichtsensors](../../../../../translated_images/de/counterfit-create-light-sensor.9f36a5e0d4458d8d554d54b34d2c806d56093d6e49fddcda2d20f6fef7f5cce1.png) + ![Die Einstellungen des Lichtsensors](../../../../../translated_images/de/counterfit-create-light-sensor.9f36a5e0d4458d8d.webp) Der Lichtsensor wird erstellt und erscheint in der Sensorenliste. - ![Der erstellte Lichtsensor](../../../../../translated_images/de/counterfit-light-sensor.5d0f5584df56b90f6b2561910d9cb20dfbd73eeff2177c238d38f4de54aefae1.png) + ![Der erstellte Lichtsensor](../../../../../translated_images/de/counterfit-light-sensor.5d0f5584df56b90f.webp) ## Den Lichtsensor programmieren diff --git a/translations/de/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md b/translations/de/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md index d2b870c19..026d78f32 100644 --- a/translations/de/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md +++ b/translations/de/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md @@ -26,7 +26,7 @@ Die Grove-LED wird als Modul mit einer Auswahl an LEDs geliefert, sodass du die Verbinde die LED. -![Eine Grove-LED](../../../../../translated_images/de/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![Eine Grove-LED](../../../../../translated_images/de/grove-led.6c853be93f473cf2.webp) 1. Wähle deine Lieblings-LED aus und stecke die Beine in die beiden Löcher des LED-Moduls. diff --git a/translations/de/1-getting-started/lessons/4-connect-internet/README.md b/translations/de/1-getting-started/lessons/4-connect-internet/README.md index 68b4bb683..2e2848ea6 100644 --- a/translations/de/1-getting-started/lessons/4-connect-internet/README.md +++ b/translations/de/1-getting-started/lessons/4-connect-internet/README.md @@ -1,6 +1,6 @@ # Verbinden Sie Ihr Gerät mit dem Internet -![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-4.7344e074ea68fa545fd320b12dce36d72dd62d28c3b4596cb26cf315f434b98f.jpg) +![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-4.7344e074ea68fa54.webp) > Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version. @@ -47,7 +47,7 @@ MQTT ist das beliebteste Kommunikationsprotokoll für IoT-Geräte und wird in di MQTT hat einen einzigen Broker und mehrere Clients. Alle Clients verbinden sich mit dem Broker, und der Broker leitet Nachrichten an die relevanten Clients weiter. Nachrichten werden über benannte Themen (Topics) geroutet, anstatt direkt an einen einzelnen Client gesendet zu werden. Ein Client kann ein Thema veröffentlichen, und alle Clients, die dieses Thema abonniert haben, erhalten die Nachricht. -![IoT-Gerät veröffentlicht Telemetrie auf dem /telemetry-Thema, und der Cloud-Dienst abonniert dieses Thema](../../../../../translated_images/de/mqtt.cbf7f21d9adc3e17548b359444cc11bb4bf2010543e32ece9a47becf54438c23.png) +![IoT-Gerät veröffentlicht Telemetrie auf dem /telemetry-Thema, und der Cloud-Dienst abonniert dieses Thema](../../../../../translated_images/de/mqtt.cbf7f21d9adc3e17.webp) ✅ Recherchieren Sie. Wenn Sie viele IoT-Geräte haben, wie können Sie sicherstellen, dass Ihr MQTT-Broker alle Nachrichten verarbeiten kann? @@ -69,7 +69,7 @@ Anstatt sich mit den Komplexitäten der Einrichtung eines MQTT-Brokers im Rahmen > 💁 Dieser Test-Broker ist öffentlich und nicht sicher. Jeder könnte zuhören, was Sie veröffentlichen, daher sollte er nicht mit Daten verwendet werden, die privat bleiben müssen. -![Ein Flussdiagramm der Aufgabe, das zeigt, wie Lichtpegel gelesen und überprüft werden und die LED gesteuert wird](../../../../../translated_images/de/assignment-1-internet-flow.3256feab5f052fd273bf4e331157c574c2c3fa42e479836fc9c3586f41db35a5.png) +![Ein Flussdiagramm der Aufgabe, das zeigt, wie Lichtpegel gelesen und überprüft werden und die LED gesteuert wird](../../../../../translated_images/de/assignment-1-internet-flow.3256feab5f052fd2.webp) Folgen Sie dem entsprechenden Schritt unten, um Ihr Gerät mit dem MQTT-Broker zu verbinden: @@ -350,7 +350,7 @@ Für Maschinen möchten Sie möglicherweise die Daten behalten, insbesondere wen IoT-Geräteentwickler sollten auch berücksichtigen, ob das IoT-Gerät während eines Internetausfalls oder eines Signalverlusts aufgrund des Standorts verwendet werden kann. Ein intelligentes Thermostat sollte in der Lage sein, einige begrenzte Entscheidungen zur Steuerung der Heizung zu treffen, wenn es aufgrund eines Ausfalls keine Telemetrie an die Cloud senden kann. -[![Dieser Ferrari wurde unbrauchbar, weil jemand versucht hat, ihn unterirdisch zu aktualisieren, wo es keinen Mobilfunkempfang gibt](../../../../../translated_images/de/bricked-car.dc38f8efadc6c59d76211f981a521efb300939283dee468f79503aae3ec67615.png)](https://twitter.com/internetofshit/status/1315736960082808832) +[![Dieser Ferrari wurde unbrauchbar, weil jemand versucht hat, ihn unterirdisch zu aktualisieren, wo es keinen Mobilfunkempfang gibt](../../../../../translated_images/de/bricked-car.dc38f8efadc6c59d.webp)](https://twitter.com/internetofshit/status/1315736960082808832) Damit MQTT einen Verlust der Konnektivität bewältigen kann, müssen das Geräte- und der Servercode dafür verantwortlich sein, die Nachrichtenübermittlung sicherzustellen, falls dies erforderlich ist, beispielsweise durch die Anforderung, dass alle gesendeten Nachrichten durch zusätzliche Nachrichten zu einem Antwortthema beantwortet werden, und falls nicht, werden sie manuell in eine Warteschlange gestellt, um später erneut abgespielt zu werden. @@ -358,7 +358,7 @@ Damit MQTT einen Verlust der Konnektivität bewältigen kann, müssen das Gerät Befehle sind Nachrichten, die von der Cloud an ein Gerät gesendet werden, um es anzuweisen, etwas zu tun. Meistens geht es darum, eine Art Ausgabe über einen Aktuator zu geben, aber es kann auch eine Anweisung für das Gerät selbst sein, wie z. B. einen Neustart durchzuführen oder zusätzliche Telemetrie zu sammeln und als Antwort auf den Befehl zurückzugeben. -![Ein internetverbundenes Thermostat, das einen Befehl erhält, die Heizung einzuschalten](../../../../../translated_images/de/commands.d6c06bbbb3a02cce95f2831a1c331daf6dedd4e470c4aa2b0ae54f332016e504.png) +![Ein internetverbundenes Thermostat, das einen Befehl erhält, die Heizung einzuschalten](../../../../../translated_images/de/commands.d6c06bbbb3a02cce.webp) Ein Thermostat könnte einen Befehl von der Cloud erhalten, die Heizung einzuschalten. Basierend auf den Telemetriedaten aller Sensoren hat der Cloud-Dienst entschieden, dass die Heizung eingeschaltet werden sollte, und sendet daher den entsprechenden Befehl. diff --git a/translations/de/2-farm/lessons/1-predict-plant-growth/README.md b/translations/de/2-farm/lessons/1-predict-plant-growth/README.md index 82d91b80a..a412007e9 100644 --- a/translations/de/2-farm/lessons/1-predict-plant-growth/README.md +++ b/translations/de/2-farm/lessons/1-predict-plant-growth/README.md @@ -1,6 +1,6 @@ # Vorhersage des Pflanzenwachstums mit IoT -![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-5.42b234299279d263143148b88ab4583861a32ddb03110c6c1120e41bb88b2592.jpg) +![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-5.42b234299279d263.webp) > Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version. @@ -102,7 +102,7 @@ Die Schritte, um dies manuell zu tun, sind: Zum Beispiel, wenn die höchste Temperatur des Tages 25°C und die niedrigste 12°C beträgt: -![GDD = 25 + 12 geteilt durch 2, dann 10 vom Ergebnis abziehen, ergibt 8.5](../../../../../translated_images/de/gdd-calculation-strawberries.59f57db94b22adb8ff6efb951ace33af104a1c6ccca3ffb0f8169c14cb160c90.png) +![GDD = 25 + 12 geteilt durch 2, dann 10 vom Ergebnis abziehen, ergibt 8.5](../../../../../translated_images/de/gdd-calculation-strawberries.59f57db94b22adb8.webp) * 25 + 12 = 37 * 37 / 2 = 18.5 diff --git a/translations/de/2-farm/lessons/1-predict-plant-growth/assignment.md b/translations/de/2-farm/lessons/1-predict-plant-growth/assignment.md index a942888a9..59aaf1bf4 100644 --- a/translations/de/2-farm/lessons/1-predict-plant-growth/assignment.md +++ b/translations/de/2-farm/lessons/1-predict-plant-growth/assignment.md @@ -33,7 +33,7 @@ Sobald du Temperaturdaten hast, kannst du das Jupyter Notebook in diesem Reposit Jupyter wird gestartet und öffnet das Notebook in deinem Browser. Arbeite die Anweisungen im Notebook durch, um die gemessenen Temperaturen zu visualisieren und die Growing Degree Days zu berechnen. - ![Das Jupyter Notebook](../../../../../translated_images/de/gdd-jupyter-notebook.c5b52cf21094f158a61f47f455490fd95f1729777ff90861a4521820bf354cdc.png) + ![Das Jupyter Notebook](../../../../../translated_images/de/gdd-jupyter-notebook.c5b52cf21094f158.webp) ## Bewertungskriterien diff --git a/translations/de/2-farm/lessons/1-predict-plant-growth/pi-temp.md b/translations/de/2-farm/lessons/1-predict-plant-growth/pi-temp.md index 0b6d9a0e1..752b379b3 100644 --- a/translations/de/2-farm/lessons/1-predict-plant-growth/pi-temp.md +++ b/translations/de/2-farm/lessons/1-predict-plant-growth/pi-temp.md @@ -16,13 +16,13 @@ Der Grove-Temperatursensor kann mit dem Raspberry Pi verbunden werden. Schließen Sie den Temperatursensor an. -![Ein Grove-Temperatursensor](../../../../../translated_images/de/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![Ein Grove-Temperatursensor](../../../../../translated_images/de/grove-dht11.07f8eafceee17004.webp) 1. Stecken Sie ein Ende eines Grove-Kabels in die Buchse des Feuchtigkeits- und Temperatursensors. Es passt nur in einer Richtung. 1. Schalten Sie den Raspberry Pi aus und verbinden Sie das andere Ende des Grove-Kabels mit der digitalen Buchse, die mit **D5** auf dem Grove Base Hat des Pi markiert ist. Diese Buchse ist die zweite von links in der Reihe der Buchsen neben den GPIO-Pins. -![Der Grove-Temperatursensor ist mit der Buchse A0 verbunden](../../../../../translated_images/de/pi-temperature-sensor.3ff82fff672c8e565ef25a39d26d111de006b825a7e0867227ef4e7fbff8553c.png) +![Der Grove-Temperatursensor ist mit der Buchse A0 verbunden](../../../../../translated_images/de/pi-temperature-sensor.3ff82fff672c8e56.webp) ## Temperatursensor programmieren diff --git a/translations/de/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md b/translations/de/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md index 48d9b215c..b021f89e3 100644 --- a/translations/de/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md +++ b/translations/de/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md @@ -38,11 +38,11 @@ Fügen Sie die Feuchtigkeits- und Temperatursensoren zur CounterFit-App hinzu. 1. Wählen Sie die Schaltfläche **Add**, um den Feuchtigkeitssensor auf Pin 5 zu erstellen. - ![Die Einstellungen des Feuchtigkeitssensors](../../../../../translated_images/de/counterfit-create-humidity-sensor.2750e27b6f30e09cf4e22101defd5252710717620816ab41ba688f91f757c49a.png) + ![Die Einstellungen des Feuchtigkeitssensors](../../../../../translated_images/de/counterfit-create-humidity-sensor.2750e27b6f30e09c.webp) Der Feuchtigkeitssensor wird erstellt und erscheint in der Sensorenliste. - ![Der erstellte Feuchtigkeitssensor](../../../../../translated_images/de/counterfit-humidity-sensor.7b12f7f339e430cb26c8211d2dba4ef75261b353a01da0932698b5bebd693f27.png) + ![Der erstellte Feuchtigkeitssensor](../../../../../translated_images/de/counterfit-humidity-sensor.7b12f7f339e430cb.webp) 1. Erstellen Sie einen Temperatursensor: @@ -54,11 +54,11 @@ Fügen Sie die Feuchtigkeits- und Temperatursensoren zur CounterFit-App hinzu. 1. Wählen Sie die Schaltfläche **Add**, um den Temperatursensor auf Pin 6 zu erstellen. - ![Die Einstellungen des Temperatursensors](../../../../../translated_images/de/counterfit-create-temperature-sensor.199350ed34f7343d79dccbe95eaf6c11d2121f03d1c35ab9613b330c23f39b29.png) + ![Die Einstellungen des Temperatursensors](../../../../../translated_images/de/counterfit-create-temperature-sensor.199350ed34f7343d.webp) Der Temperatursensor wird erstellt und erscheint in der Sensorenliste. - ![Der erstellte Temperatursensor](../../../../../translated_images/de/counterfit-temperature-sensor.f0560236c96a9016bafce7f6f792476fe3367bc6941a1f7d5811d144d4bcbfff.png) + ![Der erstellte Temperatursensor](../../../../../translated_images/de/counterfit-temperature-sensor.f0560236c96a9016.webp) ## Programmieren der Temperatursensor-App diff --git a/translations/de/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md b/translations/de/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md index 043bd710e..25a5980b7 100644 --- a/translations/de/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md +++ b/translations/de/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md @@ -18,7 +18,7 @@ Der Grove-Temperatursensor kann an den digitalen Port des Wio Terminals angeschl Schließen Sie den Temperatursensor an. -![Ein Grove-Temperatursensor](../../../../../translated_images/de/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![Ein Grove-Temperatursensor](../../../../../translated_images/de/grove-dht11.07f8eafceee17004.webp) 1. Stecken Sie ein Ende eines Grove-Kabels in die Buchse des Feuchtigkeits- und Temperatursensors. Es passt nur in einer Richtung. diff --git a/translations/de/2-farm/lessons/2-detect-soil-moisture/README.md b/translations/de/2-farm/lessons/2-detect-soil-moisture/README.md index 6c8507189..964964064 100644 --- a/translations/de/2-farm/lessons/2-detect-soil-moisture/README.md +++ b/translations/de/2-farm/lessons/2-detect-soil-moisture/README.md @@ -13,7 +13,7 @@ I²C hat einen Bus, der aus 2 Hauptleitungen sowie 2 Stromleitungen besteht: | VCC | Versorgungsspannung | Die Stromversorgung für die Geräte. Diese ist mit den SDA- und SCL-Leitungen verbunden, um deren Stromversorgung über einen Pull-up-Widerstand bereitzustellen, der das Signal ausschaltet, wenn kein Gerät der Controller ist. | | GND | Masse | Dies stellt eine gemeinsame Masse für den Stromkreis bereit. | -![I2C-Bus mit 3 Geräten, die an die SDA- und SCL-Leitungen angeschlossen sind und eine gemeinsame Masseleitung teilen](../../../../../translated_images/de/i2c.83da845dde02256bdd462dbe0d5145461416b74930571b89d1ae142841eeb584.png) +![I2C-Bus mit 3 Geräten, die an die SDA- und SCL-Leitungen angeschlossen sind und eine gemeinsame Masseleitung teilen](../../../../../translated_images/de/i2c.83da845dde02256b.webp) Um Daten zu senden, gibt ein Gerät eine Startbedingung aus, um anzuzeigen, dass es bereit ist, Daten zu senden. Es wird dann zum Controller. Der Controller sendet anschließend die Adresse des Geräts, mit dem er kommunizieren möchte, sowie die Information, ob er Daten lesen oder schreiben möchte. Nachdem die Daten übertragen wurden, sendet der Controller eine Stoppbedingung, um anzuzeigen, dass er fertig ist. Danach kann ein anderes Gerät zum Controller werden und Daten senden oder empfangen. diff --git a/translations/de/2-farm/lessons/2-detect-soil-moisture/assignment.md b/translations/de/2-farm/lessons/2-detect-soil-moisture/assignment.md index 2933cc059..546f467fb 100644 --- a/translations/de/2-farm/lessons/2-detect-soil-moisture/assignment.md +++ b/translations/de/2-farm/lessons/2-detect-soil-moisture/assignment.md @@ -20,7 +20,7 @@ Du musst diese Schritte mehrfach wiederholen, um die benötigten Messwerte zu er Der gravimetrische Bodenfeuchtigkeitsgehalt wird wie folgt berechnet: -![Bodenfeuchtigkeit % ist Gewicht nass minus Gewicht trocken, geteilt durch Gewicht trocken, mal 100](../../../../../translated_images/de/gsm-calculation.6da38c6201eec14e7573bb2647aa18892883193553d23c9d77e5dc681522dfb2.png) +![Bodenfeuchtigkeit % ist Gewicht nass minus Gewicht trocken, geteilt durch Gewicht trocken, mal 100](../../../../../translated_images/de/gsm-calculation.6da38c6201eec14e.webp) * W - das Gewicht des nassen Bodens @@ -29,7 +29,7 @@ Der gravimetrische Bodenfeuchtigkeitsgehalt wird wie folgt berechnet: Zum Beispiel: Angenommen, du hast eine Bodenprobe, die 212g nass und 197g trocken wiegt. -![Die ausgefüllte Berechnung](../../../../../translated_images/de/gsm-calculation-example.99f9803b4f29e97668e7c15412136c0c399ab12dbba0b89596fdae9d8aedb6fb.png) +![Die ausgefüllte Berechnung](../../../../../translated_images/de/gsm-calculation-example.99f9803b4f29e976.webp) * W = 212g * W = 197g diff --git a/translations/de/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md b/translations/de/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md index 583767b7e..3a13d98da 100644 --- a/translations/de/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md +++ b/translations/de/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md @@ -18,13 +18,13 @@ Der Grove-Bodenfeuchtigkeitssensor kann an den Raspberry Pi angeschlossen werden Schließen Sie den Bodenfeuchtigkeitssensor an. -![Ein Grove-Bodenfeuchtigkeitssensor](../../../../../translated_images/de/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![Ein Grove-Bodenfeuchtigkeitssensor](../../../../../translated_images/de/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. Stecken Sie ein Ende eines Grove-Kabels in die Buchse des Bodenfeuchtigkeitssensors. Es passt nur in einer Richtung. 1. Schalten Sie den Raspberry Pi aus und verbinden Sie das andere Ende des Grove-Kabels mit der analogen Buchse, die mit **A0** auf dem Grove Base Hat des Raspberry Pi markiert ist. Diese Buchse befindet sich in der zweiten Position von rechts in der Reihe der Buchsen neben den GPIO-Pins. -![Der Grove-Bodenfeuchtigkeitssensor, angeschlossen an die A0-Buchse](../../../../../translated_images/de/pi-soil-moisture-sensor.fdd7eb2393792cf6739cacf1985d9f55beda16d372f30d0b5a51d586f978a870.png) +![Der Grove-Bodenfeuchtigkeitssensor, angeschlossen an die A0-Buchse](../../../../../translated_images/de/pi-soil-moisture-sensor.fdd7eb2393792cf6.webp) 1. Stecken Sie den Bodenfeuchtigkeitssensor in die Erde. Der Sensor hat eine Markierung für die maximale Einstecktiefe – eine weiße Linie quer über den Sensor. Stecken Sie den Sensor bis zu dieser Linie, aber nicht darüber hinaus, in die Erde. diff --git a/translations/de/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md b/translations/de/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md index 2e650bb48..9cd6883fc 100644 --- a/translations/de/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md +++ b/translations/de/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md @@ -34,11 +34,11 @@ Fügen Sie den Bodenfeuchtigkeitssensor zur CounterFit-App hinzu. 1. Wählen Sie die Schaltfläche **Add**, um den *Soil Moisture*-Sensor auf Pin 0 zu erstellen. - ![Die Einstellungen des Bodenfeuchtigkeitssensors](../../../../../translated_images/de/counterfit-create-soil-moisture-sensor.35266135a5e0ae68b29a684d7db0d2933a8098b2307d197f7c71577b724603aa.png) + ![Die Einstellungen des Bodenfeuchtigkeitssensors](../../../../../translated_images/de/counterfit-create-soil-moisture-sensor.35266135a5e0ae68.webp) Der Bodenfeuchtigkeitssensor wird erstellt und erscheint in der Sensorliste. - ![Der erstellte Bodenfeuchtigkeitssensor](../../../../../translated_images/de/counterfit-soil-moisture-sensor.81742b2de0e9de60a3b3b9a2ff8ecc686d428eb6d71820f27a693be26e5aceee.png) + ![Der erstellte Bodenfeuchtigkeitssensor](../../../../../translated_images/de/counterfit-soil-moisture-sensor.81742b2de0e9de60.webp) ## Das Bodenfeuchtigkeitssensor-Programm schreiben diff --git a/translations/de/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md b/translations/de/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md index 93e36c443..912a38684 100644 --- a/translations/de/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md +++ b/translations/de/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md @@ -18,7 +18,7 @@ Der Grove Bodenfeuchtigkeitssensor kann an den konfigurierbaren Analog-/Digital- Schließen Sie den Bodenfeuchtigkeitssensor an. -![Ein Grove Bodenfeuchtigkeitssensor](../../../../../translated_images/de/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![Ein Grove Bodenfeuchtigkeitssensor](../../../../../translated_images/de/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. Stecken Sie ein Ende eines Grove-Kabels in die Buchse des Bodenfeuchtigkeitssensors. Es passt nur in einer Richtung hinein. diff --git a/translations/de/2-farm/lessons/3-automated-plant-watering/README.md b/translations/de/2-farm/lessons/3-automated-plant-watering/README.md index 0941ab15b..c65b05d35 100644 --- a/translations/de/2-farm/lessons/3-automated-plant-watering/README.md +++ b/translations/de/2-farm/lessons/3-automated-plant-watering/README.md @@ -1,6 +1,6 @@ # Automatische Pflanzenbewässerung -![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-7.30b5f577d3cb8e031238751475cb519c7d6dbaea261b5df4643d086ffb2a03bb.jpg) +![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-7.30b5f577d3cb8e03.webp) > Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version. @@ -32,7 +32,7 @@ IoT-Geräte verwenden eine niedrige Spannung. Während dies für Sensoren und Ni Die Lösung besteht darin, eine Pumpe an eine externe Stromversorgung anzuschließen und einen Aktor zu verwenden, um die Pumpe einzuschalten, ähnlich wie Sie ein Licht einschalten würden. Es braucht nur eine winzige Menge Energie (in Form der Energie in Ihrem Körper), um mit Ihrem Finger einen Schalter umzulegen, und dieser verbindet das Licht mit dem Stromnetz, das mit 110V/240V läuft. -![Ein Lichtschalter schaltet den Strom für ein Licht ein](../../../../../translated_images/de/light-switch.760317ad6ab8bd6d611da5352dfe9c73a94a0822ccec7df3c8bae35da18e1658.png) +![Ein Lichtschalter schaltet den Strom für ein Licht ein](../../../../../translated_images/de/light-switch.760317ad6ab8bd6d.webp) > 🎓 [Netzstrom](https://wikipedia.org/wiki/Mains_electricity) bezeichnet die Elektrizität, die in vielen Teilen der Welt über nationale Infrastrukturen an Haushalte und Unternehmen geliefert wird. @@ -72,7 +72,7 @@ Wenn sich der Hebel bewegt, können Sie normalerweise hören, wie er mit einem g Der Elektromagnet benötigt nicht viel Strom, um aktiviert zu werden und den Hebel zu ziehen. Er kann mit der 3,3V- oder 5V-Ausgabe eines IoT-Entwicklungskits gesteuert werden. Der Ausgangskreis kann jedoch viel mehr Strom führen, je nach Relais, einschließlich Netzspannung oder sogar höherer Leistungsstufen für industrielle Anwendungen. So kann ein IoT-Entwicklungskit ein Bewässerungssystem steuern, von einer kleinen Pumpe für eine einzelne Pflanze bis hin zu einem riesigen industriellen System für eine ganze kommerzielle Farm. -![Ein Grove-Relais mit beschriftetem Steuerkreis, Ausgangskreis und Relais](../../../../../translated_images/de/grove-relay-labelled.293e068f5c3c2a199bd7892f2661fdc9e10c920b535cfed317fbd6d1d4ae1168.png) +![Ein Grove-Relais mit beschriftetem Steuerkreis, Ausgangskreis und Relais](../../../../../translated_images/de/grove-relay-labelled.293e068f5c3c2a19.webp) Das obige Bild zeigt ein Grove-Relais. Der Steuerkreis wird an ein IoT-Gerät angeschlossen und schaltet das Relais mit 3,3V oder 5V ein oder aus. Der Ausgangskreis hat zwei Anschlüsse, von denen einer Strom oder Masse sein kann. Der Ausgangskreis kann bis zu 250V bei 10A handhaben, genug für eine Reihe von netzbetriebenen Geräten. Es gibt Relais, die noch höhere Leistungsstufen bewältigen können. diff --git a/translations/de/2-farm/lessons/3-automated-plant-watering/pi-relay.md b/translations/de/2-farm/lessons/3-automated-plant-watering/pi-relay.md index 0ea5e37c4..49f80b69c 100644 --- a/translations/de/2-farm/lessons/3-automated-plant-watering/pi-relay.md +++ b/translations/de/2-farm/lessons/3-automated-plant-watering/pi-relay.md @@ -18,13 +18,13 @@ Das Grove-Relais kann mit dem Raspberry Pi verbunden werden. Verbinde das Relais. -![Ein Grove-Relais](../../../../../translated_images/de/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) +![Ein Grove-Relais](../../../../../translated_images/de/grove-relay.d426958ca210fbd0.webp) 1. Stecke ein Ende eines Grove-Kabels in die Buchse des Relais. Es passt nur in einer Richtung hinein. 1. Schalte den Raspberry Pi aus und verbinde das andere Ende des Grove-Kabels mit der digitalen Buchse, die mit **D5** auf dem Grove Base Hat markiert ist, der am Pi angebracht ist. Diese Buchse ist die zweite von links in der Reihe der Buchsen neben den GPIO-Pins. Lass den Bodenfeuchtigkeitssensor weiterhin mit der **A0**-Buchse verbunden. -![Das Grove-Relais ist mit der D5-Buchse verbunden, und der Bodenfeuchtigkeitssensor ist mit der A0-Buchse verbunden](../../../../../translated_images/de/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e69ec716cd2719ce117700bd1fc933eaf93476c103c57939b.png) +![Das Grove-Relais ist mit der D5-Buchse verbunden, und der Bodenfeuchtigkeitssensor ist mit der A0-Buchse verbunden](../../../../../translated_images/de/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e.webp) 1. Stecke den Bodenfeuchtigkeitssensor in die Erde, falls er nicht bereits aus der vorherigen Lektion dort steckt. diff --git a/translations/de/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md b/translations/de/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md index 7c66b1e5e..0008ac67b 100644 --- a/translations/de/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md +++ b/translations/de/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md @@ -28,11 +28,11 @@ Fügen Sie das Relais zur CounterFit-App hinzu. 1. Wählen Sie die Schaltfläche **Add**, um das Relais auf Pin 5 zu erstellen. - ![Die Relais-Einstellungen](../../../../../translated_images/de/counterfit-create-relay.fa7c40fd0f2f6afc33b35ea94fcb235085be4861e14e3fe6b9b7bcfc82d1c888.png) + ![Die Relais-Einstellungen](../../../../../translated_images/de/counterfit-create-relay.fa7c40fd0f2f6afc.webp) Das Relais wird erstellt und erscheint in der Aktuatorenliste. - ![Das erstellte Relais](../../../../../translated_images/de/counterfit-relay.bbf74c1dbdc8b9acd983367fcbd06703a402aefef6af54ddb28e11307ba8a12c.png) + ![Das erstellte Relais](../../../../../translated_images/de/counterfit-relay.bbf74c1dbdc8b9ac.webp) ## Relais programmieren diff --git a/translations/de/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md b/translations/de/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md index 9d7ab2bcc..58bd22bdf 100644 --- a/translations/de/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md +++ b/translations/de/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md @@ -18,7 +18,7 @@ Das Grove-Relais kann an den digitalen Port des Wio Terminals angeschlossen werd Schließen Sie das Relais an. -![Ein Grove-Relais](../../../../../translated_images/de/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) +![Ein Grove-Relais](../../../../../translated_images/de/grove-relay.d426958ca210fbd0.webp) 1. Stecken Sie ein Ende eines Grove-Kabels in die Buchse des Relais. Es passt nur in einer Richtung hinein. diff --git a/translations/de/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md b/translations/de/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md index 5561928ef..ce5517292 100644 --- a/translations/de/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md +++ b/translations/de/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md @@ -1,6 +1,6 @@ # Migrieren Sie Ihre Pflanze in die Cloud -![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-8.3f21f3c11159e6a0a376351973ea5724d5de68fa23b4288853a174bed9ac48c3.jpg) +![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-8.3f21f3c11159e6a0.webp) > Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version. @@ -46,8 +46,8 @@ Das konnte sehr teuer sein, eine breite Palette von qualifizierten Mitarbeitern Die Cloud wird oft scherzhaft als "der Computer von jemand anderem" bezeichnet. Die ursprüngliche Idee war einfach – anstatt Computer zu kaufen, mietet man die Computer von jemand anderem. Jemand anderes, ein Cloud-Computing-Anbieter, würde riesige Rechenzentren verwalten. Sie wären verantwortlich für den Kauf und die Installation der Hardware, die Verwaltung von Strom und Kühlung, Netzwerken, Gebäudesicherheit, Hardware- und Software-Updates, alles. Als Kunde mietet man die benötigten Computer, mietet mehr, wenn die Nachfrage steigt, und reduziert die Anzahl, wenn die Nachfrage sinkt. Diese Cloud-Rechenzentren befinden sich weltweit. -![Ein Microsoft Cloud-Rechenzentrum](../../../../../translated_images/de/azure-region-existing.73f704604f2aa6cb9b5a49ed40e93d4fd81ae3f4e6af4a8ca504023902832f56.png) -![Geplante Erweiterung eines Microsoft Cloud-Rechenzentrums](../../../../../translated_images/de/azure-region-planned-expansion.a5074a1e8af74f156a73552d502429e5b126ea5019274d767ecb4b9afdad442b.png) +![Ein Microsoft Cloud-Rechenzentrum](../../../../../translated_images/de/azure-region-existing.73f704604f2aa6cb.webp) +![Geplante Erweiterung eines Microsoft Cloud-Rechenzentrums](../../../../../translated_images/de/azure-region-planned-expansion.a5074a1e8af74f15.webp) Diese Rechenzentren können mehrere Quadratkilometer groß sein. Die obigen Bilder wurden vor einigen Jahren in einem Microsoft Cloud-Rechenzentrum aufgenommen und zeigen die ursprüngliche Größe sowie eine geplante Erweiterung. Das für die Erweiterung geräumte Gebiet umfasst über 5 Quadratkilometer. @@ -108,11 +108,11 @@ IoT-Dienste in der Cloud lösen diese Probleme. Sie werden von großen Cloud-Anb IoT-Geräte verbinden sich entweder über ein Geräte-SDK (eine Bibliothek, die Code für die Funktionen des Dienstes bereitstellt) oder direkt über ein Kommunikationsprotokoll wie MQTT oder HTTP mit einem Cloud-Dienst. Das Geräte-SDK ist normalerweise der einfachste Weg, da es alles für Sie erledigt, wie z. B. die Themen, die veröffentlicht oder abonniert werden sollen, und die Handhabung der Sicherheit. -![Geräte verbinden sich mit einem Dienst über ein Geräte-SDK. Servercode verbindet sich ebenfalls über ein SDK](../../../../../translated_images/de/iot-service-connectivity.7e873847921a5d6fd60d0ba3a943210194518cee0d4e362476624316443275c3.png) +![Geräte verbinden sich mit einem Dienst über ein Geräte-SDK. Servercode verbindet sich ebenfalls über ein SDK](../../../../../translated_images/de/iot-service-connectivity.7e873847921a5d6f.webp) Ihr Gerät kommuniziert dann mit anderen Teilen Ihrer Anwendung über diesen Dienst – ähnlich wie Sie Telemetrie gesendet und Befehle über MQTT empfangen haben. Dies geschieht normalerweise über ein Service-SDK oder eine ähnliche Bibliothek. Nachrichten kommen von Ihrem Gerät zum Dienst, wo andere Komponenten Ihrer Anwendung sie lesen können, und Nachrichten können dann zurück an Ihr Gerät gesendet werden. -![Geräte ohne gültigen geheimen Schlüssel können sich nicht mit dem IoT-Dienst verbinden](../../../../../translated_images/de/iot-service-allowed-denied-connection.818b0063ac213fb84204a7229303764d9b467ca430fb822b4ac2fca267d56726.png) +![Geräte ohne gültigen geheimen Schlüssel können sich nicht mit dem IoT-Dienst verbinden](../../../../../translated_images/de/iot-service-allowed-denied-connection.818b0063ac213fb8.webp) Diese Dienste implementieren Sicherheit, indem sie alle Geräte kennen, die sich verbinden und Daten senden können, entweder indem die Geräte vorab beim Dienst registriert werden oder indem den Geräten geheime Schlüssel oder Zertifikate gegeben werden, die sie verwenden können, um sich beim ersten Verbindungsaufbau selbst zu registrieren. Unbekannte Geräte können sich nicht verbinden; wenn sie es versuchen, lehnt der Dienst die Verbindung ab und ignoriert die von ihnen gesendeten Nachrichten. @@ -124,7 +124,7 @@ Andere Komponenten Ihrer Anwendung können sich mit dem IoT-Dienst verbinden und Jetzt, da Sie ein Azure-Abonnement haben, können Sie sich für einen IoT-Dienst anmelden. Der IoT-Dienst von Microsoft heißt Azure IoT Hub. -![Das Azure IoT Hub Logo](../../../../../translated_images/de/azure-iot-hub-logo.28a19de76d0a1932464d858f7558712bcdace3e5ec69c434d482ed7ce41c3a26.png) +![Das Azure IoT Hub Logo](../../../../../translated_images/de/azure-iot-hub-logo.28a19de76d0a1932.webp) Das folgende Video gibt einen kurzen Überblick über Azure IoT Hub: diff --git a/translations/de/2-farm/lessons/5-migrate-application-to-the-cloud/README.md b/translations/de/2-farm/lessons/5-migrate-application-to-the-cloud/README.md index 520780465..4cda986fa 100644 --- a/translations/de/2-farm/lessons/5-migrate-application-to-the-cloud/README.md +++ b/translations/de/2-farm/lessons/5-migrate-application-to-the-cloud/README.md @@ -1,6 +1,6 @@ # Migrieren Sie Ihre Anwendungslogik in die Cloud -![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-9.dfe99c8e891f48e179724520da9f5794392cf9a625079281ccdcbf09bd85e1b6.jpg) +![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-9.dfe99c8e891f48e1.webp) > Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version. @@ -28,7 +28,7 @@ In dieser Lektion behandeln wir: Serverless, oder serverloses Computing, bedeutet, kleine Codeblöcke zu erstellen, die in der Cloud als Reaktion auf verschiedene Arten von Ereignissen ausgeführt werden. Wenn das Ereignis eintritt, wird Ihr Code ausgeführt und erhält Daten über das Ereignis. Diese Ereignisse können von vielen verschiedenen Quellen stammen, einschließlich Webanfragen, Nachrichten in einer Warteschlange, Änderungen an Daten in einer Datenbank oder Nachrichten, die von IoT-Geräten an einen IoT-Dienst gesendet werden. -![Ereignisse, die von einem IoT-Dienst an einen serverlosen Dienst gesendet werden, alle gleichzeitig von mehreren Funktionen verarbeitet](../../../../../translated_images/de/iot-messages-to-serverless.0194da1cc0732bb7d0f823aed3fce54735c6b1ad3bf36089804d8aaefc0a774f.png) +![Ereignisse, die von einem IoT-Dienst an einen serverlosen Dienst gesendet werden, alle gleichzeitig von mehreren Funktionen verarbeitet](../../../../../translated_images/de/iot-messages-to-serverless.0194da1cc0732bb7.webp) > 💁 Wenn Sie zuvor Datenbank-Trigger verwendet haben, können Sie sich dies ähnlich vorstellen: Code wird durch ein Ereignis wie das Einfügen einer Zeile ausgelöst. @@ -54,7 +54,7 @@ Für IoT-Entwickler ist das serverlose Modell ideal. Sie können eine Funktion s Der serverlose Computing-Dienst von Microsoft heißt Azure Functions. -![Das Azure Functions-Logo](../../../../../translated_images/de/azure-functions-logo.1cfc8e3204c9c44aaf80fcf406fc8544d80d7f00f8d3e8ed6fed764563e17564.png) +![Das Azure Functions-Logo](../../../../../translated_images/de/azure-functions-logo.1cfc8e3204c9c44a.webp) Das kurze Video unten bietet eine Übersicht über Azure Functions. diff --git a/translations/de/2-farm/lessons/6-keep-your-plant-secure/README.md b/translations/de/2-farm/lessons/6-keep-your-plant-secure/README.md index 35a274aa8..01f2168e5 100644 --- a/translations/de/2-farm/lessons/6-keep-your-plant-secure/README.md +++ b/translations/de/2-farm/lessons/6-keep-your-plant-secure/README.md @@ -1,6 +1,6 @@ # Halten Sie Ihre Pflanze sicher -![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-10.829c86b80b9403bb770929ee553a1d293afe50dc23121aaf9be144673ae012cc.jpg) +![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-10.829c86b80b9403bb.webp) > Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version. @@ -52,11 +52,11 @@ Dies sind reale Szenarien, die ständig passieren. Einige Beispiele wurden in fr Wenn ein Gerät eine Verbindung zu einem IoT-Dienst herstellt, verwendet es eine ID, um sich zu identifizieren. Das Problem ist, dass diese ID geklont werden kann – ein Hacker könnte ein bösartiges Gerät einrichten, das dieselbe ID wie ein echtes Gerät verwendet, aber falsche Daten sendet. -![Sowohl gültige als auch bösartige Geräte könnten dieselbe ID verwenden, um Telemetrie zu senden](../../../../../translated_images/de/iot-device-and-hacked-device-connecting.e0671675df74d6d99eb1dedb5a670e606f698efa6202b1ad4c8ae548db299cc6.png) +![Sowohl gültige als auch bösartige Geräte könnten dieselbe ID verwenden, um Telemetrie zu senden](../../../../../translated_images/de/iot-device-and-hacked-device-connecting.e0671675df74d6d9.webp) Die Lösung besteht darin, die gesendeten Daten in ein verschlüsseltes Format umzuwandeln, wobei ein Wert verwendet wird, der nur dem Gerät und der Cloud bekannt ist. Dieser Prozess wird *Verschlüsselung* genannt, und der Wert, der zur Verschlüsselung der Daten verwendet wird, wird als *Verschlüsselungsschlüssel* bezeichnet. -![Wenn Verschlüsselung verwendet wird, werden nur verschlüsselte Nachrichten akzeptiert, andere werden abgelehnt](../../../../../translated_images/de/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f979e46f2849b573564eeb4a4dc5b52f669f62745397492fb.png) +![Wenn Verschlüsselung verwendet wird, werden nur verschlüsselte Nachrichten akzeptiert, andere werden abgelehnt](../../../../../translated_images/de/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f.webp) Der Cloud-Dienst kann die Daten dann mit einem Prozess namens *Entschlüsselung* wieder in ein lesbares Format umwandeln, entweder mit demselben Verschlüsselungsschlüssel oder einem *Entschlüsselungsschlüssel*. Wenn die verschlüsselte Nachricht nicht mit dem Schlüssel entschlüsselt werden kann, wurde das Gerät gehackt und die Nachricht wird abgelehnt. diff --git a/translations/de/3-transport/lessons/1-location-tracking/README.md b/translations/de/3-transport/lessons/1-location-tracking/README.md index c364e09f7..96d60f66e 100644 --- a/translations/de/3-transport/lessons/1-location-tracking/README.md +++ b/translations/de/3-transport/lessons/1-location-tracking/README.md @@ -1,6 +1,6 @@ # Standortverfolgung -![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-11.9fddbac4b664c6d50ab7ac9bb32f1fc3f945f03760e72f7f43938073762fb017.jpg) +![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-11.9fddbac4b664c6d5.webp) > Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version. @@ -63,13 +63,13 @@ Die Erde ist eine Kugel – ein dreidimensionaler Kreis. Aus diesem Grund werden > 💁 Niemand weiß wirklich den ursprünglichen Grund, warum Kreise in 360 Grad unterteilt sind. Die [Wikipedia-Seite über Winkelgrad](https://wikipedia.org/wiki/Degree_(angle)) behandelt einige der möglichen Gründe. -![Breitengradlinien von 90° am Nordpol, 45° auf halbem Weg zwischen Nordpol und Äquator, 0° am Äquator, -45° auf halbem Weg zwischen Äquator und Südpol und -90° am Südpol](../../../../../translated_images/de/latitude-lines.11d8d91dfb2014a57437272d7db7fd6607243098e8685f06e0c5f1ec984cb7eb.png) +![Breitengradlinien von 90° am Nordpol, 45° auf halbem Weg zwischen Nordpol und Äquator, 0° am Äquator, -45° auf halbem Weg zwischen Äquator und Südpol und -90° am Südpol](../../../../../translated_images/de/latitude-lines.11d8d91dfb2014a5.webp) Der Breitengrad wird mit Linien gemessen, die die Erde umkreisen und parallel zum Äquator verlaufen, wobei die nördliche und südliche Hemisphäre jeweils in 90° unterteilt wird. Der Äquator liegt bei 0°, der Nordpol bei 90°, auch bekannt als 90° Nord, und der Südpol bei -90°, oder 90° Süd. Der Längengrad wird als Anzahl der Grad gemessen, die nach Osten und Westen gemessen werden. Der Ursprung des Längengrads bei 0° wird als *Nullmeridian* bezeichnet und wurde 1884 als eine Linie vom Nord- zum Südpol definiert, die durch das [Britische Königliche Observatorium in Greenwich, England](https://wikipedia.org/wiki/Royal_Observatory,_Greenwich) verläuft. -![Längengradlinien, die von -180° westlich des Nullmeridians bis 0° am Nullmeridian und bis 180° östlich des Nullmeridians reichen](../../../../../translated_images/de/longitude-meridians.ab4ef1c91c064586b0185a3c8d39e585903696c6a7d28c098a93a629cddb5d20.png) +![Längengradlinien, die von -180° westlich des Nullmeridians bis 0° am Nullmeridian und bis 180° östlich des Nullmeridians reichen](../../../../../translated_images/de/longitude-meridians.ab4ef1c91c064586.webp) > 🎓 Ein Meridian ist eine imaginäre gerade Linie, die vom Nordpol zum Südpol verläuft und einen Halbkreis bildet. @@ -100,7 +100,7 @@ Koordinaten für einen Punkt werden immer als `Breitengrad, Längengrad` angegeb * Einen Breitengrad von 47.6423109 (47.6423109 Grad nördlich des Äquators) * Einen Längengrad von -122.1390293 (122.1390293 Grad westlich des Nullmeridians). -![Der Microsoft Campus bei 47.6423109,-122.117198](../../../../../translated_images/de/microsoft-gps-location-world.a321d481b010f6adfcca139b2ba0adc53b79f58a540495b8e2ce7f779ea64bfe.png) +![Der Microsoft Campus bei 47.6423109,-122.117198](../../../../../translated_images/de/microsoft-gps-location-world.a321d481b010f6ad.webp) ## Global Positioning Systems (GPS) @@ -112,7 +112,7 @@ GPS-Systeme funktionieren, indem eine Anzahl von Satelliten ein Signal mit der a > 💁 GPS-Sensoren benötigen Antennen, um Funkwellen zu erkennen. Die Antennen, die in Lastwagen und Autos mit eingebautem GPS verwendet werden, sind so positioniert, dass sie ein gutes Signal empfangen, normalerweise an der Windschutzscheibe oder auf dem Dach. Wenn Sie ein separates GPS-System verwenden, wie ein Smartphone oder ein IoT-Gerät, müssen Sie sicherstellen, dass die Antenne im GPS-System oder Telefon eine klare Sicht auf den Himmel hat, z. B. wenn sie an der Windschutzscheibe montiert ist. -![Durch die Kenntnis der Entfernung vom Sensor zu mehreren Satelliten kann der Standort berechnet werden](../../../../../translated_images/de/gps-satellites.04acf1148fe25fbf1586bc2e8ba698e8d79b79a50c36824b38417dd13372b90f.png) +![Durch die Kenntnis der Entfernung vom Sensor zu mehreren Satelliten kann der Standort berechnet werden](../../../../../translated_images/de/gps-satellites.04acf1148fe25fbf.webp) GPS-Satelliten umkreisen die Erde und befinden sich nicht an einem festen Punkt über dem Sensor, sodass Standortdaten auch die Höhe über dem Meeresspiegel sowie Breitengrad und Längengrad umfassen. diff --git a/translations/de/3-transport/lessons/1-location-tracking/pi-gps-sensor.md b/translations/de/3-transport/lessons/1-location-tracking/pi-gps-sensor.md index c191e4b06..cca8070c8 100644 --- a/translations/de/3-transport/lessons/1-location-tracking/pi-gps-sensor.md +++ b/translations/de/3-transport/lessons/1-location-tracking/pi-gps-sensor.md @@ -18,13 +18,13 @@ Der Grove GPS-Sensor kann mit dem Raspberry Pi verbunden werden. Schließen Sie den GPS-Sensor an. -![Ein Grove GPS-Sensor](../../../../../translated_images/de/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![Ein Grove GPS-Sensor](../../../../../translated_images/de/grove-gps-sensor.247943bf69b03f0d.webp) 1. Stecken Sie ein Ende eines Grove-Kabels in die Buchse des GPS-Sensors. Es passt nur in einer Richtung hinein. 1. Schalten Sie den Raspberry Pi aus und verbinden Sie das andere Ende des Grove-Kabels mit der UART-Buchse, die mit **UART** auf dem Grove Base Hat am Pi markiert ist. Diese Buchse befindet sich in der mittleren Reihe, auf der Seite in der Nähe des SD-Karten-Slots, gegenüber den USB-Ports und dem Ethernet-Anschluss. - ![Der Grove GPS-Sensor, verbunden mit der UART-Buchse](../../../../../translated_images/de/pi-gps-sensor.1f99ee2b2f6528915047ec78967bd362e0e4ee0ed594368a3837b9cf9cdaca64.png) + ![Der Grove GPS-Sensor, verbunden mit der UART-Buchse](../../../../../translated_images/de/pi-gps-sensor.1f99ee2b2f652891.webp) 1. Positionieren Sie den GPS-Sensor so, dass die angeschlossene Antenne Sicht zum Himmel hat – idealerweise neben einem offenen Fenster oder draußen. Es ist einfacher, ein klares Signal zu empfangen, wenn nichts die Antenne blockiert. diff --git a/translations/de/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md b/translations/de/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md index 50ae414f5..59dc19a06 100644 --- a/translations/de/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md +++ b/translations/de/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md @@ -38,11 +38,11 @@ Fügen Sie den GPS-Sensor zur CounterFit-App hinzu. 1. Wählen Sie die Schaltfläche **Hinzufügen**, um den GPS-Sensor auf Port `/dev/ttyAMA0` zu erstellen. - ![Die GPS-Sensoreinstellungen](../../../../../translated_images/de/counterfit-create-gps-sensor.6385dc9357d85ad1d47b4abb2525e7651fd498917d25eefc5a72feab09eedc70.png) + ![Die GPS-Sensoreinstellungen](../../../../../translated_images/de/counterfit-create-gps-sensor.6385dc9357d85ad1.webp) Der GPS-Sensor wird erstellt und erscheint in der Sensorenliste. - ![Der erstellte GPS-Sensor](../../../../../translated_images/de/counterfit-gps-sensor.3fbb15af0a5367566f2f11324ef5a6f30861cdf2b497071a5e002b7aa473550e.png) + ![Der erstellte GPS-Sensor](../../../../../translated_images/de/counterfit-gps-sensor.3fbb15af0a536756.webp) ## GPS-Sensor programmieren @@ -102,17 +102,17 @@ Programmieren Sie die GPS-Sensor-App. * Setzen Sie die **Quelle** auf `Lat/Lon` und geben Sie eine explizite Breite, Länge und die Anzahl der Satelliten ein, die für die GPS-Fixierung verwendet werden. Dieser Wert wird nur einmal gesendet, daher aktivieren Sie das Kontrollkästchen **Wiederholen**, damit die Daten jede Sekunde wiederholt werden. - ![Der GPS-Sensor mit ausgewähltem Lat/Lon](../../../../../translated_images/de/counterfit-gps-sensor-latlon.008c867d75464fbe7f84107cc57040df565ac07cb57d2f21db37d087d470197d.png) + ![Der GPS-Sensor mit ausgewähltem Lat/Lon](../../../../../translated_images/de/counterfit-gps-sensor-latlon.008c867d75464fbe.webp) * Setzen Sie die **Quelle** auf `NMEA` und fügen Sie einige NMEA-Sätze in das Textfeld ein. Alle diese Werte werden gesendet, wobei eine Verzögerung von 1 Sekunde vor jedem neuen GGA-(Positionsfixierungs-)Satz besteht. - ![Der GPS-Sensor mit NMEA-Sätzen](../../../../../translated_images/de/counterfit-gps-sensor-nmea.c62eea442171e17e19528b051b104cfcecdc9cd18db7bc72920f29821ae63f73.png) + ![Der GPS-Sensor mit NMEA-Sätzen](../../../../../translated_images/de/counterfit-gps-sensor-nmea.c62eea442171e17e.webp) Sie können ein Tool wie [nmeagen.org](https://www.nmeagen.org) verwenden, um diese Sätze zu generieren, indem Sie auf einer Karte zeichnen. Diese Werte werden nur einmal gesendet, daher aktivieren Sie das Kontrollkästchen **Wiederholen**, damit die Daten eine Sekunde nach dem Senden aller Werte wiederholt werden. * Setzen Sie die **Quelle** auf GPX-Datei und laden Sie eine GPX-Datei mit Streckenpositionen hoch. Sie können GPX-Dateien von einer Reihe beliebter Karten- und Wanderseiten wie [AllTrails](https://www.alltrails.com/) herunterladen. Diese Dateien enthalten mehrere GPS-Positionen als Route, und der GPS-Sensor gibt jede neue Position in Intervallen von 1 Sekunde zurück. - ![Der GPS-Sensor mit einer GPX-Datei](../../../../../translated_images/de/counterfit-gps-sensor-gpxfile.8310b063ce8a425ccc8ebeec8306aeac5e8e55207f007d52c6e1194432a70cd9.png) + ![Der GPS-Sensor mit einer GPX-Datei](../../../../../translated_images/de/counterfit-gps-sensor-gpxfile.8310b063ce8a425c.webp) Diese Werte werden nur einmal gesendet, daher aktivieren Sie das Kontrollkästchen **Wiederholen**, damit die Daten eine Sekunde nach dem Senden aller Werte wiederholt werden. diff --git a/translations/de/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md b/translations/de/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md index e22f1045e..5532b35ff 100644 --- a/translations/de/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md +++ b/translations/de/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md @@ -18,7 +18,7 @@ Der Grove GPS-Sensor kann an das Wio Terminal angeschlossen werden. Schließen Sie den GPS-Sensor an. -![Ein Grove GPS-Sensor](../../../../../translated_images/de/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![Ein Grove GPS-Sensor](../../../../../translated_images/de/grove-gps-sensor.247943bf69b03f0d.webp) 1. Stecken Sie ein Ende eines Grove-Kabels in die Buchse des GPS-Sensors. Es passt nur in einer Richtung. diff --git a/translations/de/3-transport/lessons/2-store-location-data/README.md b/translations/de/3-transport/lessons/2-store-location-data/README.md index a8b147fa4..437a0dbb5 100644 --- a/translations/de/3-transport/lessons/2-store-location-data/README.md +++ b/translations/de/3-transport/lessons/2-store-location-data/README.md @@ -1,6 +1,6 @@ # Speichere Standortdaten -![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-12.ca7f53039712a3ec14ad6474d8445361c84adab643edc53fa6269b77895606bb.jpg) +![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-12.ca7f53039712a3ec.webp) > Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version. @@ -75,7 +75,7 @@ NoSQL-Datenbanken werden als NoSQL bezeichnet, da sie nicht die gleiche starre S > 💁 Trotz ihres Namens erlauben einige NoSQL-Datenbanken die Verwendung von SQL, um die Daten abzufragen. -![Dokumente in Ordnern in einer NoSQL-Datenbank](../../../../../translated_images/de/noqsl-database.62d24ccf5b73f60d35c245a8533f1c7147c0928e955b82cb290b2e184bb434df.png) +![Dokumente in Ordnern in einer NoSQL-Datenbank](../../../../../translated_images/de/noqsl-database.62d24ccf5b73f60d.webp) NoSQL-Datenbanken haben kein vordefiniertes Schema, das einschränkt, wie Daten gespeichert werden. Stattdessen können Sie beliebige unstrukturierte Daten einfügen, normalerweise in Form von JSON-Dokumenten. Diese Dokumente können in Ordnern organisiert werden, ähnlich wie Dateien auf Ihrem Computer. Jedes Dokument kann unterschiedliche Felder im Vergleich zu anderen Dokumenten haben – wenn Sie beispielsweise IoT-Daten von Ihren landwirtschaftlichen Fahrzeugen speichern, könnten einige Felder für Beschleunigungs- und Geschwindigkeitsdaten haben, andere Felder für die Temperatur im Anhänger. Wenn Sie einen neuen Lastwagentyp hinzufügen, z. B. einen mit eingebauten Waagen zur Verfolgung des Gewichts der transportierten Produkte, könnte Ihr IoT-Gerät dieses neue Feld hinzufügen, und es könnte gespeichert werden, ohne dass Änderungen an der Datenbank erforderlich sind. @@ -89,7 +89,7 @@ In dieser Lektion werden Sie NoSQL-Speicher verwenden, um IoT-Daten zu speichern In der letzten Lektion haben Sie GPS-Daten von einem GPS-Sensor erfasst, der mit Ihrem IoT-Gerät verbunden ist. Um diese IoT-Daten in der Cloud zu speichern, müssen Sie sie an einen IoT-Dienst senden. Sie werden erneut Azure IoT Hub verwenden, denselben IoT-Cloud-Dienst, den Sie im vorherigen Projekt verwendet haben. -![Senden von GPS-Telemetrie von einem IoT-Gerät an IoT Hub](../../../../../translated_images/de/gps-telemetry-iot-hub.8115335d51cd2c1285d20e9d1b18cf685e59a8e093e7797291ef173445af6f3d.png) +![Senden von GPS-Telemetrie von einem IoT-Gerät an IoT Hub](../../../../../translated_images/de/gps-telemetry-iot-hub.8115335d51cd2c12.webp) ### Aufgabe – GPS-Daten an einen IoT-Hub senden @@ -171,7 +171,7 @@ Kalte Pfaddaten werden in Data Warehouses gespeichert – Datenbanken, die für Sobald Daten in Ihren IoT-Hub fließen, können Sie serverlosen Code schreiben, um auf Ereignisse zu hören, die an den Event-Hub-kompatiblen Endpunkt veröffentlicht werden. Dies ist der warme Pfad – diese Daten werden gespeichert und in der nächsten Lektion für Berichte über die Reise verwendet. -![Senden von GPS-Telemetrie von einem IoT-Gerät an IoT Hub, dann an Azure Functions über einen Event-Hub-Trigger](../../../../../translated_images/de/gps-telemetry-iot-hub-functions.24d3fa5592455e9f4e2fe73856b40c3915a292b90263c31d652acfd976cfedd8.png) +![Senden von GPS-Telemetrie von einem IoT-Gerät an IoT Hub, dann an Azure Functions über einen Event-Hub-Trigger](../../../../../translated_images/de/gps-telemetry-iot-hub-functions.24d3fa5592455e9f.webp) ### Aufgabe – GPS-Ereignisse mit serverlosem Code verarbeiten @@ -193,7 +193,7 @@ Sobald Daten in Ihren IoT-Hub fließen, können Sie serverlosen Code schreiben, ## Azure Storage Accounts -![Das Azure Storage-Logo](../../../../../translated_images/de/azure-storage-logo.605c0f602c640d482a80f1b35a2629a32d595711b7ab1d7ceea843250615ff32.png) +![Das Azure Storage-Logo](../../../../../translated_images/de/azure-storage-logo.605c0f602c640d48.webp) Azure Storage Accounts ist ein universeller Speicherdienst, der Daten auf verschiedene Arten speichern kann. Sie können Daten als Blobs, in Warteschlangen, in Tabellen oder als Dateien speichern – und das alles gleichzeitig. diff --git a/translations/de/3-transport/lessons/3-visualize-location-data/README.md b/translations/de/3-transport/lessons/3-visualize-location-data/README.md index 0563d5d08..f03f1cbc9 100644 --- a/translations/de/3-transport/lessons/3-visualize-location-data/README.md +++ b/translations/de/3-transport/lessons/3-visualize-location-data/README.md @@ -1,6 +1,6 @@ # Standortdaten visualisieren -![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-13.a259db1485021be7d7c72e90842fbe0ab977529e8684c179b5fb1ea75e92b3ef.jpg) +![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-13.a259db1485021be7.webp) > Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version. @@ -64,11 +64,11 @@ Ein einfaches Beispiel: Im Farmprojekt haben Sie Bodenfeuchtigkeitswerte erfasst Für einen Menschen ist es schwierig, diese Daten zu verstehen. Es ist eine Wand aus Zahlen ohne Bedeutung. Als erster Schritt zur Visualisierung dieser Daten können sie in einem Liniendiagramm dargestellt werden: -![Ein Liniendiagramm der obigen Daten](../../../../../translated_images/de/chart-soil-moisture.fd6d9d0cdc0b5f75e78038ecb8945dfc84b38851359de99d84b16e3336d6d7c2.png) +![Ein Liniendiagramm der obigen Daten](../../../../../translated_images/de/chart-soil-moisture.fd6d9d0cdc0b5f75.webp) Dies kann weiter verbessert werden, indem eine Linie hinzugefügt wird, die anzeigt, wann das automatische Bewässerungssystem bei einem Bodenfeuchtigkeitswert von 450 eingeschaltet wurde: -![Ein Liniendiagramm der Bodenfeuchtigkeit mit einer Linie bei 450](../../../../../translated_images/de/chart-soil-moisture-relay.fbb391236d34a64d0abf1df396e9197e0a24df14150620b9cc820a64a55c9326.png) +![Ein Liniendiagramm der Bodenfeuchtigkeit mit einer Linie bei 450](../../../../../translated_images/de/chart-soil-moisture-relay.fbb391236d34a64d.webp) Dieses Diagramm zeigt sehr schnell nicht nur die Bodenfeuchtigkeitswerte, sondern auch die Punkte, an denen das Bewässerungssystem eingeschaltet wurde. @@ -84,7 +84,7 @@ Beim Arbeiten mit GPS-Daten kann die klarste Visualisierung darin bestehen, die Die Arbeit mit Karten ist eine interessante Übung, und es gibt viele Optionen wie Bing Maps, Leaflet, Open Street Maps und Google Maps. In dieser Lektion lernen Sie [Azure Maps](https://azure.microsoft.com/services/azure-maps/?WT.mc_id=academic-17441-jabenn) kennen und wie Sie damit Ihre GPS-Daten anzeigen können. -![Das Azure Maps-Logo](../../../../../translated_images/de/azure-maps-logo.35d01dcfbd81fe6140e94257aaa1538f785a58c91576d14e0ebe7a2f6c694b99.png) +![Das Azure Maps-Logo](../../../../../translated_images/de/azure-maps-logo.35d01dcfbd81fe61.webp) Azure Maps ist "eine Sammlung von Geodiensten und SDKs, die aktuelle Kartendaten verwenden, um geografischen Kontext für Web- und mobile Anwendungen bereitzustellen." Entwicklern werden Tools zur Verfügung gestellt, um schöne, interaktive Karten zu erstellen, die Dinge wie empfohlene Verkehrswege, Informationen zu Verkehrsvorfällen, Indoor-Navigation, Suchfunktionen, Höheninformationen, Wetterdienste und mehr bieten können. @@ -185,7 +185,7 @@ Nun können Sie den nächsten Schritt machen, nämlich Ihre Karte auf einer Webs Wenn Sie Ihre `index.html`-Seite in einem Webbrowser öffnen, sollten Sie eine Karte sehen, die auf den Bereich Seattle fokussiert ist. - ![Eine Karte, die Seattle, eine Stadt im Bundesstaat Washington, USA, zeigt](../../../../../translated_images/de/map-image.8fb2c53eb23ef39c1c0a4410a5282e879b3b452b707eb066ff04c5488d3d72b7.png) + ![Eine Karte, die Seattle, eine Stadt im Bundesstaat Washington, USA, zeigt](../../../../../translated_images/de/map-image.8fb2c53eb23ef39c.webp) ✅ Experimentieren Sie mit den Zoom- und Center-Parametern, um Ihre Kartendarstellung zu ändern. Sie können verschiedene Koordinaten entsprechend der Breite und Länge Ihrer Daten hinzufügen, um die Karte neu zu zentrieren. @@ -319,7 +319,7 @@ Wenn du eine Anfrage an deinen Speicher sendest, um die Daten abzurufen, könnte 1. Lade die HTML-Seite in deinem Browser. Sie wird die Karte laden, dann alle GPS-Daten aus dem Speicher abrufen und sie auf der Karte darstellen. - ![Eine Karte des Saint Edward State Park in der Nähe von Seattle, mit Kreisen, die einen Pfad entlang des Parkrands zeigen](../../../../../translated_images/de/map-path.896832e72dc696ffe20650e4051027d4855442d955f93fdbb80bb417ca8a406f.png) + ![Eine Karte des Saint Edward State Park in der Nähe von Seattle, mit Kreisen, die einen Pfad entlang des Parkrands zeigen](../../../../../translated_images/de/map-path.896832e72dc696ff.webp) > 💁 Du findest diesen Code im [code](../../../../../3-transport/lessons/3-visualize-location-data/code)-Ordner. diff --git a/translations/de/3-transport/lessons/4-geofences/README.md b/translations/de/3-transport/lessons/4-geofences/README.md index aada01b23..824b2e686 100644 --- a/translations/de/3-transport/lessons/4-geofences/README.md +++ b/translations/de/3-transport/lessons/4-geofences/README.md @@ -1,6 +1,6 @@ # Geofences -![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-14.63980c5150ae3c153e770fb71d044c1845dce79248d86bed9fc525adf3ede73c.jpg) +![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-14.63980c5150ae3c15.webp) > Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version. @@ -35,7 +35,7 @@ In dieser Lektion behandeln wir: Ein Geofence ist ein virtueller Umkreis für eine reale geografische Region. Geofences können Kreise sein, die als Punkt und Radius definiert sind (zum Beispiel ein Kreis mit einem Durchmesser von 100 m um ein Gebäude), oder ein Polygon, das einen Bereich wie eine Schulzone, Stadtgrenzen oder einen Universitäts- oder Bürocampus abdeckt. -![Einige Beispiele für Geofences, die einen kreisförmigen Geofence um den Microsoft Company Store und einen polygonalen Geofence um den Microsoft West Campus zeigen](../../../../../translated_images/de/geofence-examples.172fbc534665769f6e1a1ddcf75e3b25183cd10354c80cc603ba44b635390e1a.png) +![Einige Beispiele für Geofences, die einen kreisförmigen Geofence um den Microsoft Company Store und einen polygonalen Geofence um den Microsoft West Campus zeigen](../../../../../translated_images/de/geofence-examples.172fbc534665769f.webp) > 💁 Möglicherweise haben Sie bereits Geofences verwendet, ohne es zu wissen. Wenn Sie eine Erinnerung mit der iOS-Erinnerungs-App oder Google Keep basierend auf einem Standort eingerichtet haben, haben Sie einen Geofence verwendet. Diese Apps richten basierend auf dem angegebenen Standort einen Geofence ein und benachrichtigen Sie, wenn Ihr Telefon den Geofence betritt. @@ -212,7 +212,7 @@ Es ist wichtig, die Entfernung zum Rand des Geofence zu kennen und diese mit and Zum Beispiel stellen Sie sich GPS-Messungen vor, die zeigen, dass ein Fahrzeug auf einer Straße fährt, die neben einem Geofence verläuft. Wenn ein einzelner GPS-Wert ungenau ist und das Fahrzeug innerhalb des Geofence platziert, obwohl es keinen Fahrzeugzugang gibt, kann dies ignoriert werden. -![Eine GPS-Spur, die zeigt, wie ein Fahrzeug den Microsoft Campus auf der 520 passiert, mit GPS-Messungen entlang der Straße, außer einer auf dem Campus, innerhalb eines Geofence](../../../../../translated_images/de/geofence-crossing-inaccurate-gps.6a3ed911202ad9cabb66d3964888cec03a42c61d5b8f536ad5bdc99716b370f5.png) +![Eine GPS-Spur, die zeigt, wie ein Fahrzeug den Microsoft Campus auf der 520 passiert, mit GPS-Messungen entlang der Straße, außer einer auf dem Campus, innerhalb eines Geofence](../../../../../translated_images/de/geofence-crossing-inaccurate-gps.6a3ed911202ad9ca.webp) Auf dem obigen Bild ist ein Geofence über einem Teil des Microsoft-Campus zu sehen. Die rote Linie zeigt einen LKW, der entlang der 520 fährt, mit Kreisen, die die GPS-Messungen darstellen. Die meisten dieser Messungen sind genau und entlang der 520, mit einer ungenauen Messung innerhalb des Geofence. Es ist unmöglich, dass diese Messung korrekt ist – es gibt keine Straßen, auf denen der LKW plötzlich von der 520 auf den Campus abbiegen und dann wieder zurück auf die 520 fahren könnte. Der Code, der diesen Geofence überprüft, muss die vorherigen Messungen berücksichtigen, bevor er auf die Ergebnisse des Geofence-Tests reagiert. ✅ Welche zusätzlichen Daten würden Sie benötigen, um zu überprüfen, ob eine GPS-Messung als korrekt angesehen werden kann? @@ -284,7 +284,7 @@ Wie Sie sich aus früheren Lektionen erinnern, ermöglicht der IoT-Hub das Wiede Die Antwort lautet: Er weiß es nicht! Stattdessen können Sie mehrere separate Verbindungen definieren, um Ereignisse zu lesen, und jede kann die Wiedergabe von ungelesenen Nachrichten verwalten. Diese werden *Consumer Groups* genannt. Wenn Sie sich mit dem Endpunkt verbinden, können Sie angeben, welche Consumer Group Sie verwenden möchten. Jede Komponente Ihrer Anwendung wird sich mit einer anderen Consumer Group verbinden. -![Ein IoT-Hub mit 3 Consumer Groups, die dieselben Nachrichten an 3 verschiedene Functions-Apps verteilen](../../../../../translated_images/de/consumer-groups.a3262e26fc27ba2092863678ad57af15c7223416e388a23f330c058cf4358630.png) +![Ein IoT-Hub mit 3 Consumer Groups, die dieselben Nachrichten an 3 verschiedene Functions-Apps verteilen](../../../../../translated_images/de/consumer-groups.a3262e26fc27ba20.webp) Theoretisch können bis zu 5 Anwendungen mit jeder Consumer Group verbunden werden, und sie erhalten alle Nachrichten, wenn diese eintreffen. Es ist jedoch Best Practice, dass nur eine Anwendung auf jede Consumer Group zugreift, um doppelte Nachrichtenverarbeitung zu vermeiden und sicherzustellen, dass beim Neustart alle wartenden Nachrichten korrekt verarbeitet werden. Wenn Sie beispielsweise Ihre Functions-App lokal starten und gleichzeitig in der Cloud ausführen, würden beide Nachrichten verarbeiten, was zu doppelten Blobs im Speicher führt. diff --git a/translations/de/4-manufacturing/lessons/1-train-fruit-detector/README.md b/translations/de/4-manufacturing/lessons/1-train-fruit-detector/README.md index dd1e8f051..196d460be 100644 --- a/translations/de/4-manufacturing/lessons/1-train-fruit-detector/README.md +++ b/translations/de/4-manufacturing/lessons/1-train-fruit-detector/README.md @@ -1,6 +1,6 @@ # Trainiere einen Obstqualitätsdetektor -![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-15.843d21afdc6fb2bba70cd9db7b7d2f91598859fafda2078b0bdc44954194b6c0.jpg) +![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-15.843d21afdc6fb2bb.webp) > Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version. @@ -38,7 +38,7 @@ Nicht alle Ernten reifen gleichmäßig. Tomaten beispielsweise können noch grü Der Aufstieg der automatisierten Ernte hat die Sortierung der Produkte von der Ernte in die Fabrik verlagert. Lebensmittel wurden auf langen Förderbändern transportiert, wobei Teams von Menschen die Produkte durchsuchten und alles entfernten, was nicht den Qualitätsstandards entsprach. Die Ernte wurde durch Maschinen günstiger, aber es gab immer noch Kosten für die manuelle Sortierung der Lebensmittel. -![Wenn eine rote Tomate erkannt wird, setzt sie ihre Reise ungehindert fort. Wenn eine grüne Tomate erkannt wird, wird sie durch einen Hebel in einen Abfallbehälter geschleudert.](../../../../../translated_images/de/optical-tomato-sorting.61aa134bdda4e5b1bfb16a212c1e35a6ef0c426cbb8b1c975f79d7bfbf48d068.png) +![Wenn eine rote Tomate erkannt wird, setzt sie ihre Reise ungehindert fort. Wenn eine grüne Tomate erkannt wird, wird sie durch einen Hebel in einen Abfallbehälter geschleudert.](../../../../../translated_images/de/optical-tomato-sorting.61aa134bdda4e5b1.webp) Die nächste Entwicklung war der Einsatz von Maschinen zur Sortierung, entweder in die Erntemaschinen integriert oder in den Verarbeitungsanlagen. Die erste Generation dieser Maschinen verwendete optische Sensoren, um Farben zu erkennen, und steuerte Aktuatoren, um grüne Tomaten mit Hebeln oder Luftstößen in einen Abfallbehälter zu befördern, während rote Tomaten auf einem Netzwerk von Förderbändern weitergeleitet wurden. @@ -62,7 +62,7 @@ Beispielsweise könnten Sie einem Modell Millionen von Bildern unreifer Bananen > 🎓 Die Ergebnisse von ML-Modellen werden als *Vorhersagen* bezeichnet. -![2 Bananen, eine reife mit einer Vorhersage von 99,7% reif, 0,3% unreif, und eine unreife mit einer Vorhersage von 1,4% reif, 98,6% unreif.](../../../../../translated_images/de/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50ece4e4589e724b142da0681f35470fe3db3f7d51240f69c85.png) +![2 Bananen, eine reife mit einer Vorhersage von 99,7% reif, 0,3% unreif, und eine unreife mit einer Vorhersage von 1,4% reif, 98,6% unreif.](../../../../../translated_images/de/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50e.webp) ML-Modelle geben keine binären Antworten, sondern Wahrscheinlichkeiten. Beispielsweise könnte ein Modell ein Bild einer Banane erhalten und `reif` mit 99,7% und `unreif` mit 0,3% vorhersagen. Ihr Code würde dann die beste Vorhersage auswählen und entscheiden, dass die Banane reif ist. @@ -90,7 +90,7 @@ Es gibt eine Vielzahl von Tools, die Ihnen dabei helfen können, darunter cloudb Custom Vision ist ein cloudbasiertes Tool zum Trainieren von Bildklassifikatoren. Es ermöglicht Ihnen, einen Klassifikator mit nur einer kleinen Anzahl von Bildern zu trainieren. Sie können Bilder über ein Webportal, eine Web-API oder ein SDK hochladen und jedem Bild ein *Tag* zuweisen, das die Klassifikation dieses Bildes angibt. Anschließend trainieren Sie das Modell und testen es, um zu sehen, wie gut es funktioniert. Sobald Sie mit dem Modell zufrieden sind, können Sie Versionen davon veröffentlichen, die über eine Web-API oder ein SDK zugänglich sind. -![Das Azure Custom Vision-Logo](../../../../../translated_images/de/custom-vision-logo.d3d4e7c8a87ec9daf825e72e210576c3cbf60312577be7a139e22dd97ab7f1e6.png) +![Das Azure Custom Vision-Logo](../../../../../translated_images/de/custom-vision-logo.d3d4e7c8a87ec9da.webp) > 💁 Sie können ein Custom Vision-Modell mit nur 5 Bildern pro Klassifikation trainieren, aber mehr ist besser. Mit mindestens 30 Bildern erzielen Sie bessere Ergebnisse. @@ -146,7 +146,7 @@ Um Custom Vision zu verwenden, müssen Sie zunächst zwei Cognitive Services-Res Stellen Sie beim Erstellen Ihres Projekts sicher, dass Sie die zuvor erstellte Ressource `fruit-quality-detector-training` verwenden. Verwenden Sie den Projekttyp *Klassifikation*, den Klassifikationstyp *Multiklassen* und die Domäne *Lebensmittel*. - ![Die Einstellungen für das Custom Vision-Projekt mit dem Namen fruit-quality-detector, keiner Beschreibung, der Ressource fruit-quality-detector-training, dem Projekttyp Klassifikation, dem Klassifikationstyp Multiklassen und der Domäne Lebensmittel.](../../../../../translated_images/de/custom-vision-create-project.cf46325b92d8b131089f6647cf5e07b664cb77850e106d66e3c057b6b69756c6.png) + ![Die Einstellungen für das Custom Vision-Projekt mit dem Namen fruit-quality-detector, keiner Beschreibung, der Ressource fruit-quality-detector-training, dem Projekttyp Klassifikation, dem Klassifikationstyp Multiklassen und der Domäne Lebensmittel.](../../../../../translated_images/de/custom-vision-create-project.cf46325b92d8b131.webp) ✅ Nehmen Sie sich etwas Zeit, um die Benutzeroberfläche von Custom Vision für Ihren Bildklassifikator zu erkunden. @@ -164,7 +164,7 @@ Bildklassifikatoren arbeiten mit sehr niedriger Auflösung. Zum Beispiel kann Cu * Verwenden Sie 2 reife Bananen und machen Sie einige Bilder von jeder aus verschiedenen Blickwinkeln. Machen Sie mindestens 7 Bilder (5 zum Trainieren, 2 zum Testen), idealerweise mehr. - ![Fotos von 2 verschiedenen Bananen](../../../../../translated_images/de/banana-training-images.530eb203346d73bc23b8b990fb4609470bf4ff7c942ccc13d4cfffeed9be1ad4.png) + ![Fotos von 2 verschiedenen Bananen](../../../../../translated_images/de/banana-training-images.530eb203346d73bc.webp) * Wiederholen Sie denselben Vorgang mit 2 unreifen Bananen. @@ -174,7 +174,7 @@ Bildklassifikatoren arbeiten mit sehr niedriger Auflösung. Zum Beispiel kann Cu 1. Folgen Sie dem Abschnitt [Bilder hochladen und taggen im Quickstart zum Erstellen eines Klassifikators in der Microsoft-Dokumentation](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), um Ihre Trainingsbilder hochzuladen. Taggen Sie die reifen Früchte als `ripe` und die unreifen Früchte als `unripe`. - ![Die Upload-Dialoge zeigen den Upload von Bildern reifer und unreifer Bananen](../../../../../translated_images/de/image-upload-bananas.0751639f3815e0ec42bdbc6254d1e4357a185834d1ae10c9948a0e7d6d336695.png) + ![Die Upload-Dialoge zeigen den Upload von Bildern reifer und unreifer Bananen](../../../../../translated_images/de/image-upload-bananas.0751639f3815e0ec.webp) 1. Folgen Sie dem Abschnitt [Klassifikator trainieren im Quickstart zum Erstellen eines Klassifikators in der Microsoft-Dokumentation](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#train-the-classifier), um den Bildklassifikator mit Ihren hochgeladenen Bildern zu trainieren. @@ -192,7 +192,7 @@ Sobald Ihr Klassifikator trainiert ist, können Sie ihn testen, indem Sie ihm ei 1. Folgen Sie der [Dokumentation zum Testen Ihres Modells in der Microsoft-Dokumentation](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/test-your-model?WT.mc_id=academic-17441-jabenn#test-your-model), um Ihren Bildklassifikator zu testen. Verwenden Sie die Testbilder, die Sie zuvor erstellt haben, und nicht die Bilder, die Sie für das Training verwendet haben. - ![Eine unreife Banane wird mit 98,9 % Wahrscheinlichkeit als unreif und mit 1,1 % Wahrscheinlichkeit als reif vorhergesagt](../../../../../translated_images/de/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64886422438850ea14f0be6ac918c217ea3b255c685abfabe7.png) + ![Eine unreife Banane wird mit 98,9 % Wahrscheinlichkeit als unreif und mit 1,1 % Wahrscheinlichkeit als reif vorhergesagt](../../../../../translated_images/de/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64.webp) 1. Testen Sie alle Testbilder, die Ihnen zur Verfügung stehen, und beobachten Sie die Wahrscheinlichkeiten. diff --git a/translations/de/4-manufacturing/lessons/2-check-fruit-from-device/README.md b/translations/de/4-manufacturing/lessons/2-check-fruit-from-device/README.md index 16084e1d6..f6ba3689b 100644 --- a/translations/de/4-manufacturing/lessons/2-check-fruit-from-device/README.md +++ b/translations/de/4-manufacturing/lessons/2-check-fruit-from-device/README.md @@ -1,6 +1,6 @@ # Überprüfung der Obstqualität mit einem IoT-Gerät -![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-16.215daf18b00631fbdfd64c6fc2dc6044dff5d544288825d8076f9fb83d964c23.jpg) +![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-16.215daf18b00631fb.webp) > Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version. @@ -26,7 +26,7 @@ In dieser Lektion behandeln wir: Kamerasensoren sind, wie der Name schon sagt, Kameras, die Sie mit Ihrem IoT-Gerät verbinden können. Sie können Standbilder aufnehmen oder Streaming-Videos erfassen. Einige liefern Rohbilddaten, andere komprimieren die Bilddaten in eine Bilddatei wie JPEG oder PNG. Normalerweise sind die Kameras, die mit IoT-Geräten funktionieren, viel kleiner und haben eine geringere Auflösung als die, die Sie vielleicht gewohnt sind. Es gibt jedoch auch hochauflösende Kameras, die mit den besten Smartphones konkurrieren können. Sie können verschiedene Wechselobjektive, Mehrkamerasysteme, Infrarot-Wärmekameras oder UV-Kameras erhalten. -![Das Licht einer Szene passiert eine Linse und wird auf einen CMOS-Sensor fokussiert](../../../../../translated_images/de/cmos-sensor.75f9cd74decb137149a4c9ea825251a4549497d67c0ae2776159e6102bb53aa9.png) +![Das Licht einer Szene passiert eine Linse und wird auf einen CMOS-Sensor fokussiert](../../../../../translated_images/de/cmos-sensor.75f9cd74decb1371.webp) Die meisten Kamerasensoren verwenden Bildsensoren, bei denen jedes Pixel eine Fotodiode ist. Eine Linse fokussiert das Bild auf den Bildsensor, und Tausende oder Millionen von Fotodioden erfassen das Licht, das auf jede einzelne fällt, und zeichnen dies als Pixeldaten auf. @@ -74,7 +74,7 @@ Iterationen werden über das Custom Vision-Portal veröffentlicht. 1. Wählen Sie die Schaltfläche **Veröffentlichen** für die Iteration aus. - ![Die Schaltfläche Veröffentlichen](../../../../../translated_images/de/custom-vision-publish-button.b7174e1977b0c33b8b72d4e5b1326c779e0af196f3849d09985ee2d7d5493a39.png) + ![Die Schaltfläche Veröffentlichen](../../../../../translated_images/de/custom-vision-publish-button.b7174e1977b0c33b.webp) 1. Legen Sie im Dialogfeld *Modell veröffentlichen* die *Vorhersageressource* auf die Ressource `fruit-quality-detector-prediction` fest, die Sie in der letzten Lektion erstellt haben. Lassen Sie den Namen als `Iteration2` und wählen Sie die Schaltfläche **Veröffentlichen** aus. @@ -88,7 +88,7 @@ Iterationen werden über das Custom Vision-Portal veröffentlicht. Kopieren Sie auch den Wert *Vorhersage-Schlüssel*. Dies ist ein sicherer Schlüssel, den Sie übergeben müssen, wenn Sie das Modell aufrufen. Nur Anwendungen, die diesen Schlüssel übergeben, dürfen das Modell verwenden, alle anderen Anwendungen werden abgelehnt. - ![Das Dialogfeld Vorhersage-API zeigt die URL und den Schlüssel](../../../../../translated_images/de/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![Das Dialogfeld Vorhersage-API zeigt die URL und den Schlüssel](../../../../../translated_images/de/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ Wenn eine neue Iteration veröffentlicht wird, hat sie einen anderen Namen. Wie würden Sie die Iteration ändern, die ein IoT-Gerät verwendet? @@ -109,7 +109,7 @@ Es kann sein, dass die Ergebnisse, die Sie mit der Kamera Ihres IoT-Geräts erha Um die besten Ergebnisse für einen Bildklassifikator zu erzielen, sollten Sie das Modell mit Bildern trainieren, die den für Vorhersagen verwendeten Bildern so ähnlich wie möglich sind. Wenn Sie beispielsweise Ihre Handykamera verwendet haben, um Bilder für das Training aufzunehmen, werden die Bildqualität, Schärfe und Farben anders sein als bei einer Kamera, die mit einem IoT-Gerät verbunden ist. -![2 Bananenbilder, eines mit niedriger Auflösung und schlechter Beleuchtung von einem IoT-Gerät, und eines mit hoher Auflösung und guter Beleuchtung von einem Telefon](../../../../../translated_images/de/banana-picture-compare.174df164dc326a42cf7fb051a7497e6113c620e91552d92ca914220305d47d9a.png) +![2 Bananenbilder, eines mit niedriger Auflösung und schlechter Beleuchtung von einem IoT-Gerät, und eines mit hoher Auflösung und guter Beleuchtung von einem Telefon](../../../../../translated_images/de/banana-picture-compare.174df164dc326a42.webp) Im obigen Bild wurde das Bananenbild links mit einer Raspberry Pi-Kamera aufgenommen, das rechts mit einem iPhone von derselben Banane am selben Ort. Es gibt einen deutlichen Unterschied in der Qualität – das iPhone-Bild ist schärfer, mit helleren Farben und mehr Kontrast. diff --git a/translations/de/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md b/translations/de/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md index 6b2b84d05..bcf5cdbb0 100644 --- a/translations/de/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md +++ b/translations/de/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md @@ -16,7 +16,7 @@ Die Kamera kann mit einem Flachbandkabel an den Raspberry Pi angeschlossen werde ### Aufgabe - Kamera anschließen -![Eine Raspberry Pi Kamera](../../../../../translated_images/de/pi-camera-module.4278753c31bd6e757aa2b858be97d72049f71616278cefe4fb5abb485b40a078.png) +![Eine Raspberry Pi Kamera](../../../../../translated_images/de/pi-camera-module.4278753c31bd6e75.webp) 1. Schalten Sie den Pi aus. @@ -24,17 +24,17 @@ Die Kamera kann mit einem Flachbandkabel an den Raspberry Pi angeschlossen werde Eine Animation, die zeigt, wie man den Clip öffnet und das Kabel einsteckt, finden Sie in der [Raspberry Pi Dokumentation zum Einstieg mit dem Kameramodul](https://projects.raspberrypi.org/en/projects/getting-started-with-picamera/2). - ![Das Flachbandkabel in das Kameramodul eingesteckt](../../../../../translated_images/de/pi-camera-ribbon-cable.0bf82acd251611c21ac616f082849413e2b322a261d0e4f8fec344248083b07e.png) + ![Das Flachbandkabel in das Kameramodul eingesteckt](../../../../../translated_images/de/pi-camera-ribbon-cable.0bf82acd251611c2.webp) 1. Entfernen Sie das Grove Base Hat vom Pi. 1. Führen Sie das Flachbandkabel durch den Kameraschlitz im Grove Base Hat. Achten Sie darauf, dass die blaue Seite des Kabels zu den analogen Ports mit der Beschriftung **A0**, **A1** usw. zeigt. - ![Das Flachbandkabel durch das Grove Base Hat geführt](../../../../../translated_images/de/grove-base-hat-ribbon-cable.501fed202fcf73b11b2b68f6d246189f7d15d3e4423c572ddee79d77b4632b47.png) + ![Das Flachbandkabel durch das Grove Base Hat geführt](../../../../../translated_images/de/grove-base-hat-ribbon-cable.501fed202fcf73b1.webp) 1. Stecken Sie das Flachbandkabel in den Kameraanschluss am Pi. Ziehen Sie erneut den schwarzen Plastikclip hoch, stecken Sie das Kabel ein und drücken Sie den Clip wieder zurück. Die blaue Seite des Kabels sollte zu den USB- und Ethernet-Anschlüssen zeigen. - ![Das Flachbandkabel am Kameraanschluss des Pi angeschlossen](../../../../../translated_images/de/pi-camera-socket-ribbon-cable.a18309920b11800911082ed7aa6fb28e6d9be3a022e4079ff990016cae3fca10.png) + ![Das Flachbandkabel am Kameraanschluss des Pi angeschlossen](../../../../../translated_images/de/pi-camera-socket-ribbon-cable.a18309920b118009.webp) 1. Setzen Sie das Grove Base Hat wieder ein. @@ -101,7 +101,7 @@ Programmieren Sie das Gerät. Die Zeile `camera.rotation = 0` legt die Rotation des Bildes fest. Das Flachbandkabel kommt unten in die Kamera, aber wenn Ihre Kamera gedreht wurde, um besser auf das Objekt zu zeigen, das Sie klassifizieren möchten, können Sie diese Zeile auf die Anzahl der Rotationsgrade ändern. - ![Die Kamera hängt über einer Getränkedose](../../../../../translated_images/de/pi-camera-upside-down.5376961ba31459883362124152ad6b823d5ac5fc14e85f317e22903bd681c2b6.png) + ![Die Kamera hängt über einer Getränkedose](../../../../../translated_images/de/pi-camera-upside-down.5376961ba3145988.webp) Wenn Sie beispielsweise das Flachbandkabel über etwas hängen lassen, sodass es oben an der Kamera ist, setzen Sie die Rotation auf 180: diff --git a/translations/de/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md b/translations/de/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md index c2ca2d7f7..3c04c5d44 100644 --- a/translations/de/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md +++ b/translations/de/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md @@ -84,7 +84,7 @@ Der Custom Vision-Dienst verfügt über ein Python-SDK, das Sie zur Klassifizier Sie können das aufgenommene Bild sehen und diese Werte im **Predictions**-Tab in Custom Vision einsehen. - ![Eine Banane in Custom Vision, vorhergesagt als reif mit 56,8% und unreif mit 43,1%](../../../../../translated_images/de/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![Eine Banane in Custom Vision, vorhergesagt als reif mit 56,8% und unreif mit 43,1%](../../../../../translated_images/de/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 Sie finden diesen Code im Ordner [code-classify/pi](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/pi) oder [code-classify/virtual-iot-device](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/virtual-iot-device). diff --git a/translations/de/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md b/translations/de/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md index 7efff3bd8..1293c9eba 100644 --- a/translations/de/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md +++ b/translations/de/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md @@ -34,11 +34,11 @@ Fügen Sie die Kamera zur CounterFit-App hinzu. 1. Wählen Sie die Schaltfläche **Hinzufügen**, um die Kamera zu erstellen. - ![Die Kameraeinstellungen](../../../../../translated_images/de/counterfit-create-camera.a5de97f59c0bd3cbe0416d7e89a3cfe86d19fbae05c641c53a91286412af0a34.png) + ![Die Kameraeinstellungen](../../../../../translated_images/de/counterfit-create-camera.a5de97f59c0bd3cb.webp) Die Kamera wird erstellt und erscheint in der Sensorenliste. - ![Die erstellte Kamera](../../../../../translated_images/de/counterfit-camera.001ec52194c8ee5d3f617173da2c79e1df903d10882adc625cbfc493525125d4.png) + ![Die erstellte Kamera](../../../../../translated_images/de/counterfit-camera.001ec52194c8ee5d.webp) ## Die Kamera programmieren @@ -103,7 +103,7 @@ Programmieren Sie das Gerät. 1. Konfigurieren Sie das Bild, das die Kamera in CounterFit erfassen soll. Sie können entweder die *Quelle* auf *Datei* setzen und eine Bilddatei hochladen, oder die *Quelle* auf *WebCam* setzen, sodass Bilder von Ihrer Webcam erfasst werden. Stellen Sie sicher, dass Sie die Schaltfläche **Setzen** auswählen, nachdem Sie ein Bild oder Ihre Webcam ausgewählt haben. - ![CounterFit mit einer Datei als Bildquelle und einer Webcam, die eine Person mit einer Banane zeigt, in der Webcam-Vorschau](../../../../../translated_images/de/counterfit-camera-options.eb3bd5150a8e7dffbf24bc5bcaba0cf2cdef95fbe6bbe393695d173817d6b8df.png) + ![CounterFit mit einer Datei als Bildquelle und einer Webcam, die eine Person mit einer Banane zeigt, in der Webcam-Vorschau](../../../../../translated_images/de/counterfit-camera-options.eb3bd5150a8e7dff.webp) 1. Ein Bild wird aufgenommen und als `image.jpg` im aktuellen Ordner gespeichert. Sie sehen diese Datei im Explorer von VS Code. Wählen Sie die Datei aus, um das Bild anzuzeigen. Falls es gedreht werden muss, passen Sie die Zeile `camera.rotation = 0` entsprechend an und machen Sie ein weiteres Bild. diff --git a/translations/de/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md b/translations/de/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md index f347a792d..9c48b85e9 100644 --- a/translations/de/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md +++ b/translations/de/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md @@ -16,7 +16,7 @@ Die ArduCam hat keinen Grove-Anschluss, sondern wird über die GPIO-Pins des Wio Schließen Sie die Kamera an. -![Ein ArduCam-Sensor](../../../../../translated_images/de/arducam.20e4e4cbb268296570b5914e20d6c349fc42ddac9ed4e1b9deba2188204eebae.png) +![Ein ArduCam-Sensor](../../../../../translated_images/de/arducam.20e4e4cbb2682965.webp) 1. Die Pins an der Unterseite der ArduCam müssen mit den GPIO-Pins des Wio Terminals verbunden werden. Um die richtigen Pins leichter zu finden, befestigen Sie den GPIO-Pin-Aufkleber, der mit dem Wio Terminal geliefert wird, um die Pins: @@ -35,7 +35,7 @@ Schließen Sie die Kamera an. | SDA | 3 (I2C1_SDA) | I2C Serial Data | | SCL | 5 (I2C1_SCL) | I2C Serial Clock | - ![Das Wio Terminal mit der ArduCam verbunden durch Jumperkabel](../../../../../translated_images/de/arducam-wio-terminal-connections.a4d5a4049bdb5ab800a2877389fc6ecf5e4ff307e6451ff56c517e6786467d0a.png) + ![Das Wio Terminal mit der ArduCam verbunden durch Jumperkabel](../../../../../translated_images/de/arducam-wio-terminal-connections.a4d5a4049bdb5ab8.webp) Die GND- und VCC-Verbindungen liefern eine 5V-Stromversorgung an die ArduCam. Sie läuft mit 5V, im Gegensatz zu Grove-Sensoren, die mit 3V betrieben werden. Diese Stromversorgung kommt direkt von der USB-C-Verbindung, die das Gerät mit Strom versorgt. @@ -456,7 +456,7 @@ Das Wio Terminal unterstützt nur microSD-Karten mit einer Größe von bis zu 16 1. Schalten Sie das Gerät aus und entfernen Sie die microSD-Karte, indem Sie sie leicht hineindrücken und loslassen. Sie wird herausspringen. Möglicherweise müssen Sie ein dünnes Werkzeug verwenden, um dies zu tun. Stecken Sie die microSD-Karte in Ihren Computer, um die Bilder anzusehen. - ![Ein Bild einer Banane, aufgenommen mit der ArduCam](../../../../../translated_images/de/banana-arducam.be1b32d4267a8194b0fd042362e56faa431da9cd4af172051b37243ea9be0256.jpg) + ![Ein Bild einer Banane, aufgenommen mit der ArduCam](../../../../../translated_images/de/banana-arducam.be1b32d4267a8194.webp) 💁 Es kann einige Bilder dauern, bis sich der Weißabgleich der Kamera selbst eingestellt hat. Dies werden Sie anhand der Farbe der aufgenommenen Bilder bemerken, die ersten paar könnten farblich abweichen. Sie können dies umgehen, indem Sie den Code so ändern, dass einige Bilder aufgenommen werden, die in der `setup`-Funktion ignoriert werden. diff --git a/translations/de/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md b/translations/de/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md index a52ac57bb..f5d13964b 100644 --- a/translations/de/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md +++ b/translations/de/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md @@ -208,7 +208,7 @@ Diese Zertifikate enthalten öffentliche Schlüssel und müssen nicht geheim geh Sie können das aufgenommene Bild und diese Werte im **Predictions**-Tab in Custom Vision sehen. - ![Eine Banane in Custom Vision, vorhergesagt als reif mit 56,8% und unreif mit 43,1%](../../../../../translated_images/de/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![Eine Banane in Custom Vision, vorhergesagt als reif mit 56,8% und unreif mit 43,1%](../../../../../translated_images/de/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 Sie finden diesen Code im Ordner [code-classify/wio-terminal](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/wio-terminal). diff --git a/translations/de/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md b/translations/de/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md index a28782ae2..1df5b535c 100644 --- a/translations/de/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md +++ b/translations/de/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md @@ -1,6 +1,6 @@ # Führen Sie Ihren Fruchtdetektor am Edge aus -![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-17.bc333c3c35ba8e42cce666cfffa82b915f787f455bd94e006aea2b6f2722421a.jpg) +![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-17.bc333c3c35ba8e42.webp) > Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version. @@ -33,11 +33,11 @@ In dieser Lektion behandeln wir: Edge-Computing bedeutet, dass Computer IoT-Daten so nah wie möglich an der Stelle verarbeiten, an der die Daten generiert werden. Anstatt diese Verarbeitung in der Cloud durchzuführen, wird sie an den Rand der Cloud – Ihr internes Netzwerk – verlagert. -![Ein Architekturdiagramm, das Internetdienste in der Cloud und IoT-Geräte in einem lokalen Netzwerk zeigt](../../../../../translated_images/de/cloud-without-edge.b4da641f6022c95ed6b91fde8b5323abd2f94e0d52073ad54172ae8f5dac90e9.png) +![Ein Architekturdiagramm, das Internetdienste in der Cloud und IoT-Geräte in einem lokalen Netzwerk zeigt](../../../../../translated_images/de/cloud-without-edge.b4da641f6022c95e.webp) In den bisherigen Lektionen haben Sie Geräte verwendet, die Daten sammeln und diese zur Analyse an die Cloud senden, wobei serverlose Funktionen oder KI-Modelle in der Cloud ausgeführt werden. -![Ein Architekturdiagramm, das IoT-Geräte in einem lokalen Netzwerk zeigt, die mit Edge-Geräten verbunden sind, und diese Edge-Geräte sind mit der Cloud verbunden](../../../../../translated_images/de/cloud-with-edge.1e26462c62c126fe150bd15a5714ddf0be599f09bacbad08b85be02b76ea1ae1.png) +![Ein Architekturdiagramm, das IoT-Geräte in einem lokalen Netzwerk zeigt, die mit Edge-Geräten verbunden sind, und diese Edge-Geräte sind mit der Cloud verbunden](../../../../../translated_images/de/cloud-with-edge.1e26462c62c126fe.webp) Edge-Computing verlagert einige der Cloud-Dienste aus der Cloud auf Computer, die im selben Netzwerk wie die IoT-Geräte laufen, und kommuniziert nur bei Bedarf mit der Cloud. Beispielsweise können Sie KI-Modelle auf Edge-Geräten ausführen, um die Reife von Früchten zu analysieren, und nur Analysen wie die Anzahl reifer gegenüber unreifer Früchte an die Cloud senden. @@ -85,7 +85,7 @@ Für IoT-Systeme möchten Sie oft eine Mischung aus Cloud- und Edge-Computing, w ## Azure IoT Edge -![Das Azure IoT Edge-Logo](../../../../../translated_images/de/azure-iot-edge-logo.c1c076749b5cba2e8755262fadc2f19ca1146b948d76990b1229199ac2292d79.png) +![Das Azure IoT Edge-Logo](../../../../../translated_images/de/azure-iot-edge-logo.c1c076749b5cba2e.webp) Azure IoT Edge ist ein Dienst, der Ihnen helfen kann, Workloads aus der Cloud an den Edge zu verlagern. Sie richten ein Gerät als Edge-Gerät ein und können von der Cloud aus Code auf dieses Edge-Gerät bereitstellen. Dies ermöglicht Ihnen, die Fähigkeiten der Cloud und des Edge zu kombinieren. @@ -99,7 +99,7 @@ IoT Edge ist in IoT Hub integriert, sodass Sie Edge-Geräte mit demselben Dienst IoT Edge führt Code aus *Containern* aus – eigenständige Anwendungen, die isoliert vom Rest der Anwendungen auf Ihrem Computer ausgeführt werden. Wenn Sie einen Container ausführen, verhält er sich wie ein separater Computer, der in Ihrem Computer läuft, mit eigener Software, eigenen Diensten und Anwendungen. Meistens können Container auf nichts auf Ihrem Computer zugreifen, es sei denn, Sie entscheiden sich, Dinge wie einen Ordner mit dem Container zu teilen. Der Container stellt dann Dienste über einen offenen Port bereit, auf den Sie zugreifen oder den Sie Ihrem Netzwerk aussetzen können. -![Eine Webanfrage, die an einen Container weitergeleitet wird](../../../../../translated_images/de/container-web-browser.4ee81dd4f0d8838ce622b2a0d600b6a4322b5d4fe43159facd87b7b34f84d66a.png) +![Eine Webanfrage, die an einen Container weitergeleitet wird](../../../../../translated_images/de/container-web-browser.4ee81dd4f0d8838c.webp) Beispielsweise können Sie einen Container mit einer Website haben, die auf Port 80 läuft, dem Standard-HTTP-Port, und Sie können ihn dann auch auf Port 80 von Ihrem Computer aus zugänglich machen. @@ -195,11 +195,11 @@ Sobald das Modell trainiert wurde, muss es als Container exportiert werden. ## Bereiten Sie Ihren Container für die Bereitstellung vor -![Container werden erstellt, dann in ein Container-Registry hochgeladen und von dort aus auf ein Edge-Gerät bereitgestellt](../../../../../translated_images/de/container-edge-flow.c246050dd60ceefdb6ace026a4ce5c6aa4112bb5898ae23fbb2ab4be29ae3e1b.png) +![Container werden erstellt, dann in ein Container-Registry hochgeladen und von dort aus auf ein Edge-Gerät bereitgestellt](../../../../../translated_images/de/container-edge-flow.c246050dd60ceefd.webp) Nachdem Sie Ihr Modell heruntergeladen haben, muss es in einen Container eingebaut und dann in ein Container-Registry hochgeladen werden – einen Online-Speicherort, an dem Sie Container speichern können. IoT Edge kann den Container dann aus dem Registry herunterladen und auf Ihr Gerät übertragen. -![Das Logo des Azure Container Registry](../../../../../translated_images/de/azure-container-registry-logo.09494206991d4b295025ebff7d4e2900325e527a59184ffbc8464b6ab59654be.png) +![Das Logo des Azure Container Registry](../../../../../translated_images/de/azure-container-registry-logo.09494206991d4b29.webp) Das Container-Registry, das Sie für diese Lektion verwenden, ist Azure Container Registry. Dies ist kein kostenloser Dienst, daher sollten Sie zur Kosteneinsparung sicherstellen, dass Sie [Ihr Projekt bereinigen](../../../clean-up.md), sobald Sie fertig sind. diff --git a/translations/de/4-manufacturing/lessons/4-trigger-fruit-detector/README.md b/translations/de/4-manufacturing/lessons/4-trigger-fruit-detector/README.md index 582fb9744..17b8c5cf2 100644 --- a/translations/de/4-manufacturing/lessons/4-trigger-fruit-detector/README.md +++ b/translations/de/4-manufacturing/lessons/4-trigger-fruit-detector/README.md @@ -1,6 +1,6 @@ # Auslösen der Obstqualitätsprüfung durch einen Sensor -![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-18.92c32ed1d354caa5a54baa4032cf0b172d4655e8e326ad5d46c558a0def15365.jpg) +![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-18.92c32ed1d354caa5.webp) > Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version. @@ -39,7 +39,7 @@ IoT-Anwendungen können als *Dinge* (Geräte) beschrieben werden, die Daten send ### Referenz-IoT-Architektur -![Eine Referenz-IoT-Architektur](../../../../../translated_images/de/iot-reference-architecture.2278b98b55c6d4e89bde18eada3688d893861d43507641804dd2f9d3079cfaa0.png) +![Eine Referenz-IoT-Architektur](../../../../../translated_images/de/iot-reference-architecture.2278b98b55c6d4e8.webp) Das obige Diagramm zeigt eine Referenz-IoT-Architektur. @@ -49,7 +49,7 @@ Das obige Diagramm zeigt eine Referenz-IoT-Architektur. * **Erkenntnisse** stammen aus serverlosen Anwendungen oder aus Analysen gespeicherter Daten. * **Aktionen** können Befehle sein, die an Geräte gesendet werden, oder die Visualisierung von Daten, die es Menschen ermöglichen, Entscheidungen zu treffen. -![Eine Referenz-IoT-Architektur](../../../../../translated_images/de/iot-reference-architecture-azure.0b8d2161af924cb18ae48a8558a19541cca47f27264851b5b7e56d7b8bb372ac.png) +![Eine Referenz-IoT-Architektur](../../../../../translated_images/de/iot-reference-architecture-azure.0b8d2161af924cb1.webp) Das obige Diagramm zeigt einige der bisher behandelten Komponenten und Dienste und wie sie in einer Referenz-IoT-Architektur miteinander verbunden sind. @@ -89,7 +89,7 @@ Sie müssen ein System entwickeln, bei dem Obst erkannt wird, sobald es auf dem ### Prototyping Ihrer Anwendung -![Eine Referenz-IoT-Architektur für die Obstqualitätsprüfung](../../../../../translated_images/de/iot-reference-architecture-fruit-quality.cc705f121c3b6fa71c800d9630935ac34bc08223a04601e35f41d5e9b5dd5207.png) +![Eine Referenz-IoT-Architektur für die Obstqualitätsprüfung](../../../../../translated_images/de/iot-reference-architecture-fruit-quality.cc705f121c3b6fa7.webp) Das obige Diagramm zeigt eine Referenzarchitektur für diese Prototypanwendung. @@ -124,7 +124,7 @@ Arbeiten Sie die entsprechende Anleitung durch, um mit Ihrem IoT-Gerät ein Obje Der Prototyp-Obstdetektor hat mehrere Komponenten, die miteinander kommunizieren. -![Die Komponenten kommunizieren miteinander](../../../../../translated_images/de/fruit-quality-detector-message-flow.adf2a65da8fd8741ac7af11361574de89adc126785d67606bb4d2ec00467e380.png) +![Die Komponenten kommunizieren miteinander](../../../../../translated_images/de/fruit-quality-detector-message-flow.adf2a65da8fd8741.webp) * Ein Näherungssensor misst den Abstand zu einem Stück Obst und sendet dies an IoT Hub * Der Befehl zur Steuerung der Kamera kommt von IoT Hub zum Kameragerät diff --git a/translations/de/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md b/translations/de/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md index 38a600faa..2cd93b4d5 100644 --- a/translations/de/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md +++ b/translations/de/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md @@ -20,7 +20,7 @@ Der Grove Time of Flight Sensor kann mit dem Raspberry Pi verbunden werden. Schließe den Time of Flight Sensor an. -![Ein Grove Time of Flight Sensor](../../../../../translated_images/de/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![Ein Grove Time of Flight Sensor](../../../../../translated_images/de/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. Stecke ein Ende eines Grove-Kabels in die Buchse des Time of Flight Sensors. Es passt nur in einer Richtung hinein. diff --git a/translations/de/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md b/translations/de/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md index 1d17b7d74..a84c07643 100644 --- a/translations/de/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md +++ b/translations/de/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md @@ -36,11 +36,11 @@ Fügen Sie den Entfernungssensor zur CounterFit-App hinzu. 1. Wählen Sie die Schaltfläche **Add**, um den Entfernungssensor zu erstellen. - ![Die Einstellungen des Entfernungssensors](../../../../../translated_images/de/counterfit-create-distance-sensor.967c9fb98f27888d95920c9784d004c972490eb71f70397fe13bd70a79a879a3.png) + ![Die Einstellungen des Entfernungssensors](../../../../../translated_images/de/counterfit-create-distance-sensor.967c9fb98f27888d.webp) Der Entfernungssensor wird erstellt und erscheint in der Sensorliste. - ![Der erstellte Entfernungssensor](../../../../../translated_images/de/counterfit-distance-sensor.079eefeeea0b68afc36431ce8fcbe2f09a7e4916ed1cd5cb30e696db53bc18fa.png) + ![Der erstellte Entfernungssensor](../../../../../translated_images/de/counterfit-distance-sensor.079eefeeea0b68af.webp) ## Den Entfernungssensor programmieren diff --git a/translations/de/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md b/translations/de/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md index 8315922ad..0a527a8ab 100644 --- a/translations/de/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md +++ b/translations/de/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md @@ -20,7 +20,7 @@ Der Grove Time of Flight Sensor kann an das Wio Terminal angeschlossen werden. Schließen Sie den Time of Flight Sensor an. -![Ein Grove Time of Flight Sensor](../../../../../translated_images/de/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![Ein Grove Time of Flight Sensor](../../../../../translated_images/de/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. Stecken Sie ein Ende eines Grove-Kabels in die Buchse des Time of Flight Sensors. Es passt nur in einer Richtung. diff --git a/translations/de/5-retail/lessons/1-train-stock-detector/README.md b/translations/de/5-retail/lessons/1-train-stock-detector/README.md index 4411350eb..79e6593aa 100644 --- a/translations/de/5-retail/lessons/1-train-stock-detector/README.md +++ b/translations/de/5-retail/lessons/1-train-stock-detector/README.md @@ -1,6 +1,6 @@ # Trainiere einen Lagerbestand-Detektor -![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-19.cf6973cecadf080c4b526310620dc4d6f5994c80fb0139c6f378cc9ca2d435cd.jpg) +![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-19.cf6973cecadf080c.webp) > Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version. @@ -36,7 +36,7 @@ Die Objekterkennung umfasst das Erkennen von Objekten in Bildern mithilfe von KI Die Bildklassifikation dient dazu, ein Bild als Ganzes zu klassifizieren – welche Wahrscheinlichkeiten bestehen, dass das gesamte Bild mit jedem Tag übereinstimmt. Sie erhalten Wahrscheinlichkeiten für jedes Tag, das zum Trainieren des Modells verwendet wurde. -![Bildklassifikation von Cashewkernen und Tomatenmark](../../../../../translated_images/de/image-classifier-cashews-tomato.bc2e16ab8f05cf9ac0f59f73e32efc4227f9a5b601b90b2c60f436694547a965.png) +![Bildklassifikation von Cashewkernen und Tomatenmark](../../../../../translated_images/de/image-classifier-cashews-tomato.bc2e16ab8f05cf9a.webp) Im obigen Beispiel werden zwei Bilder mit einem Modell klassifiziert, das darauf trainiert wurde, Dosen mit Cashewkernen oder Tomatenmark zu klassifizieren. Das erste Bild zeigt eine Dose Cashewkerne und hat zwei Ergebnisse vom Bildklassifikator: @@ -60,7 +60,7 @@ Wenn Sie es dann zur Vorhersage von Bildern verwenden, erhalten Sie anstelle ein > 🎓 *Begrenzungsrahmen* sind die Rahmen um ein Objekt. -![Objekterkennung von Cashewkernen und Tomatenmark](../../../../../translated_images/de/object-detector-cashews-tomato.1af7c26686b4db0e709754aeb196f4e73271f54e2085db3bcccb70d4a0d84d97.png) +![Objekterkennung von Cashewkernen und Tomatenmark](../../../../../translated_images/de/object-detector-cashews-tomato.1af7c26686b4db0e.webp) Das obige Bild enthält sowohl eine Dose Cashewkerne als auch drei Dosen Tomatenmark. Der Objekterkenner hat die Cashewkerne erkannt und den Begrenzungsrahmen zurückgegeben, der die Cashewkerne mit der prozentualen Wahrscheinlichkeit enthält, dass der Begrenzungsrahmen das Objekt enthält, in diesem Fall 97,6%. Der Objekterkenner hat auch drei Dosen Tomatenmark erkannt und liefert drei separate Begrenzungsrahmen, einen für jede erkannte Dose, und jeder hat eine prozentuale Wahrscheinlichkeit, dass der Begrenzungsrahmen eine Dose Tomatenmark enthält. @@ -111,7 +111,7 @@ Sie können einen Objekterkenner mit Custom Vision trainieren, ähnlich wie Sie Wenn Sie Ihr Projekt erstellen, stellen Sie sicher, dass Sie die zuvor erstellte Ressource `stock-detector-training` verwenden. Verwenden Sie den Projekttyp *Objekterkennung* und die Domäne *Produkte in Regalen*. - ![Die Einstellungen für das Custom Vision-Projekt mit dem Namen fruit-quality-detector, keine Beschreibung, die Ressource auf fruit-quality-detector-training gesetzt, der Projekttyp auf Klassifikation gesetzt, die Klassifikationstypen auf Multi-Klasse gesetzt und die Domänen auf Lebensmittel gesetzt](../../../../../translated_images/de/custom-vision-create-object-detector-project.32d4fb9aa8e7e7375f8a799bfce517aca970f2cb65e42d4245c5e635c734ab29.png) + ![Die Einstellungen für das Custom Vision-Projekt mit dem Namen fruit-quality-detector, keine Beschreibung, die Ressource auf fruit-quality-detector-training gesetzt, der Projekttyp auf Klassifikation gesetzt, die Klassifikationstypen auf Multi-Klasse gesetzt und die Domänen auf Lebensmittel gesetzt](../../../../../translated_images/de/custom-vision-create-object-detector-project.32d4fb9aa8e7e737.webp) ✅ Die Domäne "Produkte in Regalen" ist speziell darauf ausgerichtet, Bestände in Ladenregalen zu erkennen. Lesen Sie mehr über die verschiedenen Domänen in der [Dokumentation zur Auswahl einer Domäne auf Microsoft Docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/select-domain?WT.mc_id=academic-17441-jabenn#object-detection). @@ -133,11 +133,11 @@ Um Ihr Modell zu trainieren, benötigen Sie eine Reihe von Bildern, die die Obje 1. Folgen Sie dem Abschnitt [Bilder hochladen und taggen im Quickstart für den Aufbau eines Objekterkenners in den Microsoft-Dokumenten](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/get-started-build-detector?WT.mc_id=academic-17441-jabenn#upload-and-tag-images), um Ihre Trainingsbilder hochzuladen. Erstellen Sie relevante Tags je nach den Arten von Objekten, die Sie erkennen möchten. - ![Die Upload-Dialoge zeigen den Upload von Bildern reifer und unreifer Bananen](../../../../../translated_images/de/image-upload-object-detector.77c7892c3093cb59b79018edecd678749a75d71a099bc8a2d2f2f76320f88a5b.png) + ![Die Upload-Dialoge zeigen den Upload von Bildern reifer und unreifer Bananen](../../../../../translated_images/de/image-upload-object-detector.77c7892c3093cb59.webp) Wenn Sie Begrenzungsrahmen für Objekte zeichnen, halten Sie sie schön eng um das Objekt. Es kann eine Weile dauern, alle Bilder zu umreißen, aber das Tool erkennt, was es für Begrenzungsrahmen hält, was es schneller macht. - ![Taggen von Tomatenmark](../../../../../translated_images/de/object-detector-tag-tomato-paste.f47c362fb0f0eb582f3bc68cf3855fb43a805106395358d41896a269c210b7b4.png) + ![Taggen von Tomatenmark](../../../../../translated_images/de/object-detector-tag-tomato-paste.f47c362fb0f0eb58.webp) > 💁 Wenn Sie mehr als 15 Bilder für jedes Objekt haben, können Sie nach 15 trainieren und dann die Funktion **Vorgeschlagene Tags** verwenden. Dies wird das trainierte Modell verwenden, um die Objekte in den nicht getaggten Bildern zu erkennen. Sie können dann die erkannten Objekte bestätigen oder ablehnen und die Begrenzungsrahmen neu zeichnen. Dies kann eine *Menge* Zeit sparen. @@ -155,7 +155,7 @@ Sobald Ihr Objekterkenner trainiert ist, können Sie ihn testen, indem Sie ihm n 1. Verwenden Sie die Schaltfläche **Schneller Test**, um Testbilder hochzuladen und zu überprüfen, ob die Objekte erkannt werden. Verwenden Sie die Testbilder, die Sie zuvor erstellt haben, nicht die Bilder, die Sie zum Trainieren verwendet haben. - ![3 Dosen Tomatenmark erkannt mit Wahrscheinlichkeiten von 38%, 35,5% und 34,6%](../../../../../translated_images/de/object-detector-detected-tomato-paste.52656fe87af4c37b4ee540526d63e73ed075da2e54a9a060aa528e0c562fb1b6.png) + ![3 Dosen Tomatenmark erkannt mit Wahrscheinlichkeiten von 38%, 35,5% und 34,6%](../../../../../translated_images/de/object-detector-detected-tomato-paste.52656fe87af4c37b.webp) 1. Testen Sie alle Testbilder, die Ihnen zur Verfügung stehen, und beobachten Sie die Wahrscheinlichkeiten. diff --git a/translations/de/5-retail/lessons/2-check-stock-device/README.md b/translations/de/5-retail/lessons/2-check-stock-device/README.md index 60ec4e97c..d53752257 100644 --- a/translations/de/5-retail/lessons/2-check-stock-device/README.md +++ b/translations/de/5-retail/lessons/2-check-stock-device/README.md @@ -1,6 +1,6 @@ # Lagerbestand mit einem IoT-Gerät überprüfen -![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-20.0211df9551a8abb300fc8fcf7dc2789468dea2eabe9202273ac077b0ba37f15e.jpg) +![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-20.0211df9551a8abb3.webp) > Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version. @@ -62,7 +62,7 @@ Iterationen werden über das Custom Vision-Portal veröffentlicht. 1. Wählen Sie die Schaltfläche **Publish** für die Iteration aus. - ![Die Schaltfläche Publish](../../../../../translated_images/de/custom-vision-object-detector-publish-button.34ee379fc650ccb9856c3868d0003f413b9529f102fc73c37168c98d721cc293.png) + ![Die Schaltfläche Publish](../../../../../translated_images/de/custom-vision-object-detector-publish-button.34ee379fc650ccb9.webp) 1. Im Dialogfeld *Publish Model* setzen Sie die *Prediction resource* auf die `stock-detector-prediction`-Ressource, die Sie in der letzten Lektion erstellt haben. Lassen Sie den Namen als `Iteration2` und wählen Sie die Schaltfläche **Publish**. @@ -76,7 +76,7 @@ Iterationen werden über das Custom Vision-Portal veröffentlicht. Kopieren Sie auch den Wert *Prediction-Key*. Dies ist ein sicherer Schlüssel, den Sie übergeben müssen, wenn Sie das Modell aufrufen. Nur Anwendungen, die diesen Schlüssel übergeben, dürfen das Modell verwenden, alle anderen Anwendungen werden abgelehnt. - ![Das Dialogfeld der Vorhersage-API mit URL und Schlüssel](../../../../../translated_images/de/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![Das Dialogfeld der Vorhersage-API mit URL und Schlüssel](../../../../../translated_images/de/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ Wenn eine neue Iteration veröffentlicht wird, hat sie einen anderen Namen. Wie würden Sie die Iteration ändern, die ein IoT-Gerät verwendet? @@ -95,7 +95,7 @@ Wenn Sie den Objekterkenner verwenden, erhalten Sie nicht nur die erkannten Obje Die Ergebnisse einer Vorhersage im **Predictions**-Tab in Custom Vision haben die Begrenzungsrahmen, die auf das Bild gezeichnet sind, das zur Vorhersage gesendet wurde. -![4 Dosen Tomatenmark auf einem Regal mit Vorhersagen für die 4 Erkennungen von 35,8 %, 33,5 %, 25,7 % und 16,6 %](../../../../../translated_images/de/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) +![4 Dosen Tomatenmark auf einem Regal mit Vorhersagen für die 4 Erkennungen von 35,8 %, 33,5 %, 25,7 % und 16,6 %](../../../../../translated_images/de/custom-vision-stock-prediction.942266ab1bcca341.webp) Im obigen Bild wurden 4 Dosen Tomatenmark erkannt. In den Ergebnissen wird ein rotes Quadrat für jedes Objekt, das im Bild erkannt wurde, überlagert, das den Begrenzungsrahmen für das Bild angibt. @@ -103,7 +103,7 @@ Im obigen Bild wurden 4 Dosen Tomatenmark erkannt. In den Ergebnissen wird ein r Begrenzungsrahmen werden mit 4 Werten definiert - oben, links, Höhe und Breite. Diese Werte liegen auf einer Skala von 0-1 und repräsentieren die Positionen als Prozentsatz der Bildgröße. Der Ursprung (die Position 0,0) ist die obere linke Ecke des Bildes, sodass der obere Wert die Entfernung von oben ist und die Unterseite des Begrenzungsrahmens die obere Position plus die Höhe ist. -![Ein Begrenzungsrahmen um eine Dose Tomatenmark](../../../../../translated_images/de/bounding-box.1420a7ea0d3d15f71e1ffb5cf4b2271d184fac051f990abc541975168d163684.png) +![Ein Begrenzungsrahmen um eine Dose Tomatenmark](../../../../../translated_images/de/bounding-box.1420a7ea0d3d15f7.webp) Das obige Bild ist 600 Pixel breit und 800 Pixel hoch. Der Begrenzungsrahmen beginnt 320 Pixel nach unten, was eine obere Koordinate von 0,4 ergibt (800 x 0,4 = 320). Von links beginnt der Begrenzungsrahmen 240 Pixel quer, was eine linke Koordinate von 0,4 ergibt (600 x 0,4 = 240). Die Höhe des Begrenzungsrahmens beträgt 240 Pixel, was einen Höhenwert von 0,3 ergibt (800 x 0,3 = 240). Die Breite des Begrenzungsrahmens beträgt 120 Pixel, was einen Breitenwert von 0,2 ergibt (600 x 0,2 = 120). @@ -118,7 +118,7 @@ Die Verwendung von Prozentwerten von 0-1 bedeutet, dass unabhängig davon, wie g Sie können Begrenzungsrahmen in Kombination mit Wahrscheinlichkeiten verwenden, um zu bewerten, wie genau eine Erkennung ist. Beispielsweise kann ein Objekterkenner mehrere Objekte erkennen, die sich überlappen, z. B. eine Dose, die in einer anderen erkannt wird. Ihr Code könnte die Begrenzungsrahmen betrachten, verstehen, dass dies unmöglich ist, und alle Objekte ignorieren, die eine signifikante Überlappung mit anderen Objekten haben. -![Zwei Begrenzungsrahmen überlappen eine Dose Tomatenmark](../../../../../translated_images/de/overlap-object-detection.d431e03cae75072a2760430eca7f2c5fdd43045bfd72dadcbf12711f7cd6c2ae.png) +![Zwei Begrenzungsrahmen überlappen eine Dose Tomatenmark](../../../../../translated_images/de/overlap-object-detection.d431e03cae75072a.webp) Im obigen Beispiel zeigt ein Begrenzungsrahmen eine vorhergesagte Dose Tomatenmark mit 78,3 %. Ein zweiter Begrenzungsrahmen ist etwas kleiner und befindet sich innerhalb des ersten Begrenzungsrahmens mit einer Wahrscheinlichkeit von 64,3 %. Ihr Code kann die Begrenzungsrahmen überprüfen, sehen, dass sie sich vollständig überlappen, und die niedrigere Wahrscheinlichkeit ignorieren, da es unmöglich ist, dass eine Dose in einer anderen ist. diff --git a/translations/de/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md b/translations/de/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md index 85d7a9eb6..8df980b8a 100644 --- a/translations/de/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md +++ b/translations/de/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md @@ -67,7 +67,7 @@ Der Code, den Sie zur Klassifizierung von Bildern verwendet haben, ist dem Code Sie können das aufgenommene Bild und diese Werte im **Predictions**-Tab in Custom Vision sehen. - ![4 Dosen Tomatenmark auf einem Regal mit Vorhersagen für die 4 Erkennungen von 35,8 %, 33,5 %, 25,7 % und 16,6 %](../../../../../translated_images/de/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![4 Dosen Tomatenmark auf einem Regal mit Vorhersagen für die 4 Erkennungen von 35,8 %, 33,5 %, 25,7 % und 16,6 %](../../../../../translated_images/de/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 Sie finden diesen Code im Ordner [code-detect/pi](../../../../../5-retail/lessons/2-check-stock-device/code-detect/pi) oder [code-detect/virtual-iot-device](../../../../../5-retail/lessons/2-check-stock-device/code-detect/virtual-iot-device). diff --git a/translations/de/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md b/translations/de/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md index 6fde0a7f0..6da7c697f 100644 --- a/translations/de/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md +++ b/translations/de/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md @@ -95,7 +95,7 @@ Der Code, den Sie verwendet haben, um Bilder zu klassifizieren, ist sehr ähnlic Sie können das aufgenommene Bild und diese Werte im **Predictions**-Tab in Custom Vision sehen. - ![4 Dosen Tomatenmark auf einem Regal mit Vorhersagen für die 4 Erkennungen von 35,8 %, 33,5 %, 25,7 % und 16,6 %](../../../../../translated_images/de/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![4 Dosen Tomatenmark auf einem Regal mit Vorhersagen für die 4 Erkennungen von 35,8 %, 33,5 %, 25,7 % und 16,6 %](../../../../../translated_images/de/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 Sie finden diesen Code im Ordner [code-detect/wio-terminal](../../../../../5-retail/lessons/2-check-stock-device/code-detect/wio-terminal). diff --git a/translations/de/6-consumer/lessons/1-speech-recognition/README.md b/translations/de/6-consumer/lessons/1-speech-recognition/README.md index 245ef1a6e..1c3439728 100644 --- a/translations/de/6-consumer/lessons/1-speech-recognition/README.md +++ b/translations/de/6-consumer/lessons/1-speech-recognition/README.md @@ -1,6 +1,6 @@ # Spracherkennung mit einem IoT-Gerät -![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-21.e34de51354d6606fb5ee08d8c89d0222eea0a2a7aaf744a8805ae847c4f69dc4.jpg) +![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-21.e34de51354d6606f.webp) > Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version. @@ -51,7 +51,7 @@ Mikrofone gibt es in verschiedenen Typen: Dynamische Mikrofone benötigen keine Stromversorgung, das elektrische Signal wird vollständig vom Mikrofon erzeugt. - ![Patti Smith singt in ein Shure SM58 (dynamisches Kardioid-Mikrofon)](../../../../../translated_images/de/dynamic-mic.8babac890a2d80dfb0874b5bf37d4b851fe2aeb9da6fd72945746176978bf3bb.jpg) + ![Patti Smith singt in ein Shure SM58 (dynamisches Kardioid-Mikrofon)](../../../../../translated_images/de/dynamic-mic.8babac890a2d80df.webp) * Bändchen – Bändchenmikrofone ähneln dynamischen Mikrofonen, haben jedoch ein Metallbändchen anstelle einer Membran. Dieses Bändchen bewegt sich in einem Magnetfeld und erzeugt einen elektrischen Strom. Wie dynamische Mikrofone benötigen auch Bändchenmikrofone keine Stromversorgung. @@ -59,11 +59,11 @@ Mikrofone gibt es in verschiedenen Typen: * Kondensator – Kondensatormikrofone haben eine dünne Metallmembran und eine feste Metallrückplatte. Elektrizität wird auf beide angewendet, und wenn die Membran vibriert, ändert sich die statische Ladung zwischen den Platten und erzeugt ein Signal. Kondensatormikrofone benötigen Strom, um zu funktionieren – genannt *Phantomspannung*. - ![C451B Kleinmembran-Kondensatormikrofon von AKG Acoustics](../../../../../translated_images/de/condenser-mic.6f6ed5b76ca19e0ec3fd0c544601542d4479a6cb7565db336de49fbbf69f623e.jpg) + ![C451B Kleinmembran-Kondensatormikrofon von AKG Acoustics](../../../../../translated_images/de/condenser-mic.6f6ed5b76ca19e0e.webp) * MEMS – Mikroelektromechanische Systeme (MEMS) sind Mikrofone auf einem Chip. Sie haben eine druckempfindliche Membran, die auf einen Siliziumchip geätzt ist, und funktionieren ähnlich wie ein Kondensatormikrofon. Diese Mikrofone können winzig sein und in Schaltungen integriert werden. - ![Ein MEMS-Mikrofon auf einer Leiterplatte](../../../../../translated_images/de/mems-microphone.80574019e1f5e4d9ee72fed720ecd25a39fc2969c91355d17ebb24ba4159e4c4.png) + ![Ein MEMS-Mikrofon auf einer Leiterplatte](../../../../../translated_images/de/mems-microphone.80574019e1f5e4d9.webp) Im obigen Bild ist der Chip mit der Aufschrift **LEFT** ein MEMS-Mikrofon mit einer winzigen Membran, die weniger als einen Millimeter breit ist. @@ -159,7 +159,7 @@ Um die Komplexität des Trainings und der Nutzung eines Aktivierungswort-Modells ## Sprache in Text umwandeln -![Logo der Sprachdienste](../../../../../translated_images/de/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![Logo der Sprachdienste](../../../../../translated_images/de/azure-speech-logo.a1f08c4befb0159f.webp) Ähnlich wie bei der Bildklassifikation in einem früheren Projekt gibt es vorgefertigte KI-Dienste, die Sprache als Audiodatei aufnehmen und in Text umwandeln können. Einer dieser Dienste ist der Speech Service, Teil der Cognitive Services, vorgefertigte KI-Dienste, die Sie in Ihren Apps verwenden können. diff --git a/translations/de/6-consumer/lessons/1-speech-recognition/pi-audio.md b/translations/de/6-consumer/lessons/1-speech-recognition/pi-audio.md index 784df945b..e1d76cbbe 100644 --- a/translations/de/6-consumer/lessons/1-speech-recognition/pi-audio.md +++ b/translations/de/6-consumer/lessons/1-speech-recognition/pi-audio.md @@ -16,13 +16,13 @@ Der Knopf kann an das Grove Base Hat angeschlossen werden. #### Aufgabe - Knopf anschließen -![Ein Grove-Knopf](../../../../../translated_images/de/grove-button.a70cfbb809a8563681003250cf5b06d68cdcc68624f9e2f493d5a534ae2da1e5.png) +![Ein Grove-Knopf](../../../../../translated_images/de/grove-button.a70cfbb809a85636.webp) 1. Stecken Sie ein Ende eines Grove-Kabels in die Buchse des Knopfmoduls. Es passt nur in einer Richtung hinein. 1. Schalten Sie den Raspberry Pi aus und verbinden Sie das andere Ende des Grove-Kabels mit der digitalen Buchse, die mit **D5** auf dem Grove Base Hat am Pi markiert ist. Diese Buchse ist die zweite von links in der Reihe der Buchsen neben den GPIO-Pins. -![Der Grove-Knopf, angeschlossen an Buchse D5](../../../../../translated_images/de/pi-button.c7a1a4f55943341ce1baf1057658e9a205804d4131d258e820c93f951df0abf3.png) +![Der Grove-Knopf, angeschlossen an Buchse D5](../../../../../translated_images/de/pi-button.c7a1a4f55943341c.webp) ## Audio aufnehmen diff --git a/translations/de/6-consumer/lessons/1-speech-recognition/pi-microphone.md b/translations/de/6-consumer/lessons/1-speech-recognition/pi-microphone.md index 0632d991f..716eea9eb 100644 --- a/translations/de/6-consumer/lessons/1-speech-recognition/pi-microphone.md +++ b/translations/de/6-consumer/lessons/1-speech-recognition/pi-microphone.md @@ -34,7 +34,7 @@ Das Mikrofon und die Lautsprecher müssen angeschlossen und konfiguriert werden. 1. Wenn Sie das ReSpeaker 2-Mics Pi HAT verwenden, können Sie die Grove-Basisplatine entfernen und das ReSpeaker-HAT an deren Stelle einsetzen. - ![Ein Raspberry Pi mit einem ReSpeaker-HAT](../../../../../translated_images/de/pi-respeaker-hat.f00fabe7dd039a93e2e0aa0fc946c9af0c6a9eb17c32fa1ca097fb4e384f69f0.png) + ![Ein Raspberry Pi mit einem ReSpeaker-HAT](../../../../../translated_images/de/pi-respeaker-hat.f00fabe7dd039a93.webp) Später in dieser Lektion benötigen Sie einen Grove-Button, aber einer ist bereits in diesem HAT integriert, sodass die Grove-Basisplatine nicht erforderlich ist. diff --git a/translations/de/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md b/translations/de/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md index ab9523e67..4706c8cc3 100644 --- a/translations/de/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md +++ b/translations/de/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md @@ -10,7 +10,7 @@ Das eingebaute Mikrofon erfasst ein analoges Signal, das in ein digitales Signal ✅ Lesen Sie mehr über DMA auf der [Wikipedia-Seite zu Direct Memory Access](https://wikipedia.org/wiki/Direct_memory_access). -![Audio vom Mikrofon geht zu einem ADC und dann zum DMAC. Dieser schreibt in einen Puffer. Wenn dieser Puffer voll ist, wird er verarbeitet und der DMAC schreibt in einen zweiten Puffer](../../../../../translated_images/de/dmac-adc-buffers.4509aee49145c90bc2e1be472b8ed2ddfcb2b6a81ad3e559114aca55f5fff759.png) +![Audio vom Mikrofon geht zu einem ADC und dann zum DMAC. Dieser schreibt in einen Puffer. Wenn dieser Puffer voll ist, wird er verarbeitet und der DMAC schreibt in einen zweiten Puffer](../../../../../translated_images/de/dmac-adc-buffers.4509aee49145c90b.webp) Der DMAC kann Audio vom ADC in festen Intervallen erfassen, beispielsweise 16.000 Mal pro Sekunde für 16-kHz-Audio. Er kann diese erfassten Daten in einen vorab zugewiesenen Speicherpuffer schreiben und, wenn dieser voll ist, Ihrem Code zur Verarbeitung zur Verfügung stellen. Die Verwendung dieses Speichers kann die Audioaufnahme verzögern, aber Sie können mehrere Puffer einrichten. Der DMAC schreibt in Puffer 1, und wenn dieser voll ist, benachrichtigt er Ihren Code, um Puffer 1 zu verarbeiten, während der DMAC in Puffer 2 schreibt. Wenn Puffer 2 voll ist, benachrichtigt er Ihren Code und schreibt wieder in Puffer 1. Solange Sie jeden Puffer in weniger Zeit verarbeiten, als es dauert, einen zu füllen, gehen keine Daten verloren. diff --git a/translations/de/6-consumer/lessons/2-language-understanding/README.md b/translations/de/6-consumer/lessons/2-language-understanding/README.md index 848c75ceb..88668b9ce 100644 --- a/translations/de/6-consumer/lessons/2-language-understanding/README.md +++ b/translations/de/6-consumer/lessons/2-language-understanding/README.md @@ -1,6 +1,6 @@ # Sprache verstehen -![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-22.6148ea28500d9e00c396aaa2649935fb6641362c8f03d8e5e90a676977ab01dd.jpg) +![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-22.6148ea28500d9e00.webp) > Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version. @@ -46,7 +46,7 @@ Sprachverständnismodelle sind KI-Modelle, die darauf trainiert sind, bestimmte ## Ein Sprachverständnismodell erstellen -![Das LUIS-Logo](../../../../../translated_images/de/luis-logo.5cb4f3e88c020ee6df4f614e8831f4a4b6809a7247bf52085fb48d629ef9be52.png) +![Das LUIS-Logo](../../../../../translated_images/de/luis-logo.5cb4f3e88c020ee6.webp) Sie können Sprachverständnismodelle mit LUIS erstellen, einem Sprachverständnisdienst von Microsoft, der Teil der Cognitive Services ist. @@ -169,7 +169,7 @@ Anleitungen zur Verwendung des LUIS-Portals finden Sie in der [Quickstart-Dokume 1. Während Sie jedes Beispiel eingeben, wird LUIS beginnen, Entitäten zu erkennen, und wird unterstreichen und kennzeichnen, was es findet. - ![Die Beispiele mit den von LUIS unterstrichenen Zahlen und Zeiteinheiten](../../../../../translated_images/de/luis-intent-examples.25716580b2d2723cf1bafdf277d015c7f046d8cfa20f27bddf3a0873ec45fab7.png) + ![Die Beispiele mit den von LUIS unterstrichenen Zahlen und Zeiteinheiten](../../../../../translated_images/de/luis-intent-examples.25716580b2d2723c.webp) ### Aufgabe – Modell trainieren und testen diff --git a/translations/de/6-consumer/lessons/3-spoken-feedback/README.md b/translations/de/6-consumer/lessons/3-spoken-feedback/README.md index fc25f37f0..553eea6f0 100644 --- a/translations/de/6-consumer/lessons/3-spoken-feedback/README.md +++ b/translations/de/6-consumer/lessons/3-spoken-feedback/README.md @@ -1,6 +1,6 @@ # Stelle einen Timer ein und gib mündliches Feedback -![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-23.f38483e1d4df4828990d3f02d60e46c978b075d384ae7cb4f7bab738e107c850.jpg) +![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-23.f38483e1d4df4828.webp) > Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicke auf das Bild für eine größere Version. diff --git a/translations/de/6-consumer/lessons/4-multiple-language-support/README.md b/translations/de/6-consumer/lessons/4-multiple-language-support/README.md index 161079aef..552c310a4 100644 --- a/translations/de/6-consumer/lessons/4-multiple-language-support/README.md +++ b/translations/de/6-consumer/lessons/4-multiple-language-support/README.md @@ -1,6 +1,6 @@ # Unterstützung mehrerer Sprachen -![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-24.4246968ed058510ab275052e87ef9aa89c7b2f938915d103c605c04dc6cd5bb7.jpg) +![Eine Sketchnote-Übersicht dieser Lektion](../../../../../translated_images/de/lesson-24.4246968ed058510a.webp) > Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version. @@ -74,7 +74,7 @@ Es gibt eine Reihe von KI-Diensten, die von Ihren Anwendungen genutzt werden kö ### Cognitive Services Sprachdienst -![Das Logo des Sprachdienstes](../../../../../translated_images/de/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![Das Logo des Sprachdienstes](../../../../../translated_images/de/azure-speech-logo.a1f08c4befb0159f.webp) Der Sprachdienst, den Sie in den letzten Lektionen verwendet haben, verfügt über Übersetzungsfunktionen für die Spracherkennung. Wenn Sie Sprache erkennen, können Sie nicht nur den Text der Sprache in derselben Sprache anfordern, sondern auch in anderen Sprachen. @@ -82,7 +82,7 @@ Der Sprachdienst, den Sie in den letzten Lektionen verwendet haben, verfügt üb ### Cognitive Services Übersetzungsdienst -![Das Logo des Übersetzungsdienstes](../../../../../translated_images/de/azure-translator-logo.c6ed3a4a433edfd2f11577eca105412c50b8396b194cbbd730723dd1d0793bcd.png) +![Das Logo des Übersetzungsdienstes](../../../../../translated_images/de/azure-translator-logo.c6ed3a4a433edfd2.webp) Der Übersetzungsdienst ist ein dedizierter Übersetzungsdienst, der Text von einer Sprache in eine oder mehrere Zielsprachen übersetzen kann. Neben der Übersetzung unterstützt er eine Vielzahl zusätzlicher Funktionen, einschließlich der Maskierung von Obszönitäten. Er ermöglicht es Ihnen auch, eine spezifische Übersetzung für ein bestimmtes Wort oder einen bestimmten Satz bereitzustellen, um mit Begriffen zu arbeiten, die Sie nicht übersetzen möchten, oder eine spezifische, bekannte Übersetzung zu verwenden. diff --git a/translations/de/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md b/translations/de/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md index 5dba81c27..3db1ca0aa 100644 --- a/translations/de/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md +++ b/translations/de/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md @@ -25,7 +25,7 @@ Die REST-API des Sprachdienstes unterstützt keine direkten Übersetzungen. Stat > > Zum Beispiel, wenn Sie LUIS auf Englisch trainieren, aber Französisch als Benutzersprache verwenden möchten, können Sie Sätze wie "set a 2 minute and 27 second timer" mit Bing Translate von Englisch ins Französische übersetzen und dann die Schaltfläche **Listen translation** verwenden, um die Übersetzung in Ihr Mikrofon zu sprechen. > - > ![Die Schaltfläche "Listen translation" auf Bing Translate](../../../../../translated_images/de/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Die Schaltfläche "Listen translation" auf Bing Translate](../../../../../translated_images/de/bing-translate.348aa796d6efe2a9.webp) 1. Fügen Sie den API-Schlüssel des Übersetzungsdienstes unterhalb des `speech_api_key` hinzu: diff --git a/translations/de/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md b/translations/de/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md index 5a972c25f..0e1cd127b 100644 --- a/translations/de/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md +++ b/translations/de/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md @@ -37,7 +37,7 @@ Der Sprachdienst kann Sprache nicht nur in Text in derselben Sprache umwandeln, > > Wenn Sie beispielsweise LUIS auf Englisch trainieren, aber Französisch als Benutzersprache verwenden möchten, können Sie Sätze wie "set a 2 minute and 27 second timer" von Englisch ins Französische mit Bing Translate übersetzen und dann die Schaltfläche **Listen translation** verwenden, um die Übersetzung in Ihr Mikrofon zu sprechen. > - > ![Die Schaltfläche "Listen translation" auf Bing Translate](../../../../../translated_images/de/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Die Schaltfläche "Listen translation" auf Bing Translate](../../../../../translated_images/de/bing-translate.348aa796d6efe2a9.webp) 1. Ersetzen Sie die Deklarationen `recognizer_config` und `recognizer` durch Folgendes: diff --git a/translations/de/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md b/translations/de/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md index 4ee4d6c46..e8db79b3e 100644 --- a/translations/de/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md +++ b/translations/de/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md @@ -105,7 +105,7 @@ Die REST-API des Sprachdienstes unterstützt keine direkten Übersetzungen. Stat > > Wenn Sie beispielsweise LUIS auf Englisch trainieren, aber Französisch als Benutzersprache verwenden möchten, können Sie Sätze wie "set a 2 minute and 27 second timer" von Englisch ins Französische mit Bing Translate übersetzen und dann die **Listen translation**-Schaltfläche verwenden, um die Übersetzung in Ihr Mikrofon zu sprechen. > - > ![Die Listen translation-Schaltfläche auf Bing Translate](../../../../../translated_images/de/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Die Listen translation-Schaltfläche auf Bing Translate](../../../../../translated_images/de/bing-translate.348aa796d6efe2a9.webp) 1. Fügen Sie den API-Schlüssel und den Standort des Übersetzungsdienstes unterhalb von `SPEECH_LOCATION` hinzu: diff --git a/translations/de/README.md b/translations/de/README.md index 2482fd92b..89d562fce 100644 --- a/translations/de/README.md +++ b/translations/de/README.md @@ -8,144 +8,154 @@ [![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/) -### Treten Sie der Azure AI Foundry Community bei +### Tritt der Azure AI Foundry Community bei -Wenn Sie nicht weiterkommen oder Fragen zum Erstellen von KI-Anwendungen haben. Treten Sie anderen Lernenden und erfahrenen Entwicklern bei, um sich über MCP auszutauschen. Es ist eine unterstützende Community, in der Fragen willkommen sind und Wissen frei geteilt wird. +Wenn du nicht weiterkommst oder Fragen zum Erstellen von KI-Anwendungen hast. Schließe dich Gleichgesinnten und erfahrenen Entwicklern in Diskussionen über MCP an. Es ist eine unterstützende Community, in der Fragen willkommen sind und Wissen frei geteilt wird. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Wenn Sie Produktfeedback haben oder beim Erstellen Fehler auftreten, besuchen Sie: +Wenn du Produktfeedback oder Fehler beim Erstellen hast, besuche: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -Folgen Sie diesen Schritten, um mit der Nutzung dieser Ressourcen zu beginnen: -1. **Forken Sie das Repository**: Klicken Sie auf [![GitHub forks](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) -2. **Klonen Sie das Repository**: `git clone https://github.com/microsoft/IoT-For-Beginners.git` -3. [**Treten Sie dem Microsoft Foundry Discord bei und treffen Sie Experten und andere Entwickler**](https://discord.com/invite/ByRwuEEgH4) +Folge diesen Schritten, um mit der Nutzung dieser Ressourcen zu beginnen: +1. **Forke das Repository**: Klicke auf [![GitHub forks](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) +2. **Klonen das Repository**: `git clone https://github.com/microsoft/IoT-For-Beginners.git` +3. [**Tritt dem Microsoft Foundry Discord bei und triff Experten und andere Entwickler**](https://discord.com/invite/ByRwuEEgH4) ### 🌐 Mehrsprachige Unterstützung -#### Unterstützt über GitHub Action (Automatisiert & Immer Aktuell) +#### Unterstützt über GitHub Action (Automatisiert & Immer aktuell) -[Arabisch](../ar/README.md) | [Bengalisch](../bn/README.md) | [Bulgarisch](../bg/README.md) | [Birmanisch (Myanmar)](../my/README.md) | [Chinesisch (vereinfacht)](../zh-CN/README.md) | [Chinesisch (traditionell, Hongkong)](../zh-HK/README.md) | [Chinesisch (traditionell, Macau)](../zh-MO/README.md) | [Chinesisch (traditionell, Taiwan)](../zh-TW/README.md) | [Kroatisch](../hr/README.md) | [Tschechisch](../cs/README.md) | [Dänisch](../da/README.md) | [Niederländisch](../nl/README.md) | [Estnisch](../et/README.md) | [Finnisch](../fi/README.md) | [Französisch](../fr/README.md) | [Deutsch](./README.md) | [Griechisch](../el/README.md) | [Hebräisch](../he/README.md) | [Hindi](../hi/README.md) | [Ungarisch](../hu/README.md) | [Indonesisch](../id/README.md) | [Italienisch](../it/README.md) | [Japanisch](../ja/README.md) | [Kannada](../kn/README.md) | [Koreanisch](../ko/README.md) | [Litauisch](../lt/README.md) | [Malaiisch](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepalesisch](../ne/README.md) | [Nigerianisches Pidgin](../pcm/README.md) | [Norwegisch](../no/README.md) | [Persisch (Farsi)](../fa/README.md) | [Polnisch](../pl/README.md) | [Portugiesisch (Brasilien)](../pt-BR/README.md) | [Portugiesisch (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Rumänisch](../ro/README.md) | [Russisch](../ru/README.md) | [Serbisch (kyrillisch)](../sr/README.md) | [Slowakisch](../sk/README.md) | [Slowenisch](../sl/README.md) | [Spanisch](../es/README.md) | [Swahili](../sw/README.md) | [Schwedisch](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thailändisch](../th/README.md) | [Türkisch](../tr/README.md) | [Ukrainisch](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamesisch](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](./README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) -> **Bevorzugen Sie das lokale Klonen?** - -> Dieses Repository enthält über 50 Sprachübersetzungen, was die Downloadgröße erheblich erhöht. Um ohne Übersetzungen zu klonen, verwenden Sie Sparse Checkout: +> **Möchtest du lokal klonen?** +> +> Dieses Repository enthält über 50 Übersetzungen, wodurch die Downloadgröße erheblich steigt. Um ohne Übersetzungen zu klonen, verwende Sparse Checkout: +> +> **Bash / macOS / Linux:** > ```bash > git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git > cd IoT-For-Beginners > git sparse-checkout set --no-cone '/*' '!translations' '!translated_images' > ``` -> Das gibt Ihnen alles, was Sie benötigen, um den Kurs mit deutlich schnellerem Download abzuschließen. +> +> **CMD (Windows):** +> ```cmd +> git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git +> cd IoT-For-Beginners +> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" +> ``` +> +> So erhältst du alles, was du zum Abschluss des Kurses brauchst, mit deutlich schnellerem Download. -# IoT für Anfänger - Ein Lehrplan +# IoT für Einsteiger – Ein Lehrplan -Azure Cloud Advocates bei Microsoft freuen sich, einen 12-wöchigen Lehrplan mit 24 Lektionen rund um die Grundlagen des IoT anzubieten. Jede Lektion enthält Vor- und Nachquizze, schriftliche Anweisungen zur Durchführung der Lektion, eine Lösung, eine Aufgabe und mehr. Unsere projektbasierte Pädagogik erlaubt es Ihnen, durch aktives Bauen zu lernen, eine bewährte Methode, um neue Fähigkeiten zu verinnerlichen. +Die Azure Cloud Advocates bei Microsoft freuen sich, einen 12-wöchigen, 24-Lektionen umfassenden Lehrplan rund um die Grundlagen des IoT anbieten zu können. Jede Lektion beinhaltet Vor- und Nachtests, schriftliche Anleitungen zur Durchführung der Lektion, eine Lösung, eine Aufgabe und mehr. Unsere projektbasierte Pädagogik ermöglicht es dir, beim Bauen zu lernen – eine bewährte Methode, damit neue Fähigkeiten „haften bleiben“. -Die Projekte behandeln die Reise von Lebensmitteln vom Bauernhof bis auf den Tisch. Dies umfasst Landwirtschaft, Logistik, Fertigung, Handel und Verbraucher – alles beliebte Branchen für IoT-Geräte. +Die Projekte decken die Reise der Lebensmittel vom Bauernhof bis auf den Tisch ab. Dazu gehören Landwirtschaft, Logistik, Herstellung, Handel und Verbraucher – alles beliebte Branchenbereiche für IoT-Geräte. -![Ein Fahrplan für den Kurs zeigt 24 Lektionen, die Einführung, Landwirtschaft, Transport, Verarbeitung, Handel und Kochen abdecken](../../translated_images/de/Roadmap.bb1dec285dda0eda.webp) +![Eine Roadmap für den Kurs, die 24 Lektionen abdeckt und Einführung, Landwirtschaft, Transport, Verarbeitung, Handel und Kochen zeigt](../../translated_images/de/Roadmap.bb1dec285dda0eda.webp) -> Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version. +> Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicke auf das Bild für eine vergrößerte Ansicht. **Herzlichen Dank an unsere Autoren [Jen Fox](https://github.com/jenfoxbot), [Jen Looper](https://github.com/jlooper), [Jim Bennett](https://github.com/jimbobbennett) und unsere Sketchnote-Künstlerin [Nitya Narasimhan](https://github.com/nitya).** -**Danke auch an unser Team von [Microsoft Learn Student Ambassadors](https://studentambassadors.microsoft.com?WT.mc_id=academic-17441-jabenn), die diesen Lehrplan überprüft und übersetzt haben – [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) und [Zina Kamel](https://www.linkedin.com/in/zina-kamel/).** +**Danke auch an unser Team von [Microsoft Learn Student Ambassadors](https://studentambassadors.microsoft.com?WT.mc_id=academic-17441-jabenn), die diesen Lehrplan geprüft und übersetzt haben – [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) und [Zina Kamel](https://www.linkedin.com/in/zina-kamel/).** -Lernen Sie das Team kennen! +Lerne das Team kennen! [![Promo video](../../images/IOT.gif)](https://youtu.be/-wippUJRi5k) **Gif von** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Klicken Sie auf das Bild oben für ein Video über das Projekt! +> 🎥 Klicke auf das obige Bild für ein Video zum Projekt! -> **Lehrer**, wir haben [einige Vorschläge](for-teachers.md) zur Nutzung dieses Lehrplans beigelegt. Wenn Sie eigene Lektionen erstellen möchten, haben wir auch eine [Lektionsvorlage](lesson-template/README.md) bereitgestellt. +> **Lehrende**, wir haben [einige Vorschläge](for-teachers.md) zur Nutzung dieses Lehrplans aufgenommen. Wenn du eigene Lektionen erstellen möchtest, haben wir auch eine [Lektionsvorlage](lesson-template/README.md) bereitgestellt. -> **[Schüler](https://aka.ms/student-page)**, um diesen Lehrplan eigenständig zu nutzen, forken Sie das gesamte Repository und bearbeiten Sie die Übungen selbst, beginnend mit einem Vorquiz, dann Lesen der Lektion und Ausführen der restlichen Aktivitäten. Versuchen Sie, die Projekte zu erstellen, indem Sie die Lektionen verstehen, statt einfach den Lösungscode zu kopieren; dieser Code ist jedoch in den /solutions-Ordnern jeder projektbezogenen Lektion vorhanden. Eine weitere Idee wäre, eine Lerngruppe mit Freunden zu bilden und den Inhalt gemeinsam zu durchlaufen. Für weiterführende Studien empfehlen wir [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn). +> **[Lernende](https://aka.ms/student-page)**, um diesen Lehrplan selbst zu nutzen, forke das gesamte Repo und bearbeite die Übungen eigenständig, beginnend mit einem Vor-Test, dann die Lektion lesen und den Rest der Aktivitäten abschließen. Versuche, die Projekte zu erstellen, indem du die Lektionen verstehst, statt den Lösungscode einfach zu kopieren; dieser Code ist jedoch in den /solutions-Ordnern jeder projektorientierten Lektion verfügbar. Eine andere Idee ist, eine Lerngruppe mit Freunden zu bilden und den Stoff gemeinsam durchzugehen. Für weiteres Lernen empfehlen wir [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn). -Für eine Videoübersicht über diesen Kurs sehen Sie sich dieses Video an: +Für einen Überblick über diesen Kurs sieh dir dieses Video an: [![Promo video](https://img.youtube.com/vi/bccEMm8gRuc/0.jpg)](https://youtube.com/watch?v=bccEMm8gRuc "Promo video") -> 🎥 Klicken Sie auf das Bild oben für ein Video über das Projekt! +> 🎥 Klicke auf das obige Bild für ein Video zum Projekt! ## Pädagogik -Wir haben beim Aufbau dieses Lehrplans zwei pädagogische Grundsätze gewählt: sicherzustellen, dass er projektbasiert ist und häufige Quizze beinhaltet. Am Ende dieser Serie haben die Schüler ein Pflanzenüberwachungs- und Bewässerungssystem, einen Fahrzeugtracker, eine intelligente Fabrikumgebung zur Überwachung und Kontrolle von Lebensmitteln sowie einen sprachgesteuerten Küchentimer gebaut und die Grundlagen des Internet der Dinge gelernt, einschließlich wie man Gerätesoftware schreibt, eine Verbindung zur Cloud herstellt, Telemetriedaten analysiert und KI am Edge ausführt. +Wir haben beim Aufbau dieses Lehrplans zwei pädagogische Grundsätze gewählt: sicherzustellen, dass er projektbasiert ist und häufige Quizze enthält. Am Ende dieser Serie haben die Lernenden ein System zur Pflanzenüberwachung und Bewässerung, einen Fahrzeug-Tracker, einen intelligenten Fabrikaufbau zur Überwachung und Prüfung von Lebensmitteln sowie einen sprachgesteuerten Küchentimer gebaut und die Grundlagen des Internets der Dinge gelernt, einschließlich wie man Gerätesoftware schreibt, sich mit der Cloud verbindet, Telemetrie analysiert und KI am Rande ausführt. -Indem sichergestellt wird, dass der Inhalt mit Projekten übereinstimmt, wird der Prozess für die Schüler ansprechender gestaltet und das Behalten der Konzepte verbessert. +Indem der Inhalt mit Projekten abgestimmt wird, ist der Prozess für die Lernenden ansprechender, und das Behalten von Konzepten wird verbessert. -Außerdem setzt ein Quiz mit geringem Einsatz vor der Unterrichtsstunde die Lernabsicht des Schülers auf ein Thema, während ein zweites Quiz nach dem Unterricht das weitere Behalten sichert. Dieser Lehrplan wurde so gestaltet, dass er flexibel und unterhaltsam ist und ganz oder teilweise absolviert werden kann. Die Projekte beginnen klein und werden im Verlauf des 12-Wochen-Zyklus zunehmend komplexer. +Ein niedrigschwelliges Quiz vor einer Unterrichtsstunde setzt die Lernabsicht, während ein weiteres Quiz danach die weitere Behaltensleistung sichert. Dieser Lehrplan ist flexibel und macht Spaß und kann ganz oder teilweise genutzt werden. Die Projekte starten klein und werden im Verlauf der 12 Wochen immer komplexer. -Jedes Projekt basiert auf realer Hardware, die für Schüler und Hobbyisten verfügbar ist. Jedes Projekt betrachtet den spezifischen Projektbereich und liefert relevantes Hintergrundwissen. Um ein erfolgreicher Entwickler zu sein, ist es hilfreich, den Bereich zu verstehen, in dem Probleme gelöst werden. Dieses Hintergrundwissen erlaubt es den Schülern, über ihre IoT-Lösungen und Lerninhalte im Kontext der Art von realen Problemen nachzudenken, die sie als IoT-Entwickler möglicherweise lösen müssen. Die Schüler lernen das "Warum" der Lösungen, die sie bauen, und bekommen ein Verständnis für den Endanwender. +Jedes Projekt basiert auf realer Hardware, die für Studierende und Hobbyisten verfügbar ist. Jedes Projekt betrachtet die jeweilige Domäne und vermittelt relevantes Hintergrundwissen. Um ein erfolgreicher Entwickler zu sein, hilft es, die Domäne zu verstehen, in der Probleme gelöst werden; dieses Hintergrundwissen ermöglicht es den Lernenden, ihre IoT-Lösungen und -Lerninhalte im Kontext realer Problemstellungen zu betrachten, die sie als IoT-Entwickler lösen könnten. Die Lernenden verstehen das „Warum“ der Lösungen, die sie bauen, und schätzen den Endnutzer. ## Hardware +Wir haben je nach persönlicher Präferenz, Programmierkenntnissen, Lernzielen und Verfügbarkeit zwei IoT-Hardwareoptionen für die Projekte. Außerdem haben wir eine „virtuelle Hardware“-Version für diejenigen bereitgestellt, die keinen Zugriff auf Hardware haben oder mehr lernen möchten, bevor sie einen Kauf tätigen. Mehr Informationen und eine „Einkaufsliste“ finden Sie auf der [Hardware-Seite](./hardware.md), einschließlich Links zum Kauf kompletter Kits von unseren Freunden bei Seeed Studio. -Wir bieten zwei Optionen von IoT-Hardware für die Projekte an, abhängig von persönlichen Vorlieben, Programmierkenntnissen oder -präferenzen, Lernzielen und Verfügbarkeit. Außerdem haben wir eine 'virtuelle Hardware'-Version für diejenigen bereitgestellt, die keinen Zugriff auf Hardware haben oder mehr lernen möchten, bevor sie eine Anschaffung tätigen. Mehr Informationen sowie eine 'Einkaufsliste' finden Sie auf der [Hardware-Seite](./hardware.md), inklusive Links zum Kauf kompletter Kits von unseren Freunden bei Seeed Studio. -> 💁 Finden Sie unseren [Verhaltenskodex](CODE_OF_CONDUCT.md), [Beitragshilfe](CONTRIBUTING.md) und [Übersetzungsrichtlinien](TRANSLATIONS.md). Wir freuen uns auf Ihr konstruktives Feedback! +> 💁 Finden Sie unseren [Verhaltenskodex](CODE_OF_CONDUCT.md), [Beitragsrichtlinien](CONTRIBUTING.md) und [Übersetzungsrichtlinien](TRANSLATIONS.md). Wir freuen uns über Ihr konstruktives Feedback! > -> 🔧 Probleme? Sehen Sie sich unseren [Troubleshooting Guide](TROUBLESHOOTING.md) für Lösungen zu häufigen Problemen an. +> 🔧 Probleme? Schauen Sie in unserem [Problemlösungsleitfaden](TROUBLESHOOTING.md) nach Lösungen für häufige Probleme. ## Jede Lektion beinhaltet: - Sketchnote - optionales ergänzendes Video -- Vor-Lektion Aufwärmquiz +- Aufwärmquiz vor der Lektion - schriftliche Lektion -- für projektbasierte Lektionen: Schritt-für-Schritt-Anleitungen zum Aufbau des Projekts -- Wissensprüfungen +- für projektbasierte Lektionen Schritt-für-Schritt-Anleitungen zum Bau des Projekts +- Wissensüberprüfungen - eine Herausforderung - ergänzende Lektüre - Aufgabe -- [Nach-Lektion-Quiz](https://ff-quizzes.netlify.app/en/) +- [Quiz nach der Lektion](https://ff-quizzes.netlify.app/en/) -> **Eine Anmerkung zu Quizzen**: Alle Quizze sind im Ordner quiz-app enthalten, insgesamt 48 Quizze mit jeweils drei Fragen. Sie sind in den Lektionen verlinkt, die Quiz-App kann lokal ausgeführt oder auf Azure bereitgestellt werden; folgen Sie den Anweisungen im Ordner `quiz-app`. Sie werden schrittweise lokalisiert. +> **Ein Hinweis zu den Quiz:** Alle Quiz befinden sich im Ordner quiz-app, insgesamt 48 Quiz mit jeweils drei Fragen. Sie sind in den Lektionen verlinkt, die Quiz-App kann lokal ausgeführt oder auf Azure bereitgestellt werden; folgen Sie den Anweisungen im Ordner `quiz-app`. Sie werden schrittweise lokalisiert. ## Lektionen -| | Projektname | Vermittelte Konzepte | Lernziele | Verlinkte Lektion | -| :---: | :---------------------------------: | :--------------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------: | -| 01 | [Einstieg](./1-getting-started/README.md) | Einführung in IoT | Lernen Sie die Grundprinzipien des IoT und die grundlegenden Bausteine von IoT-Lösungen wie Sensoren und Cloud-Diensten kennen, während Sie Ihr erstes IoT-Gerät einrichten | [Einführung in IoT](./1-getting-started/lessons/1-introduction-to-iot/README.md) | -| 02 | [Einstieg](./1-getting-started/README.md) | Ein tieferer Einblick in IoT | Lernen Sie mehr über die Komponenten eines IoT-Systems sowie über Mikrocontroller und Einplatinencomputer | [Ein tieferer Einblick in IoT](./1-getting-started/lessons/2-deeper-dive/README.md) | -| 03 | [Einstieg](./1-getting-started/README.md) | Interaktion mit der physischen Welt durch Sensoren und Aktoren | Lernen Sie Sensoren zur Datenerfassung aus der physischen Welt und Aktoren zur Rückmeldung kennen, während Sie eine Nachtlicht bauen | [Interaktion mit der physischen Welt durch Sensoren und Aktoren](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | -| 04 | [Einstieg](./1-getting-started/README.md) | Verbinden Sie Ihr Gerät mit dem Internet | Lernen Sie, wie Sie ein IoT-Gerät mit dem Internet verbinden, um Nachrichten zu senden und zu empfangen, indem Sie Ihr Nachtlicht an einen MQTT-Broker anschließen | [Verbinden Sie Ihr Gerät mit dem Internet](./1-getting-started/lessons/4-connect-internet/README.md) | -| 05 | [Bauernhof](./2-farm/README.md) | Pflanzenwachstum vorhersagen | Lernen Sie, wie man das Pflanzenwachstum anhand von Temperaturdaten, die von einem IoT-Gerät erfasst werden, vorhersagt | [Pflanzenwachstum vorhersagen](./2-farm/lessons/1-predict-plant-growth/README.md) | -| 06 | [Bauernhof](./2-farm/README.md) | Erkennung der Bodenfeuchtigkeit | Lernen Sie, wie Sie die Bodenfeuchtigkeit erkennen und einen Bodenfeuchtesensor kalibrieren | [Bodenfeuchtigkeit erkennen](./2-farm/lessons/2-detect-soil-moisture/README.md) | -| 07 | [Bauernhof](./2-farm/README.md) | Automatisierte Pflanzenbewässerung | Lernen Sie, wie die Bewässerung zeitgesteuert mit einem Relais und MQTT automatisiert wird | [Automatisierte Pflanzenbewässerung](./2-farm/lessons/3-automated-plant-watering/README.md) | -| 08 | [Bauernhof](./2-farm/README.md) | Migrieren Sie Ihre Pflanze in die Cloud | Lernen Sie die Cloud und Cloud-gehostete IoT-Dienste kennen und wie Sie Ihre Pflanze anstelle eines öffentlichen MQTT-Brokers damit verbinden | [Migrieren Sie Ihre Pflanze in die Cloud](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | -| 09 | [Bauernhof](./2-farm/README.md) | Migrieren Sie Ihre Anwendungslogik in die Cloud | Lernen Sie, wie Sie Anwendungslogik in der Cloud schreiben, die auf IoT-Nachrichten reagiert | [Migrieren Sie Ihre Anwendungslogik in die Cloud](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | -| 10 | [Bauernhof](./2-farm/README.md) | Schützen Sie Ihre Pflanze | Lernen Sie IoT-Sicherheit und wie Sie Ihre Pflanze mit Schlüsseln und Zertifikaten schützen | [Schützen Sie Ihre Pflanze](./2-farm/lessons/6-keep-your-plant-secure/README.md) | -| 11 | [Transport](./3-transport/README.md) | Standortverfolgung | Lernen Sie GPS-Standortverfolgung für IoT-Geräte kennen | [Standortverfolgung](./3-transport/lessons/1-location-tracking/README.md) | -| 12 | [Transport](./3-transport/README.md) | Speichern von Standortdaten | Lernen Sie, wie Sie IoT-Daten speichern, um sie später zu visualisieren oder zu analysieren | [Speichern von Standortdaten](./3-transport/lessons/2-store-location-data/README.md) | -| 13 | [Transport](./3-transport/README.md) | Visualisierung von Standortdaten | Lernen Sie, wie Standortdaten auf einer Karte visualisiert werden und wie Karten die reale 3D-Welt in 2 Dimensionen darstellen | [Visualisierung von Standortdaten](./3-transport/lessons/3-visualize-location-data/README.md) | -| 14 | [Transport](./3-transport/README.md) | Geofences | Lernen Sie Geofences kennen und wie sie verwendet werden können, um Benachrichtigungen zu geben, wenn Fahrzeuge in der Lieferkette nahe an ihrem Ziel sind | [Geofences](./3-transport/lessons/4-geofences/README.md) | -| 15 | [Fertigung](./4-manufacturing/README.md) | Trainieren eines Qualitätsdetektors für Obst | Lernen Sie, wie man einen Bildklassifikator in der Cloud trainiert, um die Qualität von Obst zu erkennen | [Trainieren eines Qualitätsdetektors für Obst](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | -| 16 | [Fertigung](./4-manufacturing/README.md) | Qualitätsprüfung von Obst mit einem IoT-Gerät | Lernen Sie, wie Sie Ihren Obstqualitätsdetektor von einem IoT-Gerät aus nutzen | [Qualitätsprüfung von Obst mit einem IoT-Gerät](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | -| 17 | [Fertigung](./4-manufacturing/README.md) | Ausführen Ihres Obst-Detektors am Rand | Lernen Sie, wie Sie Ihren Obst-Detektor auf einem IoT-Gerät am Edge ausführen | [Ausführen Ihres Obst-Detektors am Rand](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | -| 18 | [Fertigung](./4-manufacturing/README.md) | Auslösung der Obstqualitätsprüfung durch einen Sensor | Lernen Sie, wie Sie die Obstqualitätsprüfung durch einen Sensor auslösen | [Auslösung der Obstqualitätsprüfung durch einen Sensor](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | -| 19 | [Einzelhandel](./5-retail/README.md) | Trainieren eines Lagerbestandsdetektors | Lernen Sie, wie Sie Objekterkennung verwenden, um einen Lagerbestandsdetektor zu trainieren, der Bestände in einem Laden zählt | [Trainieren eines Lagerbestandsdetektors](./5-retail/lessons/1-train-stock-detector/README.md) | -| 20 | [Einzelhandel](./5-retail/README.md) | Überprüfen des Lagerbestands von einem IoT-Gerät | Lernen Sie, wie Sie den Lagerbestand von einem IoT-Gerät mithilfe eines Objekterkennungsmodells überprüfen | [Überprüfen des Lagerbestands von einem IoT-Gerät](./5-retail/lessons/2-check-stock-device/README.md) | -| 21 | [Verbraucher](./6-consumer/README.md) | Spracherkennung mit einem IoT-Gerät | Lernen Sie, wie Sie Sprache von einem IoT-Gerät erkennen, um einen intelligenten Timer zu bauen | [Spracherkennung mit einem IoT-Gerät](./6-consumer/lessons/1-speech-recognition/README.md) | -| 22 | [Verbraucher](./6-consumer/README.md) | Sprachverständnis | Lernen Sie, wie Sätze, die an ein IoT-Gerät gesprochen werden, verstanden werden | [Sprachverständnis](./6-consumer/lessons/2-language-understanding/README.md) | -| 23 | [Verbraucher](./6-consumer/README.md) | Timer einstellen und gesprochenes Feedback geben | Lernen Sie, wie man einen Timer auf einem IoT-Gerät einstellt und gesprochenes Feedback gibt, wann der Timer gestellt und beendet ist | [Timer einstellen und gesprochenes Feedback geben](./6-consumer/lessons/3-spoken-feedback/README.md) | -| 24 | [Verbraucher](./6-consumer/README.md) | Unterstützung mehrerer Sprachen | Lernen Sie, wie Sie mehrere Sprachen unterstützen, sowohl angesprochen werden als auch die Antworten von Ihrem intelligenten Timer | [Unterstützung mehrerer Sprachen](./6-consumer/lessons/4-multiple-language-support/README.md) | +| | Projektname | Vermittelte Konzepte | Lernziele | Verknüpfte Lektion | +| :---: | :-----------------------------------: | :-------------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------: | +| 01 | [Erste Schritte](./1-getting-started/README.md) | Einführung in IoT | Lernen Sie die Grundprinzipien des IoT und die grundlegenden Bausteine von IoT-Lösungen wie Sensoren und Cloud-Dienste, während Sie Ihr erstes IoT-Gerät einrichten | [Einführung in IoT](./1-getting-started/lessons/1-introduction-to-iot/README.md) | +| 02 | [Erste Schritte](./1-getting-started/README.md) | Ein tieferer Einblick in IoT | Lernen Sie mehr über die Komponenten eines IoT-Systems sowie Mikrocontroller und Single-Board-Computer | [Ein tieferer Einblick in IoT](./1-getting-started/lessons/2-deeper-dive/README.md) | +| 03 | [Erste Schritte](./1-getting-started/README.md) | Mit der physischen Welt mit Sensoren und Aktoren interagieren | Lernen Sie Sensoren kennen, um Daten aus der physischen Welt zu erfassen, und Aktoren, um Rückmeldungen zu senden, während Sie eine Nachtlampe bauen | [Mit der physischen Welt mit Sensoren und Aktoren interagieren](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | +| 04 | [Erste Schritte](./1-getting-started/README.md) | Verbinden Sie Ihr Gerät mit dem Internet | Lernen Sie, wie Sie ein IoT-Gerät mit dem Internet verbinden, um Nachrichten zu senden und zu empfangen, indem Sie Ihre Nachtlampe mit einem MQTT-Broker verbinden | [Verbinden Sie Ihr Gerät mit dem Internet](./1-getting-started/lessons/4-connect-internet/README.md) | +| 05 | [Landwirtschaft](./2-farm/README.md) | Pflanzenwachstum vorhersagen | Lernen Sie, wie Sie mithilfe von Temperaturdaten, die von einem IoT-Gerät erfasst werden, das Pflanzenwachstum vorhersagen können | [Pflanzenwachstum vorhersagen](./2-farm/lessons/1-predict-plant-growth/README.md) | +| 06 | [Landwirtschaft](./2-farm/README.md) | Bodenfeuchtigkeit erkennen | Lernen Sie, wie Sie Bodenfeuchtigkeit erkennen und einen Bodenfeuchtesensor kalibrieren | [Bodenfeuchtigkeit erkennen](./2-farm/lessons/2-detect-soil-moisture/README.md) | +| 07 | [Landwirtschaft](./2-farm/README.md) | Automatisierte Pflanzenbewässerung | Lernen Sie, wie Sie die Bewässerung mit einem Relais und MQTT automatisieren und zeitlich steuern | [Automatisierte Pflanzenbewässerung](./2-farm/lessons/3-automated-plant-watering/README.md) | +| 08 | [Landwirtschaft](./2-farm/README.md) | Migrieren Sie Ihre Pflanze in die Cloud | Lernen Sie die Cloud und cloudbasierte IoT-Dienste kennen und wie Sie Ihre Pflanze mit einem dieser Dienste anstelle eines öffentlichen MQTT-Brokers verbinden | [Migrieren Sie Ihre Pflanze in die Cloud](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | +| 09 | [Landwirtschaft](./2-farm/README.md) | Migrieren Sie Ihre Anwendungslogik in die Cloud | Lernen Sie, wie Sie Anwendungslogik in der Cloud schreiben können, die auf IoT-Nachrichten reagiert | [Migrieren Sie Ihre Anwendungslogik in die Cloud](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | +| 10 | [Landwirtschaft](./2-farm/README.md) | Schützen Sie Ihre Pflanze | Lernen Sie über Sicherheit im IoT und wie Sie Ihre Pflanze mit Schlüsseln und Zertifikaten sichern | [Schützen Sie Ihre Pflanze](./2-farm/lessons/6-keep-your-plant-secure/README.md) | +| 11 | [Transport](./3-transport/README.md) | Standortverfolgung | Lernen Sie GPS-Standortverfolgung für IoT-Geräte kennen | [Standortverfolgung](./3-transport/lessons/1-location-tracking/README.md) | +| 12 | [Transport](./3-transport/README.md) | Standortdaten speichern | Lernen Sie, wie Sie IoT-Daten speichern, um sie später zu visualisieren oder zu analysieren | [Standortdaten speichern](./3-transport/lessons/2-store-location-data/README.md) | +| 13 | [Transport](./3-transport/README.md) | Standortdaten visualisieren | Lernen Sie, wie man Standortdaten auf einer Karte visualisiert und wie Karten die reale 3D-Welt in 2D darstellen | [Standortdaten visualisieren](./3-transport/lessons/3-visualize-location-data/README.md) | +| 14 | [Transport](./3-transport/README.md) | Geofences | Lernen Sie über Geofences und wie diese verwendet werden können, um zu benachrichtigen, wenn Fahrzeuge in der Lieferkette ihrem Ziel nahekommen | [Geofences](./3-transport/lessons/4-geofences/README.md) | +| 15 | [Fertigung](./4-manufacturing/README.md) | Trainieren eines Fruchtqualitätsdetektors | Lernen Sie, wie man einen Bildklassifikator in der Cloud trainiert, um die Fruchtqualität zu erkennen | [Trainieren eines Fruchtqualitätsdetektors](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | +| 16 | [Fertigung](./4-manufacturing/README.md) | Prüfen der Fruchtqualität mit einem IoT-Gerät | Lernen Sie, wie Sie Ihren Fruchtqualitätsdetektor von einem IoT-Gerät aus nutzen können | [Prüfen der Fruchtqualität mit einem IoT-Gerät](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | +| 17 | [Fertigung](./4-manufacturing/README.md) | Fruchterkennung auf dem Edge ausführen | Lernen Sie, wie Sie Ihren Fruchtqualitätsdetektor auf einem IoT-Gerät am Edge ausführen | [Fruchterkennung auf dem Edge ausführen](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | +| 18 | [Fertigung](./4-manufacturing/README.md) | Auslösen der Fruchtqualitätsdetektion per Sensor | Lernen Sie, wie man die Fruchtqualitätsdetektion durch einen Sensor auslöst | [Auslösen der Fruchtqualitätsdetektion per Sensor](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | +| 19 | [Einzelhandel](./5-retail/README.md) | Trainieren eines Lagerbestandsdetektors | Lernen Sie, wie man Objekterkennung verwendet, um einen Lagerbestandsdetektor zu trainieren, der den Bestand in einem Geschäft zählt | [Trainieren eines Lagerbestandsdetektors](./5-retail/lessons/1-train-stock-detector/README.md) | +| 20 | [Einzelhandel](./5-retail/README.md) | Lagerbestand mit einem IoT-Gerät überprüfen | Lernen Sie, wie Sie den Lagerbestand von einem IoT-Gerät mithilfe eines Objekterkennungsmodells überprüfen | [Lagerbestand mit einem IoT-Gerät überprüfen](./5-retail/lessons/2-check-stock-device/README.md) | +| 21 | [Verbraucher](./6-consumer/README.md) | Spracherkennung mit einem IoT-Gerät | Lernen Sie, wie man Sprache mit einem IoT-Gerät erkennt, um einen intelligenten Timer zu bauen | [Spracherkennung mit einem IoT-Gerät](./6-consumer/lessons/1-speech-recognition/README.md) | +| 22 | [Verbraucher](./6-consumer/README.md) | Sprache verstehen | Lernen Sie, wie man Sätze versteht, die zu einem IoT-Gerät gesprochen werden | [Sprache verstehen](./6-consumer/lessons/2-language-understanding/README.md) | +| 23 | [Verbraucher](./6-consumer/README.md) | Timer einstellen und gesprochene Rückmeldung geben | Lernen Sie, wie man einen Timer auf einem IoT-Gerät einstellt und gesprochene Rückmeldungen darüber gibt, wann der Timer eingestellt wird und endet | [Timer einstellen und gesprochene Rückmeldung geben](./6-consumer/lessons/3-spoken-feedback/README.md) | +| 24 | [Verbraucher](./6-consumer/README.md) | Unterstützung mehrerer Sprachen | Lernen Sie, wie man mehrere Sprachen unterstützt, sowohl für gesprochene Eingaben als auch für Rückmeldungen von Ihrem intelligenten Timer | [Unterstützung mehrerer Sprachen](./6-consumer/lessons/4-multiple-language-support/README.md) | ## Offline-Zugriff -Sie können diese Dokumentation offline mit [Docsify](https://docsify.js.org/#/) ausführen. Forken Sie dieses Repo, [installieren Sie Docsify](https://docsify.js.org/#/quickstart) auf Ihrem lokalen Rechner und geben Sie dann im Stammverzeichnis dieses Repos `docsify serve` ein. Die Webseite wird unter Port 3000 auf Ihrem localhost ausgegeben: `localhost:3000`. +Sie können diese Dokumentation offline mit [Docsify](https://docsify.js.org/#/) ausführen. Forken Sie dieses Repo, [installieren Docsify](https://docsify.js.org/#/quickstart) auf Ihrem lokalen Rechner und geben dann im Stammordner dieses Repos `docsify serve` ein. Die Website wird auf Port 3000 auf Ihrem lokalen Host bereitgestellt: `localhost:3000`. ## Quiz -Dank der Community gibt es ein interaktives Quiz, mit dem Sie Ihr Wissen zu jedem Kapitel testen können. Testen Sie Ihr Wissen [hier](https://ff-quizzes.netlify.app/en/) +Dank an die Community für die Bereitstellung des interaktiven Quiz, das Ihr Wissen zu jedem Kapitel testet. Testen Sie Ihr Wissen [hier](https://ff-quizzes.netlify.app/en/) ### PDF -Sie können bei Bedarf eine PDF-Version dieses Inhalts für den Offline-Zugriff generieren. Stellen Sie dazu sicher, dass Sie [npm installiert](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) haben und führen Sie die folgenden Befehle im Stammverzeichnis dieses Repos aus: +Falls gewünscht, können Sie eine PDF-Version dieses Inhalts für den Offline-Zugriff erzeugen. Stellen Sie dazu sicher, dass [npm installiert](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) ist, und führen Sie die folgenden Befehle im Stammordner dieses Repos aus: ```sh npm i @@ -154,24 +164,24 @@ npm run convert ### Folien -Es gibt Folien zu einigen Lektionen im Ordner [slides](../../slides). +Für einige Lektionen gibt es Foliensätze im Ordner [slides](../../slides). -## Weitere Curricula +## Andere Lehrpläne -Unser Team erstellt weitere Curricula! Schauen Sie mal: +Unser Team erstellt weitere Lehrpläne! Schauen Sie sich an: ### LangChain -[![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) -[![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) - +[![LangChain4j für Anfänger](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) +[![LangChain.js für Anfänger](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain für Anfänger](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- -### Azure / Edge / MCP / Agents -[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +### Azure / Edge / MCP / Agenten +[![AZD für Anfänger](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Edge AI für Anfänger](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![MCP für Anfänger](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) [![KI-Agenten für Anfänger](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- @@ -196,18 +206,18 @@ Unser Team erstellt weitere Curricula! Schauen Sie mal: --- ### Copilot-Serie -[![Copilot für KI-Paarprogrammierung](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot für AI-Paarprogrammierung](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) [![Copilot für C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) [![Copilot Abenteuer](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) ## Bildnachweise -Alle erforderlichen Nachweise für die in diesem Curriculum verwendeten Bilder finden Sie unter [Attributions](./attributions.md). +Sie finden alle Nachweise für die in diesem Curriculum verwendeten Bilder, falls erforderlich, unter [Attributions](./attributions.md). --- **Haftungsausschluss**: -Dieses Dokument wurde mit dem KI-Übersetzungsdienst [Co-op Translator](https://github.com/Azure/co-op-translator) übersetzt. Obwohl wir auf Genauigkeit achten, können automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten. Das Originaldokument in seiner Ursprungssprache ist als maßgebliche Quelle zu betrachten. Für wichtige Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die durch die Nutzung dieser Übersetzung entstehen. +Dieses Dokument wurde mit dem KI-Übersetzungsdienst [Co-op Translator](https://github.com/Azure/co-op-translator) übersetzt. Obwohl wir auf Genauigkeit achten, beachten Sie bitte, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner Ursprungssprache gilt als maßgebliche Quelle. Für wichtige Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die aus der Nutzung dieser Übersetzung entstehen. \ No newline at end of file diff --git a/translations/de/hardware.md b/translations/de/hardware.md index 2d62b59f8..a0dadb45e 100644 --- a/translations/de/hardware.md +++ b/translations/de/hardware.md @@ -26,7 +26,7 @@ Seeed Studios haben freundlicherweise alle Hardware als einfach zu kaufende Kits **[IoT für Anfänger mit Seeed und Microsoft - Raspberry Pi 4 Starter Kit](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html)** -[![Das Raspberry Pi Terminal Hardware Kit](../../translated_images/de/pi-hardware-kit.26dbadaedb7dd44c73b0131d5d68ea29472ed0a9744f90d5866c6d82f2d16380.png)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) +[![Das Raspberry Pi Terminal Hardware Kit](../../translated_images/de/pi-hardware-kit.26dbadaedb7dd44c.webp)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) ## Arduino diff --git a/translations/el/.co-op-translator.json b/translations/el/.co-op-translator.json index cf30d2053..e8a0846db 100644 --- a/translations/el/.co-op-translator.json +++ b/translations/el/.co-op-translator.json @@ -738,8 +738,8 @@ "language_code": "el" }, "README.md": { - "original_hash": "3fcc056cd3837e33d2bdf79f9c359fcf", - "translation_date": "2026-01-30T01:57:11+00:00", + "original_hash": "accf69391fa4450eadbf492ca024cccf", + "translation_date": "2026-04-06T16:55:48+00:00", "source_file": "README.md", "language_code": "el" }, diff --git a/translations/el/1-getting-started/lessons/1-introduction-to-iot/README.md b/translations/el/1-getting-started/lessons/1-introduction-to-iot/README.md index 9e2301c24..45a683129 100644 --- a/translations/el/1-getting-started/lessons/1-introduction-to-iot/README.md +++ b/translations/el/1-getting-started/lessons/1-introduction-to-iot/README.md @@ -1,6 +1,6 @@ # Εισαγωγή στο IoT -![Μια σκίτσο-σημείωση επισκόπησης αυτού του μαθήματος](../../../../../translated_images/el/lesson-1.2606670fa61ee904687da5d6fa4e726639d524d064c895117da1b95b9ff6251d.jpg) +![Μια σκίτσο-σημείωση επισκόπησης αυτού του μαθήματος](../../../../../translated_images/el/lesson-1.2606670fa61ee904.webp) > Σκίτσο-σημείωση από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση. diff --git a/translations/el/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md b/translations/el/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md index 5169c8159..fc67991b3 100644 --- a/translations/el/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md +++ b/translations/el/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md @@ -203,7 +203,7 @@ Η εφαρμογή θα ξεκινήσει να εκτελείται και θα ανοίξει στον περιηγητή σας: - ![Η εφαρμογή Counter Fit εκτελείται σε περιηγητή](../../../../../translated_images/el/counterfit-first-run.433326358b669b31d0e99c3513cb01bfbb13724d162c99cdcc8f51ecf5f9c779.png) + ![Η εφαρμογή Counter Fit εκτελείται σε περιηγητή](../../../../../translated_images/el/counterfit-first-run.433326358b669b31.webp) Θα εμφανίζεται ως *Disconnected*, με το LED στην επάνω δεξιά γωνία να είναι σβηστό. @@ -224,7 +224,7 @@ 1. Στο νέο αυτό τερματικό, εκτελέστε το αρχείο `app.py` όπως πριν. Η κατάσταση του CounterFit θα αλλάξει σε **Connected** και το LED θα ανάψει. - ![Το Counter Fit δείχνει ότι είναι συνδεδεμένο](../../../../../translated_images/el/counterfit-connected.ed30b46d8f79b0921f3fc70be10366e596a89dca3f80c2224a9d9fc98fccf884.png) + ![Το Counter Fit δείχνει ότι είναι συνδεδεμένο](../../../../../translated_images/el/counterfit-connected.ed30b46d8f79b092.webp) > 💁 Μπορείτε να βρείτε αυτόν τον κώδικα στον φάκελο [code/virtual-device](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/virtual-device). diff --git a/translations/el/1-getting-started/lessons/2-deeper-dive/README.md b/translations/el/1-getting-started/lessons/2-deeper-dive/README.md index c974ea59e..07c48d413 100644 --- a/translations/el/1-getting-started/lessons/2-deeper-dive/README.md +++ b/translations/el/1-getting-started/lessons/2-deeper-dive/README.md @@ -1,6 +1,6 @@ # Μια βαθύτερη ματιά στο IoT -![Μια επισκόπηση του μαθήματος σε σκίτσο](../../../../../translated_images/el/lesson-2.324b0580d620c25e0a24fb7fddfc0b29a846dd4b82c08e7a9466d580ee78ce51.jpg) +![Μια επισκόπηση του μαθήματος σε σκίτσο](../../../../../translated_images/el/lesson-2.324b0580d620c25e.webp) > Σκίτσο από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση. @@ -38,7 +38,7 @@ Αυτές οι συσκευές αλληλεπιδρούν με τον φυσικό κόσμο είτε χρησιμοποιώντας αισθητήρες για να συλλέξουν δεδομένα από το περιβάλλον τους είτε ελέγχοντας εξόδους ή ενεργοποιητές για να κάνουν φυσικές αλλαγές. Ένα τυπικό παράδειγμα είναι ένας έξυπνος θερμοστάτης - μια συσκευή που διαθέτει αισθητήρα θερμοκρασίας, έναν τρόπο ρύθμισης της επιθυμητής θερμοκρασίας, όπως ένας διακόπτης ή μια οθόνη αφής, και μια σύνδεση με ένα σύστημα θέρμανσης ή ψύξης που μπορεί να ενεργοποιηθεί όταν η ανιχνευόμενη θερμοκρασία είναι εκτός του επιθυμητού εύρους. Ο αισθητήρας θερμοκρασίας ανιχνεύει ότι το δωμάτιο είναι πολύ κρύο και ένας ενεργοποιητής ενεργοποιεί τη θέρμανση. -![Διάγραμμα που δείχνει τη θερμοκρασία και έναν διακόπτη ως εισόδους σε μια συσκευή IoT, και τον έλεγχο ενός θερμαντήρα ως έξοδο](../../../../../translated_images/el/basic-thermostat.a923217fd1f37e5a6f3390396a65c22a387419ea2dd17e518ec24315ba6ae9a8.png) +![Διάγραμμα που δείχνει τη θερμοκρασία και έναν διακόπτη ως εισόδους σε μια συσκευή IoT, και τον έλεγχο ενός θερμαντήρα ως έξοδο](../../../../../translated_images/el/basic-thermostat.a923217fd1f37e5a.webp) Υπάρχει μια τεράστια ποικιλία διαφορετικών πραγμάτων που μπορούν να λειτουργήσουν ως συσκευές IoT, από εξειδικευμένο υλικό που ανιχνεύει ένα πράγμα, έως γενικής χρήσης συσκευές, ακόμα και το smartphone σας! Ένα smartphone μπορεί να χρησιμοποιήσει αισθητήρες για να ανιχνεύσει τον κόσμο γύρω του και ενεργοποιητές για να αλληλεπιδράσει με τον κόσμο - για παράδειγμα, χρησιμοποιώντας έναν αισθητήρα GPS για να ανιχνεύσει την τοποθεσία σας και ένα ηχείο για να σας δώσει οδηγίες πλοήγησης προς έναν προορισμό. @@ -54,7 +54,7 @@ Στο παράδειγμα ενός έξυπνου θερμοστάτη, ο θερμοστάτης θα συνδεθεί χρησιμοποιώντας το WiFi του σπιτιού σε μια υπηρεσία cloud. Θα στείλει τα δεδομένα θερμοκρασίας σε αυτή την υπηρεσία cloud, και από εκεί θα γραφτούν σε μια βάση δεδομένων, επιτρέποντας στον ιδιοκτήτη του σπιτιού να ελέγξει τις τρέχουσες και παρελθούσες θερμοκρασίες μέσω μιας εφαρμογής στο τηλέφωνο. Μια άλλη υπηρεσία στο cloud θα γνωρίζει ποια θερμοκρασία θέλει ο ιδιοκτήτης και θα στέλνει μηνύματα πίσω στη συσκευή IoT μέσω της υπηρεσίας cloud για να πει στο σύστημα θέρμανσης να ενεργοποιηθεί ή να απενεργοποιηθεί. -![Διάγραμμα που δείχνει τη θερμοκρασία και έναν διακόπτη ως εισόδους σε μια συσκευή IoT, τη συσκευή IoT με αμφίδρομη επικοινωνία με το cloud, το οποίο με τη σειρά του έχει αμφίδρομη επικοινωνία με ένα τηλέφωνο, και τον έλεγχο ενός θερμαντήρα ως έξοδο από τη συσκευή IoT](../../../../../translated_images/el/mobile-controlled-thermostat.4a994010473d8d6a52ba68c67e5f02dc8928c717e93ca4b9bc55525aa75bbb60.png) +![Διάγραμμα που δείχνει τη θερμοκρασία και έναν διακόπτη ως εισόδους σε μια συσκευή IoT, τη συσκευή IoT με αμφίδρομη επικοινωνία με το cloud, το οποίο με τη σειρά του έχει αμφίδρομη επικοινωνία με ένα τηλέφωνο, και τον έλεγχο ενός θερμαντήρα ως έξοδο από τη συσκευή IoT](../../../../../translated_images/el/mobile-controlled-thermostat.4a994010473d8d6a.webp) Μια ακόμα πιο έξυπνη έκδοση θα μπορούσε να χρησιμοποιεί AI στο cloud με δεδομένα από άλλους αισθητήρες συνδεδεμένους σε άλλες συσκευές IoT, όπως αισθητήρες παρουσίας που ανιχνεύουν ποια δωμάτια χρησιμοποιούνται, καθώς και δεδομένα όπως ο καιρός και το ημερολόγιό σας, για να παίρνει αποφάσεις σχετικά με τη ρύθμιση της θερμοκρασίας με έξυπνο τρόπο. Για παράδειγμα, θα μπορούσε να απενεργοποιήσει τη θέρμανση αν διαβάσει από το ημερολόγιό σας ότι είστε σε διακοπές ή να απενεργοποιήσει τη θέρμανση ανά δωμάτιο ανάλογα με το ποια δωμάτια χρησιμοποιείτε, μαθαίνοντας από τα δεδομένα για να γίνεται όλο και πιο ακριβής με την πάροδο του χρόνου. @@ -94,7 +94,7 @@ > 💁 Οι CPU εκτελούν προγράμματα χρησιμοποιώντας τον [κύκλο fetch-decode-execute](https://wikipedia.org/wiki/Instruction_cycle). Για κάθε χτύπο ρολογιού, η CPU θα ανακτήσει την επόμενη εντολή από τη μνήμη, θα την αποκωδικοποιήσει και στη συνέχεια θα την εκτελέσει, όπως χρησιμοποιώντας μια αριθμητική λογική μονάδα (ALU) για να προσθέσει 2 αριθμούς. Ορισμένες εκτελέσεις θα χρειαστούν πολλούς χτύπους για να ολοκληρωθούν, οπότε ο επόμενος κύκλος θα εκτελεστεί στον επόμενο χτύπο μετά την ολοκλήρωση της εντολής. -![Οι κύκλοι fetch-decode-execute που δείχνουν την ανάκτηση μιας εντολής από το πρόγραμμα που είναι αποθηκευμένο στη RAM, την αποκωδικοποίησή της και την εκτέλεσή της σε μια CPU](../../../../../translated_images/el/fetch-decode-execute.2fd6f150f6280392807f4475382319abd0cee0b90058e1735444d6baa6f2078c.png) +![Οι κύκλοι fetch-decode-execute που δείχνουν την ανάκτηση μιας εντολής από το πρόγραμμα που είναι αποθηκευμένο στη RAM, την αποκωδικοποίησή της και την εκτέλεσή της σε μια CPU](../../../../../translated_images/el/fetch-decode-execute.2fd6f150f6280392.webp) Οι μικροελεγκτές έχουν πολύ χαμηλότερες ταχύτητες ρολογιού από τους επιτραπέζιους ή φορητούς υπολογιστές ή ακόμα και από τα περισσότερα smartphones. Για παράδειγμα, το Wio Terminal έχει μια CPU που λειτουργεί στα 120MHz ή 120 🎓 Η μνήμη προγράμματος αποθηκεύει τον κώδικά σας και παραμένει όταν δεν υπάρχει ρεύμα. @@ -160,7 +160,7 @@ Θα γράφατε τον κώδικα αρχικοποίησης στη συνάρτηση `setup`, όπως η σύνδεση σε WiFi και υπηρεσίες cloud ή η αρχικοποίηση ακίδων για είσοδο και έξοδο. Ο κώδικας της συνάρτησης `loop` θα περιείχε κώδικα επεξεργασίας, όπως η ανάγνωση από έναν αισθητήρα και η αποστολή της τιμής στο cloud. Συνήθως θα περιλαμβάνατε μια καθυστέρηση σε κάθε βρόχο, για παράδειγμα, αν θέλετε μόνο δεδομένα αισθητήρα να αποστέλλονται κάθε 10 δευτερόλεπτα, θα προσθέτατε μια καθυστέρηση 10 δευτερολέπτων στο τέλος του βρόχου, ώστε ο μικροελεγκτής να κοιμάται, εξοικονομώντας ενέργεια, και στη συνέχεια να εκτελεί ξανά τον βρόχο όταν χρειάζεται 10 δευτερόλεπτα αργότερα. -![Ένα sketch Arduino που εκτελεί πρώτα το setup και στη συνέχεια εκτελεί επανειλημμένα το loop](../../../../../translated_images/el/arduino-sketch.79590cb837ff7a7c6a68d1afda6cab83fd53d3bb1bd9a8bf2eaf8d693a4d3ea6.png) +![Ένα sketch Arduino που εκτελεί πρώτα το setup και στη συνέχεια εκτελεί επανειλημμένα το loop](../../../../../translated_images/el/arduino-sketch.79590cb837ff7a7c.webp) ✅ Αυτή η αρχιτεκτονική προγράμματος είναι γνωστή ως *event loop* ή *message loop*. Πολλές εφαρμογές χρησιμοποιούν αυτό το μοντέλο και είναι το πρότυπο για τις περισσότερες εφαρμογές desktop που εκτελούνται σε λειτουργικά συστήματα όπως Windows, macOS ή Linux. Ο βρόχος `loop` ακούει για μηνύματα από στοιχεία περιβάλλοντος χρήστη όπως κουμπιά ή συσκευές όπως το πληκτρολόγιο και ανταποκρίνεται σε αυτά. Μπορείτε να διαβάσετε περισσότερα σε αυτό το [άρθρο για το event loop](https://wikipedia.org/wiki/Event_loop). diff --git a/translations/el/1-getting-started/lessons/3-sensors-and-actuators/README.md b/translations/el/1-getting-started/lessons/3-sensors-and-actuators/README.md index 875e5d228..1df11c63f 100644 --- a/translations/el/1-getting-started/lessons/3-sensors-and-actuators/README.md +++ b/translations/el/1-getting-started/lessons/3-sensors-and-actuators/README.md @@ -1,6 +1,6 @@ # Αλληλεπίδραση με τον φυσικό κόσμο μέσω αισθητήρων και ενεργοποιητών -![Μια συνοπτική εικόνα αυτής της ενότητας](../../../../../translated_images/el/lesson-3.cc3b7b4cd646de598698cce043c0393fd62ef42bac2eaf60e61272cd844250f4.jpg) +![Μια συνοπτική εικόνα αυτής της ενότητας](../../../../../translated_images/el/lesson-3.cc3b7b4cd646de59.webp) > Σχεδιαστικό σημείωμα από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση. @@ -92,7 +92,7 @@ Ο απλούστερος ψηφιακός αισθητήρας είναι ένα κουμπί ή ένας διακόπτης. Πρόκειται για έναν αισθητήρα με δύο καταστάσεις, ενεργοποιημένο ή απενεργοποιημένο. -![Ένα κουμπί λαμβάνει 5 βολτ. Όταν δεν πατιέται επιστρέφει 0 βολτ, όταν πατιέται επιστρέφει 5 βολτ](../../../../../translated_images/el/button.eadb560b77ac45e56f523d9d8876e40444f63b419e33eb820082d461fa79490b.png) +![Ένα κουμπί λαμβάνει 5 βολτ. Όταν δεν πατιέται επιστρέφει 0 βολτ, όταν πατιέται επιστρέφει 5 βολτ](../../../../../translated_images/el/button.eadb560b77ac45e5.webp) Οι ακίδες σε συσκευές IoT όπως οι ακίδες GPIO μπορούν να μετρήσουν αυτό το σήμα απευθείας ως 0 ή 1. Αν η τάση που στάλθηκε είναι ίδια με την τάση που επιστρέφεται, η τιμή που διαβάζεται είναι 1, διαφορετικά η τιμή που διαβάζεται είναι 0. Δεν υπάρχει ανάγκη για μετατροπή του σήματος, μπορεί να είναι μόνο 1 ή 0. @@ -110,7 +110,7 @@ ## Τι είναι οι ενεργοποιητές; Οι ενεργοποιητές είναι το αντίθετο των αισθητήρων - μετατρέπουν ένα ηλεκτρικό σή -![Ένα φως που είναι χαμηλής έντασης σε χαμηλή τάση και πιο φωτεινό σε υψηλή τάση](../../../../../translated_images/el/dimmable-light.9ceffeb195dec1a849da718b2d71b32c35171ff7dfea9c07bbf82646a67acf6b.png) +![Ένα φως που είναι χαμηλής έντασης σε χαμηλή τάση και πιο φωτεινό σε υψηλή τάση](../../../../../translated_images/el/dimmable-light.9ceffeb195dec1a8.webp) Όπως και με τους αισθητήρες, η πραγματική συσκευή IoT λειτουργεί με ψηφιακά σήματα, όχι αναλογικά. Αυτό σημαίνει ότι για να στείλει ένα αναλογικό σήμα, η συσκευή IoT χρειάζεται έναν μετατροπέα ψηφιακού σε αναλογικό σήμα (DAC), είτε απευθείας στη συσκευή IoT είτε σε μια πλακέτα σύνδεσης. Αυτός ο μετατροπέας μετατρέπει τα 0 και 1 της συσκευής IoT σε αναλογική τάση που μπορεί να χρησιμοποιήσει ο ενεργοποιητής. @@ -157,7 +157,7 @@ Ένας απλός ψηφιακός ενεργοποιητής είναι ένα LED. Όταν μια συσκευή στέλνει ένα ψηφιακό σήμα 1, στέλνεται μια υψηλή τάση που ανάβει το LED. Όταν στέλνεται ένα ψηφιακό σήμα 0, η τάση πέφτει στα 0V και το LED σβήνει. -![Ένα LED είναι σβηστό στα 0V και αναμμένο στα 5V](../../../../../translated_images/el/led.ec6d94f66676a174ad06d9fa9ea49c2ee89beb18b312d5c6476467c66375b07f.png) +![Ένα LED είναι σβηστό στα 0V και αναμμένο στα 5V](../../../../../translated_images/el/led.ec6d94f66676a174.webp) ✅ Ποιοι άλλοι απλοί ενεργοποιητές δύο καταστάσεων μπορείτε να σκεφτείτε; Ένα παράδειγμα είναι ένας ηλεκτρομαγνήτης (solenoid), ο οποίος μπορεί να ενεργοποιηθεί για να κάνει πράγματα όπως να μετακινήσει έναν σύρτη πόρτας για να κλειδώσει/ξεκλειδώσει μια πόρτα. diff --git a/translations/el/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md b/translations/el/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md index c895d231c..ba6d93f3d 100644 --- a/translations/el/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md +++ b/translations/el/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md @@ -26,7 +26,7 @@ Otherwise Συνδέστε το LED. -![Ένα Grove LED](../../../../../translated_images/el/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![Ένα Grove LED](../../../../../translated_images/el/grove-led.6c853be93f473cf2.webp) 1. Επιλέξτε το αγαπημένο σας LED και εισάγετε τα ποδαράκια του στις δύο τρύπες της μονάδας LED. @@ -40,7 +40,7 @@ Otherwise 1. Με το Raspberry Pi απενεργοποιημένο, συνδέστε το άλλο άκρο του καλωδίου Grove στην ψηφιακή υποδοχή σημειωμένη ως **D5** στο Grove Base hat που είναι συνδεδεμένο στο Pi. Αυτή η υποδοχή είναι η δεύτερη από τα αριστερά, στη σειρά των υποδοχών δίπλα στις ακίδες GPIO. -![Το Grove LED συνδεδεμένο στην υποδοχή D5](../../../../../translated_images/el/pi-led.97f1d474981dc35d1c7996c7b17de355d3d0a6bc9606d79fa5f89df933415122.png) +![Το Grove LED συνδεδεμένο στην υποδοχή D5](../../../../../translated_images/el/pi-led.97f1d474981dc35d.webp) ## Προγραμματισμός του φωτιστικού νυκτός diff --git a/translations/el/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md b/translations/el/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md index a980ac32b..6826a4cf9 100644 --- a/translations/el/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md +++ b/translations/el/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md @@ -16,13 +16,13 @@ Συνδέστε τον αισθητήρα φωτός. -![Αισθητήρας φωτός Grove](../../../../../translated_images/el/grove-light-sensor.b8127b7c434e632d6bcdb57587a14e9ef69a268a22df95d08628f62b8fa5505c.png) +![Αισθητήρας φωτός Grove](../../../../../translated_images/el/grove-light-sensor.b8127b7c434e632d.webp) 1. Εισάγετε το ένα άκρο ενός καλωδίου Grove στην υποδοχή του αισθητήρα φωτός. Θα μπει μόνο με έναν συγκεκριμένο τρόπο. 1. Με το Raspberry Pi απενεργοποιημένο, συνδέστε το άλλο άκρο του καλωδίου Grove στην αναλογική υποδοχή με την ένδειξη **A0** στο Grove Base hat που είναι συνδεδεμένο στο Pi. Αυτή η υποδοχή είναι η δεύτερη από δεξιά, στη σειρά των υποδοχών δίπλα στις ακίδες GPIO. -![Ο αισθητήρας φωτός Grove συνδεδεμένος στην υποδοχή A0](../../../../../translated_images/el/pi-light-sensor.66cc1e31fa48cd7d5f23400d4b2119aa41508275cb7c778053a7923b4e972d7e.png) +![Ο αισθητήρας φωτός Grove συνδεδεμένος στην υποδοχή A0](../../../../../translated_images/el/pi-light-sensor.66cc1e31fa48cd7d.webp) ## Προγραμματισμός του αισθητήρα φωτός diff --git a/translations/el/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md b/translations/el/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md index e070caf96..27dc9b7d7 100644 --- a/translations/el/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md +++ b/translations/el/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md @@ -36,11 +36,11 @@ Otherwise 1. Επιλέξτε το κουμπί **Add** για να δημιουργήσετε το LED στο Pin 5. - ![Οι ρυθμίσεις του LED](../../../../../translated_images/el/counterfit-create-led.ba9db1c9b8c622a635d6dfae5cdc4e70c2b250635bd4f0601c6cf0bd22b7ba46.png) + ![Οι ρυθμίσεις του LED](../../../../../translated_images/el/counterfit-create-led.ba9db1c9b8c622a6.webp) Το LED θα δημιουργηθεί και θα εμφανιστεί στη λίστα των ενεργοποιητών. - ![Το LED δημιουργήθηκε](../../../../../translated_images/el/counterfit-led.c0ab02de6d256ad84d9bad4d67a7faa709f0ea83e410cfe9b5561ef0cef30b1c.png) + ![Το LED δημιουργήθηκε](../../../../../translated_images/el/counterfit-led.c0ab02de6d256ad8.webp) Αφού δημιουργηθεί το LED, μπορείτε να αλλάξετε το χρώμα χρησιμοποιώντας τον επιλογέα *Color*. Επιλέξτε το κουμπί **Set** για να αλλάξετε το χρώμα αφού το επιλέξετε. diff --git a/translations/el/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md b/translations/el/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md index a5f037b58..c6a14e2a9 100644 --- a/translations/el/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md +++ b/translations/el/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md @@ -28,11 +28,11 @@ 1. Επιλέξτε το κουμπί **Add** για να δημιουργήσετε τον αισθητήρα φωτός στο Pin 0. - ![Οι ρυθμίσεις του αισθητήρα φωτός](../../../../../translated_images/el/counterfit-create-light-sensor.9f36a5e0d4458d8d554d54b34d2c806d56093d6e49fddcda2d20f6fef7f5cce1.png) + ![Οι ρυθμίσεις του αισθητήρα φωτός](../../../../../translated_images/el/counterfit-create-light-sensor.9f36a5e0d4458d8d.webp) Ο αισθητήρας φωτός θα δημιουργηθεί και θα εμφανιστεί στη λίστα των αισθητήρων. - ![Ο αισθητήρας φωτός δημιουργήθηκε](../../../../../translated_images/el/counterfit-light-sensor.5d0f5584df56b90f6b2561910d9cb20dfbd73eeff2177c238d38f4de54aefae1.png) + ![Ο αισθητήρας φωτός δημιουργήθηκε](../../../../../translated_images/el/counterfit-light-sensor.5d0f5584df56b90f.webp) ## Προγραμματισμός του αισθητήρα φωτός diff --git a/translations/el/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md b/translations/el/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md index 5e42bc61b..66aeb3668 100644 --- a/translations/el/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md +++ b/translations/el/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md @@ -26,7 +26,7 @@ Otherwise Συνδέστε το LED. -![Ένα Grove LED](../../../../../translated_images/el/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![Ένα Grove LED](../../../../../translated_images/el/grove-led.6c853be93f473cf2.webp) 1. Επιλέξτε το αγαπημένο σας LED και εισάγετε τα ποδαράκια του στις δύο τρύπες της μονάδας LED. diff --git a/translations/el/1-getting-started/lessons/4-connect-internet/README.md b/translations/el/1-getting-started/lessons/4-connect-internet/README.md index 0772e0521..5ffba9c40 100644 --- a/translations/el/1-getting-started/lessons/4-connect-internet/README.md +++ b/translations/el/1-getting-started/lessons/4-connect-internet/README.md @@ -1,6 +1,6 @@ # Συνδέστε τη συσκευή σας στο Διαδίκτυο -![Μια σκίτσο-σημείωση για αυτήν την ενότητα](../../../../../translated_images/el/lesson-4.7344e074ea68fa545fd320b12dce36d72dd62d28c3b4596cb26cf315f434b98f.jpg) +![Μια σκίτσο-σημείωση για αυτήν την ενότητα](../../../../../translated_images/el/lesson-4.7344e074ea68fa54.webp) > Σκίτσο-σημείωση από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση. @@ -47,7 +47,7 @@ Το MQTT έχει έναν broker και πολλούς πελάτες. Όλοι οι πελάτες συνδέονται στον broker, και ο broker δρομολογεί μηνύματα στους σχετικούς πελάτες. Τα μηνύματα δρομολογούνται χρησιμοποιώντας ονομασμένα θέματα (topics), αντί να αποστέλλονται απευθείας σε έναν συγκεκριμένο πελάτη. Ένας πελάτης μπορεί να δημοσιεύσει σε ένα θέμα, και οποιοσδήποτε πελάτης εγγραφεί σε αυτό το θέμα θα λάβει το μήνυμα. -![Συσκευή IoT που δημοσιεύει τηλεμετρία στο θέμα /telemetry, και η υπηρεσία cloud εγγράφεται σε αυτό το θέμα](../../../../../translated_images/el/mqtt.cbf7f21d9adc3e17548b359444cc11bb4bf2010543e32ece9a47becf54438c23.png) +![Συσκευή IoT που δημοσιεύει τηλεμετρία στο θέμα /telemetry, και η υπηρεσία cloud εγγράφεται σε αυτό το θέμα](../../../../../translated_images/el/mqtt.cbf7f21d9adc3e17.webp) ✅ Κάντε έρευνα. Εάν έχετε πολλές συσκευές IoT, πώς μπορείτε να διασφαλίσετε ότι ο broker MQTT μπορεί να διαχειριστεί όλα τα μηνύματα; @@ -69,7 +69,7 @@ > 💁 Αυτός ο δοκιμαστικός broker είναι δημόσιος και μη ασφαλής. Οποιοσδήποτε θα μπορούσε να ακούει τι δημοσιεύετε, οπότε δεν πρέπει να χρησιμοποιείται με δεδομένα που πρέπει να παραμείνουν ιδιωτικά. -![Διάγραμμα ροής της εργασίας που δείχνει την ανάγνωση και τον έλεγχο των επιπέδων φωτός, και τον έλεγχο του LED](../../../../../translated_images/el/assignment-1-internet-flow.3256feab5f052fd273bf4e331157c574c2c3fa42e479836fc9c3586f41db35a5.png) +![Διάγραμμα ροής της εργασίας που δείχνει την ανάγνωση και τον έλεγχο των επιπέδων φωτός, και τον έλεγχο του LED](../../../../../translated_images/el/assignment-1-internet-flow.3256feab5f052fd2.webp) Ακολουθήστε το σχετικό βήμα παρακάτω για να συνδέσετε τη συσκευή σας στον broker MQTT: @@ -336,7 +336,7 @@ Οι σχεδιαστές συσκευών IoT θα πρέπει επίσης να εξετάσουν αν η συσκευή IoT μπορεί να χρησιμοποιηθεί κατά τη διάρκεια μιας διακοπής του Διαδικτύου ή απώλειας σήματος λόγω τοποθεσίας. Ένας έξυπνος θερμοστάτης θα πρέπει να μπορεί να λαμβάνει κάποιες περιορισμένες αποφάσεις για τον έλεγχο της θέρμανσης αν δεν μπορεί να στείλει τηλεμετρία στο cloud λόγω διακοπής. -[![Αυτό το Ferrari "έμεινε" επειδή κάποιος προσπάθησε να το αναβαθμίσει υπογείως όπου δεν υπάρχει σήμα κινητής τηλεφωνίας](../../../../../translated_images/el/bricked-car.dc38f8efadc6c59d76211f981a521efb300939283dee468f79503aae3ec67615.png)](https://twitter.com/internetofshit/status/1315736960082808832) +[![Αυτό το Ferrari "έμεινε" επειδή κάποιος προσπάθησε να το αναβαθμίσει υπογείως όπου δεν υπάρχει σήμα κινητής τηλεφωνίας](../../../../../translated_images/el/bricked-car.dc38f8efadc6c59d.webp)](https://twitter.com/internetofshit/status/1315736960082808832) Για να χειριστεί το MQTT μια απώλεια συνδεσιμότητας, ο κώδικας της συσκευής και του διακομιστή θα πρέπει να είναι υπεύθυνος για τη διασφάλιση της παράδοσης των μηνυμάτων αν αυτό είναι απαραίτητο, για παράδειγμα απαιτώντας όλα τα μηνύματα που αποστέλλονται να απαντώνται με επιπλέον μηνύματα σε ένα θέμα απάντησης, και αν όχι, να τοποθετούνται σε ουρά χειροκίνητα για να αναπαραχθούν αργότερα. @@ -344,7 +344,7 @@ Οι εντολές είναι μηνύματα που αποστέλλονται από το cloud σε μια συσκευή, δίνοντάς της οδηγίες να κάνει κάτι. Τις περισσότερες φορές αυτό περιλαμβάνει την παροχή κάποιου είδους εξόδου μέσω ενός ενεργοποιητή, αλλά μπορεί να είναι και μια οδηγία για την ίδια τη συσκευή, όπως να επανεκκινήσει ή να συλλέξει επιπλέον τηλεμετρία και να την επιστρέψει ως απάντηση στην εντολή. -![Ένας θερμοστάτης συνδεδεμένος στο Διαδίκτυο που λαμβάνει εντολή να ενεργοποιήσει τη θέρμανση](../../../../../translated_images/el/commands.d6c06bbbb3a02cce95f2831a1c331daf6dedd4e470c4aa2b0ae54f332016e504.png) +![Ένας θερμοστάτης συνδεδεμένος στο Διαδίκτυο που λαμβάνει εντολή να ενεργοποιήσει τη θέρμανση](../../../../../translated_images/el/commands.d6c06bbbb3a02cce.webp) Ένας θερμοστάτης θα μπορούσε να λάβει μια εντολή από το cloud να ενεργοποιήσει τη θέρμανση. Με βάση τα δεδομένα τηλεμετρίας από όλους τους αισθητήρες, αν η υπηρεσία cloud έχει αποφασίσει ότι η θέρμανση πρέπει να είναι ενεργοποιημένη, τότε στέλνει τη σχετική εντολή. diff --git a/translations/el/2-farm/lessons/1-predict-plant-growth/README.md b/translations/el/2-farm/lessons/1-predict-plant-growth/README.md index e7db4260d..85d59ebcc 100644 --- a/translations/el/2-farm/lessons/1-predict-plant-growth/README.md +++ b/translations/el/2-farm/lessons/1-predict-plant-growth/README.md @@ -1,6 +1,6 @@ ## Προβλέψτε την ανάπτυξη φυτών με IoT -![Μια σκίτσα που συνοψίζει το μάθημα](../../../../../translated_images/el/lesson-5.42b234299279d263143148b88ab4583861a32ddb03110c6c1120e41bb88b2592.jpg) +![Μια σκίτσα που συνοψίζει το μάθημα](../../../../../translated_images/el/lesson-5.42b234299279d263.webp) > Σκίτσα από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση. @@ -90,7 +90,7 @@ Η πλήρης φόρμουλα για GDD είναι λίγο περίπλοκη, αλλά υπάρχει μια απλοποιημένη εξίσωση που χρησιμοποιείται συχνά ως καλή προσέγγιση: -![GDD = T max + T min divided by 2, all minus T base](../../../../../translated_images/el/gdd-calculation.79b3660f9c5757aa92dc2dd2cdde75344e2d2c1565c4b3151640f7887edc0275.png) +![GDD = T max + T min divided by 2, all minus T base](../../../../../translated_images/el/gdd-calculation.79b3660f9c5757aa.webp) * **GDD** - αυτός είναι ο αριθμός των ημερών βαθμών ανάπτυξης * **T max** - αυτή είναι η μέγιστη ημερήσια θερμοκρασία σε βαθμούς Κελσίου @@ -118,7 +118,7 @@ Αυτό δίνει τον υπολογισμό: -![GDD = 16 + 12 divided by 2, all minus 10, giving an answer of 4](../../../../../translated_images/el/gdd-calculation-corn.64a58b7a7afcd0dfd46ff733996d939f17f4f3feac9f0d1c632be3523e51ebd9.png) +![GDD = 16 + 12 divided by 2, all minus 10, giving an answer of 4](../../../../../translated_images/el/gdd-calculation-corn.64a58b7a7afcd0df.webp) Το καλαμπόκι έλαβε 4 GDD εκείνη την ημέρα. Υποθέτοντας μια ποικιλία καλαμποκιού που χρειάζεται 800 GDD για να ωριμάσει, θα χρειαστεί άλλες 796 GDD για να φτάσει στην ωριμότητα. @@ -176,7 +176,7 @@ Για παράδειγμα, αν η υψηλότερη θερμοκρασία της ημέρας είναι 25°C και η χαμηλότερη είναι 12°C: -![GDD = 25 + 12 διαιρούμενο με το 2, και μετά αφαιρούμε 10 από το αποτέλεσμα, δίνοντας 8.5](../../../../../translated_images/el/gdd-calculation-strawberries.59f57db94b22adb8ff6efb951ace33af104a1c6ccca3ffb0f8169c14cb160c90.png) +![GDD = 25 + 12 διαιρούμενο με το 2, και μετά αφαιρούμε 10 από το αποτέλεσμα, δίνοντας 8.5](../../../../../translated_images/el/gdd-calculation-strawberries.59f57db94b22adb8.webp) * 25 + 12 = 37 * 37 / 2 = 18.5 diff --git a/translations/el/2-farm/lessons/1-predict-plant-growth/assignment.md b/translations/el/2-farm/lessons/1-predict-plant-growth/assignment.md index 51c4addcd..3072bdc29 100644 --- a/translations/el/2-farm/lessons/1-predict-plant-growth/assignment.md +++ b/translations/el/2-farm/lessons/1-predict-plant-growth/assignment.md @@ -33,7 +33,7 @@ Το Jupyter θα ξεκινήσει και θα ανοίξει το notebook στον browser σας. Ακολουθήστε τις οδηγίες στο notebook για να οπτικοποιήσετε τις μετρηθείσες θερμοκρασίες και να υπολογίσετε τις ημέρες ανάπτυξης (GDD). - ![Το jupyter notebook](../../../../../translated_images/el/gdd-jupyter-notebook.c5b52cf21094f158a61f47f455490fd95f1729777ff90861a4521820bf354cdc.png) + ![Το jupyter notebook](../../../../../translated_images/el/gdd-jupyter-notebook.c5b52cf21094f158.webp) ## Κριτήρια Αξιολόγησης diff --git a/translations/el/2-farm/lessons/1-predict-plant-growth/pi-temp.md b/translations/el/2-farm/lessons/1-predict-plant-growth/pi-temp.md index df24909a7..09dd92724 100644 --- a/translations/el/2-farm/lessons/1-predict-plant-growth/pi-temp.md +++ b/translations/el/2-farm/lessons/1-predict-plant-growth/pi-temp.md @@ -16,13 +16,13 @@ Συνδέστε τον αισθητήρα θερμοκρασίας. -![Αισθητήρας θερμοκρασίας Grove](../../../../../translated_images/el/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![Αισθητήρας θερμοκρασίας Grove](../../../../../translated_images/el/grove-dht11.07f8eafceee17004.webp) 1. Εισάγετε το ένα άκρο ενός καλωδίου Grove στην υποδοχή του αισθητήρα υγρασίας και θερμοκρασίας. Θα μπει μόνο με έναν συγκεκριμένο τρόπο. 1. Με το Raspberry Pi απενεργοποιημένο, συνδέστε το άλλο άκρο του καλωδίου Grove στην ψηφιακή υποδοχή με την ένδειξη **D5** στο Grove Base hat που είναι συνδεδεμένο στο Pi. Αυτή η υποδοχή είναι η δεύτερη από τα αριστερά, στη σειρά των υποδοχών δίπλα στα GPIO pins. -![Ο αισθητήρας θερμοκρασίας Grove συνδεδεμένος στην υποδοχή A0](../../../../../translated_images/el/pi-temperature-sensor.3ff82fff672c8e565ef25a39d26d111de006b825a7e0867227ef4e7fbff8553c.png) +![Ο αισθητήρας θερμοκρασίας Grove συνδεδεμένος στην υποδοχή A0](../../../../../translated_images/el/pi-temperature-sensor.3ff82fff672c8e56.webp) ## Προγραμματισμός του αισθητήρα θερμοκρασίας diff --git a/translations/el/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md b/translations/el/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md index 466140b54..e97870773 100644 --- a/translations/el/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md +++ b/translations/el/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md @@ -38,11 +38,11 @@ 1. Επιλέξτε το κουμπί **Add** για να δημιουργήσετε τον αισθητήρα υγρασίας στο Pin 5. - ![Οι ρυθμίσεις του αισθητήρα υγρασίας](../../../../../translated_images/el/counterfit-create-humidity-sensor.2750e27b6f30e09cf4e22101defd5252710717620816ab41ba688f91f757c49a.png) + ![Οι ρυθμίσεις του αισθητήρα υγρασίας](../../../../../translated_images/el/counterfit-create-humidity-sensor.2750e27b6f30e09c.webp) Ο αισθητήρας υγρασίας θα δημιουργηθεί και θα εμφανιστεί στη λίστα αισθητήρων. - ![Ο αισθητήρας υγρασίας δημιουργήθηκε](../../../../../translated_images/el/counterfit-humidity-sensor.7b12f7f339e430cb26c8211d2dba4ef75261b353a01da0932698b5bebd693f27.png) + ![Ο αισθητήρας υγρασίας δημιουργήθηκε](../../../../../translated_images/el/counterfit-humidity-sensor.7b12f7f339e430cb.webp) 1. Δημιουργήστε έναν αισθητήρα θερμοκρασίας: @@ -54,11 +54,11 @@ 1. Επιλέξτε το κουμπί **Add** για να δημιουργήσετε τον αισθητήρα θερμοκρασίας στο Pin 6. - ![Οι ρυθμίσεις του αισθητήρα θερμοκρασίας](../../../../../translated_images/el/counterfit-create-temperature-sensor.199350ed34f7343d79dccbe95eaf6c11d2121f03d1c35ab9613b330c23f39b29.png) + ![Οι ρυθμίσεις του αισθητήρα θερμοκρασίας](../../../../../translated_images/el/counterfit-create-temperature-sensor.199350ed34f7343d.webp) Ο αισθητήρας θερμοκρασίας θα δημιουργηθεί και θα εμφανιστεί στη λίστα αισθητήρων. - ![Ο αισθητήρας θερμοκρασίας δημιουργήθηκε](../../../../../translated_images/el/counterfit-temperature-sensor.f0560236c96a9016bafce7f6f792476fe3367bc6941a1f7d5811d144d4bcbfff.png) + ![Ο αισθητήρας θερμοκρασίας δημιουργήθηκε](../../../../../translated_images/el/counterfit-temperature-sensor.f0560236c96a9016.webp) ## Προγραμματισμός της εφαρμογής αισθητήρα θερμοκρασίας diff --git a/translations/el/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md b/translations/el/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md index 972b56723..f31cb4312 100644 --- a/translations/el/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md +++ b/translations/el/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md @@ -18,7 +18,7 @@ Συνδέστε τον αισθητήρα θερμοκρασίας. -![Αισθητήρας θερμοκρασίας Grove](../../../../../translated_images/el/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![Αισθητήρας θερμοκρασίας Grove](../../../../../translated_images/el/grove-dht11.07f8eafceee17004.webp) 1. Εισάγετε το ένα άκρο ενός καλωδίου Grove στην υποδοχή του αισθητήρα υγρασίας και θερμοκρασίας. Θα μπει μόνο με έναν συγκεκριμένο τρόπο. diff --git a/translations/el/2-farm/lessons/2-detect-soil-moisture/README.md b/translations/el/2-farm/lessons/2-detect-soil-moisture/README.md index 5c79a582c..2c1a9a33a 100644 --- a/translations/el/2-farm/lessons/2-detect-soil-moisture/README.md +++ b/translations/el/2-farm/lessons/2-detect-soil-moisture/README.md @@ -13,7 +13,7 @@ C, προφέρεται *I-squared-C*, είναι ένα πρωτόκολλο π | VCC | Voltage common collector | Η τροφοδοσία για τις συσκευές. Αυτό συνδέεται με τα καλώδια SDA και SCL για να παρέχει την τροφοδοσία τους μέσω ενός pull-up αντιστάτη που απενεργοποιεί το σήμα όταν καμία συσκευή δεν είναι ελεγκτής. | | GND | Ground | Παρέχει κοινή γείωση για το ηλεκτρικό κύκλωμα. | -![I2C bus με 3 συσκευές συνδεδεμένες στα καλώδια SDA και SCL, μοιράζοντας ένα κοινό καλώδιο γείωσης](../../../../../translated_images/el/i2c.83da845dde02256bdd462dbe0d5145461416b74930571b89d1ae142841eeb584.png) +![I2C bus με 3 συσκευές συνδεδεμένες στα καλώδια SDA και SCL, μοιράζοντας ένα κοινό καλώδιο γείωσης](../../../../../translated_images/el/i2c.83da845dde02256b.webp) Για να σταλούν δεδομένα, μια συσκευή θα εκδώσει μια συνθήκη εκκίνησης για να δείξει ότι είναι έτοιμη να στείλει δεδομένα. Στη συνέχεια, θα γίνει ο ελεγκτής. Ο ελεγκτής στη συνέχεια στέλνει τη διεύθυνση της συσκευής με την οποία θέλει να επικοινωνήσει, μαζί με το αν θέλει να διαβάσει ή να γράψει δεδομένα. Μετά τη μετάδοση των δεδομένων, ο ελεγκτής στέλνει μια συνθήκη τερματισμού για να υποδείξει ότι έχει τελειώσει. Μετά από αυτό, μια άλλη συσκευή μπορεί να γίνει ελεγκτής και να στείλει ή να λάβει δεδομένα. diff --git a/translations/el/2-farm/lessons/2-detect-soil-moisture/assignment.md b/translations/el/2-farm/lessons/2-detect-soil-moisture/assignment.md index 1037e8708..75fa2c3f6 100644 --- a/translations/el/2-farm/lessons/2-detect-soil-moisture/assignment.md +++ b/translations/el/2-farm/lessons/2-detect-soil-moisture/assignment.md @@ -20,14 +20,14 @@ Η υγρασία εδάφους με τη μέθοδο της βαρύτητας υπολογίζεται ως: -![Η υγρασία εδάφους % είναι το βάρος του υγρού εδάφους μείον το βάρος του ξηρού εδάφους, διαιρεμένο με το βάρος του ξηρού εδάφους, επί 100](../../../../../translated_images/el/gsm-calculation.6da38c6201eec14e7573bb2647aa18892883193553d23c9d77e5dc681522dfb2.png) +![Η υγρασία εδάφους % είναι το βάρος του υγρού εδάφους μείον το βάρος του ξηρού εδάφους, διαιρεμένο με το βάρος του ξηρού εδάφους, επί 100](../../../../../translated_images/el/gsm-calculation.6da38c6201eec14e.webp) * W - το βάρος του υγρού εδάφους * W - το βάρος του ξηρού εδάφους Για παράδειγμα, ας πούμε ότι έχετε ένα δείγμα εδάφους που ζυγίζει 212g υγρό και 197g ξηρό. -![Η συμπληρωμένη εξίσωση](../../../../../translated_images/el/gsm-calculation-example.99f9803b4f29e97668e7c15412136c0c399ab12dbba0b89596fdae9d8aedb6fb.png) +![Η συμπληρωμένη εξίσωση](../../../../../translated_images/el/gsm-calculation-example.99f9803b4f29e976.webp) * W = 212g * W = 197g diff --git a/translations/el/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md b/translations/el/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md index b71da18c5..7e005c292 100644 --- a/translations/el/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md +++ b/translations/el/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md @@ -18,13 +18,13 @@ Συνδέστε τον αισθητήρα υγρασίας εδάφους. -![Αισθητήρας υγρασίας εδάφους Grove](../../../../../translated_images/el/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![Αισθητήρας υγρασίας εδάφους Grove](../../../../../translated_images/el/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. Εισάγετε το ένα άκρο ενός καλωδίου Grove στην υποδοχή του αισθητήρα υγρασίας εδάφους. Θα μπει μόνο με έναν συγκεκριμένο τρόπο. 1. Με το Raspberry Pi απενεργοποιημένο, συνδέστε το άλλο άκρο του καλωδίου Grove στην αναλογική υποδοχή με την ένδειξη **A0** στο Grove Base Hat που είναι συνδεδεμένο στο Pi. Αυτή η υποδοχή είναι η δεύτερη από τα δεξιά, στη σειρά των υποδοχών δίπλα στις ακίδες GPIO. -![Ο αισθητήρας υγρασίας εδάφους Grove συνδεδεμένος στην υποδοχή A0](../../../../../translated_images/el/pi-soil-moisture-sensor.fdd7eb2393792cf6739cacf1985d9f55beda16d372f30d0b5a51d586f978a870.png) +![Ο αισθητήρας υγρασίας εδάφους Grove συνδεδεμένος στην υποδοχή A0](../../../../../translated_images/el/pi-soil-moisture-sensor.fdd7eb2393792cf6.webp) 1. Εισάγετε τον αισθητήρα υγρασίας εδάφους στο έδαφος. Έχει μια 'γραμμή μέγιστης θέσης' - μια λευκή γραμμή πάνω στον αισθητήρα. Εισάγετε τον αισθητήρα μέχρι τη γραμμή αυτή, αλλά όχι πέρα από αυτήν. diff --git a/translations/el/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md b/translations/el/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md index 537c28440..e856a1f43 100644 --- a/translations/el/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md +++ b/translations/el/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md @@ -34,11 +34,11 @@ 1. Επιλέξτε το κουμπί **Add** για να δημιουργήσετε τον αισθητήρα *Soil Moisture* στο Pin 0. - ![Οι ρυθμίσεις του αισθητήρα υγρασίας εδάφους](../../../../../translated_images/el/counterfit-create-soil-moisture-sensor.35266135a5e0ae68b29a684d7db0d2933a8098b2307d197f7c71577b724603aa.png) + ![Οι ρυθμίσεις του αισθητήρα υγρασίας εδάφους](../../../../../translated_images/el/counterfit-create-soil-moisture-sensor.35266135a5e0ae68.webp) Ο αισθητήρας υγρασίας εδάφους θα δημιουργηθεί και θα εμφανιστεί στη λίστα αισθητήρων. - ![Ο αισθητήρας υγρασίας εδάφους δημιουργήθηκε](../../../../../translated_images/el/counterfit-soil-moisture-sensor.81742b2de0e9de60a3b3b9a2ff8ecc686d428eb6d71820f27a693be26e5aceee.png) + ![Ο αισθητήρας υγρασίας εδάφους δημιουργήθηκε](../../../../../translated_images/el/counterfit-soil-moisture-sensor.81742b2de0e9de60.webp) ## Προγραμματισμός της εφαρμογής του αισθητήρα υγρασίας εδάφους diff --git a/translations/el/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md b/translations/el/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md index e64331799..733a51425 100644 --- a/translations/el/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md +++ b/translations/el/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md @@ -18,7 +18,7 @@ Συνδέστε τον αισθητήρα υγρασίας εδάφους. -![Ένας αισθητήρας υγρασίας εδάφους Grove](../../../../../translated_images/el/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![Ένας αισθητήρας υγρασίας εδάφους Grove](../../../../../translated_images/el/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. Εισάγετε το ένα άκρο ενός καλωδίου Grove στην υποδοχή του αισθητήρα υγρασίας εδάφους. Θα μπει μόνο με έναν συγκεκριμένο τρόπο. diff --git a/translations/el/2-farm/lessons/3-automated-plant-watering/README.md b/translations/el/2-farm/lessons/3-automated-plant-watering/README.md index d39e4bba4..3fae67aa9 100644 --- a/translations/el/2-farm/lessons/3-automated-plant-watering/README.md +++ b/translations/el/2-farm/lessons/3-automated-plant-watering/README.md @@ -1,6 +1,6 @@ # Αυτόματο πότισμα φυτών -![Μια συνοπτική παρουσίαση του μαθήματος](../../../../../translated_images/el/lesson-7.30b5f577d3cb8e031238751475cb519c7d6dbaea261b5df4643d086ffb2a03bb.jpg) +![Μια συνοπτική παρουσίαση του μαθήματος](../../../../../translated_images/el/lesson-7.30b5f577d3cb8e03.webp) > Σκίτσο από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση. @@ -32,7 +32,7 @@ Η λύση σε αυτό είναι να συνδέσετε την αντλία σε μια εξωτερική πηγή ενέργειας και να χρησιμοποιήσετε έναν ενεργοποιητή για να την ενεργοποιήσετε, παρόμοια με το πώς θα ανάβατε ένα φως. Χρειάζεται μια μικρή ποσότητα ενέργειας (με τη μορφή ενέργειας από το σώμα σας) για να γυρίσετε έναν διακόπτη, και αυτό συνδέει το φως με το ηλεκτρικό δίκτυο που λειτουργεί στα 110v/240v. -![Ένας διακόπτης ανάβει ένα φως](../../../../../translated_images/el/light-switch.760317ad6ab8bd6d611da5352dfe9c73a94a0822ccec7df3c8bae35da18e1658.png) +![Ένας διακόπτης ανάβει ένα φως](../../../../../translated_images/el/light-switch.760317ad6ab8bd6d.webp) > 🎓 [Ηλεκτρικό δίκτυο](https://wikipedia.org/wiki/Mains_electricity) αναφέρεται στην ηλεκτρική ενέργεια που παρέχεται σε σπίτια και επιχειρήσεις μέσω εθνικών υποδομών σε πολλές περιοχές του κόσμου. @@ -72,7 +72,7 @@ Ο ηλεκτρομαγνήτης δεν χρειάζεται πολλή ισχύ για να ενεργοποιηθεί και να τραβήξει τον μοχλό, μπορεί να ελεγχθεί χρησιμοποιώντας την έξοδο 3.3V ή 5V από ένα κιτ ανάπτυξης IoT. Το κύκλωμα εξόδου μπορεί να μεταφέρει πολύ περισσότερη ισχύ, ανάλογα με το ρελέ, συμπεριλαμβανομένης της τάσης δικτύου ή ακόμα και υψηλότερων επιπέδων ισχύος για βιομηχανική χρήση. Με αυτόν τον τρόπο, ένα κιτ ανάπτυξης IoT μπορεί να ελέγξει ένα σύστημα άρδευσης, από μια μικρή αντλία για ένα μόνο φυτό, έως ένα τεράστιο βιομηχανικό σύστημα για μια ολόκληρη εμπορική φάρμα. -![Ένα ρελέ Grove με το κύκλωμα ελέγχου, το κύκλωμα εξόδου και το ρελέ επισημασμένα](../../../../../translated_images/el/grove-relay-labelled.293e068f5c3c2a199bd7892f2661fdc9e10c920b535cfed317fbd6d1d4ae1168.png) +![Ένα ρελέ Grove με το κύκλωμα ελέγχου, το κύκλωμα εξόδου και το ρελέ επισημασμένα](../../../../../translated_images/el/grove-relay-labelled.293e068f5c3c2a19.webp) Η παραπάνω εικόνα δείχνει ένα ρελέ Grove. Το κύκλωμα ελέγχου συνδέεται με μια συσκευή IoT και ενεργοποιεί ή απενεργοποιεί το ρελέ χρησιμοποιώντας 3.3V ή 5V. Το κύκλωμα εξόδου έχει δύο ακροδέκτες, οποιοσδήποτε από αυτούς μπορεί να είναι ισχύς ή γείωση. Το κύκλωμα εξόδου μπορεί να χειριστεί έως 250V στα 10A, αρκετό για μια σειρά από συσκευές που λειτουργούν με τάση δικτύου. Μπορείτε να βρείτε ρελέ που μπορούν να χειριστούν ακόμα υψηλότερα επίπεδα ισχύος. diff --git a/translations/el/2-farm/lessons/3-automated-plant-watering/pi-relay.md b/translations/el/2-farm/lessons/3-automated-plant-watering/pi-relay.md index 67d60793a..5fbb4f25b 100644 --- a/translations/el/2-farm/lessons/3-automated-plant-watering/pi-relay.md +++ b/translations/el/2-farm/lessons/3-automated-plant-watering/pi-relay.md @@ -18,13 +18,13 @@ Συνδέστε το ρελέ. -![Ένα ρελέ Grove](../../../../../translated_images/el/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) +![Ένα ρελέ Grove](../../../../../translated_images/el/grove-relay.d426958ca210fbd0.webp) 1. Εισάγετε το ένα άκρο ενός καλωδίου Grove στην υποδοχή του ρελέ. Θα μπει μόνο με έναν συγκεκριμένο τρόπο. 1. Με το Raspberry Pi απενεργοποιημένο, συνδέστε το άλλο άκρο του καλωδίου Grove στην ψηφιακή υποδοχή με την ένδειξη **D5** στο Grove Base Hat που είναι συνδεδεμένο στο Pi. Αυτή η υποδοχή είναι η δεύτερη από τα αριστερά, στη σειρά των υποδοχών δίπλα στις ακίδες GPIO. Αφήστε τον αισθητήρα υγρασίας εδάφους συνδεδεμένο στην υποδοχή **A0**. -![Το ρελέ Grove συνδεδεμένο στην υποδοχή D5 και ο αισθητήρας υγρασίας εδάφους συνδεδεμένος στην υποδοχή A0](../../../../../translated_images/el/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e69ec716cd2719ce117700bd1fc933eaf93476c103c57939b.png) +![Το ρελέ Grove συνδεδεμένο στην υποδοχή D5 και ο αισθητήρας υγρασίας εδάφους συνδεδεμένος στην υποδοχή A0](../../../../../translated_images/el/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e.webp) 1. Εισάγετε τον αισθητήρα υγρασίας εδάφους στο έδαφος, αν δεν το έχετε ήδη κάνει από το προηγούμενο μάθημα. diff --git a/translations/el/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md b/translations/el/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md index ff97889d4..0e39dae4a 100644 --- a/translations/el/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md +++ b/translations/el/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md @@ -28,11 +28,11 @@ 1. Επιλέξτε το κουμπί **Add** για να δημιουργήσετε το ρελέ στο Pin 5. - ![Οι ρυθμίσεις του ρελέ](../../../../../translated_images/el/counterfit-create-relay.fa7c40fd0f2f6afc33b35ea94fcb235085be4861e14e3fe6b9b7bcfc82d1c888.png) + ![Οι ρυθμίσεις του ρελέ](../../../../../translated_images/el/counterfit-create-relay.fa7c40fd0f2f6afc.webp) Το ρελέ θα δημιουργηθεί και θα εμφανιστεί στη λίστα των ενεργοποιητών. - ![Το ρελέ που δημιουργήθηκε](../../../../../translated_images/el/counterfit-relay.bbf74c1dbdc8b9acd983367fcbd06703a402aefef6af54ddb28e11307ba8a12c.png) + ![Το ρελέ που δημιουργήθηκε](../../../../../translated_images/el/counterfit-relay.bbf74c1dbdc8b9ac.webp) ## Προγραμματισμός του ρελέ diff --git a/translations/el/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md b/translations/el/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md index 4c64db6e5..36368971a 100644 --- a/translations/el/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md +++ b/translations/el/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md @@ -18,7 +18,7 @@ Συνδέστε το ρελέ. -![Ένα Grove relay](../../../../../translated_images/el/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) +![Ένα Grove relay](../../../../../translated_images/el/grove-relay.d426958ca210fbd0.webp) 1. Εισάγετε το ένα άκρο ενός καλωδίου Grove στην υποδοχή του ρελέ. Θα μπει μόνο με έναν συγκεκριμένο τρόπο. diff --git a/translations/el/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md b/translations/el/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md index 400a37bd4..4cbcce3ba 100644 --- a/translations/el/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md +++ b/translations/el/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md @@ -1,6 +1,6 @@ # Μεταφέρετε το φυτό σας στο cloud -![Μια επισκόπηση του μαθήματος σε μορφή σκίτσου](../../../../../translated_images/el/lesson-8.3f21f3c11159e6a0a376351973ea5724d5de68fa23b4288853a174bed9ac48c3.jpg) +![Μια επισκόπηση του μαθήματος σε μορφή σκίτσου](../../../../../translated_images/el/lesson-8.3f21f3c11159e6a0.webp) > Σκίτσο από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση. @@ -46,8 +46,8 @@ Το cloud συχνά αναφέρεται χιουμοριστικά ως "ο υπολογιστής κάποιου άλλου". Η αρχική ιδέα ήταν απλή - αντί να αγοράζετε υπολογιστές, νοικιάζετε τον υπολογιστή κάποιου άλλου. Κάποιος άλλος, ένας πάροχος cloud computing, θα διαχειριζόταν τεράστια data centers. Θα ήταν υπεύθυνος για την αγορά και εγκατάσταση του υλικού, τη διαχείριση της ενέργειας και της ψύξης, τη δικτύωση, την ασφάλεια του κτιρίου, τις ενημερώσεις υλικού και λογισμικού, τα πάντα. Ως πελάτης, θα νοικιάζατε τους υπολογιστές που χρειάζεστε, νοικιάζοντας περισσότερους όταν αυξάνεται η ζήτηση και μειώνοντας τον αριθμό που νοικιάζετε όταν η ζήτηση πέφτει. Αυτά τα data centers βρίσκονται σε όλο τον κόσμο. -![Ένα data center του Microsoft cloud](../../../../../translated_images/el/azure-region-existing.73f704604f2aa6cb9b5a49ed40e93d4fd81ae3f4e6af4a8ca504023902832f56.png) -![Προγραμματισμένη επέκταση ενός data center του Microsoft cloud](../../../../../translated_images/el/azure-region-planned-expansion.a5074a1e8af74f156a73552d502429e5b126ea5019274d767ecb4b9afdad442b.png) +![Ένα data center του Microsoft cloud](../../../../../translated_images/el/azure-region-existing.73f704604f2aa6cb.webp) +![Προγραμματισμένη επέκταση ενός data center του Microsoft cloud](../../../../../translated_images/el/azure-region-planned-expansion.a5074a1e8af74f15.webp) Αυτά τα data centers μπορούν να έχουν μέγεθος πολλών τετραγωνικών χιλιομέτρων. Οι παραπάνω εικόνες τραβήχτηκαν πριν από λίγα χρόνια σε ένα data center του Microsoft cloud και δείχνουν το αρχικό μέγεθος, καθώς και μια προγραμματισμένη επέκταση. Η περιοχή που έχει καθαριστεί για την επέκταση είναι πάνω από 5 τετραγωνικά χιλιόμετρα. @@ -108,11 +108,11 @@ Οι συσκευές IoT συνδέονται με μια υπηρεσία cloud είτε χρησιμοποιώντας ένα SDK συσκευής (μια βιβλιοθήκη που παρέχει κώδικα για να λειτουργήσει με τις δυνατότητες της υπηρεσίας) είτε απευθείας μέσω ενός πρωτοκόλλου επικοινωνίας όπως το MQTT ή το HTTP. Το SDK συσκευής είναι συνήθως η πιο εύκολη διαδρομή, καθώς χειρίζεται τα πάντα για εσάς, όπως το να γνωρίζει ποια θέματα να δημοσιεύσει ή να εγγραφεί και πώς να χειριστεί την ασφάλεια. -![Οι συσκευές συνδέονται με μια υπηρεσία χρησιμοποιώντας ένα SDK συσκευής. Ο κώδικας του server συνδέεται επίσης με την υπηρεσία μέσω ενός SDK](../../../../../translated_images/el/iot-service-connectivity.7e873847921a5d6fd60d0ba3a943210194518cee0d4e362476624316443275c3.png) +![Οι συσκευές συνδέονται με μια υπηρεσία χρησιμοποιώντας ένα SDK συσκευής. Ο κώδικας του server συνδέεται επίσης με την υπηρεσία μέσω ενός SDK](../../../../../translated_images/el/iot-service-connectivity.7e873847921a5d6f.webp) Η συσκευή σας στη συνέχεια επικοινωνεί με άλλα μέρη της εφαρμογής σας μέσω αυτής της υπηρεσίας - παρόμοια με το πώς στέλνατε τηλεμετρία και λαμβάνατε εντολές μέσω MQTT. Αυτό γίνεται συνήθως χρησιμοποιώντας ένα SDK υπηρεσίας ή μια παρόμοια βιβλιοθήκη. Τα μηνύματα έρχονται από τη συσκευή σας στην υπηρεσία, όπου άλλα μέρη της εφαρμογής σας μπορούν να τα διαβάσουν, και τα μηνύματα μπορούν να σταλούν πίσω στη συσκευή σας. -![Οι συσκευές χωρίς έγκυρο μυστικό κλειδί δεν μπορούν να συνδεθούν με την υπηρεσία IoT](../../../../../translated_images/el/iot-service-allowed-denied-connection.818b0063ac213fb84204a7229303764d9b467ca430fb822b4ac2fca267d56726.png) +![Οι συσκευές χωρίς έγκυρο μυστικό κλειδί δεν μπορούν να συνδεθούν με την υπηρεσία IoT](../../../../../translated_images/el/iot-service-allowed-denied-connection.818b0063ac213fb8.webp) Αυτές οι υπηρεσίες εφαρμόζουν ασφάλεια γνωρίζοντας όλες τις συσκευές που μπορούν να συνδεθούν και να στείλουν δεδομένα, είτε με την προεγγραφή των συσκευών στην υπηρεσία είτε δίνοντας στις συσκευές μυστικά κλειδιά ή πιστοποιητικά που μπορούν να χρησιμοποιήσουν για να εγγραφούν στην υπηρεσία την πρώτη φορά που συνδέονται. Άγνωστες συσκευές δεν μπορούν να συνδεθούν, αν προσπαθήσουν η υπηρεσία απορρίπτει τη σύνδεση και αγνοεί τα μηνύματα 💁 Οι υπηρεσίες IoT υλοποιούν επίσης πρόσθετες δυνατότητες, και οι πάροχοι cloud διαθέτουν επιπλέον υπηρεσίες και εφαρμογές που μπορούν να συνδεθούν με την υπηρεσία. Για παράδειγμα, αν θέλετε να αποθηκεύσετε όλα τα μηνύματα τηλεμετρίας που στέλνονται από όλες τις συσκευές σε μια βάση δεδομένων, συνήθως χρειάζονται μόνο λίγα κλικ στο εργαλείο διαμόρφωσης του παρόχου cloud για να συνδέσετε την υπηρεσία με μια βάση δεδομένων και να μεταφέρετε τα δεδομένα. @@ -120,7 +120,7 @@ Τώρα που έχετε μια συνδρομή Azure, μπορείτε να εγγραφείτε σε μια υπηρεσία IoT. Η υπηρεσία IoT της Microsoft ονομάζεται Azure IoT Hub. -![Το λογότυπο του Azure IoT Hub](../../../../../translated_images/el/azure-iot-hub-logo.28a19de76d0a1932464d858f7558712bcdace3e5ec69c434d482ed7ce41c3a26.png) +![Το λογότυπο του Azure IoT Hub](../../../../../translated_images/el/azure-iot-hub-logo.28a19de76d0a1932.webp) Το παρακάτω βίντεο παρέχει μια σύντομη επισκόπηση του Azure IoT Hub: diff --git a/translations/el/2-farm/lessons/5-migrate-application-to-the-cloud/README.md b/translations/el/2-farm/lessons/5-migrate-application-to-the-cloud/README.md index 1f4c83636..d21482de1 100644 --- a/translations/el/2-farm/lessons/5-migrate-application-to-the-cloud/README.md +++ b/translations/el/2-farm/lessons/5-migrate-application-to-the-cloud/README.md @@ -1,6 +1,6 @@ # Μεταφέρετε τη λογική της εφαρμογής σας στο cloud -![Σχεδιάγραμμα επισκόπησης αυτού του μαθήματος](../../../../../translated_images/el/lesson-9.dfe99c8e891f48e179724520da9f5794392cf9a625079281ccdcbf09bd85e1b6.jpg) +![Σχεδιάγραμμα επισκόπησης αυτού του μαθήματος](../../../../../translated_images/el/lesson-9.dfe99c8e891f48e1.webp) > Σχεδιάγραμμα από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση. @@ -28,7 +28,7 @@ Το serverless, ή serverless computing, περιλαμβάνει τη δημιουργία μικρών μπλοκ κώδικα που εκτελούνται στο cloud ως απάντηση σε διάφορα είδη γεγονότων. Όταν συμβαίνει το γεγονός, ο κώδικας σας εκτελείται και λαμβάνει δεδομένα σχετικά με το γεγονός. Αυτά τα γεγονότα μπορεί να προέρχονται από διάφορες πηγές, όπως αιτήματα web, μηνύματα σε μια ουρά, αλλαγές δεδομένων σε μια βάση δεδομένων ή μηνύματα που αποστέλλονται σε μια υπηρεσία IoT από συσκευές IoT. -![Γεγονότα που αποστέλλονται από μια υπηρεσία IoT σε μια serverless υπηρεσία, όλα επεξεργάζονται ταυτόχρονα από πολλαπλές λειτουργίες](../../../../../translated_images/el/iot-messages-to-serverless.0194da1cc0732bb7d0f823aed3fce54735c6b1ad3bf36089804d8aaefc0a774f.png) +![Γεγονότα που αποστέλλονται από μια υπηρεσία IoT σε μια serverless υπηρεσία, όλα επεξεργάζονται ταυτόχρονα από πολλαπλές λειτουργίες](../../../../../translated_images/el/iot-messages-to-serverless.0194da1cc0732bb7.webp) > 💁 Αν έχετε χρησιμοποιήσει triggers σε βάσεις δεδομένων, μπορείτε να το σκεφτείτε ως κάτι αντίστοιχο: κώδικας που ενεργοποιείται από ένα γεγονός, όπως η εισαγωγή μιας γραμμής. @@ -54,7 +54,7 @@ Η υπηρεσία serverless computing της Microsoft ονομάζεται Azure Functions. -![Το λογότυπο του Azure Functions](../../../../../translated_images/el/azure-functions-logo.1cfc8e3204c9c44aaf80fcf406fc8544d80d7f00f8d3e8ed6fed764563e17564.png) +![Το λογότυπο του Azure Functions](../../../../../translated_images/el/azure-functions-logo.1cfc8e3204c9c44a.webp) Το σύντομο βίντεο παρακάτω παρέχει μια επισκόπηση του Azure Functions. diff --git a/translations/el/2-farm/lessons/6-keep-your-plant-secure/README.md b/translations/el/2-farm/lessons/6-keep-your-plant-secure/README.md index e9ecde7f7..f14b82740 100644 --- a/translations/el/2-farm/lessons/6-keep-your-plant-secure/README.md +++ b/translations/el/2-farm/lessons/6-keep-your-plant-secure/README.md @@ -1,6 +1,6 @@ # Κρατήστε το φυτό σας ασφαλές -![Μια σκιαγραφική επισκόπηση αυτού του μαθήματος](../../../../../translated_images/el/lesson-10.829c86b80b9403bb770929ee553a1d293afe50dc23121aaf9be144673ae012cc.jpg) +![Μια σκιαγραφική επισκόπηση αυτού του μαθήματος](../../../../../translated_images/el/lesson-10.829c86b80b9403bb.webp) > Σκίτσο από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση. @@ -52,11 +52,11 @@ Όταν μια συσκευή συνδέεται σε μια υπηρεσία IoT, χρησιμοποιεί ένα ID για να ταυτοποιηθεί. Το πρόβλημα είναι ότι αυτό το ID μπορεί να αντιγραφεί - ένας χάκερ θα μπορούσε να δημιουργήσει μια κακόβουλη συσκευή που χρησιμοποιεί το ίδιο ID με μια πραγματική συσκευή αλλά στέλνει ψευδή δεδομένα. -![Τόσο οι έγκυρες όσο και οι κακόβουλες συσκευές θα μπορούσαν να χρησιμοποιούν το ίδιο ID για να στέλνουν τηλεμετρία](../../../../../translated_images/el/iot-device-and-hacked-device-connecting.e0671675df74d6d99eb1dedb5a670e606f698efa6202b1ad4c8ae548db299cc6.png) +![Τόσο οι έγκυρες όσο και οι κακόβουλες συσκευές θα μπορούσαν να χρησιμοποιούν το ίδιο ID για να στέλνουν τηλεμετρία](../../../../../translated_images/el/iot-device-and-hacked-device-connecting.e0671675df74d6d9.webp) Η λύση σε αυτό είναι να μετατραπούν τα δεδομένα που αποστέλλονται σε μια κωδικοποιημένη μορφή, χρησιμοποιώντας μια τιμή γνωστή μόνο στη συσκευή και το cloud για την κωδικοποίηση των δεδομένων. Αυτή η διαδικασία ονομάζεται *κρυπτογράφηση*, και η τιμή που χρησιμοποιείται για την κρυπτογράφηση των δεδομένων ονομάζεται *κλειδί κρυπτογράφησης*. -![Αν χρησιμοποιηθεί κρυπτογράφηση, τότε μόνο τα κρυπτογραφημένα μηνύματα θα γίνονται δεκτά, ενώ τα υπόλοιπα θα απορρίπτονται](../../../../../translated_images/el/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f979e46f2849b573564eeb4a4dc5b52f669f62745397492fb.png) +![Αν χρησιμοποιηθεί κρυπτογράφηση, τότε μόνο τα κρυπτογραφημένα μηνύματα θα γίνονται δεκτά, ενώ τα υπόλοιπα θα απορρίπτονται](../../../../../translated_images/el/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f.webp) Η υπηρεσία cloud μπορεί στη συνέχεια να μετατρέψει τα δεδομένα πίσω σε αναγνώσιμη μορφή, χρησιμοποιώντας μια διαδικασία που ονομάζεται *αποκρυπτογράφηση*, είτε με το ίδιο κλειδί κρυπτογράφησης είτε με ένα *κλειδί αποκρυπτογράφησης*. Αν το κρυπτογραφημένο μήνυμα δεν μπορεί να αποκρυπτογραφηθεί με το κλειδί, η συσκευή έχει παραβιαστεί και το μήνυμα απορρίπτεται. diff --git a/translations/el/3-transport/lessons/1-location-tracking/README.md b/translations/el/3-transport/lessons/1-location-tracking/README.md index cae006dba..05e7519cc 100644 --- a/translations/el/3-transport/lessons/1-location-tracking/README.md +++ b/translations/el/3-transport/lessons/1-location-tracking/README.md @@ -1,6 +1,6 @@ # Παρακολούθηση τοποθεσίας -![Μια σκιαγραφική επισκόπηση αυτού του μαθήματος](../../../../../translated_images/el/lesson-11.9fddbac4b664c6d50ab7ac9bb32f1fc3f945f03760e72f7f43938073762fb017.jpg) +![Μια σκιαγραφική επισκόπηση αυτού του μαθήματος](../../../../../translated_images/el/lesson-11.9fddbac4b664c6d5.webp) > Σκίτσο από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση. @@ -63,13 +63,13 @@ > 💁 Κανείς δεν γνωρίζει πραγματικά τον αρχικό λόγο για τον οποίο οι κύκλοι διαιρούνται σε 360 μοίρες. Η [σελίδα για τη μοίρα (γωνία) στη Wikipedia](https://wikipedia.org/wiki/Degree_(angle)) καλύπτει μερικούς από τους πιθανούς λόγους. -![Γραμμές γεωγραφικού πλάτους από 90° στον Βόρειο Πόλο, 45° στη μέση μεταξύ του Βόρειου Πόλου και του ισημερινού, 0° στον ισημερινό, -45° στη μέση μεταξύ του ισημερινού και του Νότιου Πόλου και -90° στον Νότιο Πόλο](../../../../../translated_images/el/latitude-lines.11d8d91dfb2014a57437272d7db7fd6607243098e8685f06e0c5f1ec984cb7eb.png) +![Γραμμές γεωγραφικού πλάτους από 90° στον Βόρειο Πόλο, 45° στη μέση μεταξύ του Βόρειου Πόλου και του ισημερινού, 0° στον ισημερινό, -45° στη μέση μεταξύ του ισημερινού και του Νότιου Πόλου και -90° στον Νότιο Πόλο](../../../../../translated_images/el/latitude-lines.11d8d91dfb2014a5.webp) Το γεωγραφικό πλάτος μετριέται χρησιμοποιώντας γραμμές που περιβάλλουν τη Γη και τρέχουν παράλληλα με τον ισημερινό, διαιρώντας το Βόρειο και Νότιο Ημισφαίριο σε 90° το καθένα. Ο ισημερινός βρίσκεται στις 0°, ο Βόρειος Πόλος στις 90°, γνωστός και ως 90° Βόρεια, και ο Νότιος Πόλος στις -90°, ή 90° Νότια. Το γεωγραφικό μήκος μετριέται ως ο αριθμός των μοιρών που μετριούνται ανατολικά και δυτικά. Η αρχή των 0° του γεωγραφικού μήκους ονομάζεται *Πρώτος Μεσημβρινός* και ορίστηκε το 1884 ως μια γραμμή από τον Βόρειο στον Νότιο Πόλο που περνά από το [Βασιλικό Αστεροσκοπείο του Greenwich, Αγγλία](https://wikipedia.org/wiki/Royal_Observatory,_Greenwich). -![Γραμμές γεωγραφικού μήκους που εκτείνονται από -180° δυτικά του Πρώτου Μεσημβρινού, έως 0° στον Πρώτο Μεσημβρινό, έως 180° ανατολικά του Πρώτου Μεσημβρινού](../../../../../translated_images/el/longitude-meridians.ab4ef1c91c064586b0185a3c8d39e585903696c6a7d28c098a93a629cddb5d20.png) +![Γραμμές γεωγραφικού μήκους που εκτείνονται από -180° δυτικά του Πρώτου Μεσημβρινού, έως 0° στον Πρώτο Μεσημβρινό, έως 180° ανατολικά του Πρώτου Μεσημβρινού](../../../../../translated_images/el/longitude-meridians.ab4ef1c91c064586.webp) > 🎓 Ένας μεσημβρινός είναι μια φανταστική ευθεία γραμμή που εκτείνεται από τον Βόρειο Πόλο στον Νότιο Πόλο, σχηματίζοντας ένα ημικύκλιο. @@ -100,7 +100,7 @@ * Γεωγραφικό πλάτος 47.6423109 (47.6423109 μοίρες βόρεια του ισημερινού) * Γεωγραφικό μήκος -122.1390293 (122.1390293 μοίρες δυτικά του Πρώτου Μεσημβρινού). -![Η πανεπιστημιούπολη της Microsoft στις 47.6423109,-122.117198](../../../../../translated_images/el/microsoft-gps-location-world.a321d481b010f6adfcca139b2ba0adc53b79f58a540495b8e2ce7f779ea64bfe.png) +![Η πανεπιστημιούπολη της Microsoft στις 47.6423109,-122.117198](../../../../../translated_images/el/microsoft-gps-location-world.a321d481b010f6ad.webp) ## Παγκόσμιο Σύστημα Εντοπισμού Θέσης (GPS) diff --git a/translations/el/3-transport/lessons/1-location-tracking/pi-gps-sensor.md b/translations/el/3-transport/lessons/1-location-tracking/pi-gps-sensor.md index db29c2787..90021db1f 100644 --- a/translations/el/3-transport/lessons/1-location-tracking/pi-gps-sensor.md +++ b/translations/el/3-transport/lessons/1-location-tracking/pi-gps-sensor.md @@ -18,13 +18,13 @@ Συνδέστε τον αισθητήρα GPS. -![Αισθητήρας Grove GPS](../../../../../translated_images/el/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![Αισθητήρας Grove GPS](../../../../../translated_images/el/grove-gps-sensor.247943bf69b03f0d.webp) 1. Εισάγετε το ένα άκρο ενός καλωδίου Grove στην υποδοχή του αισθητήρα GPS. Θα μπει μόνο με έναν συγκεκριμένο τρόπο. 1. Με το Raspberry Pi απενεργοποιημένο, συνδέστε το άλλο άκρο του καλωδίου Grove στην υποδοχή UART που είναι σημειωμένη ως **UART** στο Grove Base hat που είναι συνδεδεμένο στο Pi. Αυτή η υποδοχή βρίσκεται στη μεσαία σειρά, στην πλευρά κοντά στην υποδοχή της κάρτας SD, στο αντίθετο άκρο από τις θύρες USB και την υποδοχή ethernet. - ![Ο αισθητήρας Grove GPS συνδεδεμένος στην υποδοχή UART](../../../../../translated_images/el/pi-gps-sensor.1f99ee2b2f6528915047ec78967bd362e0e4ee0ed594368a3837b9cf9cdaca64.png) + ![Ο αισθητήρας Grove GPS συνδεδεμένος στην υποδοχή UART](../../../../../translated_images/el/pi-gps-sensor.1f99ee2b2f652891.webp) 1. Τοποθετήστε τον αισθητήρα GPS έτσι ώστε η συνδεδεμένη κεραία να έχει ορατότητα προς τον ουρανό - ιδανικά δίπλα σε ένα ανοιχτό παράθυρο ή έξω. Είναι πιο εύκολο να λάβετε καθαρότερο σήμα χωρίς εμπόδια μπροστά από την κεραία. diff --git a/translations/el/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md b/translations/el/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md index af1917f3c..970f03010 100644 --- a/translations/el/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md +++ b/translations/el/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md @@ -38,11 +38,11 @@ 1. Επιλέξτε το κουμπί **Add** για να δημιουργήσετε τον αισθητήρα GPS στη θύρα `/dev/ttyAMA0`. - ![Οι ρυθμίσεις του αισθητήρα GPS](../../../../../translated_images/el/counterfit-create-gps-sensor.6385dc9357d85ad1d47b4abb2525e7651fd498917d25eefc5a72feab09eedc70.png) + ![Οι ρυθμίσεις του αισθητήρα GPS](../../../../../translated_images/el/counterfit-create-gps-sensor.6385dc9357d85ad1.webp) Ο αισθητήρας GPS θα δημιουργηθεί και θα εμφανιστεί στη λίστα αισθητήρων. - ![Ο αισθητήρας GPS δημιουργήθηκε](../../../../../translated_images/el/counterfit-gps-sensor.3fbb15af0a5367566f2f11324ef5a6f30861cdf2b497071a5e002b7aa473550e.png) + ![Ο αισθητήρας GPS δημιουργήθηκε](../../../../../translated_images/el/counterfit-gps-sensor.3fbb15af0a536756.webp) ## Προγραμματισμός του αισθητήρα GPS @@ -102,17 +102,17 @@ * Ορίστε την **Πηγή** σε `Lat/Lon` και ορίστε ένα συγκεκριμένο γεωγραφικό πλάτος, μήκος και αριθμό δορυφόρων που χρησιμοποιούνται για τη λήψη της θέσης GPS. Αυτή η τιμή θα σταλεί μόνο μία φορά, οπότε επιλέξτε το πλαίσιο **Repeat** για να επαναλαμβάνονται τα δεδομένα κάθε δευτερόλεπτο. - ![Ο αισθητήρας GPS με επιλεγμένο lat lon](../../../../../translated_images/el/counterfit-gps-sensor-latlon.008c867d75464fbe7f84107cc57040df565ac07cb57d2f21db37d087d470197d.png) + ![Ο αισθητήρας GPS με επιλεγμένο lat lon](../../../../../translated_images/el/counterfit-gps-sensor-latlon.008c867d75464fbe.webp) * Ορίστε την **Πηγή** σε `NMEA` και προσθέστε κάποιες προτάσεις NMEA στο πλαίσιο κειμένου. Όλες αυτές οι τιμές θα σταλούν, με καθυστέρηση 1 δευτερολέπτου πριν από κάθε νέα πρόταση GGA (θέση). - ![Ο αισθητήρας GPS με προτάσεις NMEA](../../../../../translated_images/el/counterfit-gps-sensor-nmea.c62eea442171e17e19528b051b104cfcecdc9cd18db7bc72920f29821ae63f73.png) + ![Ο αισθητήρας GPS με προτάσεις NMEA](../../../../../translated_images/el/counterfit-gps-sensor-nmea.c62eea442171e17e.webp) Μπορείτε να χρησιμοποιήσετε ένα εργαλείο όπως το [nmeagen.org](https://www.nmeagen.org) για να δημιουργήσετε αυτές τις προτάσεις σχεδιάζοντας σε έναν χάρτη. Αυτές οι τιμές θα σταλούν μόνο μία φορά, οπότε επιλέξτε το πλαίσιο **Repeat** για να επαναλαμβάνονται ένα δευτερόλεπτο μετά την αποστολή όλων. * Ορίστε την **Πηγή** σε GPX αρχείο και ανεβάστε ένα αρχείο GPX με τοποθεσίες διαδρομής. Μπορείτε να κατεβάσετε αρχεία GPX από διάφορους δημοφιλείς ιστότοπους χαρτογράφησης και πεζοπορίας, όπως το [AllTrails](https://www.alltrails.com/). Αυτά τα αρχεία περιέχουν πολλαπλές τοποθεσίες GPS ως διαδρομή, και ο αισθητήρας GPS θα επιστρέφει κάθε νέα τοποθεσία σε διαστήματα του 1 δευτερολέπτου. - ![Ο αισθητήρας GPS με αρχείο GPX](../../../../../translated_images/el/counterfit-gps-sensor-gpxfile.8310b063ce8a425ccc8ebeec8306aeac5e8e55207f007d52c6e1194432a70cd9.png) + ![Ο αισθητήρας GPS με αρχείο GPX](../../../../../translated_images/el/counterfit-gps-sensor-gpxfile.8310b063ce8a425c.webp) Αυτές οι τιμές θα σταλούν μόνο μία φορά, οπότε επιλέξτε το πλαίσιο **Repeat** για να επαναλαμβάνονται ένα δευτερόλεπτο μετά την αποστολή όλων. diff --git a/translations/el/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md b/translations/el/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md index 58ffa0482..97956a397 100644 --- a/translations/el/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md +++ b/translations/el/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md @@ -18,7 +18,7 @@ Συνδέστε τον αισθητήρα GPS. -![Ένας αισθητήρας Grove GPS](../../../../../translated_images/el/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![Ένας αισθητήρας Grove GPS](../../../../../translated_images/el/grove-gps-sensor.247943bf69b03f0d.webp) 1. Εισάγετε το ένα άκρο ενός καλωδίου Grove στην υποδοχή του αισθητήρα GPS. Θα μπει μόνο με έναν συγκεκριμένο τρόπο. diff --git a/translations/el/3-transport/lessons/2-store-location-data/README.md b/translations/el/3-transport/lessons/2-store-location-data/README.md index d19f3cdbb..355330d52 100644 --- a/translations/el/3-transport/lessons/2-store-location-data/README.md +++ b/translations/el/3-transport/lessons/2-store-location-data/README.md @@ -1,6 +1,6 @@ # Δεδομένα τοποθεσίας καταστήματος -![Σχεδιαστική σημείωση για αυτήν την ενότητα](../../../../../translated_images/el/lesson-12.ca7f53039712a3ec14ad6474d8445361c84adab643edc53fa6269b77895606bb.jpg) +![Σχεδιαστική σημείωση για αυτήν την ενότητα](../../../../../translated_images/el/lesson-12.ca7f53039712a3ec.webp) > Σχεδιαστική σημείωση από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση. @@ -75,7 +75,7 @@ > 💁 Παρά το όνομά τους, ορισμένες βάσεις δεδομένων NoSQL σας επιτρέπουν να χρησιμοποιείτε SQL για την αναζήτηση δεδομένων. -![Έγγραφα σε φακέλους σε μια βάση δεδομένων NoSQL](../../../../../translated_images/el/noqsl-database.62d24ccf5b73f60d35c245a8533f1c7147c0928e955b82cb290b2e184bb434df.png) +![Έγγραφα σε φακέλους σε μια βάση δεδομένων NoSQL](../../../../../translated_images/el/noqsl-database.62d24ccf5b73f60d.webp) Οι βάσεις δεδομένων NoSQL δεν έχουν προκαθορισμένο σχήμα που να περιορίζει τον τρόπο αποθήκευσης δεδομένων, αντίθετα μπορείτε να εισάγετε οποιαδήποτε μη δομημένα δεδομένα, συνήθως χρησιμοποιώντας έγγραφα JSON. Αυτά τα έγγραφα μπορούν να οργανωθούν σε φακέλους, παρόμοια με αρχεία στον υπολογιστή σας. Κάθε έγγραφο μπορεί να έχει διαφορετικά πεδία από άλλα έγγραφα - για παράδειγμα, αν αποθηκεύατε δεδομένα IoT από τα γεωργικά σας οχήματα, κάποια μπορεί να έχουν πεδία για δεδομένα επιταχυνσιόμετρου και ταχύτητας, ενώ άλλα μπορεί να έχουν πεδία για τη θερμοκρασία στο τρέιλερ. Αν προσθέτατε έναν νέο τύπο φορτηγού, όπως ένα με ενσωματωμένες ζυγαριές για την παρακολούθηση του βάρους των προϊόντων που μεταφέρονται, τότε η συσκευή IoT σας θα μπορούσε να προσθέσει αυτό το νέο πεδίο και να αποθηκευτεί χωρίς αλλαγές στη βάση δεδομένων. @@ -89,7 +89,7 @@ Στην προηγούμενη ενότητα καταγράψατε δεδομένα GPS από έναν αισθητήρα GPS συνδεδεμένο στη συσκευή IoT σας. Για να αποθηκεύσετε αυτά τα δεδομένα IoT στο cloud, πρέπει να τα στείλετε σε μια υπηρεσία IoT. Και πάλι, θα χρησιμοποιήσετε το Azure IoT Hub, την ίδια υπηρεσία IoT cloud που χρησιμοποιήσατε στο προηγούμενο έργο. -![Αποστολή τηλεμετρίας GPS από μια συσκευή IoT στο IoT Hub](../../../../../translated_images/el/gps-telemetry-iot-hub.8115335d51cd2c1285d20e9d1b18cf685e59a8e093e7797291ef173445af6f3d.png) +![Αποστολή τηλεμετρίας GPS από μια συσκευή IoT στο IoT Hub](../../../../../translated_images/el/gps-telemetry-iot-hub.8115335d51cd2c12.webp) ### Εργασία - αποστολή δεδομένων GPS σε IoT Hub @@ -179,7 +179,7 @@ message = Message(json.dumps(message_json)) ## Λογαριασμοί Αποθήκευσης Azure -![Το λογότυπο του Azure Storage](../../../../../translated_images/el/azure-storage-logo.605c0f602c640d482a80f1b35a2629a32d595711b7ab1d7ceea843250615ff32.png) +![Το λογότυπο του Azure Storage](../../../../../translated_images/el/azure-storage-logo.605c0f602c640d48.webp) Οι Λογαριασμοί Αποθήκευσης Azure είναι μια υπηρεσία γενικής αποθήκευσης που μπορεί να αποθηκεύσει δεδομένα με διάφορους τρόπους. Μπορείτε να αποθηκεύσετε δεδομένα ως blobs, σε ουρές, σε πίνακες ή ως αρχεία, και όλα αυτά ταυτόχρονα. diff --git a/translations/el/3-transport/lessons/3-visualize-location-data/README.md b/translations/el/3-transport/lessons/3-visualize-location-data/README.md index 8a6bc0890..3a0857abe 100644 --- a/translations/el/3-transport/lessons/3-visualize-location-data/README.md +++ b/translations/el/3-transport/lessons/3-visualize-location-data/README.md @@ -1,6 +1,6 @@ # Οπτικοποίηση δεδομένων τοποθεσίας -![Μια σκιαγραφική επισκόπηση αυτού του μαθήματος](../../../../../translated_images/el/lesson-13.a259db1485021be7d7c72e90842fbe0ab977529e8684c179b5fb1ea75e92b3ef.jpg) +![Μια σκιαγραφική επισκόπηση αυτού του μαθήματος](../../../../../translated_images/el/lesson-13.a259db1485021be7.webp) > Σκίτσο από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση. @@ -64,11 +64,11 @@ Ως άνθρωπος, η κατανόηση αυτών των δεδομένων μπορεί να είναι δύσκολη. Είναι ένας τοίχος αριθμών χωρίς νόημα. Ως πρώτο βήμα για την οπτικοποίηση αυτών των δεδομένων, μπορούν να σχεδιαστούν σε ένα διάγραμμα γραμμών: -![Διάγραμμα γραμμών των παραπάνω δεδομένων](../../../../../translated_images/el/chart-soil-moisture.fd6d9d0cdc0b5f75e78038ecb8945dfc84b38851359de99d84b16e3336d6d7c2.png) +![Διάγραμμα γραμμών των παραπάνω δεδομένων](../../../../../translated_images/el/chart-soil-moisture.fd6d9d0cdc0b5f75.webp) Αυτό μπορεί να βελτιωθεί περαιτέρω προσθέτοντας μια γραμμή που δείχνει πότε ενεργοποιήθηκε το αυτόματο σύστημα ποτίσματος σε μια μέτρηση υγρασίας εδάφους 450: -![Διάγραμμα γραμμών υγρασίας εδάφους με γραμμή στο 450](../../../../../translated_images/el/chart-soil-moisture-relay.fbb391236d34a64d0abf1df396e9197e0a24df14150620b9cc820a64a55c9326.png) +![Διάγραμμα γραμμών υγρασίας εδάφους με γραμμή στο 450](../../../../../translated_images/el/chart-soil-moisture-relay.fbb391236d34a64d.webp) Αυτό το διάγραμμα δείχνει πολύ γρήγορα όχι μόνο ποια ήταν τα επίπεδα υγρασίας του εδάφους, αλλά και τα σημεία όπου ενεργοποιήθηκε το σύστημα ποτίσματος. @@ -84,7 +84,7 @@ Η εργασία με χάρτες είναι μια ενδιαφέρουσα άσκηση, και υπάρχουν πολλές επιλογές όπως Bing Maps, Leaflet, Open Street Maps και Google Maps. Σε αυτό το μάθημα, θα μάθετε για το [Azure Maps](https://azure.microsoft.com/services/azure-maps/?WT.mc_id=academic-17441-jabenn) και πώς μπορούν να εμφανίσουν τα δεδομένα GPS σας. -![Το λογότυπο του Azure Maps](../../../../../translated_images/el/azure-maps-logo.35d01dcfbd81fe6140e94257aaa1538f785a58c91576d14e0ebe7a2f6c694b99.png) +![Το λογότυπο του Azure Maps](../../../../../translated_images/el/azure-maps-logo.35d01dcfbd81fe61.webp) Το Azure Maps είναι "μια συλλογή γεωχωρικών υπηρεσιών και SDK που χρησιμοποιούν φρέσκα δεδομένα χαρτογράφησης για να παρέχουν γεωγραφικό πλαίσιο σε εφαρμογές ιστού και κινητών." Οι προγραμματιστές παρέχονται με εργαλεία για τη δημιουργία όμορφων, διαδραστικών χαρτών που μπορούν να κάνουν πράγματα όπως να παρέχουν προτεινόμενες διαδρομές κυκλοφορίας, να δίνουν πληροφορίες για περιστατικά κυκλοφορίας, εσωτερική πλοήγηση, δυνατότητες αναζήτησης, πληροφορίες υψομέτρου, υπηρεσίες καιρού και πολλά άλλα. @@ -185,7 +185,7 @@ Αν ανοίξετε τη σελίδα `index.html` σε έναν web browser, θα πρέπει να δείτε έναν χάρτη να φορτώνεται και να εστιάζει στην περιοχή του Σιάτλ. - ![Ένας χάρτης που δείχνει το Σιάτλ, μια πόλη στην πολιτεία Ουάσινγκτον, ΗΠΑ](../../../../../translated_images/el/map-image.8fb2c53eb23ef39c1c0a4410a5282e879b3b452b707eb066ff04c5488d3d72b7.png) + ![Ένας χάρτης που δείχνει το Σιάτλ, μια πόλη στην πολιτεία Ουάσινγκτον, ΗΠΑ](../../../../../translated_images/el/map-image.8fb2c53eb23ef39c.webp) ✅ Πειραματιστείτε με τις παραμέτρους zoom και center για να αλλάξετε την εμφάνιση του χάρτη σας. Μπορείτε να προσθέσετε διαφορετικές συντεταγμένες που αντιστοιχούν στο γεωγραφικό πλάτος και μήκος των δεδομένων σας για να επανακεντρώσετε τον χάρτη. @@ -291,7 +291,7 @@ 1. Φορτώστε την HTML σελίδα στο πρόγραμμα περιήγησής σας. Θα φορτώσει τον χάρτη, στη συνέχεια θα φορτώσει όλα τα δεδομένα GPS από την αποθήκευση και θα τα απεικονίσει στον χάρτη. - ![Χάρτης του Saint Edward State Park κοντά στο Σιάτλ, με κύκλους που δείχνουν μια διαδρομή γύρω από την άκρη του πάρκου](../../../../../translated_images/el/map-path.896832e72dc696ffe20650e4051027d4855442d955f93fdbb80bb417ca8a406f.png) + ![Χάρτης του Saint Edward State Park κοντά στο Σιάτλ, με κύκλους που δείχνουν μια διαδρομή γύρω από την άκρη του πάρκου](../../../../../translated_images/el/map-path.896832e72dc696ff.webp) > 💁 Μπορείτε να βρείτε αυτόν τον κώδικα στον φάκελο [code](../../../../../3-transport/lessons/3-visualize-location-data/code). diff --git a/translations/el/3-transport/lessons/4-geofences/README.md b/translations/el/3-transport/lessons/4-geofences/README.md index 4fe4cab6e..ea1ede2fd 100644 --- a/translations/el/3-transport/lessons/4-geofences/README.md +++ b/translations/el/3-transport/lessons/4-geofences/README.md @@ -1,6 +1,6 @@ # Γεωφράγματα -![Μια συνοπτική εικόνα αυτής της ενότητας](../../../../../translated_images/el/lesson-14.63980c5150ae3c153e770fb71d044c1845dce79248d86bed9fc525adf3ede73c.jpg) +![Μια συνοπτική εικόνα αυτής της ενότητας](../../../../../translated_images/el/lesson-14.63980c5150ae3c15.webp) > Σκίτσο από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση. @@ -35,7 +35,7 @@ Ένα γεωφράγμα είναι μια εικονική περίμετρος για μια πραγματική γεωγραφική περιοχή. Τα γεωφράγματα μπορεί να είναι κύκλοι που ορίζονται ως ένα σημείο και μια ακτίνα (για παράδειγμα ένας κύκλος με διάμετρο 100 μέτρα γύρω από ένα κτίριο) ή ένα πολύγωνο που καλύπτει μια περιοχή όπως μια σχολική ζώνη, τα όρια μιας πόλης ή μια πανεπιστημιούπολη ή ένα εργοστάσιο. -![Παραδείγματα γεωφραγμάτων που δείχνουν ένα κυκλικό γεωφράγμα γύρω από το κατάστημα της Microsoft και ένα πολυγωνικό γεωφράγμα γύρω από τη δυτική πανεπιστημιούπολη της Microsoft](../../../../../translated_images/el/geofence-examples.172fbc534665769f6e1a1ddcf75e3b25183cd10354c80cc603ba44b635390e1a.png) +![Παραδείγματα γεωφραγμάτων που δείχνουν ένα κυκλικό γεωφράγμα γύρω από το κατάστημα της Microsoft και ένα πολυγωνικό γεωφράγμα γύρω από τη δυτική πανεπιστημιούπολη της Microsoft](../../../../../translated_images/el/geofence-examples.172fbc534665769f.webp) > 💁 Ίσως έχετε ήδη χρησιμοποιήσει γεωφράγματα χωρίς να το γνωρίζετε. Εάν έχετε ορίσει μια υπενθύμιση χρησιμοποιώντας την εφαρμογή υπενθυμίσεων iOS ή το Google Keep με βάση μια τοποθεσία, έχετε χρησιμοποιήσει γεωφράγμα. Αυτές οι εφαρμογές δημιουργούν ένα γεωφράγμα με βάση την τοποθεσία που δίνεται και σας ειδοποιούν όταν το τηλέφωνό σας εισέρχεται στο γεωφράγμα. @@ -269,7 +269,7 @@ Η απάντηση είναι ότι δεν μπορεί! Αντίθετα, μπορείτε να ορίσετε πολλαπλές ξεχωριστές συνδέσεις για να διαβάσετε τα γεγονότα, και κάθε μία μπορεί να διαχειριστεί την επανάληψη των μη αναγνωσμένων μηνυμάτων. Αυτές ονομάζονται *ομάδες καταναλωτών* (consumer groups). Όταν συνδέεστε στο endpoint, μπορείτε να καθορίσετε ποια ομάδα καταναλωτών θέλετε να χρησιμοποιήσετε. Κάθε στοιχείο της εφαρμογής σας θα συνδεθεί σε διαφορετική ομάδα καταναλωτών. -![Ένα IoT Hub με 3 ομάδες καταναλωτών που διανέμουν τα ίδια μηνύματα σε 3 διαφορετικές εφαρμογές functions](../../../../../translated_images/el/consumer-groups.a3262e26fc27ba2092863678ad57af15c7223416e388a23f330c058cf4358630.png) +![Ένα IoT Hub με 3 ομάδες καταναλωτών που διανέμουν τα ίδια μηνύματα σε 3 διαφορετικές εφαρμογές functions](../../../../../translated_images/el/consumer-groups.a3262e26fc27ba20.webp) Θεωρητικά, έως και 5 εφαρμογές μπορούν να συνδεθούν σε κάθε ομάδα καταναλωτών, και όλες θα λαμβάνουν μηνύματα όταν φτάνουν. Είναι καλή πρακτική να έχετε μόνο μία εφαρμογή να έχει πρόσβαση σε κάθε ομάδα καταναλωτών για να αποφύγετε την επεξεργασία διπλών μηνυμάτων και να διασφαλίσετε ότι κατά την επανεκκίνηση όλα τα μηνύματα που βρίσκονται σε ουρά επεξεργάζονται σωστά. Για παράδειγμα, αν εκκινήσετε την εφαρμογή Functions τοπικά καθώς και στο cloud, και οι δύο θα επεξεργάζονται μηνύματα, οδηγώντας σε διπλά blobs που αποθηκεύονται στον λογαριασμό αποθήκευσης. diff --git a/translations/el/4-manufacturing/lessons/1-train-fruit-detector/README.md b/translations/el/4-manufacturing/lessons/1-train-fruit-detector/README.md index fe1385933..0a2878050 100644 --- a/translations/el/4-manufacturing/lessons/1-train-fruit-detector/README.md +++ b/translations/el/4-manufacturing/lessons/1-train-fruit-detector/README.md @@ -1,6 +1,6 @@ # Εκπαίδευση ανιχνευτή ποιότητας φρούτων -![Σχεδιαστική επισκόπηση αυτού του μαθήματος](../../../../../translated_images/el/lesson-15.843d21afdc6fb2bba70cd9db7b7d2f91598859fafda2078b0bdc44954194b6c0.jpg) +![Σχεδιαστική επισκόπηση αυτού του μαθήματος](../../../../../translated_images/el/lesson-15.843d21afdc6fb2bb.webp) > Σχεδιαστικό σημείωμα από [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση. @@ -38,7 +38,7 @@ Η άνοδος της αυτοματοποιημένης συγκομιδής μετέφερε τη διαλογή των προϊόντων από τη συγκομιδή στο εργοστάσιο. Τα τρόφιμα ταξίδευαν σε μακριές ταινίες μεταφοράς με ομάδες ανθρώπων που έλεγχαν τα προϊόντα, αφαιρώντας οτιδήποτε δεν πληρούσε τα απαιτούμενα πρότυπα ποιότητας. Η συγκομιδή ήταν φθηνότερη χάρη στα μηχανήματα, αλλά υπήρχε ακόμα κόστος για τη χειροκίνητη διαλογή τροφίμων. -![Αν ανιχνευθεί κόκκινη ντομάτα, συνεχίζει την πορεία της χωρίς διακοπή. Αν ανιχνευθεί πράσινη ντομάτα, εκτοξεύεται σε κάδο απορριμμάτων από έναν μοχλό](../../../../../translated_images/el/optical-tomato-sorting.61aa134bdda4e5b1bfb16a212c1e35a6ef0c426cbb8b1c975f79d7bfbf48d068.png) +![Αν ανιχνευθεί κόκκινη ντομάτα, συνεχίζει την πορεία της χωρίς διακοπή. Αν ανιχνευθεί πράσινη ντομάτα, εκτοξεύεται σε κάδο απορριμμάτων από έναν μοχλό](../../../../../translated_images/el/optical-tomato-sorting.61aa134bdda4e5b1.webp) Η επόμενη εξέλιξη ήταν η χρήση μηχανών για τη διαλογή, είτε ενσωματωμένων στη μηχανή συγκομιδής είτε στα εργοστάσια επεξεργασίας. Η πρώτη γενιά αυτών των μηχανών χρησιμοποιούσε οπτικούς αισθητήρες για την ανίχνευση χρωμάτων, ελέγχοντας ενεργοποιητές για να σπρώξουν τις πράσινες ντομάτες σε κάδο απορριμμάτων χρησιμοποιώντας μοχλούς ή ριπές αέρα, αφήνοντας τις κόκκινες ντομάτες να συνεχίσουν σε ένα δίκτυο ταινιών μεταφοράς. @@ -62,7 +62,7 @@ > 🎓 Τα αποτελέσματα των μοντέλων ML ονομάζονται *προβλέψεις* -![2 μπανάνες, μία ώριμη με πρόβλεψη 99.7% ώριμη, 0.3% άγουρη, και μία άγουρη με πρόβλεψη 1.4% ώριμη, 98.6% άγουρη](../../../../../translated_images/el/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50ece4e4589e724b142da0681f35470fe3db3f7d51240f69c85.png) +![2 μπανάνες, μία ώριμη με πρόβλεψη 99.7% ώριμη, 0.3% άγουρη, και μία άγουρη με πρόβλεψη 1.4% ώριμη, 98.6% άγουρη](../../../../../translated_images/el/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50e.webp) Τα μοντέλα ML δεν δίνουν μια δυαδική απάντηση, αντίθετα δίνουν πιθανότητες. Για παράδειγμα, ένα μοντέλο μπορεί να λάβει μια εικόνα μπανάνας και να προβλέψει `ώριμη` με 99.7% και `άγουρη` με 0.3%. Ο κώδικάς σας θα επιλέξει την καλύτερη πρόβλεψη και θα αποφασίσει ότι η μπανάνα είναι ώριμη. @@ -90,7 +90,7 @@ Το Custom Vision είναι ένα εργαλείο βασισμένο στο cloud για την εκπαίδευση ταξινομητών εικόνων. Σας επιτρέπει να εκπαιδεύσετε έναν ταξινομητή χρησιμοποιώντας μόνο έναν μικρό αριθμό εικόνων. Μπορείτε να ανεβάσετε εικόνες μέσω μιας διαδικτυακής πύλης, ενός web API ή ενός SDK, δίνοντας σε κάθε εικόνα μια *ετικέτα* που έχει την ταξινόμηση αυτής της εικόνας. Στη συνέχεια εκπαιδεύετε το μοντέλο και το δοκιμάζετε για να δείτε πόσο καλά αποδίδει. Μόλις είστε ικανοποιημένοι με το μοντέλο, μπορείτε να δημοσιεύσετε εκδόσεις του που μπορούν να προσπελαστούν μέσω ενός web API ή ενός SDK. -![Το λογότυπο του Azure Custom Vision](../../../../../translated_images/el/custom-vision-logo.d3d4e7c8a87ec9daf825e72e210576c3cbf60312577be7a139e22dd97ab7f1e6.png) +![Το λογότυπο του Azure Custom Vision](../../../../../translated_images/el/custom-vision-logo.d3d4e7c8a87ec9da.webp) > 💁 Μπορείτε να εκπαιδεύσετε ένα μοντέλο Custom Vision με μόλις 5 εικόνες ανά ταξινόμηση, αλλά περισσότερες είναι καλύτερες. Μπορείτε να έχετε καλύτερα αποτελέσματα με τουλάχιστον 30 εικόνες. @@ -131,7 +131,7 @@ * Χρησιμοποιώντας 2 ώριμες μπανάνες, τραβήξτε μερικές φωτογραφίες από κάθε μία από διαφορετικές γωνίες, τραβώντας τουλάχιστον 7 φωτογραφίες (5 για εκπαίδευση, 2 για δοκιμή), αλλά ιδανικά περισσότερες. - ![Φωτογραφίες από 2 διαφορετικές μπανάνες](../../../../../translated_images/el/banana-training-images.530eb203346d73bc23b8b990fb4609470bf4ff7c942ccc13d4cfffeed9be1ad4.png) + ![Φωτογραφίες από 2 διαφορετικές μπανάνες](../../../../../translated_images/el/banana-training-images.530eb203346d73bc.webp) * Επαναλάβετε την ίδια διαδικασία χρησιμοποιώντας 2 άγουρες μπανάνες. @@ -141,7 +141,7 @@ 1. Ακολουθήστε την [ενότητα ανεβάσματος και ετικετοποίησης εικόνων του οδηγού γρήγορης εκκίνησης για τη δημιουργία ταξινομητή στις Microsoft docs](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`. - ![Οι διάλογοι ανεβάσματος που δείχνουν το ανέβασμα εικόνων ώριμων και άγουρων μπανανών](../../../../../translated_images/el/image-upload-bananas.0751639f3815e0ec42bdbc6254d1e4357a185834d1ae10c9948a0e7d6d336695.png) + ![Οι διάλογοι ανεβάσματος που δείχνουν το ανέβασμα εικόνων ώριμων και άγουρων μπανανών](../../../../../translated_images/el/image-upload-bananas.0751639f3815e0ec.webp) 1. Ακολουθήστε την [ενότητα εκπαίδευσης του ταξινομητή του οδηγού γρήγορης εκκίνησης στις Microsoft docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#train-the-classifier) για να εκπαιδεύσετε τον ταξινομητή εικόνων στις ανεβασμένες εικόνες σας. @@ -159,7 +159,7 @@ 1. Ακολουθήστε την [τεκμηρίωση δοκιμής του μοντέλου σας στις Microsoft docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/test-your-model?WT.mc_id=academic-17441-jabenn#test-your-model) για να δοκιμάσετε τον ταξινομητή εικόνων σας. Χρησιμοποιήστε τις εικόνες δοκιμής που δημιουργήσατε νωρίτερα, όχι οποιαδήποτε από τις εικόνες που χρησιμοποιήσατε για εκπαίδευση. - ![Μια άγουρη μπανάνα προβλέπεται ως άγουρη με πιθανότητα 98.9%, ώριμη με πιθανότητα 1.1%](../../../../../translated_images/el/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64886422438850ea14f0be6ac918c217ea3b255c685abfabe7.png) + ![Μια άγουρη μπανάνα προβλέπεται ως άγουρη με πιθανότητα 98.9%, ώριμη με πιθανότητα 1.1%](../../../../../translated_images/el/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64.webp) 1. Δοκιμάστε όλες τις εικόνες δοκιμής που έχετε στη διάθεσή σας και παρατηρήστε τις πιθανότητες. diff --git a/translations/el/4-manufacturing/lessons/2-check-fruit-from-device/README.md b/translations/el/4-manufacturing/lessons/2-check-fruit-from-device/README.md index a0e1b715d..426140566 100644 --- a/translations/el/4-manufacturing/lessons/2-check-fruit-from-device/README.md +++ b/translations/el/4-manufacturing/lessons/2-check-fruit-from-device/README.md @@ -1,6 +1,6 @@ # Έλεγχος ποιότητας φρούτων από μια συσκευή IoT -![Μια σκίτσο-παρουσίαση αυτής της ενότητας](../../../../../translated_images/el/lesson-16.215daf18b00631fbdfd64c6fc2dc6044dff5d544288825d8076f9fb83d964c23.jpg) +![Μια σκίτσο-παρουσίαση αυτής της ενότητας](../../../../../translated_images/el/lesson-16.215daf18b00631fb.webp) > Σκίτσο από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση. @@ -26,7 +26,7 @@ Οι αισθητήρες κάμερας, όπως υποδηλώνει το όνομά τους, είναι κάμερες που μπορείτε να συνδέσετε στη συσκευή IoT σας. Μπορούν να τραβήξουν στατικές εικόνες ή να καταγράψουν ροή βίντεο. Κάποιες επιστρέφουν ακατέργαστα δεδομένα εικόνας, ενώ άλλες συμπιέζουν τα δεδομένα σε αρχεία εικόνας όπως JPEG ή PNG. Συνήθως, οι κάμερες που λειτουργούν με συσκευές IoT είναι πολύ μικρότερες και χαμηλότερης ανάλυσης από αυτές που ίσως έχετε συνηθίσει, αλλά μπορείτε να βρείτε κάμερες υψηλής ανάλυσης που ανταγωνίζονται τα κορυφαία κινητά τηλέφωνα. Υπάρχουν επίσης εναλλάξιμοι φακοί, πολλαπλές ρυθμίσεις καμερών, θερμικές κάμερες υπερύθρων ή κάμερες UV. -![Το φως από μια σκηνή περνά μέσα από έναν φακό και εστιάζεται σε έναν αισθητήρα CMOS](../../../../../translated_images/el/cmos-sensor.75f9cd74decb137149a4c9ea825251a4549497d67c0ae2776159e6102bb53aa9.png) +![Το φως από μια σκηνή περνά μέσα από έναν φακό και εστιάζεται σε έναν αισθητήρα CMOS](../../../../../translated_images/el/cmos-sensor.75f9cd74decb1371.webp) Οι περισσότεροι αισθητήρες κάμερας χρησιμοποιούν αισθητήρες εικόνας όπου κάθε pixel είναι μια φωτοδίοδος. Ένας φακός εστιάζει την εικόνα στον αισθητήρα εικόνας, και χιλιάδες ή εκατομμύρια φωτοδιόδοι ανιχνεύουν το φως που πέφτει σε κάθε μία και το καταγράφουν ως δεδομένα pixel. @@ -74,7 +74,7 @@ 1. Επιλέξτε το κουμπί **Δημοσίευση** για την επανάληψη. - ![Το κουμπί δημοσίευσης](../../../../../translated_images/el/custom-vision-publish-button.b7174e1977b0c33b8b72d4e5b1326c779e0af196f3849d09985ee2d7d5493a39.png) + ![Το κουμπί δημοσίευσης](../../../../../translated_images/el/custom-vision-publish-button.b7174e1977b0c33b.webp) 1. Στο παράθυρο διαλόγου *Δημοσίευση Μοντέλου*, ορίστε τον *Πόρο Πρόβλεψης* στον πόρο `fruit-quality-detector-prediction` που δημιουργήσατε στο προηγούμενο μάθημα. Αφήστε το όνομα ως `Iteration2` και επιλέξτε το κουμπί **Δημοσίευση**. @@ -88,7 +88,7 @@ Επίσης, αντιγράψτε την τιμή του *Prediction-Key*. Αυτό είναι ένα ασφαλές κλειδί που πρέπει να περάσετε όταν καλείτε το μοντέλο. Μόνο εφαρμογές που περνούν αυτό το κλειδί επιτρέπεται να χρησιμοποιούν το μοντέλο, ενώ οποιεσδήποτε άλλες εφαρμογές απορρίπτονται. - ![Ο διάλογος API πρόβλεψης που δείχνει το URL και το κλειδί](../../../../../translated_images/el/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![Ο διάλογος API πρόβλεψης που δείχνει το URL και το κλειδί](../../../../../translated_images/el/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ Όταν δημοσιεύεται μια νέα επανάληψη, θα έχει διαφορετικό όνομα. Πώς νομίζετε ότι θα αλλάζατε την επανάληψη που χρησιμοποιεί μια συσκευή IoT; @@ -109,7 +109,7 @@ Για να έχετε τα καλύτερα αποτελέσματα από έναν ταξινομητή εικόνων, θέλετε να εκπαιδεύσετε το μοντέλο με εικόνες που είναι όσο το δυνατόν πιο παρόμοιες με τις εικόνες που χρησιμοποιούνται για τις προβλέψεις. Αν, για παράδειγμα, χρησιμοποιήσατε την κάμερα του τηλεφώνου σας για να καταγράψετε εικόνες για την εκπαίδευση, η ποιότητα της εικόνας, η ευκρίνεια και τα χρώματα θα είναι διαφορετικά από μια κάμερα συνδεδεμένη σε μια συσκευή IoT. -![2 εικόνες μπανάνας, μία χαμηλής ανάλυσης με κακό φωτισμό από συσκευή IoT, και μία υψηλής ανάλυσης με καλό φωτισμό από τηλέφωνο](../../../../../translated_images/el/banana-picture-compare.174df164dc326a42cf7fb051a7497e6113c620e91552d92ca914220305d47d9a.png) +![2 εικόνες μπανάνας, μία χαμηλής ανάλυσης με κακό φωτισμό από συσκευή IoT, και μία υψηλής ανάλυσης με καλό φωτισμό από τηλέφωνο](../../../../../translated_images/el/banana-picture-compare.174df164dc326a42.webp) Στην παραπάνω εικόνα, η εικόνα της μπανάνας στα αριστερά τραβήχτηκε χρησιμοποιώντας μια κάμερα Raspberry Pi, ενώ η εικόνα στα δεξιά τραβήχτηκε της ίδιας μπανάνας στον ίδιο χώρο χρησιμοποιώντας ένα iPhone. Υπάρχει εμφανής διαφορά στην ποιότητα - η εικόνα από το iPhone είναι πιο ευκρινής, με πιο φωτεινά χρώματα και μεγαλύτερη αντίθεση. diff --git a/translations/el/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md b/translations/el/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md index 7ceba380f..7928e46e2 100644 --- a/translations/el/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md +++ b/translations/el/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md @@ -16,7 +16,7 @@ ### Εργασία - σύνδεση της κάμερας -![Μια κάμερα Raspberry Pi](../../../../../translated_images/el/pi-camera-module.4278753c31bd6e757aa2b858be97d72049f71616278cefe4fb5abb485b40a078.png) +![Μια κάμερα Raspberry Pi](../../../../../translated_images/el/pi-camera-module.4278753c31bd6e75.webp) 1. Απενεργοποιήστε το Pi. @@ -24,17 +24,17 @@ Μπορείτε να βρείτε μια κινούμενη εικόνα που δείχνει πώς να ανοίξετε το κλιπ και να εισάγετε το καλώδιο στην [τεκμηρίωση Raspberry Pi Getting Started with the Camera module](https://projects.raspberrypi.org/en/projects/getting-started-with-picamera/2). - ![Το καλώδιο κορδέλας εισάγεται στη μονάδα κάμερας](../../../../../translated_images/el/pi-camera-ribbon-cable.0bf82acd251611c21ac616f082849413e2b322a261d0e4f8fec344248083b07e.png) + ![Το καλώδιο κορδέλας εισάγεται στη μονάδα κάμερας](../../../../../translated_images/el/pi-camera-ribbon-cable.0bf82acd251611c2.webp) 1. Αφαιρέστε το Grove Base Hat από το Pi. 1. Περάστε το καλώδιο κορδέλας μέσα από την υποδοχή κάμερας στο Grove Base Hat. Βεβαιωθείτε ότι η μπλε πλευρά του καλωδίου κοιτάζει προς τις αναλογικές θύρες με την ένδειξη **A0**, **A1** κ.λπ. - ![Το καλώδιο κορδέλας περνάει μέσα από το Grove Base Hat](../../../../../translated_images/el/grove-base-hat-ribbon-cable.501fed202fcf73b11b2b68f6d246189f7d15d3e4423c572ddee79d77b4632b47.png) + ![Το καλώδιο κορδέλας περνάει μέσα από το Grove Base Hat](../../../../../translated_images/el/grove-base-hat-ribbon-cable.501fed202fcf73b1.webp) 1. Εισάγετε το καλώδιο κορδέλας στην υποδοχή κάμερας στο Pi. Και πάλι, τραβήξτε το μαύρο πλαστικό κλιπ προς τα πάνω, εισάγετε το καλώδιο και στη συνέχεια πιέστε το κλιπ πίσω στη θέση του. Η μπλε πλευρά του καλωδίου πρέπει να κοιτάζει προς τις θύρες USB και ethernet. - ![Το καλώδιο κορδέλας συνδέεται στην υποδοχή κάμερας στο Pi](../../../../../translated_images/el/pi-camera-socket-ribbon-cable.a18309920b11800911082ed7aa6fb28e6d9be3a022e4079ff990016cae3fca10.png) + ![Το καλώδιο κορδέλας συνδέεται στην υποδοχή κάμερας στο Pi](../../../../../translated_images/el/pi-camera-socket-ribbon-cable.a18309920b118009.webp) 1. Επανατοποθετήστε το Grove Base Hat. @@ -101,7 +101,7 @@ Η γραμμή `camera.rotation = 0` ορίζει την περιστροφή της εικόνας. Το καλώδιο κορδέλας εισέρχεται στο κάτω μέρος της κάμερας, αλλά αν η κάμερά σας περιστραφεί για να δείχνει πιο εύκολα το αντικείμενο που θέλετε να ταξινομήσετε, τότε μπορείτε να αλλάξετε αυτή τη γραμμή στον αριθμό των μοιρών περιστροφής. - ![Η κάμερα κρεμασμένη πάνω από ένα κουτί αναψυκτικού](../../../../../translated_images/el/pi-camera-upside-down.5376961ba31459883362124152ad6b823d5ac5fc14e85f317e22903bd681c2b6.png) + ![Η κάμερα κρεμασμένη πάνω από ένα κουτί αναψυκτικού](../../../../../translated_images/el/pi-camera-upside-down.5376961ba3145988.webp) Για παράδειγμα, αν κρεμάσετε το καλώδιο κορδέλας πάνω από κάτι ώστε να βρίσκεται στην κορυφή της κάμερας, τότε ορίστε την περιστροφή να είναι 180: diff --git a/translations/el/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md b/translations/el/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md index 3979edfb9..88062e232 100644 --- a/translations/el/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md +++ b/translations/el/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md @@ -84,7 +84,7 @@ Θα μπορείτε να δείτε την εικόνα που τραβήχτηκε και αυτές τις τιμές στην καρτέλα **Predictions** στο Custom Vision. - ![Μια μπανάνα στο Custom Vision προβλέφθηκε ώριμη με 56.8% και άγουρη με 43.1%](../../../../../translated_images/el/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![Μια μπανάνα στο Custom Vision προβλέφθηκε ώριμη με 56.8% και άγουρη με 43.1%](../../../../../translated_images/el/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 Μπορείτε να βρείτε αυτόν τον κώδικα στον φάκελο [code-classify/pi](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/pi) ή [code-classify/virtual-iot-device](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/virtual-iot-device). diff --git a/translations/el/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md b/translations/el/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md index 0f120df67..c80b7bf52 100644 --- a/translations/el/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md +++ b/translations/el/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md @@ -34,11 +34,11 @@ 1. Επιλέξτε το κουμπί **Add** για να δημιουργήσετε την κάμερα. - ![Οι ρυθμίσεις της κάμερας](../../../../../translated_images/el/counterfit-create-camera.a5de97f59c0bd3cbe0416d7e89a3cfe86d19fbae05c641c53a91286412af0a34.png) + ![Οι ρυθμίσεις της κάμερας](../../../../../translated_images/el/counterfit-create-camera.a5de97f59c0bd3cb.webp) Η κάμερα θα δημιουργηθεί και θα εμφανιστεί στη λίστα αισθητήρων. - ![Η κάμερα δημιουργήθηκε](../../../../../translated_images/el/counterfit-camera.001ec52194c8ee5d3f617173da2c79e1df903d10882adc625cbfc493525125d4.png) + ![Η κάμερα δημιουργήθηκε](../../../../../translated_images/el/counterfit-camera.001ec52194c8ee5d.webp) ## Προγραμματισμός της κάμερας @@ -103,7 +103,7 @@ 1. Ρυθμίστε την εικόνα που θα καταγράψει η κάμερα στο CounterFit. Μπορείτε είτε να ορίσετε την *Source* σε *File*, στη συνέχεια να ανεβάσετε ένα αρχείο εικόνας, είτε να ορίσετε την *Source* σε *WebCam*, και οι εικόνες θα καταγράφονται από την κάμερα του υπολογιστή σας. Βεβαιωθείτε ότι επιλέξατε το κουμπί **Set** αφού επιλέξετε μια εικόνα ή την κάμερα. - ![Το CounterFit με ένα αρχείο ορισμένο ως πηγή εικόνας και μια κάμερα που δείχνει ένα άτομο που κρατάει μια μπανάνα σε προεπισκόπηση της κάμερας](../../../../../translated_images/el/counterfit-camera-options.eb3bd5150a8e7dffbf24bc5bcaba0cf2cdef95fbe6bbe393695d173817d6b8df.png) + ![Το CounterFit με ένα αρχείο ορισμένο ως πηγή εικόνας και μια κάμερα που δείχνει ένα άτομο που κρατάει μια μπανάνα σε προεπισκόπηση της κάμερας](../../../../../translated_images/el/counterfit-camera-options.eb3bd5150a8e7dff.webp) 1. Μια εικόνα θα καταγραφεί και θα αποθηκευτεί ως `image.jpg` στον τρέχοντα φάκελο. Θα δείτε αυτό το αρχείο στον εξερευνητή του VS Code. Επιλέξτε το αρχείο για να δείτε την εικόνα. Αν χρειάζεται περιστροφή, ενημερώστε τη γραμμή `camera.rotation = 0` όπως απαιτείται και τραβήξτε άλλη μια φωτογραφία. diff --git a/translations/el/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md b/translations/el/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md index 3279144ac..db65ffe0c 100644 --- a/translations/el/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md +++ b/translations/el/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md @@ -16,7 +16,7 @@ Συνδέστε την κάμερα. -![Ένας αισθητήρας ArduCam](../../../../../translated_images/el/arducam.20e4e4cbb268296570b5914e20d6c349fc42ddac9ed4e1b9deba2188204eebae.png) +![Ένας αισθητήρας ArduCam](../../../../../translated_images/el/arducam.20e4e4cbb2682965.webp) 1. Οι ακίδες στη βάση της ArduCam πρέπει να συνδεθούν στις ακίδες GPIO του Wio Terminal. Για να διευκολυνθεί η εύρεση των σωστών ακίδων, τοποθετήστε το αυτοκόλλητο ακίδων GPIO που συνοδεύει το Wio Terminal γύρω από τις ακίδες: @@ -35,7 +35,7 @@ | SDA | 3 (I2C1_SDA) | Σειριακά Δεδομένα I2C | | SCL | 5 (I2C1_SCL) | Σειριακό Ρολόι I2C | - ![Το Wio Terminal συνδεδεμένο με την ArduCam με καλώδια jumper](../../../../../translated_images/el/arducam-wio-terminal-connections.a4d5a4049bdb5ab800a2877389fc6ecf5e4ff307e6451ff56c517e6786467d0a.png) + ![Το Wio Terminal συνδεδεμένο με την ArduCam με καλώδια jumper](../../../../../translated_images/el/arducam-wio-terminal-connections.a4d5a4049bdb5ab8.webp) Οι συνδέσεις GND και VCC παρέχουν τροφοδοσία 5V στην ArduCam. Λειτουργεί στα 5V, σε αντίθεση με τους αισθητήρες Grove που λειτουργούν στα 3V. Αυτή η τροφοδοσία προέρχεται απευθείας από τη σύνδεση USB-C που τροφοδοτεί τη συσκευή. diff --git a/translations/el/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md b/translations/el/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md index 9861180d5..c453dc28f 100644 --- a/translations/el/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md +++ b/translations/el/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md @@ -208,7 +208,7 @@ Θα μπορείτε να δείτε την εικόνα που τραβήχτηκε και αυτές τις τιμές στην καρτέλα **Predictions** στο Custom Vision. - ![Μια μπανάνα στο Custom Vision προβλέπεται ώριμη με 56.8% και άγουρη με 43.1%](../../../../../translated_images/el/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![Μια μπανάνα στο Custom Vision προβλέπεται ώριμη με 56.8% και άγουρη με 43.1%](../../../../../translated_images/el/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 Μπορείτε να βρείτε αυτόν τον κώδικα στον φάκελο [code-classify/wio-terminal](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/wio-terminal). diff --git a/translations/el/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md b/translations/el/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md index c1a00cc6f..90ddc2850 100644 --- a/translations/el/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md +++ b/translations/el/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md @@ -1,6 +1,6 @@ # Εκτελέστε τον ανιχνευτή φρούτων σας στην άκρη -![Μια επισκόπηση του μαθήματος σε σκίτσο](../../../../../translated_images/el/lesson-17.bc333c3c35ba8e42cce666cfffa82b915f787f455bd94e006aea2b6f2722421a.jpg) +![Μια επισκόπηση του μαθήματος σε σκίτσο](../../../../../translated_images/el/lesson-17.bc333c3c35ba8e42.webp) > Σκίτσο από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση. @@ -33,11 +33,11 @@ Η υπολογιστική στην άκρη περιλαμβάνει τη χρήση υπολογιστών που επεξεργάζονται δεδομένα IoT όσο το δυνατόν πιο κοντά στο σημείο όπου δημιουργούνται τα δεδομένα. Αντί να γίνεται αυτή η επεξεργασία στο cloud, μεταφέρεται στην άκρη του cloud - στο εσωτερικό σας δίκτυο. -![Διάγραμμα αρχιτεκτονικής που δείχνει υπηρεσίες διαδικτύου στο cloud και συσκευές IoT σε τοπικό δίκτυο](../../../../../translated_images/el/cloud-without-edge.b4da641f6022c95ed6b91fde8b5323abd2f94e0d52073ad54172ae8f5dac90e9.png) +![Διάγραμμα αρχιτεκτονικής που δείχνει υπηρεσίες διαδικτύου στο cloud και συσκευές IoT σε τοπικό δίκτυο](../../../../../translated_images/el/cloud-without-edge.b4da641f6022c95e.webp) Στα μαθήματα μέχρι τώρα, είχατε συσκευές που συλλέγουν δεδομένα και στέλνουν δεδομένα στο cloud για ανάλυση, εκτελώντας λειτουργίες χωρίς διακομιστή ή μοντέλα AI στο cloud. -![Διάγραμμα αρχιτεκτονικής που δείχνει συσκευές IoT σε τοπικό δίκτυο να συνδέονται με συσκευές άκρης, και αυτές οι συσκευές άκρης να συνδέονται με το cloud](../../../../../translated_images/el/cloud-with-edge.1e26462c62c126fe150bd15a5714ddf0be599f09bacbad08b85be02b76ea1ae1.png) +![Διάγραμμα αρχιτεκτονικής που δείχνει συσκευές IoT σε τοπικό δίκτυο να συνδέονται με συσκευές άκρης, και αυτές οι συσκευές άκρης να συνδέονται με το cloud](../../../../../translated_images/el/cloud-with-edge.1e26462c62c126fe.webp) Η υπολογιστική στην άκρη περιλαμβάνει τη μεταφορά ορισμένων υπηρεσιών cloud εκτός του cloud και την εκτέλεσή τους σε υπολογιστές που λειτουργούν στο ίδιο δίκτυο με τις συσκευές IoT, επικοινωνώντας με το cloud μόνο όταν είναι απαραίτητο. Για παράδειγμα, μπορείτε να εκτελέσετε μοντέλα AI σε συσκευές άκρης για να αναλύσετε την ωριμότητα των φρούτων και να στείλετε μόνο αναλυτικά δεδομένα πίσω στο cloud, όπως τον αριθμό των ώριμων φρούτων σε σύγκριση με τα άγουρα. @@ -85,7 +85,7 @@ ## Azure IoT Edge -![Το λογότυπο του Azure IoT Edge](../../../../../translated_images/el/azure-iot-edge-logo.c1c076749b5cba2e8755262fadc2f19ca1146b948d76990b1229199ac2292d79.png) +![Το λογότυπο του Azure IoT Edge](../../../../../translated_images/el/azure-iot-edge-logo.c1c076749b5cba2e.webp) Το Azure IoT Edge είναι μια υπηρεσία που μπορεί να σας βοηθήσει να μεταφέρετε φόρτους εργασίας εκτός του cloud και στην άκρη. Ρυθμίζετε μια συσκευή ως συσκευή άκρης και από το cloud μπορείτε να αναπτύξετε κώδικα σε αυτή τη συσκευή άκρης. Αυτό σας επιτρέπει να συνδυάσετε τις δυνατότητες του cloud και της άκρης. @@ -99,7 +99,7 @@ Το IoT Edge εκτελεί κώδικα από *containers* - αυτοτελείς εφαρμογές που εκτελούνται απομονωμένες από τις υπόλοιπες εφαρμογές στον υπολογιστή σας. Όταν εκτελείτε ένα container, λειτουργεί σαν ένας ξεχωριστός υπολογιστής μέσα στον υπολογιστή σας, με το δικό του λογισμικό, υπηρεσίες και εφαρμογές. Τις περισσότερες φορές, τα containers δεν μπορούν να έχουν πρόσβαση σε τίποτα στον υπολογιστή σας, εκτός αν επιλέξετε να μοιραστείτε πράγματα όπως ένας φάκελος με το container. Το container στη συνέχεια εκθέτει υπηρεσίες μέσω μιας ανοιχτής θύρας που μπορείτε να συνδεθείτε ή να εκθέσετε στο δίκτυό σας. -![Μια αίτηση web που ανακατευθύνεται σε ένα container](../../../../../translated_images/el/container-web-browser.4ee81dd4f0d8838ce622b2a0d600b6a4322b5d4fe43159facd87b7b34f84d66a.png) +![Μια αίτηση web που ανακατευθύνεται σε ένα container](../../../../../translated_images/el/container-web-browser.4ee81dd4f0d8838c.webp) Για παράδειγμα, μπορείτε να έχετε ένα container με έναν ιστότοπο που εκτελείται στη θύρα 80, την προεπιλεγμένη θύρα HTTP, και μπορείτε στη συνέχεια να το εκθέσετε από τον υπολογιστή σας επίσης στη θύρα 80. @@ -179,11 +179,11 @@ ## Προετοιμασία του κοντέινερ για ανάπτυξη -![Τα κοντέινερ δημιουργούνται, αποστέλλονται σε ένα container registry και στη συνέχεια αναπτύσσονται από το registry σε μια συσκευή edge μέσω IoT Edge](../../../../../translated_images/el/container-edge-flow.c246050dd60ceefdb6ace026a4ce5c6aa4112bb5898ae23fbb2ab4be29ae3e1b.png) +![Τα κοντέινερ δημιουργούνται, αποστέλλονται σε ένα container registry και στη συνέχεια αναπτύσσονται από το registry σε μια συσκευή edge μέσω IoT Edge](../../../../../translated_images/el/container-edge-flow.c246050dd60ceefd.webp) Αφού κατεβάσετε το μοντέλο σας, πρέπει να δημιουργηθεί σε κοντέινερ και να αποσταλεί σε ένα container registry - μια διαδικτυακή τοποθεσία όπου μπορείτε να αποθηκεύετε κοντέινερ. Το IoT Edge μπορεί στη συνέχεια να κατεβάσει το κοντέινερ από το registry και να το προωθήσει στη συσκευή σας. -![Το λογότυπο του Azure Container Registry](../../../../../translated_images/el/azure-container-registry-logo.09494206991d4b295025ebff7d4e2900325e527a59184ffbc8464b6ab59654be.png) +![Το λογότυπο του Azure Container Registry](../../../../../translated_images/el/azure-container-registry-logo.09494206991d4b29.webp) Το container registry που θα χρησιμοποιήσετε για αυτό το μάθημα είναι το Azure Container Registry. Αυτή δεν είναι δωρεάν υπηρεσία, οπότε για να εξοικονομήσετε χρήματα, βεβαιωθείτε ότι [καθαρίζετε το έργο σας](../../../clean-up.md) μόλις τελειώσετε. diff --git a/translations/el/4-manufacturing/lessons/4-trigger-fruit-detector/README.md b/translations/el/4-manufacturing/lessons/4-trigger-fruit-detector/README.md index 03c4e8337..11541ec29 100644 --- a/translations/el/4-manufacturing/lessons/4-trigger-fruit-detector/README.md +++ b/translations/el/4-manufacturing/lessons/4-trigger-fruit-detector/README.md @@ -1,6 +1,6 @@ # Ενεργοποίηση ανίχνευσης ποιότητας φρούτων από έναν αισθητήρα -![Μια επισκόπηση του μαθήματος σε σκίτσο](../../../../../translated_images/el/lesson-18.92c32ed1d354caa5a54baa4032cf0b172d4655e8e326ad5d46c558a0def15365.jpg) +![Μια επισκόπηση του μαθήματος σε σκίτσο](../../../../../translated_images/el/lesson-18.92c32ed1d354caa5.webp) > Σκίτσο από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση. @@ -39,7 +39,7 @@ ### Αναφορά αρχιτεκτονικής IoT -![Μια αναφορά αρχιτεκτονικής IoT](../../../../../translated_images/el/iot-reference-architecture.2278b98b55c6d4e89bde18eada3688d893861d43507641804dd2f9d3079cfaa0.png) +![Μια αναφορά αρχιτεκτονικής IoT](../../../../../translated_images/el/iot-reference-architecture.2278b98b55c6d4e8.webp) Το παραπάνω διάγραμμα δείχνει μια αναφορά αρχιτεκτονικής IoT. @@ -49,7 +49,7 @@ * **Γνώσεις** προέρχονται από εφαρμογές χωρίς διακομιστή ή από αναλύσεις που εκτελούνται σε αποθηκευμένα δεδομένα. * **Ενέργειες** μπορεί να είναι εντολές που αποστέλλονται σε συσκευές ή οπτικοποίηση δεδομένων που επιτρέπουν στους ανθρώπους να λαμβάνουν αποφάσεις. -![Μια αναφορά αρχιτεκτονικής IoT](../../../../../translated_images/el/iot-reference-architecture-azure.0b8d2161af924cb18ae48a8558a19541cca47f27264851b5b7e56d7b8bb372ac.png) +![Μια αναφορά αρχιτεκτονικής IoT](../../../../../translated_images/el/iot-reference-architecture-azure.0b8d2161af924cb1.webp) Το παραπάνω διάγραμμα δείχνει μερικά από τα στοιχεία και τις υπηρεσίες που καλύφθηκαν μέχρι τώρα σε αυτά τα μαθήματα και πώς συνδέονται μεταξύ τους σε μια αναφορά αρχιτεκτονικής IoT. @@ -89,7 +89,7 @@ ### Δημιουργία πρωτοτύπου της εφαρμογής σας -![Μια αναφορά αρχιτεκτονικής IoT για έλεγχο ποιότητας φρούτων](../../../../../translated_images/el/iot-reference-architecture-fruit-quality.cc705f121c3b6fa71c800d9630935ac34bc08223a04601e35f41d5e9b5dd5207.png) +![Μια αναφορά αρχιτεκτονικής IoT για έλεγχο ποιότητας φρούτων](../../../../../translated_images/el/iot-reference-architecture-fruit-quality.cc705f121c3b6fa7.webp) Το παραπάνω διάγραμμα δείχνει μια αναφορά αρχιτεκτονικής για αυτή την πρωτότυπη εφαρμογή. @@ -124,7 +124,7 @@ Το πρωτότυπο ανιχνευτή φρούτων έχει πολλαπλά στοιχεία που επικοινωνούν μεταξύ τους. -![Τα στοιχεία που επικοινωνούν μεταξύ τους](../../../../../translated_images/el/fruit-quality-detector-message-flow.adf2a65da8fd8741ac7af11361574de89adc126785d67606bb4d2ec00467e380.png) +![Τα στοιχεία που επικοινωνούν μεταξύ τους](../../../../../translated_images/el/fruit-quality-detector-message-flow.adf2a65da8fd8741.webp) * Ένας αισθητήρας εγγύτητας που μετρά την απόσταση από ένα φρούτο και στέλνει αυτά τα δεδομένα στο IoT Hub * Η εντολή για τον έλεγχο της κάμερας που προέρχεται από το IoT Hub προς τη συσκευή της κάμερας diff --git a/translations/el/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md b/translations/el/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md index 72faab555..85bc8d22a 100644 --- a/translations/el/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md +++ b/translations/el/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md @@ -20,7 +20,7 @@ Συνδέστε τον αισθητήρα Time of Flight. -![Ένας αισθητήρας Grove Time of Flight](../../../../../translated_images/el/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![Ένας αισθητήρας Grove Time of Flight](../../../../../translated_images/el/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. Εισάγετε το ένα άκρο ενός καλωδίου Grove στην υποδοχή του αισθητήρα Time of Flight. Θα μπει μόνο με έναν συγκεκριμένο τρόπο. diff --git a/translations/el/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md b/translations/el/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md index c44af5608..61586a74d 100644 --- a/translations/el/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md +++ b/translations/el/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md @@ -36,11 +36,11 @@ 1. Επιλέξτε το κουμπί **Add** για να δημιουργήσετε τον αισθητήρα απόστασης. - ![Οι ρυθμίσεις του αισθητήρα απόστασης](../../../../../translated_images/el/counterfit-create-distance-sensor.967c9fb98f27888d95920c9784d004c972490eb71f70397fe13bd70a79a879a3.png) + ![Οι ρυθμίσεις του αισθητήρα απόστασης](../../../../../translated_images/el/counterfit-create-distance-sensor.967c9fb98f27888d.webp) Ο αισθητήρας απόστασης θα δημιουργηθεί και θα εμφανιστεί στη λίστα αισθητήρων. - ![Ο αισθητήρας απόστασης δημιουργήθηκε](../../../../../translated_images/el/counterfit-distance-sensor.079eefeeea0b68afc36431ce8fcbe2f09a7e4916ed1cd5cb30e696db53bc18fa.png) + ![Ο αισθητήρας απόστασης δημιουργήθηκε](../../../../../translated_images/el/counterfit-distance-sensor.079eefeeea0b68af.webp) ## Προγραμματισμός του αισθητήρα απόστασης diff --git a/translations/el/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md b/translations/el/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md index c39536f3d..c548392d2 100644 --- a/translations/el/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md +++ b/translations/el/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md @@ -20,7 +20,7 @@ Συνδέστε τον αισθητήρα Time of Flight. -![Ένας αισθητήρας Grove Time of Flight](../../../../../translated_images/el/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![Ένας αισθητήρας Grove Time of Flight](../../../../../translated_images/el/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. Εισάγετε το ένα άκρο ενός καλωδίου Grove στην υποδοχή του αισθητήρα Time of Flight. Θα μπει μόνο με έναν συγκεκριμένο τρόπο. diff --git a/translations/el/5-retail/lessons/1-train-stock-detector/README.md b/translations/el/5-retail/lessons/1-train-stock-detector/README.md index ffedeb7af..ad9662d1f 100644 --- a/translations/el/5-retail/lessons/1-train-stock-detector/README.md +++ b/translations/el/5-retail/lessons/1-train-stock-detector/README.md @@ -1,6 +1,6 @@ # Εκπαίδευση ανιχνευτή αποθεμάτων -![Μια επισκόπηση του μαθήματος σε σκίτσο](../../../../../translated_images/el/lesson-19.cf6973cecadf080c4b526310620dc4d6f5994c80fb0139c6f378cc9ca2d435cd.jpg) +![Μια επισκόπηση του μαθήματος σε σκίτσο](../../../../../translated_images/el/lesson-19.cf6973cecadf080c.webp) > Σκίτσο από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση. @@ -36,7 +36,7 @@ Η ταξινόμηση εικόνων αφορά την ταξινόμηση μιας εικόνας συνολικά - ποιες είναι οι πιθανότητες ότι η συνολική εικόνα ταιριάζει σε κάθε ετικέτα. Επιστρέφονται πιθανότητες για κάθε ετικέτα που χρησιμοποιήθηκε για την εκπαίδευση του μοντέλου. -![Ταξινόμηση εικόνων με κάσιους και ντοματοπολτό](../../../../../translated_images/el/image-classifier-cashews-tomato.bc2e16ab8f05cf9ac0f59f73e32efc4227f9a5b601b90b2c60f436694547a965.png) +![Ταξινόμηση εικόνων με κάσιους και ντοματοπολτό](../../../../../translated_images/el/image-classifier-cashews-tomato.bc2e16ab8f05cf9a.webp) Στο παραπάνω παράδειγμα, δύο εικόνες ταξινομούνται χρησιμοποιώντας ένα μοντέλο που εκπαιδεύτηκε να ταξινομεί δοχεία με κάσιους ή κονσέρβες ντοματοπολτού. Η πρώτη εικόνα είναι ένα δοχείο με κάσιους και έχει δύο αποτελέσματα από τον ταξινομητή εικόνων: @@ -60,7 +60,7 @@ > 🎓 *Πλαίσια οριοθέτησης* είναι τα πλαίσια γύρω από ένα αντικείμενο. -![Ανίχνευση αντικειμένων με κάσιους και ντοματοπολτό](../../../../../translated_images/el/object-detector-cashews-tomato.1af7c26686b4db0e709754aeb196f4e73271f54e2085db3bcccb70d4a0d84d97.png) +![Ανίχνευση αντικειμένων με κάσιους και ντοματοπολτό](../../../../../translated_images/el/object-detector-cashews-tomato.1af7c26686b4db0e.webp) Η παραπάνω εικόνα περιέχει τόσο ένα δοχείο με κάσιους όσο και τρεις κονσέρβες ντοματοπολτού. Ο ανιχνευτής αντικειμένων ανίχνευσε τα κάσιους, επιστρέφοντας το πλαίσιο οριοθέτησης που περιέχει τα κάσιους με το ποσοστό πιθανότητας ότι το πλαίσιο οριοθέτησης περιέχει το αντικείμενο, σε αυτή την περίπτωση 97.6%. Ο ανιχνευτής αντικειμένων έχει επίσης ανιχνεύσει τρεις κονσέρβες ντοματοπολτού και παρέχει τρία ξεχωριστά πλαίσια οριοθέτησης, ένα για κάθε ανιχνευμένη κονσέρβα, και το καθένα έχει ένα ποσοστό πιθανότητας ότι το πλαίσιο οριοθέτησης περιέχει μια κονσέρβα ντοματοπολτού. @@ -111,7 +111,7 @@ Όταν δημιουργείτε το έργο σας, βεβαιωθείτε ότι χρησιμοποιείτε τον πόρο `stock-detector-training` που δημιουργήσατε νωρίτερα. Χρησιμοποιήστε τον τύπο έργου *Object Detection* και τον τομέα *Products on Shelves*. - ![Οι ρυθμίσεις για το έργο Custom Vision με το όνομα να έχει οριστεί σε fruit-quality-detector, χωρίς περιγραφή, τον πόρο να έχει οριστεί σε fruit-quality-detector-training, τον τύπο έργου να έχει οριστεί σε classification, τους τύπους ταξινόμησης να έχουν οριστεί σε multi class και τους τομείς να έχουν οριστεί σε food](../../../../../translated_images/el/custom-vision-create-object-detector-project.32d4fb9aa8e7e7375f8a799bfce517aca970f2cb65e42d4245c5e635c734ab29.png) + ![Οι ρυθμίσεις για το έργο Custom Vision με το όνομα να έχει οριστεί σε fruit-quality-detector, χωρίς περιγραφή, τον πόρο να έχει οριστεί σε fruit-quality-detector-training, τον τύπο έργου να έχει οριστεί σε classification, τους τύπους ταξινόμησης να έχουν οριστεί σε multi class και τους τομείς να έχουν οριστεί σε food](../../../../../translated_images/el/custom-vision-create-object-detector-project.32d4fb9aa8e7e737.webp) ✅ Ο τομέας προϊόντων στα ράφια είναι ειδικά προσαρμοσμένος για την ανίχνευση αποθεμάτων στα ράφια καταστημάτων. Διαβάστε περισσότερα για τους διαφορετικούς τομείς στην [τεκμηρίωση Επιλογή τομέα στα Microsoft Docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/select-domain?WT.mc_id=academic-17441-jabenn#object-detection) @@ -133,7 +133,7 @@ 1. Ακολουθήστε την [ενότητα Μεταφόρτωση και ετικέτα εικόνων του γρήγορου οδηγού για την κατασκευή ανιχνευτή αντικειμένων στα Microsoft Docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/get-started-build-detector?WT.mc_id=academic-17441-jabenn#upload-and-tag-images) για να ανεβάσετε τις εικόνες εκπαίδευσης σας. Δημιουργήστε σχετικές ετικέτες ανάλογα με τους τύπους αντικειμένων που θέλετε να ανιχνεύσετε. - ![Οι διάλογοι μεταφόρτωσης που δείχνουν τη μεταφόρτωση εικόνων ώριμων και άγουρων μπανανών](../../../../../translated_images/el/image-upload-object-detector.77c7892c3093cb59b79018edecd678749a75d71a099bc8a2d2f2f76320f88a5b.png) + ![Οι διάλογοι μεταφόρτωσης που δείχνουν τη μεταφόρτωση εικόνων ώριμων και άγουρων μπανανών](../../../../../translated_images/el/image-upload-object-detector.77c7892c3093cb59.webp) Όταν σχεδιάζετε πλαίσια οριοθέτησης για αντικείμενα, κρατήστε τα σφιχτά γύρω από το αντικείμενο. Μπορεί να χρειαστεί χρόνος για να περιγράψετε όλες τις εικόνες, αλλά το εργαλείο θα ανιχνεύσει τι πιστεύει ότι είναι τα πλα [Κουίζ μετά τη διάλεξη](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/38) diff --git a/translations/el/5-retail/lessons/2-check-stock-device/README.md b/translations/el/5-retail/lessons/2-check-stock-device/README.md index d5f410e52..e072db226 100644 --- a/translations/el/5-retail/lessons/2-check-stock-device/README.md +++ b/translations/el/5-retail/lessons/2-check-stock-device/README.md @@ -1,6 +1,6 @@ # Έλεγχος αποθεμάτων από συσκευή IoT -![Μια σκίτσο-παρουσίαση αυτής της ενότητας](../../../../../translated_images/el/lesson-20.0211df9551a8abb300fc8fcf7dc2789468dea2eabe9202273ac077b0ba37f15e.jpg) +![Μια σκίτσο-παρουσίαση αυτής της ενότητας](../../../../../translated_images/el/lesson-20.0211df9551a8abb3.webp) > Σκίτσο από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση. @@ -62,7 +62,7 @@ 1. Επιλέξτε το κουμπί **Publish** για την έκδοση. - ![Το κουμπί δημοσίευσης](../../../../../translated_images/el/custom-vision-object-detector-publish-button.34ee379fc650ccb9856c3868d0003f413b9529f102fc73c37168c98d721cc293.png) + ![Το κουμπί δημοσίευσης](../../../../../translated_images/el/custom-vision-object-detector-publish-button.34ee379fc650ccb9.webp) 1. Στον διάλογο *Publish Model*, ορίστε τον *Prediction resource* στη `stock-detector-prediction` υπηρεσία που δημιουργήσατε στην προηγούμενη ενότητα. Αφήστε το όνομα ως `Iteration2` και επιλέξτε το κουμπί **Publish**. @@ -76,7 +76,7 @@ Επίσης, αντιγράψτε την τιμή του *Prediction-Key*. Αυτό είναι ένα ασφαλές κλειδί που πρέπει να περάσετε όταν καλείτε το μοντέλο. Μόνο εφαρμογές που περνούν αυτό το κλειδί επιτρέπεται να χρησιμοποιούν το μοντέλο, οποιαδήποτε άλλη εφαρμογή απορρίπτεται. - ![Ο διάλογος API πρόβλεψης που δείχνει το URL και το κλειδί](../../../../../translated_images/el/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![Ο διάλογος API πρόβλεψης που δείχνει το URL και το κλειδί](../../../../../translated_images/el/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ Όταν δημοσιεύεται μια νέα έκδοση, θα έχει διαφορετικό όνομα. Πώς νομίζετε ότι θα αλλάζατε την έκδοση που χρησιμοποιεί μια συσκευή IoT; @@ -95,7 +95,7 @@ Τα αποτελέσματα μιας πρόβλεψης στην καρτέλα **Predictions** στο Custom Vision έχουν τα πλαίσια οριοθέτησης σχεδιασμένα πάνω στην εικόνα που στάλθηκε για πρόβλεψη. -![4 κονσέρβες τοματοπολτού σε ένα ράφι με προβλέψεις για τις 4 ανιχνεύσεις](../../../../../translated_images/el/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) +![4 κονσέρβες τοματοπολτού σε ένα ράφι με προβλέψεις για τις 4 ανιχνεύσεις](../../../../../translated_images/el/custom-vision-stock-prediction.942266ab1bcca341.webp) Στην παραπάνω εικόνα, ανιχνεύθηκαν 4 κονσέρβες τοματοπολτού. Στα αποτελέσματα, ένα κόκκινο τετράγωνο είναι σχεδιασμένο για κάθε αντικείμενο που ανιχνεύθηκε στην εικόνα, υποδεικνύοντας το πλαίσιο οριοθέτησης. @@ -103,7 +103,7 @@ Τα πλαίσια οριοθέτησης ορίζονται με 4 τιμές - top, left, height και width. Αυτές οι τιμές είναι σε κλίμακα 0-1, που αντιπροσωπεύουν τις θέσεις ως ποσοστό του μεγέθους της εικόνας. Η αρχή (η θέση 0,0) είναι η επάνω αριστερή γωνία της εικόνας, οπότε η τιμή top είναι η απόσταση από την κορυφή, και το κάτω μέρος του πλαισίου οριοθέτησης είναι το top συν το height. -![Ένα πλαίσιο οριοθέτησης γύρω από μια κονσέρβα τοματοπολτού](../../../../../translated_images/el/bounding-box.1420a7ea0d3d15f71e1ffb5cf4b2271d184fac051f990abc541975168d163684.png) +![Ένα πλαίσιο οριοθέτησης γύρω από μια κονσέρβα τοματοπολτού](../../../../../translated_images/el/bounding-box.1420a7ea0d3d15f7.webp) Η παραπάνω εικόνα έχει πλάτος 600 pixels και ύψος 800 pixels. Το πλαίσιο οριοθέτησης ξεκινά 320 pixels κάτω, δίνοντας μια τιμή top 0.4 (800 x 0.4 = 320). Από τα αριστερά, το πλαίσιο ξεκινά 240 pixels, δίνοντας μια τιμή left 0.4 (600 x 0.4 = 240). Το ύψος του πλαισίου είναι 240 pixels, δίνοντας μια τιμή height 0.3 (800 x 0.3 = 240). Το πλάτος του πλαισίου είναι 120 pixels, δίνοντας μια τιμή width 0.2 (600 x 0.2 = 120). @@ -118,7 +118,7 @@ Μπορείτε να χρησιμοποιήσετε τα πλαίσια οριοθέτησης σε συνδυασμό με τις πιθανότητες για να αξιολογήσετε πόσο ακριβής είναι μια ανίχνευση. Για παράδειγμα, ένας ανιχνευτής αντικειμένων μπορεί να ανιχνεύσει πολλαπλά αντικείμενα που επικαλύπτονται, για παράδειγμα ανιχνεύοντας μια κονσέρβα μέσα σε μια άλλη. Ο κώδικάς σας θα μπορούσε να εξετάσει τα πλαίσια οριοθέτησης, να κατανοήσει ότι αυτό είναι αδύνατο, και να αγνοήσει οποιαδήποτε αντικείμενα έχουν σημαντική επικάλυψη με άλλα αντικείμενα. -![Δύο πλαίσια οριοθέτησης που επικαλύπτουν μια κονσέρβα τοματοπολτού](../../../../../translated_images/el/overlap-object-detection.d431e03cae75072a2760430eca7f2c5fdd43045bfd72dadcbf12711f7cd6c2ae.png) +![Δύο πλαίσια οριοθέτησης που επικαλύπτουν μια κονσέρβα τοματοπολτού](../../../../../translated_images/el/overlap-object-detection.d431e03cae75072a.webp) Στο παραπάνω παράδειγμα, ένα πλαίσιο οριοθέτησης υποδεικνύει μια προβλεπόμενη κονσέρβα τοματοπολτού με πιθανότητα 78.3%. Ένα δεύτερο πλαίσιο είναι ελαφρώς μικρότερο και βρίσκεται μέσα στο πρώτο πλαίσιο με πιθανότητα 64.3%. Ο κώδικάς σας μπορεί να ελέγξει τα πλαίσια οριοθέτησης, να δει ότι επικαλύπτονται πλήρως, και να αγνοήσει την χαμηλότερη πιθανότητα, καθώς δεν είναι δυνατόν να υπάρχει μια κονσέρβα μέσα σε μια άλλη. diff --git a/translations/el/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md b/translations/el/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md index d293d38e6..371bd36b1 100644 --- a/translations/el/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md +++ b/translations/el/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md @@ -67,7 +67,7 @@ Θα μπορείτε να δείτε την εικόνα που τραβήχτηκε και αυτές τις τιμές στην καρτέλα **Predictions** στο Custom Vision. - ![4 κονσέρβες τοματοπολτού σε ένα ράφι με προβλέψεις για τις 4 ανιχνεύσεις: 35.8%, 33.5%, 25.7% και 16.6%](../../../../../translated_images/el/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![4 κονσέρβες τοματοπολτού σε ένα ράφι με προβλέψεις για τις 4 ανιχνεύσεις: 35.8%, 33.5%, 25.7% και 16.6%](../../../../../translated_images/el/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 Μπορείτε να βρείτε αυτόν τον κώδικα στον φάκελο [code-detect/pi](../../../../../5-retail/lessons/2-check-stock-device/code-detect/pi) ή [code-detect/virtual-iot-device](../../../../../5-retail/lessons/2-check-stock-device/code-detect/virtual-iot-device). diff --git a/translations/el/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md b/translations/el/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md index a45937d0f..a93a652d1 100644 --- a/translations/el/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md +++ b/translations/el/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md @@ -95,7 +95,7 @@ Θα μπορείς να δεις την εικόνα που τραβήχτηκε και αυτές τις τιμές στην καρτέλα **Predictions** στο Custom Vision. - ![4 κονσέρβες τοματοπολτού σε ένα ράφι με προβλέψεις για τις 4 ανιχνεύσεις: 35.8%, 33.5%, 25.7% και 16.6%](../../../../../translated_images/el/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![4 κονσέρβες τοματοπολτού σε ένα ράφι με προβλέψεις για τις 4 ανιχνεύσεις: 35.8%, 33.5%, 25.7% και 16.6%](../../../../../translated_images/el/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 Μπορείς να βρεις αυτόν τον κώδικα στον φάκελο [code-detect/wio-terminal](../../../../../5-retail/lessons/2-check-stock-device/code-detect/wio-terminal). diff --git a/translations/el/6-consumer/lessons/1-speech-recognition/README.md b/translations/el/6-consumer/lessons/1-speech-recognition/README.md index d7984236f..81212ddc2 100644 --- a/translations/el/6-consumer/lessons/1-speech-recognition/README.md +++ b/translations/el/6-consumer/lessons/1-speech-recognition/README.md @@ -1,6 +1,6 @@ # Αναγνώριση ομιλίας με συσκευή IoT -![Μια σκίτσα που συνοψίζει αυτό το μάθημα](../../../../../translated_images/el/lesson-21.e34de51354d6606fb5ee08d8c89d0222eea0a2a7aaf744a8805ae847c4f69dc4.jpg) +![Μια σκίτσα που συνοψίζει αυτό το μάθημα](../../../../../translated_images/el/lesson-21.e34de51354d6606f.webp) > Σκίτσα από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση. @@ -51,7 +51,7 @@ Τα δυναμικά μικρόφωνα δεν χρειάζονται τροφοδοσία για να λειτουργήσουν, το ηλεκτρικό σήμα δημιουργείται εξ ολοκλήρου από το μικρόφωνο. - ![Η Patti Smith τραγουδάει σε ένα μικρόφωνο τύπου Shure SM58 (δυναμικό καρδιοειδές)](../../../../../translated_images/el/dynamic-mic.8babac890a2d80dfb0874b5bf37d4b851fe2aeb9da6fd72945746176978bf3bb.jpg) + ![Η Patti Smith τραγουδάει σε ένα μικρόφωνο τύπου Shure SM58 (δυναμικό καρδιοειδές)](../../../../../translated_images/el/dynamic-mic.8babac890a2d80df.webp) * Κορδέλας - Τα μικρόφωνα κορδέλας είναι παρόμοια με τα δυναμικά μικρόφωνα, εκτός από το ότι έχουν μια μεταλλική κορδέλα αντί για μεμβράνη. Αυτή η κορδέλα κινείται σε ένα μαγνητικό πεδίο δημιουργώντας ηλεκτρικό ρεύμα. Όπως τα δυναμικά μικρόφωνα, τα μικρόφωνα κορδέλας δεν χρειάζονται τροφοδοσία για να λειτουργήσουν. @@ -59,11 +59,11 @@ * Πυκνωτικά - Τα πυκνωτικά μικρόφωνα έχουν μια λεπτή μεταλλική μεμβράνη και μια σταθερή μεταλλική πλάκα. Ηλεκτρισμός εφαρμόζεται και στα δύο αυτά μέρη και καθώς η μεμβράνη δονείται, η στατική φόρτιση μεταξύ των πλακών αλλάζει, δημιουργώντας ένα σήμα. Τα πυκνωτικά μικρόφωνα χρειάζονται τροφοδοσία για να λειτουργήσουν - γνωστή ως *Phantom power*. - ![Μικρόφωνο μικρής μεμβράνης C451B από την AKG Acoustics](../../../../../translated_images/el/condenser-mic.6f6ed5b76ca19e0ec3fd0c544601542d4479a6cb7565db336de49fbbf69f623e.jpg) + ![Μικρόφωνο μικρής μεμβράνης C451B από την AKG Acoustics](../../../../../translated_images/el/condenser-mic.6f6ed5b76ca19e0e.webp) * MEMS - Τα μικρόφωνα μικροηλεκτρομηχανικών συστημάτων, ή MEMS, είναι μικρόφωνα σε τσιπ. Έχουν μια ευαίσθητη στην πίεση μεμβράνη χαραγμένη σε ένα τσιπ πυριτίου και λειτουργούν παρόμοια με ένα πυκνωτικό μικρόφωνο. Αυτά τα μικρόφωνα μπορούν να είναι πολύ μικρά και να ενσωματώνονται σε κυκλώματα. - ![Ένα μικρόφωνο MEMS σε πλακέτα κυκλώματος](../../../../../translated_images/el/mems-microphone.80574019e1f5e4d9ee72fed720ecd25a39fc2969c91355d17ebb24ba4159e4c4.png) + ![Ένα μικρόφωνο MEMS σε πλακέτα κυκλώματος](../../../../../translated_images/el/mems-microphone.80574019e1f5e4d9.webp) Στην παραπάνω εικόνα, το τσιπ με την ένδειξη **LEFT** είναι ένα μικρόφωνο MEMS, με μια μικροσκοπική μεμβράνη πλάτους λιγότερο από ένα χιλιοστό. @@ -155,7 +155,7 @@ ## Μετατροπή ομιλίας σε κείμενο -![Λογότυπο υπηρεσιών ομιλίας](../../../../../translated_images/el/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![Λογότυπο υπηρεσιών ομιλίας](../../../../../translated_images/el/azure-speech-logo.a1f08c4befb0159f.webp) Όπως και με την ταξινόμηση εικόνων σε ένα προηγούμενο έργο, υπάρχουν προκατασκευασμένες υπηρεσίες AI που μπορούν να πάρουν την ομιλία ως αρχείο ήχου και να τη μετατρέψουν σε κείμενο. Μία τέτοια υπηρεσία είναι η Speech Service, μέρος των Cognitive Services, προκατασκευασμένες υπηρεσίες AI που μπορείτε να χρησιμοποιήσετε στις εφαρμογές σας. diff --git a/translations/el/6-consumer/lessons/1-speech-recognition/pi-audio.md b/translations/el/6-consumer/lessons/1-speech-recognition/pi-audio.md index 81f189089..a0019edb4 100644 --- a/translations/el/6-consumer/lessons/1-speech-recognition/pi-audio.md +++ b/translations/el/6-consumer/lessons/1-speech-recognition/pi-audio.md @@ -16,13 +16,13 @@ #### Εργασία - σύνδεση του κουμπιού -![Ένα κουμπί Grove](../../../../../translated_images/el/grove-button.a70cfbb809a8563681003250cf5b06d68cdcc68624f9e2f493d5a534ae2da1e5.png) +![Ένα κουμπί Grove](../../../../../translated_images/el/grove-button.a70cfbb809a85636.webp) 1. Εισάγετε το ένα άκρο ενός καλωδίου Grove στην υποδοχή του κουμπιού. Θα μπει μόνο με έναν συγκεκριμένο τρόπο. 1. Με το Raspberry Pi απενεργοποιημένο, συνδέστε το άλλο άκρο του καλωδίου Grove στην ψηφιακή υποδοχή με την ένδειξη **D5** στη βάση Grove που είναι συνδεδεμένη στο Pi. Αυτή η υποδοχή είναι η δεύτερη από τα αριστερά, στη σειρά των υποδοχών δίπλα στα GPIO pins. -![Το κουμπί Grove συνδεδεμένο στην υποδοχή D5](../../../../../translated_images/el/pi-button.c7a1a4f55943341ce1baf1057658e9a205804d4131d258e820c93f951df0abf3.png) +![Το κουμπί Grove συνδεδεμένο στην υποδοχή D5](../../../../../translated_images/el/pi-button.c7a1a4f55943341c.webp) ## Καταγραφή ήχου diff --git a/translations/el/6-consumer/lessons/1-speech-recognition/pi-microphone.md b/translations/el/6-consumer/lessons/1-speech-recognition/pi-microphone.md index 6f4d074cf..9bb42800a 100644 --- a/translations/el/6-consumer/lessons/1-speech-recognition/pi-microphone.md +++ b/translations/el/6-consumer/lessons/1-speech-recognition/pi-microphone.md @@ -34,7 +34,7 @@ 1. Αν χρησιμοποιείτε το ReSpeaker 2-Mics Pi HAT, μπορείτε να αφαιρέσετε το Grove base hat και να τοποθετήσετε το ReSpeaker hat στη θέση του. - ![Ένα Raspberry Pi με το ReSpeaker hat](../../../../../translated_images/el/pi-respeaker-hat.f00fabe7dd039a93e2e0aa0fc946c9af0c6a9eb17c32fa1ca097fb4e384f69f0.png) + ![Ένα Raspberry Pi με το ReSpeaker hat](../../../../../translated_images/el/pi-respeaker-hat.f00fabe7dd039a93.webp) Θα χρειαστείτε ένα κουμπί Grove αργότερα σε αυτό το μάθημα, αλλά ένα είναι ενσωματωμένο σε αυτό το hat, οπότε το Grove base hat δεν είναι απαραίτητο. diff --git a/translations/el/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md b/translations/el/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md index a44011b8d..9cd3958f8 100644 --- a/translations/el/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md +++ b/translations/el/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md @@ -10,7 +10,7 @@ ✅ Διαβάστε περισσότερα για το DMA στη [σελίδα άμεσης πρόσβασης μνήμης στη Wikipedia](https://wikipedia.org/wiki/Direct_memory_access). -![Ο ήχος από το μικρόφωνο περνάει σε έναν ADC και στη συνέχεια στον DMAC. Αυτός γράφει σε έναν buffer. Όταν αυτός ο buffer γεμίσει, επεξεργάζεται και ο DMAC γράφει σε έναν δεύτερο buffer](../../../../../translated_images/el/dmac-adc-buffers.4509aee49145c90bc2e1be472b8ed2ddfcb2b6a81ad3e559114aca55f5fff759.png) +![Ο ήχος από το μικρόφωνο περνάει σε έναν ADC και στη συνέχεια στον DMAC. Αυτός γράφει σε έναν buffer. Όταν αυτός ο buffer γεμίσει, επεξεργάζεται και ο DMAC γράφει σε έναν δεύτερο buffer](../../../../../translated_images/el/dmac-adc-buffers.4509aee49145c90b.webp) Ο DMAC μπορεί να καταγράψει ήχο από τον ADC σε σταθερά διαστήματα, όπως 16.000 φορές το δευτερόλεπτο για ήχο 16KHz. Μπορεί να γράψει αυτά τα δεδομένα σε έναν προ-κατανεμημένο buffer μνήμης, και όταν αυτός γεμίσει, να τον κάνει διαθέσιμο στον κώδικά σας για επεξεργασία. Η χρήση αυτής της μνήμης μπορεί να καθυστερήσει την καταγραφή ήχου, αλλά μπορείτε να ρυθμίσετε πολλαπλούς buffers. Ο DMAC γράφει στον buffer 1, και όταν αυτός γεμίσει, ειδοποιεί τον κώδικά σας να επεξεργαστεί τον buffer 1, ενώ ο DMAC γράφει στον buffer 2. Όταν ο buffer 2 γεμίσει, ειδοποιεί τον κώδικά σας και επιστρέφει στη γραφή στον buffer 1. Με αυτόν τον τρόπο, όσο επεξεργάζεστε κάθε buffer σε λιγότερο χρόνο από όσο χρειάζεται για να γεμίσει ένας, δεν θα χάσετε δεδομένα. diff --git a/translations/el/6-consumer/lessons/2-language-understanding/README.md b/translations/el/6-consumer/lessons/2-language-understanding/README.md index e6a23a48a..1d855e2ea 100644 --- a/translations/el/6-consumer/lessons/2-language-understanding/README.md +++ b/translations/el/6-consumer/lessons/2-language-understanding/README.md @@ -1,6 +1,6 @@ # Κατανόηση γλώσσας -![Μια επισκόπηση του μαθήματος σε μορφή σκίτσου](../../../../../translated_images/el/lesson-22.6148ea28500d9e00c396aaa2649935fb6641362c8f03d8e5e90a676977ab01dd.jpg) +![Μια επισκόπηση του μαθήματος σε μορφή σκίτσου](../../../../../translated_images/el/lesson-22.6148ea28500d9e00.webp) > Σκίτσο από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση. @@ -46,7 +46,7 @@ ## Δημιουργία μοντέλου κατανόησης γλώσσας -![Το λογότυπο του LUIS](../../../../../translated_images/el/luis-logo.5cb4f3e88c020ee6df4f614e8831f4a4b6809a7247bf52085fb48d629ef9be52.png) +![Το λογότυπο του LUIS](../../../../../translated_images/el/luis-logo.5cb4f3e88c020ee6.webp) Μπορείτε να δημιουργήσετε μοντέλα κατανόησης γλώσσας χρησιμοποιώντας το LUIS, μια υπηρεσία κατανόησης γλώσσας της Microsoft που αποτελεί μέρος των Cognitive Services. diff --git a/translations/el/6-consumer/lessons/3-spoken-feedback/README.md b/translations/el/6-consumer/lessons/3-spoken-feedback/README.md index f2b69e81a..bd82c1ffc 100644 --- a/translations/el/6-consumer/lessons/3-spoken-feedback/README.md +++ b/translations/el/6-consumer/lessons/3-spoken-feedback/README.md @@ -1,6 +1,6 @@ # Ρύθμιση χρονομέτρου και παροχή φωνητικής ανατροφοδότησης -![Μια σκιαγραφική επισκόπηση αυτού του μαθήματος](../../../../../translated_images/el/lesson-23.f38483e1d4df4828990d3f02d60e46c978b075d384ae7cb4f7bab738e107c850.jpg) +![Μια σκιαγραφική επισκόπηση αυτού του μαθήματος](../../../../../translated_images/el/lesson-23.f38483e1d4df4828.webp) > Σκιαγραφία από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση. diff --git a/translations/el/6-consumer/lessons/4-multiple-language-support/README.md b/translations/el/6-consumer/lessons/4-multiple-language-support/README.md index be6ffccf9..9dc6cea04 100644 --- a/translations/el/6-consumer/lessons/4-multiple-language-support/README.md +++ b/translations/el/6-consumer/lessons/4-multiple-language-support/README.md @@ -1,6 +1,6 @@ # Υποστήριξη πολλαπλών γλωσσών -![Μια επισκόπηση του μαθήματος σε μορφή σκίτσου](../../../../../translated_images/el/lesson-24.4246968ed058510ab275052e87ef9aa89c7b2f938915d103c605c04dc6cd5bb7.jpg) +![Μια επισκόπηση του μαθήματος σε μορφή σκίτσου](../../../../../translated_images/el/lesson-24.4246968ed058510a.webp) > Σκίτσο από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση. @@ -74,7 +74,7 @@ ### Υπηρεσία ομιλίας Cognitive Services -![Το λογότυπο της υπηρεσίας ομιλίας](../../../../../translated_images/el/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![Το λογότυπο της υπηρεσίας ομιλίας](../../../../../translated_images/el/azure-speech-logo.a1f08c4befb0159f.webp) Η υπηρεσία ομιλίας που χρησιμοποιήσατε στα προηγούμενα μαθήματα διαθέτει δυνατότητες μετάφρασης για την αναγνώριση ομιλίας. Όταν αναγνωρίζετε ομιλία, μπορείτε να ζητήσετε όχι μόνο το κείμενο της ομιλίας στην ίδια γλώσσα, αλλά και σε άλλες γλώσσες. @@ -82,7 +82,7 @@ ### Υπηρεσία μεταφραστή Cognitive Services -![Το λογότυπο της υπηρεσίας μεταφραστή](../../../../../translated_images/el/azure-translator-logo.c6ed3a4a433edfd2f11577eca105412c50b8396b194cbbd730723dd1d0793bcd.png) +![Το λογότυπο της υπηρεσίας μεταφραστή](../../../../../translated_images/el/azure-translator-logo.c6ed3a4a433edfd2.webp) Η υπηρεσία Translator είναι μια ειδική υπηρεσία μετάφρασης που μπορεί να μεταφράσει κείμενο από μία γλώσσα σε μία ή περισσότερες γλώσσες-στόχους. Εκτός από τη μετάφραση, υποστηρίζει ένα ευρύ φάσμα επιπλέον λειτουργιών, όπως η απόκρυψη βωμολοχιών. Σας επιτρέπει επίσης να παρέχετε μια συγκεκριμένη μετάφραση για μια συγκεκριμένη λέξη ή πρόταση, να δουλεύετε με όρους που δεν θέλετε να μεταφραστούν ή να έχετε μια συγκεκριμένη γνωστή μετάφραση. diff --git a/translations/el/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md b/translations/el/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md index fd047a112..5de0d4aa1 100644 --- a/translations/el/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md +++ b/translations/el/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md @@ -25,7 +25,7 @@ > > Για παράδειγμα, αν εκπαιδεύσετε το LUIS στα Αγγλικά αλλά θέλετε να χρησιμοποιήσετε τα Γαλλικά ως γλώσσα χρήστη, μπορείτε να μεταφράσετε προτάσεις όπως "set a 2 minute and 27 second timer" από τα Αγγλικά στα Γαλλικά χρησιμοποιώντας το Bing Translate και στη συνέχεια να χρησιμοποιήσετε το κουμπί **Listen translation** για να μιλήσετε τη μετάφραση στο μικρόφωνό σας. > - > ![Το κουμπί listen translation στο Bing Translate](../../../../../translated_images/el/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Το κουμπί listen translation στο Bing Translate](../../../../../translated_images/el/bing-translate.348aa796d6efe2a9.webp) 1. Προσθέστε το κλειδί API του μεταφραστή κάτω από το `speech_api_key`: diff --git a/translations/el/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md b/translations/el/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md index fb62e701f..94b3a81c4 100644 --- a/translations/el/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md +++ b/translations/el/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md @@ -37,7 +37,7 @@ > > Για παράδειγμα, αν εκπαιδεύσετε το LUIS στα Αγγλικά, αλλά θέλετε να χρησιμοποιήσετε τα Γαλλικά ως γλώσσα χρήστη, μπορείτε να μεταφράσετε προτάσεις όπως "set a 2 minute and 27 second timer" από τα Αγγλικά στα Γαλλικά χρησιμοποιώντας το Bing Translate και στη συνέχεια να χρησιμοποιήσετε το κουμπί **Listen translation** για να πείτε τη μετάφραση στο μικρόφωνό σας. > - > ![Το κουμπί ακρόασης μετάφρασης στο Bing Translate](../../../../../translated_images/el/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Το κουμπί ακρόασης μετάφρασης στο Bing Translate](../../../../../translated_images/el/bing-translate.348aa796d6efe2a9.webp) 1. Αντικαταστήστε τις δηλώσεις `recognizer_config` και `recognizer` με τις εξής: diff --git a/translations/el/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md b/translations/el/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md index ca3efda5b..eba86b174 100644 --- a/translations/el/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md +++ b/translations/el/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md @@ -105,7 +105,7 @@ > > Για παράδειγμα, αν εκπαιδεύσετε το LUIS στα Αγγλικά, αλλά θέλετε να χρησιμοποιήσετε τα Γαλλικά ως γλώσσα χρήστη, μπορείτε να μεταφράσετε προτάσεις όπως "set a 2 minute and 27 second timer" από τα Αγγλικά στα Γαλλικά χρησιμοποιώντας το Bing Translate και στη συνέχεια να χρησιμοποιήσετε το κουμπί **Listen translation** για να εκφωνήσετε τη μετάφραση στο μικρόφωνό σας. > - > ![Το κουμπί listen translation στο Bing translate](../../../../../translated_images/el/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Το κουμπί listen translation στο Bing translate](../../../../../translated_images/el/bing-translate.348aa796d6efe2a9.webp) 1. Προσθέστε το API key και την τοποθεσία του μεταφραστή κάτω από το `SPEECH_LOCATION`: diff --git a/translations/el/README.md b/translations/el/README.md index 37719846b..a3acc2520 100644 --- a/translations/el/README.md +++ b/translations/el/README.md @@ -8,51 +8,61 @@ [![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/) -### Ελάτε στην Κοινότητα Azure AI Foundry +### Εγγραφείτε στην Κοινότητα Azure AI Foundry -Αν κολλήσετε ή έχετε ερωτήσεις σχετικά με την κατασκευή εφαρμογών AI, ενωθείτε με άλλους μαθητές και έμπειρους προγραμματιστές σε συζητήσεις σχετικά με το MCP. Είναι μια υποστηρικτική κοινότητα όπου οι ερωτήσεις είναι ευπρόσδεκτες και η γνώση μοιράζεται ελεύθερα. +Αν κολλήσετε ή έχετε οποιεσδήποτε ερωτήσεις σχετικά με την κατασκευή εφαρμογών AI. Εγγραφείτε μαζί με άλλους μαθητές και έμπειρους προγραμματιστές σε συζητήσεις για το MCP. Είναι μια υποστηρικτική κοινότητα όπου οι ερωτήσεις είναι ευπρόσδεκτες και η γνώση μοιράζεται ελεύθερα. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Αν έχετε σχόλια προϊόντος ή σφάλματα κατά την κατασκευή, επισκεφτείτε: +Αν έχετε σχόλια για το προϊόν ή σφάλματα κατά την κατασκευή, επισκεφθείτε: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -Ακολουθήστε αυτά τα βήματα για να ξεκινήσετε να χρησιμοποιείτε αυτούς τους πόρους: -1. **Κάντε fork το Αποθετήριο**: Πατήστε [![GitHub forks](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) +Ακολουθήστε αυτά τα βήματα για να ξεκινήσετε με αυτούς τους πόρους: +1. **Fork το Αποθετήριο**: Κάντε κλικ [![GitHub forks](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) 2. **Κλωνοποιήστε το Αποθετήριο**: `git clone https://github.com/microsoft/IoT-For-Beginners.git` 3. [**Εγγραφείτε στο Microsoft Foundry Discord και γνωρίστε ειδικούς και άλλους προγραμματιστές**](https://discord.com/invite/ByRwuEEgH4) -### 🌐 Υποστήριξη Πολλών Γλωσσών +### 🌐 Υποστήριξη Πολυγλωσσικότητας -#### Υποστηρίζεται μέσω της GitHub Action (Αυτοματοποιημένα & Πάντα Ενημερωμένα) +#### Υποστηρίζεται μέσω GitHub Action (Αυτοματοποιημένο & Πάντα Ενημερωμένο) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](./README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](./README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) -> **Προτιμάτε να Κλωνοποιήσετε Τοπικά;** - -> Αυτό το αποθετήριο περιλαμβάνει περισσότερες από 50 μεταφράσεις γλωσσών που αυξάνουν σημαντικά το μέγεθος λήψης. Για να κλωνοποιήσετε χωρίς τις μεταφράσεις, χρησιμοποιήστε sparse checkout: +> **Προτιμάτε να κάνετε το κλωνοποίηση τοπικά;** +> +> Αυτό το αποθετήριο περιλαμβάνει μεταφράσεις σε πάνω από 50 γλώσσες, που αυξάνει σημαντικά το μέγεθος λήψης. Για να κλωνοποιήσετε χωρίς τις μεταφράσεις, χρησιμοποιήστε το sparse checkout: +> +> **Bash / macOS / Linux:** > ```bash > git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git > cd IoT-For-Beginners > git sparse-checkout set --no-cone '/*' '!translations' '!translated_images' > ``` -> Αυτό σας δίνει όλα όσα χρειάζεστε για να ολοκληρώσετε το μάθημα με πολύ ταχύτερη λήψη. +> +> **CMD (Windows):** +> ```cmd +> git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git +> cd IoT-For-Beginners +> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" +> ``` +> +> Αυτό σας δίνει όλα όσα χρειάζεστε για να ολοκληρώσετε το μάθημα με πολύ πιο γρήγορη λήψη. -# IoT για Αρχάριους - Ένα Αναλυτικό Πρόγραμμα Σπουδών +# IoT για Αρχάριους - Ένα Αναλυτικό Πρόγραμμα -Οι Azure Cloud Advocates στη Microsoft προσφέρουν με χαρά ένα πρόγραμμα 12 εβδομάδων, 24 μαθημάτων, που αφορά τα βασικά του Internet of Things. Κάθε μάθημα περιλαμβάνει πριν και μετά το μάθημα κουίζ, γραπτές οδηγίες για την ολοκλήρωση του μαθήματος, μια λύση, μια εργασία και άλλα. Η μεθοδολογία μας βασισμένη σε έργα επιτρέπει να μαθαίνετε ενώ κατασκευάζετε, ένας δοκιμασμένος τρόπος για να "κολλήσουν" νέες δεξιότητες. +Οι Azure Cloud Advocates της Microsoft είναι στην ευχάριστη θέση να προσφέρουν ένα 12-εβδομαδιαίο, 24-μαθημάτων πρόγραμμα, σχετικά με τα βασικά του IoT. Κάθε μάθημα περιλαμβάνει quiz πριν και μετά το μάθημα, γραπτές οδηγίες για την ολοκλήρωση του μαθήματος, μια λύση, μια εργασία και άλλα. Η μαθησιακή μας προσέγγιση βασισμένη σε έργα σας επιτρέπει να μαθαίνετε ενώ χτίζετε, ένας αποδεδειγμένος τρόπος για να "καθίσουν" οι νέες δεξιότητες. -Τα έργα καλύπτουν το ταξίδι των τροφίμων από το χωράφι στο τραπέζι. Αυτό περιλαμβάνει τη γεωργία, τη διακίνηση, την παραγωγή, το εμπόριο και τον καταναλωτή - όλα δημοφιλείς τομείς της βιομηχανίας για συσκευές IoT. +Τα έργα καλύπτουν την πορεία της τροφής από το χωράφι μέχρι το τραπέζι. Αυτό περιλαμβάνει τη γεωργία, τη μεταφορά, την παραγωγή, το λιανικό εμπόριο και τους καταναλωτές - όλα δημοφιλείς κλάδοι για συσκευές IoT. -![Ένας οδικός χάρτης για το μάθημα που δείχνει 24 μαθήματα που καλύπτουν εισαγωγή, γεωργία, μεταφορές, επεξεργασία, εμπόριο και μαγείρεμα](../../translated_images/el/Roadmap.bb1dec285dda0eda.webp) +![Ένας οδικός χάρτης για το μάθημα που δείχνει 24 μαθήματα καλύπτοντας εισαγωγή, γεωργία, μεταφορές, επεξεργασία, λιανικό εμπόριο και μαγείρεμα](../../translated_images/el/Roadmap.bb1dec285dda0eda.webp) -> Σχεδιασμένο από [Nitya Narasimhan](https://github.com/nitya). Πατήστε την εικόνα για μεγαλύτερη έκδοση. +> Σχεδιοκείμενο από την [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση. -**Ευχαριστούμε θερμά τους συγγραφείς μας [Jen Fox](https://github.com/jenfoxbot), [Jen Looper](https://github.com/jlooper), [Jim Bennett](https://github.com/jimbobbennett), και τον σχεδιαστή των σημειώσεων [Nitya Narasimhan](https://github.com/nitya).** +**Ευχαριστούμε θερμά τους συγγραφείς μας [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), [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/).** @@ -62,99 +72,99 @@ **Gif από** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Πατήστε την εικόνα παραπάνω για ένα βίντεο σχετικά με το έργο! +> 🎥 Κάντε κλικ στην εικόνα παραπάνω για ένα βίντεο σχετικά με το έργο! -> **Καθηγητές**, έχουμε [συμπεριλάβει κάποιες προτάσεις](for-teachers.md) για το πώς να χρησιμοποιήσετε αυτό το πρόγραμμα. Αν θέλετε να δημιουργήσετε τα δικά σας μαθήματα, έχουμε επίσης συμπεριλάβει ένα [πρότυπο μαθήματος](lesson-template/README.md). +> **Καθηγητές**, έχουμε [συμπεριλάβει ορισμένες προτάσεις](for-teachers.md) για το πώς να χρησιμοποιήσετε αυτό το πρόγραμμα. Αν θέλετε να δημιουργήσετε τα δικά σας μαθήματα, έχουμε επίσης συμπεριλάβει ένα [πρότυπο μαθήματος](lesson-template/README.md). -> **[Φοιτητές](https://aka.ms/student-page)**, για να χρησιμοποιήσετε αυτό το πρόγραμμα μόνοι σας, κάντε fork ολόκληρου του αποθετηρίου και ολοκληρώστε τις ασκήσεις μόνοι σας, ξεκινώντας με κουίζ πριν το μάθημα, στη συνέχεια διαβάζοντας τη διάλεξη και ολοκληρώνοντας τις υπόλοιπες δραστηριότητες. Προσπαθήστε να δημιουργήσετε τα έργα κατανοώντας τα μαθήματα αντί να αντιγράφετε τον κώδικα της λύσης· ωστόσο ο κώδικας αυτός είναι διαθέσιμος στους φακέλους /solutions σε κάθε μάθημα προσανατολισμένο σε έργο. Μια άλλη ιδέα είναι να δημιουργήσετε μια ομάδα μελέτης με φίλους και να περάσετε το περιεχόμενο μαζί. Για περαιτέρω μελέτη, προτείνουμε το [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn). +> **[Μαθητές](https://aka.ms/student-page)**, για να χρησιμοποιήσετε αυτό το πρόγραμμα μόνοι σας, κάντε fork ολόκληρου του αποθετηρίου και ολοκληρώστε τις ασκήσεις μόνοι σας, ξεκινώντας με quiz πριν τη διάλεξη, μετά διαβάζοντας τη διάλεξη και ολοκληρώνοντας τις υπόλοιπες δραστηριότητες. Προσπαθήστε να δημιουργήσετε τα έργα κατανοώντας τα μαθήματα αντί να αντιγράφετε τον κώδικα λύσης· ωστόσο ο κώδικας είναι διαθέσιμος στους φακέλους /solutions σε κάθε μάθημα προσανατολισμένο σε έργο. Μια άλλη ιδέα είναι να σχηματίσετε ομάδα μελέτης με φίλους και να περάσετε το υλικό μαζί. Για περαιτέρω μελέτη, προτείνουμε το [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn). -Για μια επισκόπηση του μαθήματος με βίντεο, δείτε αυτό το βίντεο: +Για μια βιντεοπαρουσίαση αυτού του μαθήματος, δείτε αυτό το βίντεο: [![Promo video](https://img.youtube.com/vi/bccEMm8gRuc/0.jpg)](https://youtube.com/watch?v=bccEMm8gRuc "Promo video") -> 🎥 Πατήστε την εικόνα παραπάνω για ένα βίντεο σχετικά με το έργο! +> 🎥 Κάντε κλικ στην εικόνα παραπάνω για ένα βίντεο σχετικά με το έργο! ## Παιδαγωγική -Έχουμε επιλέξει δύο παιδαγωγικές αρχές κατά τη δημιουργία αυτού του προγράμματος: να είναι βασισμένο σε έργα και να περιλαμβάνει συχνά κουίζ. Μέχρι το τέλος αυτής της σειράς, οι μαθητές θα έχουν δημιουργήσει ένα σύστημα παρακολούθησης και ποτίσματος φυτών, έναν εντοπιστή οχημάτων, μια έξυπνη εγκατάσταση εργοστασίου για τον έλεγχο τροφίμων και έναν χρονόμετρο μαγειρέματος με φωνητικό έλεγχο, και θα έχουν μάθει τα βασικά του Internet of Things περιλαμβάνοντας πώς να γράφουν κώδικα συσκευής, να συνδέονται με το νέφος, να αναλύουν τηλεμετρία και να τρέχουν AI στο άκρο. +Έχουμε επιλέξει δύο παιδαγωγικές αρχές κατά τη δημιουργία αυτού του προγράμματος: να εξασφαλίσουμε ότι βασίζεται σε έργα και ότι περιλαμβάνει συχνά κουίζ. Μέχρι το τέλος αυτής της σειράς, οι μαθητές θα έχουν δημιουργήσει ένα σύστημα παρακολούθησης και ποτίσματος φυτών, ένα σύστημα παρακολούθησης οχημάτων, μια έξυπνη εργοστασιακή εγκατάσταση για την παρακολούθηση και τον έλεγχο τροφίμων, και ένα χρονοδιακόπτη μαγειρέματος με φωνητικό έλεγχο, και θα έχουν μάθει τα βασικά του Internet of Things, συμπεριλαμβανομένων του πώς να γράφουν κώδικα συσκευών, να συνδέονται με το cloud, να αναλύουν τηλεμετρία και να τρέχουν AI στην άκρη. -Εξασφαλίζοντας ότι το περιεχόμενο συνδέεται με έργα, η διαδικασία γίνεται πιο ελκυστική για τους μαθητές και ενισχύεται η διατήρηση των εννοιών. +Εξασφαλίζοντας ότι το περιεχόμενο ευθυγραμμίζεται με τα έργα, η διαδικασία γίνεται πιο ενδιαφέρουσα για τους μαθητές και η διατήρηση των εννοιών θα ενισχυθεί. -Επιπλέον, ένα κουίζ χαμηλού ρίσκου πριν τη τάξη θέτει την πρόθεση του μαθητή προς τη μάθηση ενός θέματος, ενώ ένα δεύτερο κουίζ μετά τη τάξη εξασφαλίζει περαιτέρω διατήρηση. Αυτό το πρόγραμμα σχεδιάστηκε να είναι ευέλικτο και διασκεδαστικό και μπορεί να ληφθεί ολόκληρο ή μερικώς. Τα έργα ξεκινούν μικρά και γίνονται σταδιακά πιο πολύπλοκα μέχρι το τέλος των 12 εβδομάδων. +Επιπλέον, ένα κουίζ χαμηλού ρίσκου πριν από το μάθημα θέτει την πρόθεση του μαθητή για μάθηση ενός θέματος, ενώ ένα δεύτερο κουίζ μετά το μάθημα εξασφαλίζει περαιτέρω διατήρηση. Αυτό το πρόγραμμα σχεδιάστηκε για να είναι ευέλικτο και διασκεδαστικό και μπορεί να παρακολουθηθεί ολόκληρο ή κατά μέρη. Τα έργα ξεκινούν μικρά και γίνονται ολοένα και πιο σύνθετα μέχρι το τέλος του 12-εβδομαδιαίου κύκλου. -Κάθε έργο βασίζεται σε συσκευές πραγματικού κόσμου διαθέσιμες σε μαθητές και χομπίστες. Κάθε έργο εξετάζει τον συγκεκριμένο τομέα, παρέχοντας σχετική θεωρητική γνώση. Για να είστε επιτυχημένος προγραμματιστής, βοηθά το να κατανοήσετε τον τομέα όπου λύνετε προβλήματα, και το παροχή αυτής της θεωρητικής γνώσης επιτρέπει στους μαθητές να σκέφτονται τις λύσεις IoT και τις μαθησιακές τους εμπειρίες στο πλαίσιο του είδους προβλήματος που μπορεί να τους ζητηθεί να λύσουν ως προγραμματιστές IoT. Οι μαθητές μαθαίνουν το "γιατί" των λύσεων που δημιουργούν και αποκτούν εκτίμηση για τον τελικό χρήστη. +Κάθε έργο βασίζεται σε πραγματικό υλικό που είναι διαθέσιμο σε μαθητές και χομπίστες. Κάθε έργο εξετάζει τον συγκεκριμένο τομέα του έργου, παρέχοντας σχετικές γνώσεις υπόβαθρου. Για να είναι κάποιος επιτυχημένος προγραμματιστής, βοηθάει να κατανοεί τον τομέα στον οποίο επιλύει προβλήματα, προσφέροντας αυτές τις γνώσεις παρασκηνίου επιτρέπει στους μαθητές να σκεφτούν τις λύσεις IoT και τις γνώσεις τους στο πλαίσιο του είδους του προβλήματος του πραγματικού κόσμου που μπορεί να κληθούν να λύσουν ως προγραμματιστές IoT. Οι μαθητές μαθαίνουν το "γιατί" των λύσεων που κατασκευάζουν και αποκτούν εκτίμηση για τον τελικό χρήστη. -## Υλικό +## Υλικό (Hardware) +Έχουμε δύο επιλογές υλικού IoT για χρήση στα έργα ανάλογα με τις προσωπικές προτιμήσεις, τις γνώσεις ή προτιμήσεις στη γλώσσα προγραμματισμού, τους στόχους μάθησης και τη διαθεσιμότητα. Έχουμε επίσης παράσχει μια έκδοση «εικονικού υλικού» για όσους δεν έχουν πρόσβαση σε υλικό, ή θέλουν να μάθουν περισσότερα πριν δεσμευτούν σε μια αγορά. Μπορείτε να διαβάσετε περισσότερα και να βρείτε μια «λίστα αγορών» στη [σελίδα υλικού](./hardware.md), μαζί με συνδέσμους για την αγορά ολοκληρωμένων κιτ από τους φίλους μας στο Seeed Studio. -Έχουμε δύο επιλογές υλικού IoT για χρήση στα έργα ανάλογα με τις προσωπικές προτιμήσεις, τις γνώσεις γλώσσας προγραμματισμού, τους μαθησιακούς στόχους και τη διαθεσιμότητα. Παρέχουμε επίσης μια 'εικονική έκδοση' υλικού για όσους δεν έχουν πρόσβαση σε υλικό ή θέλουν να μάθουν περισσότερα πριν δεσμευτούν σε αγορά. Μπορείτε να διαβάσετε περισσότερα και να βρείτε μια 'λίστα αγορών' στη [σελίδα υλικού](./hardware.md), συμπεριλαμβανομένων συνδέσμων για την αγορά πλήρων κιτ από τους φίλους μας στο Seeed Studio. -> 💁 Βρείτε τον [Κώδικα Συμπεριφοράς μας](CODE_OF_CONDUCT.md), τις οδηγίες [Συμβολής](CONTRIBUTING.md) και [Μετάφρασης](TRANSLATIONS.md). Καλωσορίζουμε τα εποικοδομητικά σας σχόλια! +> 💁 Βρείτε τις [Κανόνες Συμπεριφοράς](CODE_OF_CONDUCT.md), τις οδηγίες [Συμμετοχής](CONTRIBUTING.md) και [Μετάφρασης](TRANSLATIONS.md). Καλωσορίζουμε την εποικοδομητική σας ανατροφοδότηση! > -> 🔧 Αν αντιμετωπίζετε προβλήματα, ελέγξτε τον [Οδηγό Επίλυσης Προβλημάτων](TROUBLESHOOTING.md) για λύσεις σε κοινά ζητήματα. +> 🔧 Αν αντιμετωπίζετε προβλήματα, δείτε τον [Οδηγό Επίλυσης Προβλημάτων](TROUBLESHOOTING.md) για λύσεις σε κοινά ζητήματα. ## Κάθε μάθημα περιλαμβάνει: -- σημειώσεις σκετς +- σημείωση σχεδίασης - προαιρετικό συμπληρωματικό βίντεο -- προ-μάθημα quiz προθέρμανσης +- προμαθηματικό κουίζ προθέρμανσης - γραπτό μάθημα -- για μαθήματα βασισμένα σε έργα, οδηγούς βήμα προς βήμα για το πώς να κατασκευάσετε το έργο -- ελέγχους γνώσης +- για μαθήματα με βάση έργα, οδηγούς βήμα προς βήμα για το πώς να κατασκευάσετε το έργο +- ελέγχους γνώσεων - μια πρόκληση - συμπληρωματική ανάγνωση - ανάθεση -- [quiz μετά το μάθημα](https://ff-quizzes.netlify.app/en/) +- [μετα-μαθηματικό κουίζ](https://ff-quizzes.netlify.app/en/) -> **Σημείωση σχετικά με τα quizzes**: Όλα τα quizzes περιέχονται στον φάκελο quiz-app, για συνολικά 48 quizzes των τριών ερωτήσεων το καθένα. Συνδέονται μέσα από τα μαθήματα αλλά η εφαρμογή quiz μπορεί να τρέξει τοπικά ή να αναπτυχθεί στο Azure· ακολουθήστε τις οδηγίες στον φάκελο `quiz-app`. Βρίσκονται σταδιακά υπό μετάφραση. +> **Μια σημείωση για τα κουίζ**: Όλα τα κουίζ βρίσκονται στο φάκελο quiz-app, συνολικά 48 κουίζ με τρεις ερωτήσεις το καθένα. Σύνδεσμοι υπάρχουν μέσα στα μαθήματα, αλλά η εφαρμογή κουίζ μπορεί να τρέξει τοπικά ή να αναπτυχθεί στο Azure· ακολουθήστε τις οδηγίες στον φάκελο `quiz-app`. Σταδιακά γίνεται η τοπικοποίησή τους. ## Μαθήματα -| | Όνομα Έργου | Διδασκόμενες Έννοιες | Μαθησιακοί Στόχοι | Συνδεδεμένο Μάθημα | -| :---: | :------------------------------------: | :--------------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------: | -| 01 | [Εισαγωγή](./1-getting-started/README.md) | Εισαγωγή στο IoT | Μάθετε τις βασικές αρχές του IoT και τα βασικά δομικά στοιχεία των λύσεων IoT όπως αισθητήρες και υπηρεσίες cloud ενώ ρυθμίζετε την πρώτη σας συσκευή IoT | [Εισαγωγή στο IoT](./1-getting-started/lessons/1-introduction-to-iot/README.md) | -| 02 | [Εισαγωγή](./1-getting-started/README.md) | Βαθύτερη ματιά στο IoT | Μάθετε περισσότερα για τα στοιχεία ενός συστήματος IoT, καθώς και για μικροελεγκτές και υπολογιστές μιας πλακέτας | [Βαθύτερη ματιά στο IoT](./1-getting-started/lessons/2-deeper-dive/README.md) | -| 03 | [Εισαγωγή](./1-getting-started/README.md) | Αλληλεπίδραση με τον φυσικό κόσμο με αισθητήρες και ενεργοποιητές | Μάθετε για αισθητήρες για τη συλλογή δεδομένων από τον φυσικό κόσμο, και ενεργοποιητές για την αποστολή ανατροφοδότησης, ενώ κατασκευάζετε ένα φωτάκι νυκτός | [Αλληλεπίδραση με τον φυσικό κόσμο με αισθητήρες και ενεργοποιητές](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | -| 04 | [Εισαγωγή](./1-getting-started/README.md) | Συνδέστε τη συσκευή σας στο Διαδίκτυο | Μάθετε πώς να συνδέετε μια συσκευή IoT στο Διαδίκτυο για να στέλνετε και να λαμβάνετε μηνύματα συνδέοντας το φωτάκι σας με έναν MQTT broker | [Συνδέστε τη συσκευή σας στο Διαδίκτυο](./1-getting-started/lessons/4-connect-internet/README.md) | -| 05 | [Φάρμα](./2-farm/README.md) | Πρόβλεψη ανάπτυξης φυτού | Μάθετε πώς να προβλέπετε την ανάπτυξη φυτών χρησιμοποιώντας δεδομένα θερμοκρασίας που καταγράφονται από μια συσκευή IoT | [Πρόβλεψη ανάπτυξης φυτού](./2-farm/lessons/1-predict-plant-growth/README.md) | +| | Όνομα Έργου | Διδακτικές Έννοιες | Εκπαιδευτικοί Στόχοι | Συνδεδεμένο Μάθημα | +| :---: | :------------------------------------: | :---------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------: | +| 01 | [Εισαγωγή](./1-getting-started/README.md) | Εισαγωγή στο IoT | Μάθετε τις βασικές αρχές του IoT και τα βασικά δομικά στοιχεία λύσεων IoT όπως αισθητήρες και υπηρεσίες cloud κατά τη ρύθμιση της πρώτης σας συσκευής IoT | [Εισαγωγή στο IoT](./1-getting-started/lessons/1-introduction-to-iot/README.md) | +| 02 | [Εισαγωγή](./1-getting-started/README.md) | Εκτενέστερη εισαγωγή στο IoT | Μάθετε περισσότερα για τα εξαρτήματα ενός συστήματος IoT, καθώς και για μικροελεγκτές και υπολογιστές μιας πλακέτας | [Εκτενέστερη εισαγωγή στο IoT](./1-getting-started/lessons/2-deeper-dive/README.md) | +| 03 | [Εισαγωγή](./1-getting-started/README.md) | Αλληλεπίδραση με τον φυσικό κόσμο μέσω αισθητήρων και ενεργοποιητών | Μάθετε για τους αισθητήρες για συλλογή δεδομένων από τον φυσικό κόσμο και τους ενεργοποιητές για αποστολή ανατροφοδότησης, κατασκευάζοντας ένα νυχτερινό φωτιστικό | [Αλληλεπίδραση με τον φυσικό κόσμο μέσω αισθητήρων και ενεργοποιητών](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | +| 04 | [Εισαγωγή](./1-getting-started/README.md) | Συνδέστε τη συσκευή σας στο Διαδίκτυο | Μάθετε πώς να συνδέσετε μια συσκευή IoT στο Διαδίκτυο για αποστολή και λήψη μηνυμάτων συνδέοντας το νυχτερινό φωτιστικό σας σε έναν διακομιστή MQTT | [Συνδέστε τη συσκευή σας στο Διαδίκτυο](./1-getting-started/lessons/4-connect-internet/README.md) | +| 05 | [Φάρμα](./2-farm/README.md) | Πρόβλεψη ανάπτυξης φυτού | Μάθετε πώς να προβλέπετε την ανάπτυξη φυτών χρησιμοποιώντας δεδομένα θερμοκρασίας που συλλέγονται από μια συσκευή IoT | [Πρόβλεψη ανάπτυξης φυτού](./2-farm/lessons/1-predict-plant-growth/README.md) | | 06 | [Φάρμα](./2-farm/README.md) | Ανίχνευση υγρασίας εδάφους | Μάθετε πώς να ανιχνεύετε την υγρασία του εδάφους και να βαθμονομήσετε έναν αισθητήρα υγρασίας εδάφους | [Ανίχνευση υγρασίας εδάφους](./2-farm/lessons/2-detect-soil-moisture/README.md) | -| 07 | [Φάρμα](./2-farm/README.md) | Αυτόματο πότισμα φυτών | Μάθετε πώς να αυτοματοποιείτε και να χρονίζετε το πότισμα με τη χρήση ενός ρελέ και MQTT | [Αυτόματο πότισμα φυτών](./2-farm/lessons/3-automated-plant-watering/README.md) | -| 08 | [Φάρμα](./2-farm/README.md) | Μεταφέρετε το φυτό σας στο cloud | Μάθετε για το cloud και τις υπηρεσίες IoT που φιλοξενούνται στο cloud και πώς να συνδέσετε το φυτό σας σε μία από αυτές αντί για δημόσιο MQTT broker | [Μεταφέρετε το φυτό σας στο cloud](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | -| 09 | [Φάρμα](./2-farm/README.md) | Μεταφέρετε τη λογική εφαρμογής σας στο cloud | Μάθετε πώς μπορείτε να γράψετε τη λογική της εφαρμογής στο cloud που ανταποκρίνεται σε μηνύματα IoT | [Μεταφέρετε τη λογική εφαρμογής σας στο cloud](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | -| 10 | [Φάρμα](./2-farm/README.md) | Διατηρήστε το φυτό σας ασφαλές | Μάθετε για την ασφάλεια με το IoT και πώς να κρατήσετε το φυτό σας ασφαλές με κλειδιά και πιστοποιητικά | [Διατηρήστε το φυτό σας ασφαλές](./2-farm/lessons/6-keep-your-plant-secure/README.md) | -| 11 | [Μεταφορές](./3-transport/README.md) | Παρακολούθηση θέσης | Μάθετε για την παρακολούθηση θέσης GPS για συσκευές IoT | [Παρακολούθηση θέσης](./3-transport/lessons/1-location-tracking/README.md) | -| 12 | [Μεταφορές](./3-transport/README.md) | Αποθήκευση δεδομένων θέσης | Μάθετε πώς να αποθηκεύετε δεδομένα IoT για να τα οπτικοποιήσετε ή να τα αναλύσετε αργότερα | [Αποθήκευση δεδομένων θέσης](./3-transport/lessons/2-store-location-data/README.md) | -| 13 | [Μεταφορές](./3-transport/README.md) | Οπτικοποίηση δεδομένων θέσης | Μάθετε για την οπτικοποίηση δεδομένων θέσης σε χάρτη, και πώς οι χάρτες αναπαριστούν τον πραγματικό τρισδιάστατο κόσμο σε δύο διαστάσεις | [Οπτικοποίηση δεδομένων θέσης](./3-transport/lessons/3-visualize-location-data/README.md) | -| 14 | [Μεταφορές](./3-transport/README.md) | Γεωπεριοχές | Μάθετε για τις γεωπεριοχές, και πώς μπορούν να χρησιμοποιηθούν για να ειδοποιούν όταν οχήματα στην εφοδιαστική αλυσίδα πλησιάζουν τον προορισμό τους | [Γεωπεριοχές](./3-transport/lessons/4-geofences/README.md) | -| 15 | [Κατασκευή](./4-manufacturing/README.md) | Εκπαίδευση ανιχνευτή ποιότητας φρούτου | Μάθετε για την εκπαίδευση ενός ταξινομητή εικόνας στο cloud για την ανίχνευση ποιότητας φρούτων | [Εκπαίδευση ανιχνευτή ποιότητας φρούτου](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | -| 16 | [Κατασκευή](./4-manufacturing/README.md) | Έλεγχος ποιότητας φρούτων από συσκευή IoT | Μάθετε για τη χρήση του ανιχνευτή ποιότητας φρούτων από μια συσκευή IoT | [Έλεγχος ποιότητας φρούτων από συσκευή IoT](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | -| 17 | [Κατασκευή](./4-manufacturing/README.md) | Εκτέλεση ανιχνευτή φρούτων στο edge | Μάθετε για την εκτέλεση του ανιχνευτή φρούτων σε μια συσκευή IoT στο edge | [Εκτέλεση ανιχνευτή φρούτων στο edge](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | -| 18 | [Κατασκευή](./4-manufacturing/README.md) | Ενεργοποίηση ανίχνευσης ποιότητας φρούτων από αισθητήρα | Μάθετε για την ενεργοποίηση της ανίχνευσης ποιότητας φρούτων από έναν αισθητήρα | [Ενεργοποίηση ανίχνευσης ποιότητας φρούτων από αισθητήρα](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | -| 19 | [Λιανική](./5-retail/README.md) | Εκπαίδευση ανιχνευτή αποθεμάτων | Μάθετε πώς να χρησιμοποιείτε την ανίχνευση αντικειμένων για να εκπαιδεύσετε έναν ανιχνευτή αποθεμάτων για την καταμέτρηση αποθεμάτων σε ένα κατάστημα | [Εκπαίδευση ανιχνευτή αποθεμάτων](./5-retail/lessons/1-train-stock-detector/README.md) | -| 20 | [Λιανική](./5-retail/README.md) | Έλεγχος αποθεμάτων από συσκευή IoT | Μάθετε πώς να ελέγχετε αποθέματα από μια συσκευή IoT χρησιμοποιώντας ένα μοντέλο ανίχνευσης αντικειμένων | [Έλεγχος αποθεμάτων από συσκευή IoT](./5-retail/lessons/2-check-stock-device/README.md) | +| 07 | [Φάρμα](./2-farm/README.md) | Αυτοματοποιημένο πότισμα φυτών | Μάθετε πώς να αυτοματοποιήσετε και να χρονίσετε το πότισμα με χρήση ρελέ και MQTT | [Αυτοματοποιημένο πότισμα φυτών](./2-farm/lessons/3-automated-plant-watering/README.md) | +| 08 | [Φάρμα](./2-farm/README.md) | Μεταφορά του φυτού σας στο cloud | Μάθετε για το cloud και τις υπηρεσίες IoT που φιλοξενούνται στο cloud και πώς να συνδέσετε το φυτό σας σε μία από αυτές αντί για δημόσιο broker MQTT | [Μεταφορά του φυτού σας στο cloud](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | +| 09 | [Φάρμα](./2-farm/README.md) | Μεταφορά της λογικής εφαρμογής σας στο cloud | Μάθετε πώς μπορείτε να γράφετε λογική εφαρμογής στο cloud που ανταποκρίνεται σε μηνύματα IoT | [Μεταφορά της λογικής εφαρμογής σας στο cloud](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | +| 10 | [Φάρμα](./2-farm/README.md) | Διατήρηση της ασφάλειας του φυτού σας | Μάθετε για την ασφάλεια στο IoT και πώς να κρατήσετε το φυτό σας ασφαλές με κλειδιά και πιστοποιητικά | [Διατήρηση της ασφάλειας του φυτού σας](./2-farm/lessons/6-keep-your-plant-secure/README.md) | +| 11 | [Μεταφορές](./3-transport/README.md) | Παρακολούθηση τοποθεσίας | Μάθετε για την παρακολούθηση τοποθεσίας GPS για συσκευές IoT | [Παρακολούθηση τοποθεσίας](./3-transport/lessons/1-location-tracking/README.md) | +| 12 | [Μεταφορές](./3-transport/README.md) | Αποθήκευση δεδομένων τοποθεσίας | Μάθετε πώς να αποθηκεύετε δεδομένα IoT για μελλοντική οπτικοποίηση ή ανάλυση | [Αποθήκευση δεδομένων τοποθεσίας](./3-transport/lessons/2-store-location-data/README.md) | +| 13 | [Μεταφορές](./3-transport/README.md) | Οπτικοποίηση δεδομένων τοποθεσίας | Μάθετε για την οπτικοποίηση δεδομένων τοποθεσίας σε χάρτη, και πώς οι χάρτες αναπαριστούν τον πραγματικό τρισδιάστατο κόσμο σε δύο διαστάσεις | [Οπτικοποίηση δεδομένων τοποθεσίας](./3-transport/lessons/3-visualize-location-data/README.md) | +| 14 | [Μεταφορές](./3-transport/README.md) | Γεωπεριφράξεις | Μάθετε για τις γεωπεριφράξεις, και πώς μπορούν να χρησιμοποιηθούν για ειδοποίηση όταν οχήματα στην αλυσίδα εφοδιασμού πλησιάζουν στον προορισμό τους | [Γεωπεριφράξεις](./3-transport/lessons/4-geofences/README.md) | +| 15 | [Βιομηχανία](./4-manufacturing/README.md) | Εκπαίδευση ανιχνευτή ποιότητας φρούτων | Μάθετε για την εκπαίδευση ενός ταξινομητή εικόνας στο cloud για ανίχνευση ποιότητας φρούτων | [Εκπαίδευση ανιχνευτή ποιότητας φρούτων](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | +| 16 | [Βιομηχανία](./4-manufacturing/README.md) | Έλεγχος ποιότητας φρούτων από συσκευή IoT | Μάθετε για τη χρήση του ανιχνευτή ποιότητας φρούτων από μια συσκευή IoT | [Έλεγχος ποιότητας φρούτων από συσκευή IoT](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | +| 17 | [Βιομηχανία](./4-manufacturing/README.md) | Εκτέλεση ανιχνευτή φρούτων στην άκρη | Μάθετε για τη λειτουργία του ανιχνευτή σας σε μια συσκευή IoT στο edge | [Εκτέλεση ανιχνευτή φρούτων στην άκρη](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | +| 18 | [Βιομηχανία](./4-manufacturing/README.md) | Ενεργοποίηση ανίχνευσης ποιότητας φρούτων από αισθητήρα | Μάθετε για την ενεργοποίηση της ανίχνευσης ποιότητας φρούτων από έναν αισθητήρα | [Ενεργοποίηση ανίχνευσης ποιότητας φρούτων από αισθητήρα](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | +| 19 | [Λιανική](./5-retail/README.md) | Εκπαίδευση ανιχνευτή αποθέματος | Μάθετε πώς να χρησιμοποιήσετε την ανίχνευση αντικειμένων για να εκπαιδεύσετε έναν ανιχνευτή αποθέματος ώστε να μετρά το απόθεμα σε ένα κατάστημα | [Εκπαίδευση ανιχνευτή αποθέματος](./5-retail/lessons/1-train-stock-detector/README.md) | +| 20 | [Λιανική](./5-retail/README.md) | Έλεγχος αποθέματος από συσκευή IoT | Μάθετε πώς να ελέγχετε απόθεμα από μια συσκευή IoT χρησιμοποιώντας ένα μοντέλο ανίχνευσης αντικειμένων | [Έλεγχος αποθέματος από συσκευή IoT](./5-retail/lessons/2-check-stock-device/README.md) | | 21 | [Καταναλωτής](./6-consumer/README.md) | Αναγνώριση ομιλίας με συσκευή IoT | Μάθετε πώς να αναγνωρίζετε ομιλία από μια συσκευή IoT για να κατασκευάσετε έναν έξυπνο χρονομετρητή | [Αναγνώριση ομιλίας με συσκευή IoT](./6-consumer/lessons/1-speech-recognition/README.md) | | 22 | [Καταναλωτής](./6-consumer/README.md) | Κατανόηση γλώσσας | Μάθετε πώς να κατανοείτε προτάσεις που απευθύνονται σε μια συσκευή IoT | [Κατανόηση γλώσσας](./6-consumer/lessons/2-language-understanding/README.md) | -| 23 | [Καταναλωτής](./6-consumer/README.md) | Ρυθμίστε έναν χρονομετρητή και παρέχετε φωνητική ανατροφοδότηση | Μάθετε πώς να ρυθμίζετε έναν χρονομετρητή σε μια συσκευή IoT και να δίνετε φωνητική ανατροφοδότηση για το πότε έχει ρυθμιστεί ο χρονομετρητής και πότε τελειώνει | [Ρυθμίστε έναν χρονομετρητή και δώστε φωνητική ανατροφοδότηση](./6-consumer/lessons/3-spoken-feedback/README.md) | -| 24 | [Καταναλωτής](./6-consumer/README.md) | Υποστήριξη πολλαπλών γλωσσών | Μάθετε πώς να υποστηρίζετε πολλαπλές γλώσσες, τόσο στην ομιλία προς τη συσκευή όσο και στις απαντήσεις από τον έξυπνο χρονομετρητή σας | [Υποστήριξη πολλαπλών γλωσσών](./6-consumer/lessons/4-multiple-language-support/README.md) | +| 23 | [Καταναλωτής](./6-consumer/README.md) | Ρύθμιση χρονομέτρου και παροχή προφορικής ανατροφοδότησης | Μάθετε πώς να ρυθμίζετε ένα χρονόμετρο σε μια συσκευή IoT και να δίνετε προφορική ανατροφοδότηση για το πότε ενεργοποιείται και πότε ολοκληρώνεται ο χρονομετρητής | [Ρύθμιση χρονομέτρου και παροχή προφορικής ανατροφοδότησης](./6-consumer/lessons/3-spoken-feedback/README.md) | +| 24 | [Καταναλωτής](./6-consumer/README.md) | Υποστήριξη πολλαπλών γλωσσών | Μάθετε πώς να υποστηρίζετε πολλές γλώσσες, τόσο στην ομιλία που απευθύνεται όσο και στις απαντήσεις από τον έξυπνο χρονομετρητή | [Υποστήριξη πολλαπλών γλωσσών](./6-consumer/lessons/4-multiple-language-support/README.md) | -## Πρόσβαση εκτός σύνδεσης +## Πρόσβαση χωρίς σύνδεση -Μπορείτε να τρέξετε αυτή την τεκμηρίωση εκτός σύνδεσης χρησιμοποιώντας το [Docsify](https://docsify.js.org/#/). Κάντε fork σε αυτό το αποθετήριο, [εγκαταστήστε το Docsify](https://docsify.js.org/#/quickstart) στον τοπικό υπολογιστή σας, και μετά στον ριζικό φάκελο αυτού του αποθετηρίου, πληκτρολογήστε `docsify serve`. Η ιστοσελίδα θα λειτουργεί στην πόρτα 3000 στον localhost σας: `localhost:3000`. +Μπορείτε να τρέξετε αυτή την τεκμηρίωση χωρίς σύνδεση χρησιμοποιώντας το [Docsify](https://docsify.js.org/#/). Κάντε fork αυτό το αποθετήριο, [εγκαταστήστε το Docsify](https://docsify.js.org/#/quickstart) στον τοπικό σας υπολογιστή, και στη ρίζα του αποθετηρίου πληκτρολογήστε `docsify serve`. Η ιστοσελίδα θα σερβιριστεί στην πόρτα 3000 στο localhost σας: `localhost:3000`. -## Quiz +## Κουίζ -Ευχαριστούμε την κοινότητα για τη φιλοξενία του διαδραστικού κουίζ που ελέγχει τις γνώσεις σας για κάθε κεφάλαιο. Δοκιμάστε τις γνώσεις σας [εδώ](https://ff-quizzes.netlify.app/en/) +Ευχαριστούμε την κοινότητα που φιλοξενεί το διαδραστικό κουίζ το οποίο ελέγχει τις γνώσεις σας σε κάθε ένα από τα κεφάλαια. Εξετάστε τις γνώσεις σας [εδώ](https://ff-quizzes.netlify.app/en/) ### PDF -Μπορείτε να δημιουργήσετε ένα PDF αυτού του περιεχομένου για πρόσβαση εκτός σύνδεσης αν χρειαστείτε. Για να το κάνετε αυτό, βεβαιωθείτε ότι έχετε [εγκατεστημένο το npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) και εκτελέστε τις παρακάτω εντολές στον ριζικό φάκελο αυτού του αποθετηρίου: +Μπορείτε να δημιουργήσετε ένα PDF αυτού του περιεχομένου για πρόσβαση χωρίς σύνδεση αν χρειάζεται. Για να το κάνετε αυτό, βεβαιωθείτε ότι έχετε εγκατεστημένο το [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) και τρέξτε τις ακόλουθες εντολές στη ρίζα αυτού του αποθετηρίου: ```sh npm i npm run convert ``` -### Διαφάνειες +### Παρουσιάσεις -Υπάρχουν παρουσιάσεις διαφανειών για μερικά από τα μαθήματα στον φάκελο [slides](../../slides). +Υπάρχουν παρουσιάσεις για μερικά από τα μαθήματα στο φάκελο [slides](../../slides). ## Άλλα Προγράμματα Σπουδών @@ -165,19 +175,19 @@ npm run convert ### LangChain [![LangChain4j για Αρχάριους](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) [![LangChain.js για Αρχάριους](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) - +[![LangChain για Αρχάριους](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- ### Azure / Edge / MCP / Agents [![AZD για Αρχάριους](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI για Αρχάριους](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) [![MCP για Αρχάριους](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI Agents για Αρχάριους](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Σειρά Γεννητικής Τεχνητής Νοημοσύνης -[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +### Σειρά Generative AI +[![Generative AI για Αρχάριους](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) [![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) [![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) [![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) @@ -185,29 +195,29 @@ npm run convert --- ### Βασική Μάθηση -[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +[![ML για Αρχάριους](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Data Science για Αρχάριους](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![AI για Αρχάριους](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Cybersecurity για Αρχάριους](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Web Dev για Αρχάριους](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![IoT για Αρχάριους](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![XR Development για Αρχάριους](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### Σειρά Copilot -[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +[![Copilot για AI Συνεργατικό Προγραμματισμό](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot για C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![Περιπέτεια Copilot](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## Αναφορές εικόνων +## Αποδόσεις εικόνων -Μπορείτε να βρείτε όλες τις αναφορές για τις εικόνες που χρησιμοποιούνται σε αυτό το εκπαιδευτικό πρόγραμμα όπου απαιτείται στο [Attributions](./attributions.md). +Μπορείτε να βρείτε όλες τις αποδόσεις για τις εικόνες που χρησιμοποιήθηκαν σε αυτό το πρόγραμμα σπουδών όπου απαιτείται στο [Attributions](./attributions.md). --- **Αποποίηση ευθυνών**: -Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης AI [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που επιδιώκουμε την ακρίβεια, παρακαλούμε να λάβετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν σφάλματα ή ανακρίβειες. Το πρωτότυπο έγγραφο στη γλώσσα του θεωρείται η επίσημη πηγή. Για κρίσιμες πληροφορίες συνιστάται η επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή λανθασμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης. +Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ενώ επιδιώκουμε την ακρίβεια, παρακαλούμε λάβετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν σφάλματα ή ανακρίβειες. Το πρωτότυπο έγγραφο στην αρχική του γλώσσα θα πρέπει να θεωρείται η επίσημη πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή λανθασμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης. \ No newline at end of file diff --git a/translations/el/hardware.md b/translations/el/hardware.md index 93b1f60eb..849eb84b3 100644 --- a/translations/el/hardware.md +++ b/translations/el/hardware.md @@ -26,7 +26,7 @@ **[IoT για αρχάριους με Seeed και Microsoft - Raspberry Pi 4 Starter Kit](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html)** -[![Το κιτ υλικού Raspberry Pi Terminal](../../translated_images/el/pi-hardware-kit.26dbadaedb7dd44c73b0131d5d68ea29472ed0a9744f90d5866c6d82f2d16380.png)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) +[![Το κιτ υλικού Raspberry Pi Terminal](../../translated_images/el/pi-hardware-kit.26dbadaedb7dd44c.webp)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) ## Arduino diff --git a/translations/en/.co-op-translator.json b/translations/en/.co-op-translator.json index 05ed6fbf0..4c3de319d 100644 --- a/translations/en/.co-op-translator.json +++ b/translations/en/.co-op-translator.json @@ -738,8 +738,8 @@ "language_code": "en" }, "README.md": { - "original_hash": "3fcc056cd3837e33d2bdf79f9c359fcf", - "translation_date": "2026-01-30T00:59:38+00:00", + "original_hash": "accf69391fa4450eadbf492ca024cccf", + "translation_date": "2026-04-06T15:41:33+00:00", "source_file": "README.md", "language_code": "en" }, diff --git a/translations/en/1-getting-started/lessons/1-introduction-to-iot/README.md b/translations/en/1-getting-started/lessons/1-introduction-to-iot/README.md index 5a8f8ac1e..c980a734e 100644 --- a/translations/en/1-getting-started/lessons/1-introduction-to-iot/README.md +++ b/translations/en/1-getting-started/lessons/1-introduction-to-iot/README.md @@ -1,6 +1,6 @@ # Introduction to IoT -![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-1.2606670fa61ee904687da5d6fa4e726639d524d064c895117da1b95b9ff6251d.jpg) +![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-1.2606670fa61ee904.webp) > Sketchnote by [Nitya Narasimhan](https://github.com/nitya). Click the image for a larger version. diff --git a/translations/en/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md b/translations/en/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md index 1085464be..daf80d9cf 100644 --- a/translations/en/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md +++ b/translations/en/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md @@ -197,7 +197,7 @@ As a second 'Hello World' step, you’ll run the CounterFit app and connect your The app will open in your browser: - ![The Counter Fit app running in a browser](../../../../../translated_images/en/counterfit-first-run.433326358b669b31d0e99c3513cb01bfbb13724d162c99cdcc8f51ecf5f9c779.png) + ![The Counter Fit app running in a browser](../../../../../translated_images/en/counterfit-first-run.433326358b669b31.webp) It will show as *Disconnected*, with the LED in the top-right corner turned off. @@ -218,7 +218,7 @@ As a second 'Hello World' step, you’ll run the CounterFit app and connect your 1. Run `app.py` in the new terminal. The CounterFit app will show as **Connected**, and the LED will light up. - ![Counter Fit showing as connected](../../../../../translated_images/en/counterfit-connected.ed30b46d8f79b0921f3fc70be10366e596a89dca3f80c2224a9d9fc98fccf884.png) + ![Counter Fit showing as connected](../../../../../translated_images/en/counterfit-connected.ed30b46d8f79b092.webp) > 💁 You can find this code in the [code/virtual-device](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/virtual-device) folder. diff --git a/translations/en/1-getting-started/lessons/2-deeper-dive/README.md b/translations/en/1-getting-started/lessons/2-deeper-dive/README.md index 43862d56f..ac1472eb1 100644 --- a/translations/en/1-getting-started/lessons/2-deeper-dive/README.md +++ b/translations/en/1-getting-started/lessons/2-deeper-dive/README.md @@ -1,6 +1,6 @@ # A deeper dive into IoT -![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-2.324b0580d620c25e0a24fb7fddfc0b29a846dd4b82c08e7a9466d580ee78ce51.jpg) +![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-2.324b0580d620c25e.webp) > Sketchnote by [Nitya Narasimhan](https://github.com/nitya). Click the image for a larger version. @@ -38,7 +38,7 @@ The **Thing** in IoT refers to a device that interacts with the physical world. These devices interact with the physical world by using sensors to collect data from their surroundings or by controlling outputs or actuators to make physical changes. A classic example is a smart thermostat, which includes a temperature sensor, a way to set a desired temperature (like a dial or touchscreen), and a connection to a heating or cooling system. The thermostat detects when the room is too cold and activates the heating system. -![A diagram showing temperature and a dial as inputs to an IoT device, and control of a heater as an output](../../../../../translated_images/en/basic-thermostat.a923217fd1f37e5a6f3390396a65c22a387419ea2dd17e518ec24315ba6ae9a8.png) +![A diagram showing temperature and a dial as inputs to an IoT device, and control of a heater as an output](../../../../../translated_images/en/basic-thermostat.a923217fd1f37e5a.webp) There’s a wide variety of devices that can serve as IoT devices, ranging from specialized hardware that senses a single thing to general-purpose devices like your smartphone. For instance, a smartphone can use sensors to gather data about its environment and actuators to interact with the world—for example, using GPS to determine your location and a speaker to provide navigation instructions. @@ -54,7 +54,7 @@ Not all IoT devices connect directly to the Internet via WiFi or wired connectio For example, a smart thermostat might connect to a cloud service via home WiFi. The thermostat sends temperature data to the cloud service, which stores it in a database. The homeowner can then check current and past temperatures using a phone app. Another cloud service determines the desired temperature and sends commands back to the thermostat to control the heating system. -![A diagram showing temperature and a dial as inputs to an IoT device, the IoT device with 2-way communication to the cloud, which in turn has 2-way communication to a phone, and control of a heater as an output from the IoT device](../../../../../translated_images/en/mobile-controlled-thermostat.4a994010473d8d6a52ba68c67e5f02dc8928c717e93ca4b9bc55525aa75bbb60.png) +![A diagram showing temperature and a dial as inputs to an IoT device, the IoT device with 2-way communication to the cloud, which in turn has 2-way communication to a phone, and control of a heater as an output from the IoT device](../../../../../translated_images/en/mobile-controlled-thermostat.4a994010473d8d6a.webp) A more advanced version might use AI in the cloud, combining data from other IoT devices like occupancy sensors, as well as external data like weather forecasts and your calendar, to make smarter decisions about temperature settings. For instance, it could turn off the heating if your calendar shows you’re on vacation or adjust the temperature room by room based on usage patterns, learning over time to become more accurate. @@ -92,7 +92,7 @@ CPUs operate based on a clock that ticks millions or billions of times per secon > 💁 CPUs execute programs using the [fetch-decode-execute cycle](https://wikipedia.org/wiki/Instruction_cycle). Each cycle involves fetching an instruction from memory, decoding it, and executing it. Some instructions take multiple cycles to complete. -![The fetch decode execute cycles showing the fetch taking an instruction from the program stored in RAM, then decoding and executing it on a CPU](../../../../../translated_images/en/fetch-decode-execute.2fd6f150f6280392807f4475382319abd0cee0b90058e1735444d6baa6f2078c.png) +![The fetch decode execute cycles showing the fetch taking an instruction from the program stored in RAM, then decoding and executing it on a CPU](../../../../../translated_images/en/fetch-decode-execute.2fd6f150f6280392.webp) Microcontrollers have much lower clock speeds than PCs, laptops, or smartphones. For example, the Wio Terminal’s CPU runs at 120 MHz (120 million cycles per second). @@ -180,7 +180,7 @@ Arduino programs are written in C or C++. These languages allow for compact, fas The `setup` function is used for initialization tasks, such as connecting to WiFi or setting up input/output pins. The `loop` function contains the main processing logic, such as reading sensor data and sending it to the cloud. You can include delays in the loop to control how often it runs—for example, adding a 10-second delay to send sensor data every 10 seconds. This allows the microcontroller to sleep between loops, conserving power. -![An Arduino sketch running setup first, then running loop repeatedly](../../../../../translated_images/en/arduino-sketch.79590cb837ff7a7c6a68d1afda6cab83fd53d3bb1bd9a8bf2eaf8d693a4d3ea6.png) +![An Arduino sketch running setup first, then running loop repeatedly](../../../../../translated_images/en/arduino-sketch.79590cb837ff7a7c.webp) ✅ This program structure is called an *event loop* or *message loop*. It’s widely used in desktop applications running on OSes like Windows, macOS, or Linux. The `loop` listens for events, such as button presses or keyboard input, and responds accordingly. Learn more in this [article on the event loop](https://wikipedia.org/wiki/Event_loop). diff --git a/translations/en/1-getting-started/lessons/3-sensors-and-actuators/README.md b/translations/en/1-getting-started/lessons/3-sensors-and-actuators/README.md index 115625366..0bb3d0fd7 100644 --- a/translations/en/1-getting-started/lessons/3-sensors-and-actuators/README.md +++ b/translations/en/1-getting-started/lessons/3-sensors-and-actuators/README.md @@ -1,6 +1,6 @@ # Interact with the physical world using sensors and actuators -![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-3.cc3b7b4cd646de598698cce043c0393fd62ef42bac2eaf60e61272cd844250f4.jpg) +![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-3.cc3b7b4cd646de59.webp) > Sketchnote by [Nitya Narasimhan](https://github.com/nitya). Click the image for a larger version. @@ -92,7 +92,7 @@ Digital sensors also detect changes in electrical voltage but output a digital s The simplest digital sensor is a button or switch, which has two states: on or off. -![A button is sent 5 volts. When not pressed it returns 0 volts, when pressed it returns 5 volts](../../../../../translated_images/en/button.eadb560b77ac45e56f523d9d8876e40444f63b419e33eb820082d461fa79490b.png) +![A button is sent 5 volts. When not pressed it returns 0 volts, when pressed it returns 5 volts](../../../../../translated_images/en/button.eadb560b77ac45e5.webp) IoT devices can directly measure this signal as 0 or 1. If the voltage sent matches the voltage returned, the value is 1; otherwise, it’s 0. @@ -125,7 +125,7 @@ Common types of actuators include: Follow the appropriate guide below to add an actuator to your IoT device. You'll use a sensor to control an actuator, creating an IoT nightlight that turns on an LED when light levels are too low. -![A flow chart of the assignment showing light levels being read and checked, and the LED begin controlled](../../../../../translated_images/en/assignment-1-flow.7552a51acb1a5ec858dca6e855cdbb44206434006df8ba3799a25afcdab1665d.png) +![A flow chart of the assignment showing light levels being read and checked, and the LED begin controlled](../../../../../translated_images/en/assignment-1-flow.7552a51acb1a5ec8.webp) * [Arduino - Wio Terminal](wio-terminal-actuator.md) * [Single-board computer - Raspberry Pi](pi-actuator.md) @@ -140,7 +140,7 @@ Like sensors, actuators can be analog or digital. Analog actuators take an analog signal and convert it into a physical action, with the action varying based on the voltage supplied. One example is a dimmable light, where the brightness depends on the voltage provided. -![A light dimmed at a low voltage and brighter at a higher voltage](../../../../../translated_images/en/dimmable-light.9ceffeb195dec1a849da718b2d71b32c35171ff7dfea9c07bbf82646a67acf6b.png) +![A light dimmed at a low voltage and brighter at a higher voltage](../../../../../translated_images/en/dimmable-light.9ceffeb195dec1a8.webp) Just like with sensors, IoT devices operate using digital signals, not analog. To send an analog signal, the IoT device requires a digital-to-analog converter (DAC), which can either be built into the IoT device itself or included on a connector board. This converter transforms the 0s and 1s from the IoT device into an analog voltage that the actuator can use. @@ -187,7 +187,7 @@ Digital actuators, like digital sensors, either have two states controlled by a A simple example of a digital actuator is an LED. When the device sends a digital signal of 1, a high voltage is applied, lighting up the LED. When the device sends a digital signal of 0, the voltage drops to 0V, and the LED turns off. -![An LED is off at 0 volts and on at 5V](../../../../../translated_images/en/led.ec6d94f66676a174ad06d9fa9ea49c2ee89beb18b312d5c6476467c66375b07f.png) +![An LED is off at 0 volts and on at 5V](../../../../../translated_images/en/led.ec6d94f66676a174.webp) ✅ Can you think of other simple two-state actuators? One example is a solenoid, which is an electromagnet that can be activated to perform tasks like moving a door bolt to lock or unlock a door. diff --git a/translations/en/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md b/translations/en/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md index 6e5f9505a..2ab0514eb 100644 --- a/translations/en/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md +++ b/translations/en/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md @@ -26,7 +26,7 @@ The Grove LED comes as a module with a selection of LEDs, allowing you to choose Connect the LED. -![A grove LED](../../../../../translated_images/en/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![A grove LED](../../../../../translated_images/en/grove-led.6c853be93f473cf2.webp) 1. Pick your favorite LED and insert the legs into the two holes on the LED module. @@ -40,7 +40,7 @@ Connect the LED. 1. With the Raspberry Pi powered off, connect the other end of the Grove cable to the digital socket marked **D5** on the Grove Base hat attached to the Pi. This socket is the second from the left, on the row of sockets next to the GPIO pins. -![The grove LED connected to socket D5](../../../../../translated_images/en/pi-led.97f1d474981dc35d1c7996c7b17de355d3d0a6bc9606d79fa5f89df933415122.png) +![The grove LED connected to socket D5](../../../../../translated_images/en/pi-led.97f1d474981dc35d.webp) ## Program the nightlight diff --git a/translations/en/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md b/translations/en/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md index 2ddf51b91..3bdd1873f 100644 --- a/translations/en/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md +++ b/translations/en/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md @@ -16,13 +16,13 @@ The Grove light sensor, which is used to detect light levels, needs to be connec Connect the light sensor. -![A grove light sensor](../../../../../translated_images/en/grove-light-sensor.b8127b7c434e632d6bcdb57587a14e9ef69a268a22df95d08628f62b8fa5505c.png) +![A grove light sensor](../../../../../translated_images/en/grove-light-sensor.b8127b7c434e632d.webp) 1. Insert one end of a Grove cable into the socket on the light sensor module. It will only fit in one direction. 1. With the Raspberry Pi powered off, connect the other end of the Grove cable to the analog socket labeled **A0** on the Grove Base hat attached to the Pi. This socket is the second from the right in the row of sockets next to the GPIO pins. -![The grove light sensor connected to socket A0](../../../../../translated_images/en/pi-light-sensor.66cc1e31fa48cd7d5f23400d4b2119aa41508275cb7c778053a7923b4e972d7e.png) +![The grove light sensor connected to socket A0](../../../../../translated_images/en/pi-light-sensor.66cc1e31fa48cd7d.webp) ## Program the light sensor diff --git a/translations/en/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md b/translations/en/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md index d6ec342d4..f89d77339 100644 --- a/translations/en/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md +++ b/translations/en/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md @@ -36,11 +36,11 @@ Add the LED to the CounterFit app. 1. Click the **Add** button to create the LED on Pin 5. - ![The LED settings](../../../../../translated_images/en/counterfit-create-led.ba9db1c9b8c622a635d6dfae5cdc4e70c2b250635bd4f0601c6cf0bd22b7ba46.png) + ![The LED settings](../../../../../translated_images/en/counterfit-create-led.ba9db1c9b8c622a6.webp) The LED will be created and will appear in the actuators list. - ![The LED created](../../../../../translated_images/en/counterfit-led.c0ab02de6d256ad84d9bad4d67a7faa709f0ea83e410cfe9b5561ef0cef30b1c.png) + ![The LED created](../../../../../translated_images/en/counterfit-led.c0ab02de6d256ad8.webp) Once the LED is created, you can change its color using the *Color* picker. Click the **Set** button to apply the color after selecting it. diff --git a/translations/en/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md b/translations/en/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md index 0d575037c..b76166b3c 100644 --- a/translations/en/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md +++ b/translations/en/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md @@ -28,11 +28,11 @@ Add the light sensor to the CounterFit app. 1. Click the **Add** button to create the light sensor on Pin 0. - ![The light sensor settings](../../../../../translated_images/en/counterfit-create-light-sensor.9f36a5e0d4458d8d554d54b34d2c806d56093d6e49fddcda2d20f6fef7f5cce1.png) + ![The light sensor settings](../../../../../translated_images/en/counterfit-create-light-sensor.9f36a5e0d4458d8d.webp) The light sensor will be created and displayed in the sensors list. - ![The light sensor created](../../../../../translated_images/en/counterfit-light-sensor.5d0f5584df56b90f6b2561910d9cb20dfbd73eeff2177c238d38f4de54aefae1.png) + ![The light sensor created](../../../../../translated_images/en/counterfit-light-sensor.5d0f5584df56b90f.webp) ## Program the light sensor diff --git a/translations/en/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md b/translations/en/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md index a057fa714..86d88ab34 100644 --- a/translations/en/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md +++ b/translations/en/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md @@ -26,7 +26,7 @@ The Grove LED comes as a module with a selection of LEDs, allowing you to choose Connect the LED. -![A grove LED](../../../../../translated_images/en/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![A grove LED](../../../../../translated_images/en/grove-led.6c853be93f473cf2.webp) 1. Pick your favorite LED and insert the legs into the two holes on the LED module. diff --git a/translations/en/1-getting-started/lessons/4-connect-internet/README.md b/translations/en/1-getting-started/lessons/4-connect-internet/README.md index 79e341f02..e625221c1 100644 --- a/translations/en/1-getting-started/lessons/4-connect-internet/README.md +++ b/translations/en/1-getting-started/lessons/4-connect-internet/README.md @@ -1,6 +1,6 @@ # Connect your device to the Internet -![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-4.7344e074ea68fa545fd320b12dce36d72dd62d28c3b4596cb26cf315f434b98f.jpg) +![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-4.7344e074ea68fa54.webp) > Sketchnote by [Nitya Narasimhan](https://github.com/nitya). Click the image for a larger version. @@ -47,7 +47,7 @@ MQTT is the most widely used communication protocol for IoT devices and is the f MQTT uses a single broker and multiple clients. Clients connect to the broker, which routes messages to the appropriate recipients. Messages are routed using named topics rather than being sent directly to specific clients. A client can publish to a topic, and any clients subscribed to that topic will receive the message. -![IoT device publishing telemetry on the /telemetry topic, and the cloud service subscribing to that topic](../../../../../translated_images/en/mqtt.cbf7f21d9adc3e17548b359444cc11bb4bf2010543e32ece9a47becf54438c23.png) +![IoT device publishing telemetry on the /telemetry topic, and the cloud service subscribing to that topic](../../../../../translated_images/en/mqtt.cbf7f21d9adc3e17.webp) ✅ Do some research. If you have a large number of IoT devices, how can you ensure your MQTT broker can handle all the messages? @@ -69,7 +69,7 @@ To simplify this assignment, you'll use a public test server running [Eclipse Mo > 💁 This test broker is public and not secure. Anyone can listen to what you publish, so avoid using it for sensitive data. -![A flow chart of the assignment showing light levels being read and checked, and the LED being controlled](../../../../../translated_images/en/assignment-1-internet-flow.3256feab5f052fd273bf4e331157c574c2c3fa42e479836fc9c3586f41db35a5.png) +![A flow chart of the assignment showing light levels being read and checked, and the LED being controlled](../../../../../translated_images/en/assignment-1-internet-flow.3256feab5f052fd2.webp) Follow the relevant step below to connect your device to the MQTT broker: @@ -350,7 +350,7 @@ For machinery, you might want to retain all data, especially if it's used for tr IoT devices should also be designed to function during outages. For example, a smart thermostat should still control heating based on local conditions even if it can't send telemetry to the cloud. -[![This Ferrari got bricked because someone tried to upgrade it underground where there's no cell reception](../../../../../translated_images/en/bricked-car.dc38f8efadc6c59d76211f981a521efb300939283dee468f79503aae3ec67615.png)](https://twitter.com/internetofshit/status/1315736960082808832) +[![This Ferrari got bricked because someone tried to upgrade it underground where there's no cell reception](../../../../../translated_images/en/bricked-car.dc38f8efadc6c59d.webp)](https://twitter.com/internetofshit/status/1315736960082808832) For MQTT, handling connectivity loss requires the device and server code to ensure message delivery. For example, messages could require acknowledgments, and any unacknowledged messages could be queued for later delivery. @@ -358,7 +358,7 @@ For MQTT, handling connectivity loss requires the device and server code to ensu Commands are messages sent from the cloud to a device, instructing it to perform an action. This could involve controlling an actuator or issuing a device-specific instruction, such as rebooting or collecting additional telemetry. -![An Internet-connected thermostat receiving a command to turn on the heating](../../../../../translated_images/en/commands.d6c06bbbb3a02cce95f2831a1c331daf6dedd4e470c4aa2b0ae54f332016e504.png) +![An Internet-connected thermostat receiving a command to turn on the heating](../../../../../translated_images/en/commands.d6c06bbbb3a02cce.webp) For example, a thermostat might receive a command from the cloud to turn the heating on based on telemetry data from sensors. diff --git a/translations/en/2-farm/lessons/1-predict-plant-growth/README.md b/translations/en/2-farm/lessons/1-predict-plant-growth/README.md index 9e615d720..9545a7d01 100644 --- a/translations/en/2-farm/lessons/1-predict-plant-growth/README.md +++ b/translations/en/2-farm/lessons/1-predict-plant-growth/README.md @@ -88,7 +88,7 @@ The steps to do this manually are: For example, if the highest temperature for the day is 25°C and the lowest is 12°C: -![GDD = 25 + 12 divided by 2, then subtract 10 from the result giving 8.5](../../../../../translated_images/en/gdd-calculation-strawberries.59f57db94b22adb8ff6efb951ace33af104a1c6ccca3ffb0f8169c14cb160c90.png) +![GDD = 25 + 12 divided by 2, then subtract 10 from the result giving 8.5](../../../../../translated_images/en/gdd-calculation-strawberries.59f57db94b22adb8.webp) * 25 + 12 = 37 * 37 / 2 = 18.5 diff --git a/translations/en/2-farm/lessons/1-predict-plant-growth/assignment.md b/translations/en/2-farm/lessons/1-predict-plant-growth/assignment.md index 685521f69..017e34714 100644 --- a/translations/en/2-farm/lessons/1-predict-plant-growth/assignment.md +++ b/translations/en/2-farm/lessons/1-predict-plant-growth/assignment.md @@ -33,7 +33,7 @@ Once you have the temperature data, you can use the Jupyter Notebook provided in Jupyter will start and open the notebook in your browser. Follow the instructions in the notebook to visualize the recorded temperatures and calculate the growing degree days. - ![The jupyter notebook](../../../../../translated_images/en/gdd-jupyter-notebook.c5b52cf21094f158a61f47f455490fd95f1729777ff90861a4521820bf354cdc.png) + ![The jupyter notebook](../../../../../translated_images/en/gdd-jupyter-notebook.c5b52cf21094f158.webp) ## Rubric diff --git a/translations/en/2-farm/lessons/1-predict-plant-growth/pi-temp.md b/translations/en/2-farm/lessons/1-predict-plant-growth/pi-temp.md index aec270c4b..10edc410d 100644 --- a/translations/en/2-farm/lessons/1-predict-plant-growth/pi-temp.md +++ b/translations/en/2-farm/lessons/1-predict-plant-growth/pi-temp.md @@ -16,13 +16,13 @@ The Grove temperature sensor can be connected to the Raspberry Pi. Connect the temperature sensor. -![A grove temperature sensor](../../../../../translated_images/en/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![A grove temperature sensor](../../../../../translated_images/en/grove-dht11.07f8eafceee17004.webp) 1. Insert one end of a Grove cable into the socket on the humidity and temperature sensor. It will only fit one way. 1. With the Raspberry Pi powered off, connect the other end of the Grove cable to the digital socket marked **D5** on the Grove Base hat attached to the Pi. This socket is the second from the left in the row of sockets next to the GPIO pins. -![The grove temperature sensor connected to socket A0](../../../../../translated_images/en/pi-temperature-sensor.3ff82fff672c8e565ef25a39d26d111de006b825a7e0867227ef4e7fbff8553c.png) +![The grove temperature sensor connected to socket A0](../../../../../translated_images/en/pi-temperature-sensor.3ff82fff672c8e56.webp) ## Program the temperature sensor diff --git a/translations/en/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md b/translations/en/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md index 81a9ed0ec..f730e2896 100644 --- a/translations/en/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md +++ b/translations/en/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md @@ -38,11 +38,11 @@ Add the humidity and temperature sensors to the CounterFit app. 1. Click the **Add** button to create the humidity sensor on Pin 5. - ![The humidity sensor settings](../../../../../translated_images/en/counterfit-create-humidity-sensor.2750e27b6f30e09cf4e22101defd5252710717620816ab41ba688f91f757c49a.png) + ![The humidity sensor settings](../../../../../translated_images/en/counterfit-create-humidity-sensor.2750e27b6f30e09c.webp) The humidity sensor will be created and appear in the sensors list. - ![The humidity sensor created](../../../../../translated_images/en/counterfit-humidity-sensor.7b12f7f339e430cb26c8211d2dba4ef75261b353a01da0932698b5bebd693f27.png) + ![The humidity sensor created](../../../../../translated_images/en/counterfit-humidity-sensor.7b12f7f339e430cb.webp) 1. Create a temperature sensor: @@ -54,11 +54,11 @@ Add the humidity and temperature sensors to the CounterFit app. 1. Click the **Add** button to create the temperature sensor on Pin 6. - ![The temperature sensor settings](../../../../../translated_images/en/counterfit-create-temperature-sensor.199350ed34f7343d79dccbe95eaf6c11d2121f03d1c35ab9613b330c23f39b29.png) + ![The temperature sensor settings](../../../../../translated_images/en/counterfit-create-temperature-sensor.199350ed34f7343d.webp) The temperature sensor will be created and appear in the sensors list. - ![The temperature sensor created](../../../../../translated_images/en/counterfit-temperature-sensor.f0560236c96a9016bafce7f6f792476fe3367bc6941a1f7d5811d144d4bcbfff.png) + ![The temperature sensor created](../../../../../translated_images/en/counterfit-temperature-sensor.f0560236c96a9016.webp) ## Program the temperature sensor app diff --git a/translations/en/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md b/translations/en/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md index f8fa10447..9d3679530 100644 --- a/translations/en/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md +++ b/translations/en/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md @@ -18,7 +18,7 @@ The Grove temperature sensor can be connected to the Wio Terminal's digital port Connect the temperature sensor. -![A grove temperature sensor](../../../../../translated_images/en/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![A grove temperature sensor](../../../../../translated_images/en/grove-dht11.07f8eafceee17004.webp) 1. Insert one end of a Grove cable into the socket on the humidity and temperature sensor. It will only fit in one way. diff --git a/translations/en/2-farm/lessons/2-detect-soil-moisture/README.md b/translations/en/2-farm/lessons/2-detect-soil-moisture/README.md index 8d3065a04..b38c41bb9 100644 --- a/translations/en/2-farm/lessons/2-detect-soil-moisture/README.md +++ b/translations/en/2-farm/lessons/2-detect-soil-moisture/README.md @@ -13,7 +13,7 @@ I²C uses a bus made of two main wires, along with two power wires: | 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 acting as 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](../../../../../translated_images/en/i2c.83da845dde02256bdd462dbe0d5145461416b74930571b89d1ae142841eeb584.png) +![I2C bus with 3 devices connected to the SDA and SCL wires, sharing a common ground wire](../../../../../translated_images/en/i2c.83da845dde02256b.webp) To send data, one device issues a start condition to indicate it is ready to transmit. It then becomes the controller. The controller sends the address of the device it wants to communicate with, along with whether it intends to read or write data. After the data has been transmitted, the controller sends a stop condition to signal that it has finished. At this point, another device can take over as the controller and send or receive data. diff --git a/translations/en/2-farm/lessons/2-detect-soil-moisture/assignment.md b/translations/en/2-farm/lessons/2-detect-soil-moisture/assignment.md index 9dafbc03e..faab10fc9 100644 --- a/translations/en/2-farm/lessons/2-detect-soil-moisture/assignment.md +++ b/translations/en/2-farm/lessons/2-detect-soil-moisture/assignment.md @@ -20,7 +20,7 @@ You will need to repeat these steps multiple times to gather the necessary readi The gravimetric soil moisture is calculated as: -![soil moisture % is weight wet minus weight dry, divided by weight dry, times 100](../../../../../translated_images/en/gsm-calculation.6da38c6201eec14e7573bb2647aa18892883193553d23c9d77e5dc681522dfb2.png) +![soil moisture % is weight wet minus weight dry, divided by weight dry, times 100](../../../../../translated_images/en/gsm-calculation.6da38c6201eec14e.webp) * W - the weight of the wet soil @@ -29,7 +29,7 @@ The gravimetric soil moisture is calculated as: For example, suppose you have a soil sample that weighs 212g when wet and 197g when dry. -![The calculation filled in](../../../../../translated_images/en/gsm-calculation-example.99f9803b4f29e97668e7c15412136c0c399ab12dbba0b89596fdae9d8aedb6fb.png) +![The calculation filled in](../../../../../translated_images/en/gsm-calculation-example.99f9803b4f29e976.webp) * W = 212g * W = 197g diff --git a/translations/en/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md b/translations/en/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md index e07162bec..0a4ff8159 100644 --- a/translations/en/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md +++ b/translations/en/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md @@ -18,13 +18,13 @@ The Grove soil moisture sensor can be connected to the Raspberry Pi. Connect the soil moisture sensor. -![A grove soil moisture sensor](../../../../../translated_images/en/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![A grove soil moisture sensor](../../../../../translated_images/en/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. Insert one end of a Grove cable into the socket on the soil moisture sensor. It will only fit one way. 1. With the Raspberry Pi powered off, connect the other end of the Grove cable to the analog socket marked **A0** on the Grove Base Hat attached to the Pi. This socket is the second from the right in the row of sockets next to the GPIO pins. -![The grove soil moisture sensor connected to the A0 socket](../../../../../translated_images/en/pi-soil-moisture-sensor.fdd7eb2393792cf6739cacf1985d9f55beda16d372f30d0b5a51d586f978a870.png) +![The grove soil moisture sensor connected to the A0 socket](../../../../../translated_images/en/pi-soil-moisture-sensor.fdd7eb2393792cf6.webp) 1. Insert the soil moisture sensor into the soil. The sensor has a 'highest position line'—a white line across the sensor. Insert the sensor up to, but not past, this line. diff --git a/translations/en/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md b/translations/en/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md index 429f547b9..6c73ccce2 100644 --- a/translations/en/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md +++ b/translations/en/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md @@ -34,11 +34,11 @@ Add the soil moisture sensor to the CounterFit app. 1. Click the **Add** button to create the *Soil Moisture* sensor on Pin 0. - ![The soil moisture sensor settings](../../../../../translated_images/en/counterfit-create-soil-moisture-sensor.35266135a5e0ae68b29a684d7db0d2933a8098b2307d197f7c71577b724603aa.png) + ![The soil moisture sensor settings](../../../../../translated_images/en/counterfit-create-soil-moisture-sensor.35266135a5e0ae68.webp) The soil moisture sensor will be created and appear in the sensors list. - ![The soil moisture sensor created](../../../../../translated_images/en/counterfit-soil-moisture-sensor.81742b2de0e9de60a3b3b9a2ff8ecc686d428eb6d71820f27a693be26e5aceee.png) + ![The soil moisture sensor created](../../../../../translated_images/en/counterfit-soil-moisture-sensor.81742b2de0e9de60.webp) ## Program the soil moisture sensor app diff --git a/translations/en/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md b/translations/en/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md index 067c8df6b..022edc79e 100644 --- a/translations/en/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md +++ b/translations/en/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md @@ -18,7 +18,7 @@ The Grove soil moisture sensor can be connected to the Wio Terminal's configurab Connect the soil moisture sensor. -![A grove soil moisture sensor](../../../../../translated_images/en/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![A grove soil moisture sensor](../../../../../translated_images/en/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. Insert one end of a Grove cable into the socket on the soil moisture sensor. It will only fit in one way. diff --git a/translations/en/2-farm/lessons/3-automated-plant-watering/README.md b/translations/en/2-farm/lessons/3-automated-plant-watering/README.md index b51ed88a7..6f9eb03e0 100644 --- a/translations/en/2-farm/lessons/3-automated-plant-watering/README.md +++ b/translations/en/2-farm/lessons/3-automated-plant-watering/README.md @@ -1,6 +1,6 @@ # Automated plant watering -![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-7.30b5f577d3cb8e031238751475cb519c7d6dbaea261b5df4643d086ffb2a03bb.jpg) +![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-7.30b5f577d3cb8e03.webp) > Sketchnote by [Nitya Narasimhan](https://github.com/nitya). Click the image for a larger version. @@ -32,7 +32,7 @@ IoT devices operate at low voltage. While this is sufficient for sensors and low The solution is to connect the pump to an external power supply and use an actuator to switch the pump on, similar to flipping a light switch. It takes only a small amount of energy (from your body) to flip the switch, which then connects the light to mains electricity running at 110V/240V. -![A light switch turns power on to a light](../../../../../translated_images/en/light-switch.760317ad6ab8bd6d611da5352dfe9c73a94a0822ccec7df3c8bae35da18e1658.png) +![A light switch turns power on to a light](../../../../../translated_images/en/light-switch.760317ad6ab8bd6d.webp) > 🎓 [Mains electricity](https://wikipedia.org/wiki/Mains_electricity) refers to the electricity supplied to homes and businesses through national infrastructure in many parts of the world. @@ -72,7 +72,7 @@ When the lever moves, you can often hear a distinct clicking sound as it makes c The electromagnet in a relay requires very little power to activate and can be controlled using the 3.3V or 5V output from an IoT development kit. The output circuit, however, can handle much higher power levels, depending on the relay, including mains voltage or even higher levels for industrial applications. This allows an IoT development kit to control irrigation systems ranging from small pumps for individual plants to large-scale systems for commercial farms. -![A grove relay with the control circuit, output circuit and relay labelled](../../../../../translated_images/en/grove-relay-labelled.293e068f5c3c2a199bd7892f2661fdc9e10c920b535cfed317fbd6d1d4ae1168.png) +![A grove relay with the control circuit, output circuit and relay labelled](../../../../../translated_images/en/grove-relay-labelled.293e068f5c3c2a19.webp) The image above shows a Grove relay. The control circuit connects to an IoT device and uses 3.3V or 5V to turn the relay on or off. The output circuit has two terminals, which can be used for power or ground. This relay can handle up to 250V at 10A, making it suitable for a variety of mains-powered devices. Higher-capacity relays are also available. diff --git a/translations/en/2-farm/lessons/3-automated-plant-watering/pi-relay.md b/translations/en/2-farm/lessons/3-automated-plant-watering/pi-relay.md index 89bb9f8c5..c235ed2a0 100644 --- a/translations/en/2-farm/lessons/3-automated-plant-watering/pi-relay.md +++ b/translations/en/2-farm/lessons/3-automated-plant-watering/pi-relay.md @@ -18,13 +18,13 @@ The Grove relay can be connected to the Raspberry Pi. Connect the relay. -![A grove relay](../../../../../translated_images/en/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) +![A grove relay](../../../../../translated_images/en/grove-relay.d426958ca210fbd0.webp) 1. Insert one end of a Grove cable into the socket on the relay. It will only fit one way. 1. With the Raspberry Pi powered off, connect the other end of the Grove cable to the digital socket marked **D5** on the Grove Base Hat attached to the Pi. This socket is the second from the left, on the row of sockets next to the GPIO pins. Leave the soil moisture sensor connected to the **A0** socket. -![The grove relay connected to the D5 socket, and the soil moisture sensor connected to the A0 socket](../../../../../translated_images/en/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e69ec716cd2719ce117700bd1fc933eaf93476c103c57939b.png) +![The grove relay connected to the D5 socket, and the soil moisture sensor connected to the A0 socket](../../../../../translated_images/en/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e.webp) 1. Insert the soil moisture sensor into soil, if it isn't already from the previous lesson. diff --git a/translations/en/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md b/translations/en/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md index 6f2e6ff37..e5f66cce4 100644 --- a/translations/en/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md +++ b/translations/en/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md @@ -28,11 +28,11 @@ Add the relay to the CounterFit app. 1. Click the **Add** button to create the relay on Pin 5. - ![The relay settings](../../../../../translated_images/en/counterfit-create-relay.fa7c40fd0f2f6afc33b35ea94fcb235085be4861e14e3fe6b9b7bcfc82d1c888.png) + ![The relay settings](../../../../../translated_images/en/counterfit-create-relay.fa7c40fd0f2f6afc.webp) The relay will be created and will appear in the actuators list. - ![The relay created](../../../../../translated_images/en/counterfit-relay.bbf74c1dbdc8b9acd983367fcbd06703a402aefef6af54ddb28e11307ba8a12c.png) + ![The relay created](../../../../../translated_images/en/counterfit-relay.bbf74c1dbdc8b9ac.webp) ## Program the Relay diff --git a/translations/en/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md b/translations/en/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md index 3884d20fe..6951ac2c7 100644 --- a/translations/en/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md +++ b/translations/en/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md @@ -18,7 +18,7 @@ The Grove relay can be connected to the Wio Terminal's digital port. Connect the relay. -![A grove relay](../../../../../translated_images/en/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) +![A grove relay](../../../../../translated_images/en/grove-relay.d426958ca210fbd0.webp) 1. Insert one end of a Grove cable into the socket on the relay. It will only fit one way. diff --git a/translations/en/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md b/translations/en/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md index 00d106162..8a184bea0 100644 --- a/translations/en/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md +++ b/translations/en/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md @@ -1,6 +1,6 @@ # Migrate your plant to the cloud -![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-8.3f21f3c11159e6a0a376351973ea5724d5de68fa23b4288853a174bed9ac48c3.jpg) +![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-8.3f21f3c11159e6a0.webp) > Sketchnote by [Nitya Narasimhan](https://github.com/nitya). Click the image for a larger version. @@ -46,8 +46,8 @@ This approach was expensive, required a diverse set of skilled employees, and wa The cloud is often humorously described as "someone else's computer." The concept is simple: instead of buying computers, you rent them from a cloud computing provider. These providers manage massive data centers and handle everything, including hardware installation, power and cooling, networking, security, updates, and more. As a customer, you rent the computing resources you need, scaling up during high demand and scaling down when demand decreases. These cloud data centers are located all over the world. -![A Microsoft cloud data center](../../../../../translated_images/en/azure-region-existing.73f704604f2aa6cb9b5a49ed40e93d4fd81ae3f4e6af4a8ca504023902832f56.png) -![A Microsoft cloud data center planned expansion](../../../../../translated_images/en/azure-region-planned-expansion.a5074a1e8af74f156a73552d502429e5b126ea5019274d767ecb4b9afdad442b.png) +![A Microsoft cloud data center](../../../../../translated_images/en/azure-region-existing.73f704604f2aa6cb.webp) +![A Microsoft cloud data center planned expansion](../../../../../translated_images/en/azure-region-planned-expansion.a5074a1e8af74f15.webp) These data centers can span several square kilometers. The images above show a Microsoft cloud data center, including its initial size and planned expansion. The cleared area for expansion covers over 5 square kilometers. @@ -108,11 +108,11 @@ Cloud IoT services address these issues. They are maintained by large cloud prov IoT devices connect to cloud services using either a device SDK (a library that simplifies interaction with the service) or directly through communication protocols like MQTT or HTTP. The device SDK is typically the easiest option, as it handles tasks like topic management and security. -![Devices connect to a service using a device SDK. Server code also connects to the service via an SDK](../../../../../translated_images/en/iot-service-connectivity.7e873847921a5d6fd60d0ba3a943210194518cee0d4e362476624316443275c3.png) +![Devices connect to a service using a device SDK. Server code also connects to the service via an SDK](../../../../../translated_images/en/iot-service-connectivity.7e873847921a5d6f.webp) Your device communicates with other parts of your application through the service, similar to how you sent telemetry and received commands via MQTT. This is usually done using a service SDK or similar library. Messages from your device are sent to the service, where other components of your application can access them, and messages can be sent back to your device. -![Devices without a valid secret key cannot connect to the IoT service](../../../../../translated_images/en/iot-service-allowed-denied-connection.818b0063ac213fb84204a7229303764d9b467ca430fb822b4ac2fca267d56726.png) +![Devices without a valid secret key cannot connect to the IoT service](../../../../../translated_images/en/iot-service-allowed-denied-connection.818b0063ac213fb8.webp) These services enforce security by recognizing authorized devices, either through pre-registration or by using secret keys or certificates for first-time registration. Unauthorized devices are denied access, and their messages are ignored. @@ -124,7 +124,7 @@ Other components of your application can connect to the IoT service to monitor c Now that you have an Azure subscription, you can sign up for an IoT service. Microsoft's IoT service is called Azure IoT Hub. -![The Azure IoT Hub logo](../../../../../translated_images/en/azure-iot-hub-logo.28a19de76d0a1932464d858f7558712bcdace3e5ec69c434d482ed7ce41c3a26.png) +![The Azure IoT Hub logo](../../../../../translated_images/en/azure-iot-hub-logo.28a19de76d0a1932.webp) The video below provides a brief overview of Azure IoT Hub: diff --git a/translations/en/2-farm/lessons/5-migrate-application-to-the-cloud/README.md b/translations/en/2-farm/lessons/5-migrate-application-to-the-cloud/README.md index 5fffa8cdf..aaddb708e 100644 --- a/translations/en/2-farm/lessons/5-migrate-application-to-the-cloud/README.md +++ b/translations/en/2-farm/lessons/5-migrate-application-to-the-cloud/README.md @@ -1,6 +1,6 @@ # Migrate your application logic to the cloud -![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-9.dfe99c8e891f48e179724520da9f5794392cf9a625079281ccdcbf09bd85e1b6.jpg) +![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-9.dfe99c8e891f48e1.webp) > Sketchnote by [Nitya Narasimhan](https://github.com/nitya). Click the image for a larger version. @@ -28,7 +28,7 @@ In this lesson, we’ll cover: Serverless, or serverless computing, involves creating small blocks of code that run in the cloud in response to specific events. When an event occurs, your code is executed and receives data about the event. These events can originate from various sources, such as web requests, messages added to a queue, changes in a database, or messages sent to an IoT service by IoT devices. -![Events being sent from an IoT service to a serverless service, all being processed at the same time by multiple functions being run](../../../../../translated_images/en/iot-messages-to-serverless.0194da1cc0732bb7d0f823aed3fce54735c6b1ad3bf36089804d8aaefc0a774f.png) +![Events being sent from an IoT service to a serverless service, all being processed at the same time by multiple functions being run](../../../../../translated_images/en/iot-messages-to-serverless.0194da1cc0732bb7.webp) > 💁 If you've used database triggers before, think of this as a similar concept—code being triggered by an event, such as inserting a row. @@ -54,7 +54,7 @@ For IoT developers, the serverless model is ideal. You can write a function that Microsoft’s serverless computing service is called Azure Functions. -![The Azure Functions logo](../../../../../translated_images/en/azure-functions-logo.1cfc8e3204c9c44aaf80fcf406fc8544d80d7f00f8d3e8ed6fed764563e17564.png) +![The Azure Functions logo](../../../../../translated_images/en/azure-functions-logo.1cfc8e3204c9c44a.webp) The short video below provides an overview of Azure Functions: diff --git a/translations/en/2-farm/lessons/6-keep-your-plant-secure/README.md b/translations/en/2-farm/lessons/6-keep-your-plant-secure/README.md index 59eee68ab..ba603530a 100644 --- a/translations/en/2-farm/lessons/6-keep-your-plant-secure/README.md +++ b/translations/en/2-farm/lessons/6-keep-your-plant-secure/README.md @@ -1,6 +1,6 @@ # Keep your plant secure -![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-10.829c86b80b9403bb770929ee553a1d293afe50dc23121aaf9be144673ae012cc.jpg) +![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-10.829c86b80b9403bb.webp) > Sketchnote by [Nitya Narasimhan](https://github.com/nitya). Click the image for a larger version. @@ -52,11 +52,11 @@ These scenarios are not hypothetical—they happen frequently. Here are some rea When a device connects to an IoT service, it uses an ID to identify itself. The problem is that this ID can be cloned—a hacker could set up a malicious device using the same ID as a legitimate device but send false data. -![Both valid and malicious devices could use the same ID to send telemetry](../../../../../translated_images/en/iot-device-and-hacked-device-connecting.e0671675df74d6d99eb1dedb5a670e606f698efa6202b1ad4c8ae548db299cc6.png) +![Both valid and malicious devices could use the same ID to send telemetry](../../../../../translated_images/en/iot-device-and-hacked-device-connecting.e0671675df74d6d9.webp) The solution is to scramble the data being sent using a value known only to the device and the cloud. This process is called *encryption*, and the value used to encrypt the data is called an *encryption key*. -![If encryption is used, then only encrypted messages will be accepted, others will be rejected](../../../../../translated_images/en/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f979e46f2849b573564eeb4a4dc5b52f669f62745397492fb.png) +![If encryption is used, then only encrypted messages will be accepted, others will be rejected](../../../../../translated_images/en/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f.webp) The cloud service can then unscramble the data using a process called *decryption*, using either the same encryption key or a *decryption key*. If the encrypted message cannot be decrypted with the key, the device is deemed compromised, and the message is rejected. diff --git a/translations/en/3-transport/lessons/1-location-tracking/README.md b/translations/en/3-transport/lessons/1-location-tracking/README.md index 4dc200417..b399bbd13 100644 --- a/translations/en/3-transport/lessons/1-location-tracking/README.md +++ b/translations/en/3-transport/lessons/1-location-tracking/README.md @@ -1,6 +1,6 @@ # Location tracking -![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-11.9fddbac4b664c6d50ab7ac9bb32f1fc3f945f03760e72f7f43938073762fb017.jpg) +![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-11.9fddbac4b664c6d5.webp) > Sketchnote by [Nitya Narasimhan](https://github.com/nitya). Click the image for a larger version. @@ -62,13 +62,13 @@ The Earth is a sphere—a three-dimensional circle. Points on its surface are de > 💁 The original reason for dividing circles into 360 degrees is unclear. The [degree (angle) page on Wikipedia](https://wikipedia.org/wiki/Degree_(angle)) explores some possible explanations. -![Lines of latitude from 90° at the North Pole, 45° halfway between the North Pole and the equator, 0° at the equator, -45° halfway between the equator and the South Pole, and -90° at the South Pole](../../../../../translated_images/en/latitude-lines.11d8d91dfb2014a57437272d7db7fd6607243098e8685f06e0c5f1ec984cb7eb.png) +![Lines of latitude from 90° at the North Pole, 45° halfway between the North Pole and the equator, 0° at the equator, -45° halfway between the equator and the South Pole, and -90° at the South Pole](../../../../../translated_images/en/latitude-lines.11d8d91dfb2014a5.webp) Latitude is measured using lines that encircle the Earth parallel to the equator, dividing the Northern and Southern Hemispheres into 90° each. The equator is at 0°, the North Pole is at 90° (90° North), and the South Pole is at -90° (90° South). Longitude measures degrees east and west. The 0° origin of longitude is called the *Prime Meridian*, established in 1884 as a line running from the North to the South Pole through the [British Royal Observatory in Greenwich, England](https://wikipedia.org/wiki/Royal_Observatory,_Greenwich). -![Lines of longitude that go from -180° to the west of the Prime Meridian, to 0° on the Prime Meridian, to 180° east of the Prime Meridian](../../../../../translated_images/en/longitude-meridians.ab4ef1c91c064586b0185a3c8d39e585903696c6a7d28c098a93a629cddb5d20.png) +![Lines of longitude that go from -180° to the west of the Prime Meridian, to 0° on the Prime Meridian, to 180° east of the Prime Meridian](../../../../../translated_images/en/longitude-meridians.ab4ef1c91c064586.webp) > 🎓 A meridian is an imaginary line running from the North Pole to the South Pole, forming a semicircle. @@ -97,7 +97,7 @@ Coordinates are always given as `latitude, longitude`. For example, the Microsof * Latitude: `47.6423109` (47.6423109 degrees north of the equator) * Longitude: `-122.1390293` (122.1390293 degrees west of the Prime Meridian). -![The Microsoft Campus at 47.6423109,-122.117198](../../../../../translated_images/en/microsoft-gps-location-world.a321d481b010f6adfcca139b2ba0adc53b79f58a540495b8e2ce7f779ea64bfe.png) +![The Microsoft Campus at 47.6423109,-122.117198](../../../../../translated_images/en/microsoft-gps-location-world.a321d481b010f6ad.webp) ## Global Positioning Systems (GPS) @@ -109,7 +109,7 @@ GPS works by using satellites that transmit signals containing their position an > 💁 GPS sensors require antennas to detect radio waves. Built-in antennas in vehicles are typically positioned for optimal signal reception, such as on the windshield or roof. For external GPS systems, like smartphones or IoT devices, ensure the antenna has a clear view of the sky, such as mounting it on the windshield. -![By knowing the distance from the sensor to multiple satellites, the location be calculated](../../../../../translated_images/en/gps-satellites.04acf1148fe25fbf1586bc2e8ba698e8d79b79a50c36824b38417dd13372b90f.png) +![By knowing the distance from the sensor to multiple satellites, the location be calculated](../../../../../translated_images/en/gps-satellites.04acf1148fe25fbf.webp) Since GPS satellites orbit the Earth, location data includes altitude above sea level in addition to latitude and longitude. diff --git a/translations/en/3-transport/lessons/1-location-tracking/pi-gps-sensor.md b/translations/en/3-transport/lessons/1-location-tracking/pi-gps-sensor.md index 0a42e2fb8..bca0bb18f 100644 --- a/translations/en/3-transport/lessons/1-location-tracking/pi-gps-sensor.md +++ b/translations/en/3-transport/lessons/1-location-tracking/pi-gps-sensor.md @@ -18,13 +18,13 @@ The Grove GPS sensor can be connected to the Raspberry Pi. Connect the GPS sensor. -![A grove GPS sensor](../../../../../translated_images/en/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![A grove GPS sensor](../../../../../translated_images/en/grove-gps-sensor.247943bf69b03f0d.webp) 1. Insert one end of a Grove cable into the socket on the GPS sensor. It will only fit in one way. 1. With the Raspberry Pi powered off, connect the other end of the Grove cable to the UART socket labeled **UART** on the Grove Base Hat attached to the Pi. This socket is located in the middle row, on the side closest to the SD card slot, opposite the USB ports and Ethernet socket. - ![The grove GPS sensor connected to the UART socket](../../../../../translated_images/en/pi-gps-sensor.1f99ee2b2f6528915047ec78967bd362e0e4ee0ed594368a3837b9cf9cdaca64.png) + ![The grove GPS sensor connected to the UART socket](../../../../../translated_images/en/pi-gps-sensor.1f99ee2b2f652891.webp) 1. Position the GPS sensor so that the attached antenna has a clear view of the sky—ideally near an open window or outside. A clear signal is easier to achieve with no obstructions around the antenna. diff --git a/translations/en/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md b/translations/en/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md index 966df0d8d..bece98391 100644 --- a/translations/en/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md +++ b/translations/en/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md @@ -38,11 +38,11 @@ Add the GPS sensor to the CounterFit app. 1. Click the **Add** button to create the GPS sensor on port `/dev/ttyAMA0`. - ![The GPS sensor settings](../../../../../translated_images/en/counterfit-create-gps-sensor.6385dc9357d85ad1d47b4abb2525e7651fd498917d25eefc5a72feab09eedc70.png) + ![The GPS sensor settings](../../../../../translated_images/en/counterfit-create-gps-sensor.6385dc9357d85ad1.webp) The GPS sensor will be created and appear in the sensors list. - ![The GPS sensor created](../../../../../translated_images/en/counterfit-gps-sensor.3fbb15af0a5367566f2f11324ef5a6f30861cdf2b497071a5e002b7aa473550e.png) + ![The GPS sensor created](../../../../../translated_images/en/counterfit-gps-sensor.3fbb15af0a536756.webp) ## Program the GPS Sensor @@ -102,17 +102,17 @@ Program the GPS sensor app. * Set the **Source** to `Lat/Lon`, and specify a latitude, longitude, and the number of satellites used to get the GPS fix. This value will be sent only once, so check the **Repeat** box to have the data repeat every second. - ![The GPS sensor with lat lon selected](../../../../../translated_images/en/counterfit-gps-sensor-latlon.008c867d75464fbe7f84107cc57040df565ac07cb57d2f21db37d087d470197d.png) + ![The GPS sensor with lat lon selected](../../../../../translated_images/en/counterfit-gps-sensor-latlon.008c867d75464fbe.webp) * Set the **Source** to `NMEA` and add some NMEA sentences into the text box. All these values will be sent, with a delay of 1 second before each new GGA (position fix) sentence can be read. - ![The GPS sensor with NMEA sentences set](../../../../../translated_images/en/counterfit-gps-sensor-nmea.c62eea442171e17e19528b051b104cfcecdc9cd18db7bc72920f29821ae63f73.png) + ![The GPS sensor with NMEA sentences set](../../../../../translated_images/en/counterfit-gps-sensor-nmea.c62eea442171e17e.webp) You can use a tool like [nmeagen.org](https://www.nmeagen.org) to generate these sentences by drawing on a map. These values will be sent only once, so check the **Repeat** box to have the data repeat one second after all sentences have been sent. * Set the **Source** to GPX file, and upload a GPX file with track locations. You can download GPX files from various popular mapping and hiking sites, such as [AllTrails](https://www.alltrails.com/). These files contain multiple GPS locations as a trail, and the GPS sensor will return each new location at 1-second intervals. - ![The GPS sensor with a GPX file set](../../../../../translated_images/en/counterfit-gps-sensor-gpxfile.8310b063ce8a425ccc8ebeec8306aeac5e8e55207f007d52c6e1194432a70cd9.png) + ![The GPS sensor with a GPX file set](../../../../../translated_images/en/counterfit-gps-sensor-gpxfile.8310b063ce8a425c.webp) These values will be sent only once, so check the **Repeat** box to have the data repeat one second after all locations have been sent. diff --git a/translations/en/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md b/translations/en/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md index 668b8096c..b8199abaa 100644 --- a/translations/en/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md +++ b/translations/en/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md @@ -18,7 +18,7 @@ The Grove GPS sensor can be connected to the Wio Terminal. Connect the GPS sensor. -![A grove GPS sensor](../../../../../translated_images/en/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![A grove GPS sensor](../../../../../translated_images/en/grove-gps-sensor.247943bf69b03f0d.webp) 1. Insert one end of a Grove cable into the socket on the GPS sensor. It will only fit one way. diff --git a/translations/en/3-transport/lessons/2-store-location-data/README.md b/translations/en/3-transport/lessons/2-store-location-data/README.md index 4dc50d3cb..03e36ce9c 100644 --- a/translations/en/3-transport/lessons/2-store-location-data/README.md +++ b/translations/en/3-transport/lessons/2-store-location-data/README.md @@ -1,6 +1,6 @@ # Store location data -![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-12.ca7f53039712a3ec14ad6474d8445361c84adab643edc53fa6269b77895606bb.jpg) +![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-12.ca7f53039712a3ec.webp) > Sketchnote by [Nitya Narasimhan](https://github.com/nitya). Click the image for a larger version. @@ -75,7 +75,7 @@ NoSQL databases are named for their lack of rigid structure compared to SQL data > 💁 Despite their name, some NoSQL databases allow SQL queries. -![Documents in folders in a NoSQL database](../../../../../translated_images/en/noqsl-database.62d24ccf5b73f60d35c245a8533f1c7147c0928e955b82cb290b2e184bb434df.png) +![Documents in folders in a NoSQL database](../../../../../translated_images/en/noqsl-database.62d24ccf5b73f60d.webp) NoSQL databases don't have a predefined schema, allowing you to insert unstructured data, often in JSON format. These documents can be organized into folders, similar to files on a computer. Each document can have different fields. For instance, if you store IoT data from farm vehicles, some documents might include accelerometer and speed data, while others might include trailer temperature data. Adding a new truck type with built-in scales to track produce weight would allow the IoT device to add this new field without requiring database changes. @@ -89,7 +89,7 @@ In this lesson, you'll use NoSQL storage to store IoT data. In the previous lesson, you captured GPS data from a sensor connected to your IoT device. To store this data in the cloud, you need to send it to an IoT service. You'll use Azure IoT Hub, the same IoT cloud service from the previous project. -![Sending GPS telemetry from an IoT device to IoT Hub](../../../../../translated_images/en/gps-telemetry-iot-hub.8115335d51cd2c1285d20e9d1b18cf685e59a8e093e7797291ef173445af6f3d.png) +![Sending GPS telemetry from an IoT device to IoT Hub](../../../../../translated_images/en/gps-telemetry-iot-hub.8115335d51cd2c12.webp) ### Task - send GPS data to an IoT Hub @@ -171,7 +171,7 @@ Cold path data is stored in data warehouses—databases designed for large, unch Once data is flowing into your IoT Hub, you can write serverless code to listen for events published to the Event-Hub-compatible endpoint. This represents the warm path, where data will be stored and used in the next lesson for journey reporting. -![Sending GPS telemetry from an IoT device to IoT Hub, then to Azure Functions via an event hub trigger](../../../../../translated_images/en/gps-telemetry-iot-hub-functions.24d3fa5592455e9f4e2fe73856b40c3915a292b90263c31d652acfd976cfedd8.png) +![Sending GPS telemetry from an IoT device to IoT Hub, then to Azure Functions via an event hub trigger](../../../../../translated_images/en/gps-telemetry-iot-hub-functions.24d3fa5592455e9f.webp) ### Task - handle GPS events using serverless code @@ -193,7 +193,7 @@ Once data is flowing into your IoT Hub, you can write serverless code to listen ## Azure Storage Accounts -![The Azure Storage logo](../../../../../translated_images/en/azure-storage-logo.605c0f602c640d482a80f1b35a2629a32d595711b7ab1d7ceea843250615ff32.png) +![The Azure Storage logo](../../../../../translated_images/en/azure-storage-logo.605c0f602c640d48.webp) Azure Storage Accounts is a general-purpose storage service that can store data in various ways. You can store data as blobs, in queues, in tables, or as files, all at the same time. diff --git a/translations/en/3-transport/lessons/3-visualize-location-data/README.md b/translations/en/3-transport/lessons/3-visualize-location-data/README.md index b00913c69..bdb2ca1d6 100644 --- a/translations/en/3-transport/lessons/3-visualize-location-data/README.md +++ b/translations/en/3-transport/lessons/3-visualize-location-data/README.md @@ -1,6 +1,6 @@ # Visualize location data -![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-13.a259db1485021be7d7c72e90842fbe0ab977529e8684c179b5fb1ea75e92b3ef.jpg) +![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-13.a259db1485021be7.webp) > Sketchnote by [Nitya Narasimhan](https://github.com/nitya). Click the image for a larger version. @@ -64,11 +64,11 @@ For example, in the farm project, you collected soil moisture readings. A table For a human, interpreting this data can be challenging—it’s just a wall of numbers. To make it more comprehensible, you could plot it on a line chart: -![A line chart of the above data](../../../../../translated_images/en/chart-soil-moisture.fd6d9d0cdc0b5f75e78038ecb8945dfc84b38851359de99d84b16e3336d6d7c2.png) +![A line chart of the above data](../../../../../translated_images/en/chart-soil-moisture.fd6d9d0cdc0b5f75.webp) This visualization can be further improved by adding a line to indicate when the automated watering system was activated at a soil moisture reading of 450: -![A line chart of soil moisture with a line at 450](../../../../../translated_images/en/chart-soil-moisture-relay.fbb391236d34a64d0abf1df396e9197e0a24df14150620b9cc820a64a55c9326.png) +![A line chart of soil moisture with a line at 450](../../../../../translated_images/en/chart-soil-moisture-relay.fbb391236d34a64d.webp) This chart quickly conveys not only the soil moisture levels but also the points where the watering system was triggered. @@ -84,7 +84,7 @@ When working with GPS data, the clearest visualization is often plotting the dat Working with maps is an exciting challenge, and there are many options to choose from, such as Bing Maps, Leaflet, Open Street Maps, and Google Maps. In this lesson, you'll learn about [Azure Maps](https://azure.microsoft.com/services/azure-maps/?WT.mc_id=academic-17441-jabenn) and how it can display your GPS data. -![The Azure Maps logo](../../../../../translated_images/en/azure-maps-logo.35d01dcfbd81fe6140e94257aaa1538f785a58c91576d14e0ebe7a2f6c694b99.png) +![The Azure Maps logo](../../../../../translated_images/en/azure-maps-logo.35d01dcfbd81fe61.webp) Azure Maps is "a collection of geospatial services and SDKs that use fresh mapping data to provide geographic context to web and mobile applications." It offers developers tools to create interactive maps with features like recommended traffic routes, traffic incident information, indoor navigation, search capabilities, elevation data, weather services, and more. @@ -185,7 +185,7 @@ Next, you'll display your map on a web page. For simplicity, we'll use a single If you open your `index.html` file in a web browser, you should see a map centered on the Seattle area. - ![A map showing Seattle, a city in Washington State, USA](../../../../../translated_images/en/map-image.8fb2c53eb23ef39c1c0a4410a5282e879b3b452b707eb066ff04c5488d3d72b7.png) + ![A map showing Seattle, a city in Washington State, USA](../../../../../translated_images/en/map-image.8fb2c53eb23ef39c.webp) ✅ Experiment with the zoom and center parameters to adjust your map display. You can use different coordinates corresponding to your data's latitude and longitude to re-center the map. @@ -318,7 +318,7 @@ If you attempt to fetch data from your storage, you might notice errors in your 1. Open the HTML page in your browser. The map will load, retrieve all the GPS data from storage, and plot it on the map. - ![A map of Saint Edward State Park near Seattle, with circles showing a path around the edge of the park](../../../../../translated_images/en/map-path.896832e72dc696ffe20650e4051027d4855442d955f93fdbb80bb417ca8a406f.png) + ![A map of Saint Edward State Park near Seattle, with circles showing a path around the edge of the park](../../../../../translated_images/en/map-path.896832e72dc696ff.webp) > 💁 You can find this code in the [code](../../../../../3-transport/lessons/3-visualize-location-data/code) folder. diff --git a/translations/en/3-transport/lessons/4-geofences/README.md b/translations/en/3-transport/lessons/4-geofences/README.md index 5a2849239..c2ff85cc5 100644 --- a/translations/en/3-transport/lessons/4-geofences/README.md +++ b/translations/en/3-transport/lessons/4-geofences/README.md @@ -1,6 +1,6 @@ # Geofences -![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-14.63980c5150ae3c153e770fb71d044c1845dce79248d86bed9fc525adf3ede73c.jpg) +![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-14.63980c5150ae3c15.webp) > Sketchnote by [Nitya Narasimhan](https://github.com/nitya). Click the image for a larger version. @@ -35,7 +35,7 @@ This lesson will cover: A geofence is a virtual boundary for a real-world geographic area. Geofences can be circular, defined by a center point and radius (e.g., a 100m circle around a building), or polygonal, covering areas like school zones, city limits, or university campuses. -![Some geofence examples showing a circular geofence around the Microsoft company store, and a polygon geofence around the Microsoft west campus](../../../../../translated_images/en/geofence-examples.172fbc534665769f6e1a1ddcf75e3b25183cd10354c80cc603ba44b635390e1a.png) +![Some geofence examples showing a circular geofence around the Microsoft company store, and a polygon geofence around the Microsoft west campus](../../../../../translated_images/en/geofence-examples.172fbc534665769f.webp) > 💁 You might have used geofences without realizing it. If you've set a location-based reminder using the iOS Reminders app or Google Keep, you've interacted with geofences. These apps create geofences based on the location you provide and notify you when your phone enters the geofence. @@ -212,7 +212,7 @@ Knowing the distance to the geofence's edge, combined with other data like GPS r For example, imagine GPS readings showing a vehicle driving along a road near a geofence. If one GPS reading inaccurately places the vehicle inside the geofence, despite no access, it can be disregarded. -![A GPS trail showing a vehicle passing the Microsoft campus on the 520, with GPS readings along the road except for one on the campus, inside a geofence](../../../../../translated_images/en/geofence-crossing-inaccurate-gps.6a3ed911202ad9cabb66d3964888cec03a42c61d5b8f536ad5bdc99716b370f5.png) +![A GPS trail showing a vehicle passing the Microsoft campus on the 520, with GPS readings along the road except for one on the campus, inside a geofence](../../../../../translated_images/en/geofence-crossing-inaccurate-gps.6a3ed911202ad9ca.webp) In the above image, there is a geofence covering part of the Microsoft campus. The red line represents a truck driving along Highway 520, with circles indicating the GPS readings. Most of these readings are accurate and align with the highway, but one inaccurate reading appears inside the geofence. This reading cannot be correct—there are no roads that would allow the truck to suddenly divert from the highway onto the campus and then back onto the highway. The code that evaluates this geofence will need to consider previous readings before acting on the results of the geofence test. ✅ What additional data would you need to verify whether a GPS reading is accurate? @@ -284,7 +284,7 @@ As you may recall from earlier lessons, IoT Hub allows you to replay events that The answer is that it doesn’t! Instead, you can define multiple separate connections to read events, with each connection managing the replay of unread messages. These are called *consumer groups*. When connecting to the endpoint, you specify which consumer group to use. Each component of your application connects to a different consumer group. -![One IoT Hub with 3 consumer groups distributing the same messages to 3 different functions apps](../../../../../translated_images/en/consumer-groups.a3262e26fc27ba2092863678ad57af15c7223416e388a23f330c058cf4358630.png) +![One IoT Hub with 3 consumer groups distributing the same messages to 3 different functions apps](../../../../../translated_images/en/consumer-groups.a3262e26fc27ba20.webp) In theory, up to five applications can connect to each consumer group, and all will receive messages as they arrive. However, it’s best practice to have only one application access each consumer group to avoid duplicate message processing and ensure that all queued messages are processed correctly when restarting. For example, if you run your Functions app locally while it’s also running in the cloud, both instances would process messages, leading to duplicate blobs in the storage account. diff --git a/translations/en/4-manufacturing/lessons/1-train-fruit-detector/README.md b/translations/en/4-manufacturing/lessons/1-train-fruit-detector/README.md index 6ca703882..757c45845 100644 --- a/translations/en/4-manufacturing/lessons/1-train-fruit-detector/README.md +++ b/translations/en/4-manufacturing/lessons/1-train-fruit-detector/README.md @@ -1,6 +1,6 @@ # Train a fruit quality detector -![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-15.843d21afdc6fb2bba70cd9db7b7d2f91598859fafda2078b0bdc44954194b6c0.jpg) +![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-15.843d21afdc6fb2bb.webp) > Sketchnote by [Nitya Narasimhan](https://github.com/nitya). Click the image for a larger version. @@ -38,7 +38,7 @@ Not all crops ripen uniformly. For instance, tomatoes on the same vine may vary The shift to automated harvesting moved the sorting process from the field to the factory. In factories, food travels along conveyor belts, where teams of workers manually remove produce that doesn't meet quality standards. While machinery made harvesting cheaper, manual sorting still incurred significant costs. -![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](../../../../../translated_images/en/optical-tomato-sorting.61aa134bdda4e5b1bfb16a212c1e35a6ef0c426cbb8b1c975f79d7bfbf48d068.png) +![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](../../../../../translated_images/en/optical-tomato-sorting.61aa134bdda4e5b1.webp) The next step in evolution was the use of machines for sorting, either integrated into harvesters or located in processing plants. Early machines relied on optical sensors to detect colors, using actuators to push green tomatoes into waste bins with levers or air puffs, while allowing red tomatoes to continue along the conveyor belts. @@ -62,7 +62,7 @@ For example, you could provide a model with millions of images of unripe bananas > 🎓 The results produced by ML models are called *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](../../../../../translated_images/en/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50ece4e4589e724b142da0681f35470fe3db3f7d51240f69c85.png) +![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](../../../../../translated_images/en/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50e.webp) ML models don't provide binary answers; instead, they generate probabilities. For instance, a model might analyze a banana image and predict it is 99.7% ripe and 0.3% unripe. Your code would then select the most likely prediction and classify the banana as ripe. @@ -90,7 +90,7 @@ There are many tools available to help with this process, including cloud-based Custom Vision is a cloud-based tool for training image classifiers. It enables you to train a classifier with a relatively small number of images. You can upload images via a web portal, API, or SDK, tagging each image with its classification. After training the model, you can test its performance and publish it for use through a web API or SDK. -![The Azure Custom Vision logo](../../../../../translated_images/en/custom-vision-logo.d3d4e7c8a87ec9daf825e72e210576c3cbf60312577be7a139e22dd97ab7f1e6.png) +![The Azure Custom Vision logo](../../../../../translated_images/en/custom-vision-logo.d3d4e7c8a87ec9da.webp) > 💁 You can train a Custom Vision model with as few as 5 images per classification, but more images yield better results. Aim for at least 30 images for improved accuracy. @@ -146,7 +146,7 @@ To use Custom Vision, you'll first need to create two cognitive services resourc When creating your project, select the `fruit-quality-detector-training` resource you created earlier. Choose a *Classification* project type, a *Multiclass* classification type, and the *Food* domain. - ![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](../../../../../translated_images/en/custom-vision-create-project.cf46325b92d8b131089f6647cf5e07b664cb77850e106d66e3c057b6b69756c6.png) + ![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](../../../../../translated_images/en/custom-vision-create-project.cf46325b92d8b131.webp) ✅ Take some time to explore the Custom Vision UI for your image classifier. @@ -164,7 +164,7 @@ Image classifiers operate at very low resolutions. For instance, Custom Vision c * Using 2 ripe bananas, take several pictures of each one from different angles, capturing at least 7 images (5 for training, 2 for testing), but ideally more. - ![Photos of 2 different bananas](../../../../../translated_images/en/banana-training-images.530eb203346d73bc23b8b990fb4609470bf4ff7c942ccc13d4cfffeed9be1ad4.png) + ![Photos of 2 different bananas](../../../../../translated_images/en/banana-training-images.530eb203346d73bc.webp) * Repeat the same process with 2 unripe bananas. @@ -174,7 +174,7 @@ Image classifiers operate at very low resolutions. For instance, Custom Vision c 1. Follow the [upload and tag images section of the build a classifier quickstart on the Microsoft docs](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) to upload your training images. Tag the ripe fruit as `ripe` and the unripe fruit as `unripe`. - ![The upload dialogs showing the upload of ripe and unripe banana pictures](../../../../../translated_images/en/image-upload-bananas.0751639f3815e0ec42bdbc6254d1e4357a185834d1ae10c9948a0e7d6d336695.png) + ![The upload dialogs showing the upload of ripe and unripe banana pictures](../../../../../translated_images/en/image-upload-bananas.0751639f3815e0ec.webp) 1. Follow the [train the classifier section of the build a classifier quickstart on the Microsoft docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#train-the-classifier) to train the image classifier using your uploaded images. @@ -192,7 +192,7 @@ Once your classifier is trained, you can test it by providing a new image for cl 1. Follow the [test your model documentation on the Microsoft docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/test-your-model?WT.mc_id=academic-17441-jabenn#test-your-model) to test your image classifier. Use the testing images you created earlier, not the ones used for training. - ![A unripe banana predicted as unripe with a 98.9% probability, ripe with a 1.1% probability](../../../../../translated_images/en/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64886422438850ea14f0be6ac918c217ea3b255c685abfabe7.png) + ![A unripe banana predicted as unripe with a 98.9% probability, ripe with a 1.1% probability](../../../../../translated_images/en/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64.webp) 1. Test all the images you have for testing and observe the probabilities. diff --git a/translations/en/4-manufacturing/lessons/2-check-fruit-from-device/README.md b/translations/en/4-manufacturing/lessons/2-check-fruit-from-device/README.md index 185fd73ef..2b1db4001 100644 --- a/translations/en/4-manufacturing/lessons/2-check-fruit-from-device/README.md +++ b/translations/en/4-manufacturing/lessons/2-check-fruit-from-device/README.md @@ -1,6 +1,6 @@ # Check fruit quality from an IoT device -![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-16.215daf18b00631fbdfd64c6fc2dc6044dff5d544288825d8076f9fb83d964c23.jpg) +![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-16.215daf18b00631fb.webp) > Sketchnote by [Nitya Narasimhan](https://github.com/nitya). Click the image for a larger version. @@ -26,7 +26,7 @@ This lesson will cover: Camera sensors are cameras that can be connected to your IoT device. They can capture still images or streaming video. Some provide raw image data, while others compress the data into formats like JPEG or PNG. IoT-compatible cameras are often smaller and lower resolution than typical cameras, but high-resolution options are available, rivaling top-end smartphones. You can also find cameras with interchangeable lenses, multi-camera setups, infrared thermal imaging, or UV capabilities. -![The light from a scene passes through a lens and is focused on a CMOS sensor](../../../../../translated_images/en/cmos-sensor.75f9cd74decb137149a4c9ea825251a4549497d67c0ae2776159e6102bb53aa9.png) +![The light from a scene passes through a lens and is focused on a CMOS sensor](../../../../../translated_images/en/cmos-sensor.75f9cd74decb1371.webp) Most camera sensors use image sensors where each pixel is a photodiode. A lens focuses the image onto the sensor, and thousands or millions of photodiodes detect the light hitting them, recording it as pixel data. @@ -74,7 +74,7 @@ Iterations are published through the Custom Vision portal. 1. Click the **Publish** button for the selected iteration. - ![The publish button](../../../../../translated_images/en/custom-vision-publish-button.b7174e1977b0c33b8b72d4e5b1326c779e0af196f3849d09985ee2d7d5493a39.png) + ![The publish button](../../../../../translated_images/en/custom-vision-publish-button.b7174e1977b0c33b.webp) 1. In the *Publish Model* dialog, set the *Prediction resource* to the `fruit-quality-detector-prediction` resource created in the last lesson. Keep the name as `Iteration2` and click **Publish**. @@ -88,7 +88,7 @@ Iterations are published through the Custom Vision portal. Also, copy the *Prediction-Key*. This secure key is required to access the model. Only applications with this key can use the model; others will be denied. - ![The prediction API dialog showing the URL and key](../../../../../translated_images/en/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![The prediction API dialog showing the URL and key](../../../../../translated_images/en/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ When a new iteration is published, it will have a different name. How would you update the iteration your IoT device is using? @@ -109,7 +109,7 @@ You may notice that predictions from your IoT device's camera differ from what y For optimal results, train the model with images similar to those used for predictions. For example, if you used a phone camera for training, the image quality, sharpness, and color may differ from those of an IoT device's camera. -![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](../../../../../translated_images/en/banana-picture-compare.174df164dc326a42cf7fb051a7497e6113c620e91552d92ca914220305d47d9a.png) +![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](../../../../../translated_images/en/banana-picture-compare.174df164dc326a42.webp) In the image above, the left banana picture was taken with a Raspberry Pi Camera, while the right one was taken with an iPhone. The iPhone image is sharper, with brighter colors and better contrast. diff --git a/translations/en/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md b/translations/en/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md index 8b97a89a0..65896bc81 100644 --- a/translations/en/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md +++ b/translations/en/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md @@ -16,7 +16,7 @@ The camera can be connected to the Raspberry Pi using a ribbon cable. ### Task - Connect the camera -![A Raspberry Pi Camera](../../../../../translated_images/en/pi-camera-module.4278753c31bd6e757aa2b858be97d72049f71616278cefe4fb5abb485b40a078.png) +![A Raspberry Pi Camera](../../../../../translated_images/en/pi-camera-module.4278753c31bd6e75.webp) 1. Turn off the Raspberry Pi. @@ -24,17 +24,17 @@ The camera can be connected to the Raspberry Pi using a ribbon cable. You can find an animation showing how to open the clip and insert the cable in the [Raspberry Pi Getting Started with the Camera module documentation](https://projects.raspberrypi.org/en/projects/getting-started-with-picamera/2). - ![The ribbon cable inserted into the camera module](../../../../../translated_images/en/pi-camera-ribbon-cable.0bf82acd251611c21ac616f082849413e2b322a261d0e4f8fec344248083b07e.png) + ![The ribbon cable inserted into the camera module](../../../../../translated_images/en/pi-camera-ribbon-cable.0bf82acd251611c2.webp) 1. Remove the Grove Base Hat from the Raspberry Pi. 1. Pass the ribbon cable through the camera slot in the Grove Base Hat. Ensure the blue side of the cable faces the analog ports labeled **A0**, **A1**, etc. - ![The ribbon cable passing through the Grove Base Hat](../../../../../translated_images/en/grove-base-hat-ribbon-cable.501fed202fcf73b11b2b68f6d246189f7d15d3e4423c572ddee79d77b4632b47.png) + ![The ribbon cable passing through the Grove Base Hat](../../../../../translated_images/en/grove-base-hat-ribbon-cable.501fed202fcf73b1.webp) 1. Insert the ribbon cable into the camera port on the Raspberry Pi. Again, pull the black plastic clip upward, insert the cable, and push the clip back down. The blue side of the cable should face the USB and Ethernet ports. - ![The ribbon cable connected to the camera socket on the Raspberry Pi](../../../../../translated_images/en/pi-camera-socket-ribbon-cable.a18309920b11800911082ed7aa6fb28e6d9be3a022e4079ff990016cae3fca10.png) + ![The ribbon cable connected to the camera socket on the Raspberry Pi](../../../../../translated_images/en/pi-camera-socket-ribbon-cable.a18309920b118009.webp) 1. Reattach the Grove Base Hat. @@ -101,7 +101,7 @@ Write a program to use the camera. The `camera.rotation = 0` line sets the image rotation. The ribbon cable connects to the bottom of the camera, but if you rotate the camera to better point at the object you want to classify, you can adjust this line to match the rotation angle. - ![The camera hanging down over a drink can](../../../../../translated_images/en/pi-camera-upside-down.5376961ba31459883362124152ad6b823d5ac5fc14e85f317e22903bd681c2b6.png) + ![The camera hanging down over a drink can](../../../../../translated_images/en/pi-camera-upside-down.5376961ba3145988.webp) For example, if you suspend the ribbon cable above the camera so it enters from the top, set the rotation to 180: diff --git a/translations/en/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md b/translations/en/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md index 6f54f842c..1e28156e7 100644 --- a/translations/en/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md +++ b/translations/en/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md @@ -84,7 +84,7 @@ The Custom Vision service provides a Python SDK that you can use to classify ima You will also see the captured image and these values in the **Predictions** tab in Custom Vision. - ![A banana in custom vision predicted ripe at 56.8% and unripe at 43.1%](../../../../../translated_images/en/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![A banana in custom vision predicted ripe at 56.8% and unripe at 43.1%](../../../../../translated_images/en/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 You can find this code in the [code-classify/pi](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/pi) or [code-classify/virtual-iot-device](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/virtual-iot-device) folder. diff --git a/translations/en/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md b/translations/en/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md index e08af2191..386f21ba7 100644 --- a/translations/en/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md +++ b/translations/en/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md @@ -34,11 +34,11 @@ Add the Camera to the CounterFit app. 1. Click the **Add** button to create the camera. - ![The camera settings](../../../../../translated_images/en/counterfit-create-camera.a5de97f59c0bd3cbe0416d7e89a3cfe86d19fbae05c641c53a91286412af0a34.png) + ![The camera settings](../../../../../translated_images/en/counterfit-create-camera.a5de97f59c0bd3cb.webp) The camera will be created and appear in the sensors list. - ![The camera created](../../../../../translated_images/en/counterfit-camera.001ec52194c8ee5d3f617173da2c79e1df903d10882adc625cbfc493525125d4.png) + ![The camera created](../../../../../translated_images/en/counterfit-camera.001ec52194c8ee5d.webp) ## Program the camera @@ -103,7 +103,7 @@ Program the device. 1. Configure the image that the camera in CounterFit will capture. You can either set the *Source* to *File* and upload an image file, or set the *Source* to *WebCam* to capture images from your webcam. Make sure to click the **Set** button after selecting a picture or your webcam. - ![CounterFit with a file set as the image source, and a web cam set showing a person holding a banana in a preview of the webcam](../../../../../translated_images/en/counterfit-camera-options.eb3bd5150a8e7dffbf24bc5bcaba0cf2cdef95fbe6bbe393695d173817d6b8df.png) + ![CounterFit with a file set as the image source, and a web cam set showing a person holding a banana in a preview of the webcam](../../../../../translated_images/en/counterfit-camera-options.eb3bd5150a8e7dff.webp) 1. An image will be captured and saved as `image.jpg` in the current folder. You will see this file in the VS Code explorer. Select the file to view the image. If it needs rotation, update the `camera.rotation = 0` line as necessary and take another picture. diff --git a/translations/en/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md b/translations/en/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md index a378bb6e1..600980bfb 100644 --- a/translations/en/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md +++ b/translations/en/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md @@ -16,7 +16,7 @@ The ArduCam doesn't have a Grove socket; instead, it connects to both the SPI an Connect the camera. -![An ArduCam sensor](../../../../../translated_images/en/arducam.20e4e4cbb268296570b5914e20d6c349fc42ddac9ed4e1b9deba2188204eebae.png) +![An ArduCam sensor](../../../../../translated_images/en/arducam.20e4e4cbb2682965.webp) 1. The pins on the base of the ArduCam need to be connected to the GPIO pins on the Wio Terminal. To make it easier to find the right pins, attach the GPIO pin sticker that comes with the Wio Terminal around the pins: @@ -35,7 +35,7 @@ Connect the camera. | SDA | 3 (I2C1_SDA) | I2C Serial Data | | SCL | 5 (I2C1_SCL) | I2C Serial Clock | - ![The Wio Terminal connected to the ArduCam with jumper wires](../../../../../translated_images/en/arducam-wio-terminal-connections.a4d5a4049bdb5ab800a2877389fc6ecf5e4ff307e6451ff56c517e6786467d0a.png) + ![The Wio Terminal connected to the ArduCam with jumper wires](../../../../../translated_images/en/arducam-wio-terminal-connections.a4d5a4049bdb5ab8.webp) The GND and VCC connections provide a 5V power supply to the ArduCam. It runs at 5V, unlike Grove sensors that run at 3V. This power comes directly from the USB-C connection that powers the device. @@ -456,7 +456,7 @@ The Wio Terminal only supports microSD cards of up to 16GB in size. If you have 1. Power off the microSD card and eject it by pushing it in slightly and releasing it, and it will pop out. You may need to use a thin tool to do this. Plug the microSD card into your computer to view the images. - ![A picture of a banana captured using the ArduCam](../../../../../translated_images/en/banana-arducam.be1b32d4267a8194b0fd042362e56faa431da9cd4af172051b37243ea9be0256.jpg) + ![A picture of a banana captured using the ArduCam](../../../../../translated_images/en/banana-arducam.be1b32d4267a8194.webp) 💁 It may take a few images for the white balance of the camera to adjust itself. You will notice this based on the color of the images captured, the first few may look off color. You can always work around this by changing the code to capture a few images that are ignored in the `setup` function. diff --git a/translations/en/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md b/translations/en/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md index e43b07188..5b9298187 100644 --- a/translations/en/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md +++ b/translations/en/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md @@ -208,7 +208,7 @@ These certificates contain public keys and don't need to be kept secure. You can You will be able to see the image that was taken, and these values in the **Predictions** tab in Custom Vision. - ![A banana in custom vision predicted ripe at 56.8% and unripe at 43.1%](../../../../../translated_images/en/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![A banana in custom vision predicted ripe at 56.8% and unripe at 43.1%](../../../../../translated_images/en/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 You can find this code in the [code-classify/wio-terminal](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/wio-terminal) folder. diff --git a/translations/en/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md b/translations/en/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md index 4a1ef2f08..e5a346f76 100644 --- a/translations/en/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md +++ b/translations/en/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md @@ -1,6 +1,6 @@ # Run your fruit detector on the edge -![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-17.bc333c3c35ba8e42cce666cfffa82b915f787f455bd94e006aea2b6f2722421a.jpg) +![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-17.bc333c3c35ba8e42.webp) > Sketchnote by [Nitya Narasimhan](https://github.com/nitya). Click the image for a larger version. @@ -33,11 +33,11 @@ This lesson will cover: Edge computing involves processing IoT data as close as possible to where the data is generated. Instead of processing data in the cloud, the computation is moved to the edge of the cloud—your internal network. -![An architecture diagram showing internet services in the cloud and IoT devices on a local network](../../../../../translated_images/en/cloud-without-edge.b4da641f6022c95ed6b91fde8b5323abd2f94e0d52073ad54172ae8f5dac90e9.png) +![An architecture diagram showing internet services in the cloud and IoT devices on a local network](../../../../../translated_images/en/cloud-without-edge.b4da641f6022c95e.webp) In previous lessons, your devices collected data and sent it to the cloud for analysis, running serverless functions or AI models in the cloud. -![An architecture diagram showing IoT devices on a local network connecting to edge devices, and those edge devices connect to the cloud](../../../../../translated_images/en/cloud-with-edge.1e26462c62c126fe150bd15a5714ddf0be599f09bacbad08b85be02b76ea1ae1.png) +![An architecture diagram showing IoT devices on a local network connecting to edge devices, and those edge devices connect to the cloud](../../../../../translated_images/en/cloud-with-edge.1e26462c62c126fe.webp) Edge computing shifts some cloud services to computers running on the same network as the IoT devices, communicating with the cloud only when necessary. For example, you can run AI models on edge devices to analyze fruit ripeness and send only analytics, such as the count of ripe versus unripe fruit, back to the cloud. @@ -85,7 +85,7 @@ For IoT systems, a hybrid approach often works best, combining cloud and edge co ## Azure IoT Edge -![The Azure IoT Edge logo](../../../../../translated_images/en/azure-iot-edge-logo.c1c076749b5cba2e8755262fadc2f19ca1146b948d76990b1229199ac2292d79.png) +![The Azure IoT Edge logo](../../../../../translated_images/en/azure-iot-edge-logo.c1c076749b5cba2e.webp) Azure IoT Edge is a service that helps you move workloads from the cloud to the edge. You can set up a device as an edge device and deploy code to it from the cloud, enabling a mix of cloud and edge capabilities. @@ -99,7 +99,7 @@ IoT Edge is integrated with IoT Hub, allowing you to manage edge devices with th IoT Edge runs code from *containers*—self-contained applications isolated from other software on your computer. A container acts like a separate computer within your computer, running its own software, services, and applications. Containers typically can't access anything on your computer unless explicitly allowed, such as sharing a folder. Services in the container are exposed via open ports that you can connect to or share on your network. -![A web request redirected to a container](../../../../../translated_images/en/container-web-browser.4ee81dd4f0d8838ce622b2a0d600b6a4322b5d4fe43159facd87b7b34f84d66a.png) +![A web request redirected to a container](../../../../../translated_images/en/container-web-browser.4ee81dd4f0d8838c.webp) For example, a container running a website on port 80 (the default HTTP port) can expose the site on your computer's port 80. @@ -195,11 +195,11 @@ After training the model, it needs to be exported as a container. ## Prepare your container for deployment -![Containers are built then pushed to a container registry, then deployed from the container registry to an edge device using IoT Edge](../../../../../translated_images/en/container-edge-flow.c246050dd60ceefdb6ace026a4ce5c6aa4112bb5898ae23fbb2ab4be29ae3e1b.png) +![Containers are built then pushed to a container registry, then deployed from the container registry to an edge device using IoT Edge](../../../../../translated_images/en/container-edge-flow.c246050dd60ceefd.webp) After downloading your model, it needs to be built into a container and pushed to a container registry—an online location for storing containers. IoT Edge can then pull the container from the registry and deploy it to your device. -![The Azure Container Registry logo](../../../../../translated_images/en/azure-container-registry-logo.09494206991d4b295025ebff7d4e2900325e527a59184ffbc8464b6ab59654be.png) +![The Azure Container Registry logo](../../../../../translated_images/en/azure-container-registry-logo.09494206991d4b29.webp) The container registry used in this lesson is Azure Container Registry. This service is not free, so to save costs, ensure you [clean up your project](../../../clean-up.md) after completing the lesson. diff --git a/translations/en/4-manufacturing/lessons/4-trigger-fruit-detector/README.md b/translations/en/4-manufacturing/lessons/4-trigger-fruit-detector/README.md index c8fe897f0..c06ba017b 100644 --- a/translations/en/4-manufacturing/lessons/4-trigger-fruit-detector/README.md +++ b/translations/en/4-manufacturing/lessons/4-trigger-fruit-detector/README.md @@ -1,6 +1,6 @@ # Trigger fruit quality detection from a sensor -![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-18.92c32ed1d354caa5a54baa4032cf0b172d4655e8e326ad5d46c558a0def15365.jpg) +![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-18.92c32ed1d354caa5.webp) > Sketchnote by [Nitya Narasimhan](https://github.com/nitya). Click the image for a larger version. @@ -39,7 +39,7 @@ IoT applications can be described as *things* (devices) sending data that genera ### Reference IoT architecture -![A reference IoT architecture](../../../../../translated_images/en/iot-reference-architecture.2278b98b55c6d4e89bde18eada3688d893861d43507641804dd2f9d3079cfaa0.png) +![A reference IoT architecture](../../../../../translated_images/en/iot-reference-architecture.2278b98b55c6d4e8.webp) The diagram above illustrates a reference IoT architecture. @@ -49,7 +49,7 @@ The diagram above illustrates a reference IoT architecture. * **Insights** are derived from serverless applications or analytics performed on stored data. * **Actions** include commands sent to devices or data visualizations that help humans make decisions. -![A reference IoT architecture](../../../../../translated_images/en/iot-reference-architecture-azure.0b8d2161af924cb18ae48a8558a19541cca47f27264851b5b7e56d7b8bb372ac.png) +![A reference IoT architecture](../../../../../translated_images/en/iot-reference-architecture-azure.0b8d2161af924cb1.webp) The diagram above shows some of the components and services covered in these lessons and how they fit into a reference IoT architecture. @@ -89,7 +89,7 @@ You need to create a system where fruit is detected as it arrives on the conveyo ### Prototyping your application -![A reference IoT architecture for fruit quality checking](../../../../../translated_images/en/iot-reference-architecture-fruit-quality.cc705f121c3b6fa71c800d9630935ac34bc08223a04601e35f41d5e9b5dd5207.png) +![A reference IoT architecture for fruit quality checking](../../../../../translated_images/en/iot-reference-architecture-fruit-quality.cc705f121c3b6fa7.webp) The diagram above shows a reference architecture for this prototype application. @@ -124,7 +124,7 @@ Follow the relevant guide to use a proximity sensor to detect an object with you The prototype fruit detector involves multiple components communicating with each other. -![The components communicating with each other](../../../../../translated_images/en/fruit-quality-detector-message-flow.adf2a65da8fd8741ac7af11361574de89adc126785d67606bb4d2ec00467e380.png) +![The components communicating with each other](../../../../../translated_images/en/fruit-quality-detector-message-flow.adf2a65da8fd8741.webp) * A proximity sensor measures the distance to a piece of fruit and sends this data to IoT Hub. * A command to control the camera is sent from IoT Hub to the camera device. diff --git a/translations/en/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md b/translations/en/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md index be1c8f368..455b56bb1 100644 --- a/translations/en/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md +++ b/translations/en/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md @@ -20,7 +20,7 @@ The Grove time of flight sensor can be connected to the Raspberry Pi. Connect the time of flight sensor. -![A grove time of flight sensor](../../../../../translated_images/en/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![A grove time of flight sensor](../../../../../translated_images/en/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. Insert one end of a Grove cable into the socket on the time of flight sensor. It will only fit in one way. diff --git a/translations/en/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md b/translations/en/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md index 580058027..c53f42bd7 100644 --- a/translations/en/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md +++ b/translations/en/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md @@ -36,11 +36,11 @@ Add the distance sensor to the CounterFit app. 1. Click the **Add** button to create the distance sensor. - ![The distance sensor settings](../../../../../translated_images/en/counterfit-create-distance-sensor.967c9fb98f27888d95920c9784d004c972490eb71f70397fe13bd70a79a879a3.png) + ![The distance sensor settings](../../../../../translated_images/en/counterfit-create-distance-sensor.967c9fb98f27888d.webp) The distance sensor will be created and appear in the sensors list. - ![The distance sensor created](../../../../../translated_images/en/counterfit-distance-sensor.079eefeeea0b68afc36431ce8fcbe2f09a7e4916ed1cd5cb30e696db53bc18fa.png) + ![The distance sensor created](../../../../../translated_images/en/counterfit-distance-sensor.079eefeeea0b68af.webp) ## Program the distance sensor diff --git a/translations/en/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md b/translations/en/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md index c5655a169..a58a5d861 100644 --- a/translations/en/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md +++ b/translations/en/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md @@ -20,7 +20,7 @@ The Grove time of flight sensor can be connected to the Wio Terminal. Connect the time of flight sensor. -![A grove time of flight sensor](../../../../../translated_images/en/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![A grove time of flight sensor](../../../../../translated_images/en/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. Insert one end of a Grove cable into the socket on the time of flight sensor. It will only fit one way. diff --git a/translations/en/5-retail/lessons/1-train-stock-detector/README.md b/translations/en/5-retail/lessons/1-train-stock-detector/README.md index 03d768aed..7f346418b 100644 --- a/translations/en/5-retail/lessons/1-train-stock-detector/README.md +++ b/translations/en/5-retail/lessons/1-train-stock-detector/README.md @@ -1,6 +1,6 @@ # Train a stock detector -![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-19.cf6973cecadf080c4b526310620dc4d6f5994c80fb0139c6f378cc9ca2d435cd.jpg) +![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-19.cf6973cecadf080c.webp) > Sketchnote by [Nitya Narasimhan](https://github.com/nitya). Click the image for a larger version. @@ -36,7 +36,7 @@ Object detection involves identifying objects in images using AI. Unlike the ima Image classification is about categorizing an image as a whole—determining the probabilities that the entire image matches each tag. The model returns probabilities for every tag it was trained on. -![Image classification of cashew nuts and tomato paste](../../../../../translated_images/en/image-classifier-cashews-tomato.bc2e16ab8f05cf9ac0f59f73e32efc4227f9a5b601b90b2c60f436694547a965.png) +![Image classification of cashew nuts and tomato paste](../../../../../translated_images/en/image-classifier-cashews-tomato.bc2e16ab8f05cf9a.webp) In the example above, two images are classified using a model trained to identify tubs of cashew nuts or cans of tomato paste. The first image is a tub of cashew nuts, and the classifier provides the following results: @@ -60,7 +60,7 @@ When you use the model to make predictions, instead of receiving a list of tags > 🎓 *Bounding boxes* are the rectangles drawn around an object. -![Object detection of cashew nuts and tomato paste](../../../../../translated_images/en/object-detector-cashews-tomato.1af7c26686b4db0e709754aeb196f4e73271f54e2085db3bcccb70d4a0d84d97.png) +![Object detection of cashew nuts and tomato paste](../../../../../translated_images/en/object-detector-cashews-tomato.1af7c26686b4db0e.webp) The image above contains both a tub of cashew nuts and three cans of tomato paste. The object detector identifies the cashew nuts, returning the bounding box around the cashew nuts along with the probability (97.6%) that the bounding box contains the object. The detector also identifies three cans of tomato paste, providing separate bounding boxes for each detected can, along with the probability for each. @@ -111,7 +111,7 @@ You can train an object detector using Custom Vision, similar to how you trained When creating your project, use the `stock-detector-training` resource you created earlier. Select the *Object Detection* project type and the *Products on Shelves* domain. - ![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](../../../../../translated_images/en/custom-vision-create-object-detector-project.32d4fb9aa8e7e7375f8a799bfce517aca970f2cb65e42d4245c5e635c734ab29.png) + ![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](../../../../../translated_images/en/custom-vision-create-object-detector-project.32d4fb9aa8e7e737.webp) ✅ The *Products on Shelves* domain is specifically designed for detecting stock on store shelves. Learn more about the different domains in the [Select a domain documentation on Microsoft Docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/select-domain?WT.mc_id=academic-17441-jabenn#object-detection). @@ -131,11 +131,11 @@ To train your model, you’ll need a set of images containing the objects you wa 1. Follow the [Upload and tag images section of the Build an object detector quickstart on the Microsoft docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/get-started-build-detector?WT.mc_id=academic-17441-jabenn#upload-and-tag-images) to upload your training images. Create relevant tags for the objects you want to detect. - ![The upload dialogs showing the upload of ripe and unripe banana pictures](../../../../../translated_images/en/image-upload-object-detector.77c7892c3093cb59b79018edecd678749a75d71a099bc8a2d2f2f76320f88a5b.png) + ![The upload dialogs showing the upload of ripe and unripe banana pictures](../../../../../translated_images/en/image-upload-object-detector.77c7892c3093cb59.webp) When drawing bounding boxes around objects, keep them tight around the object. Tagging all the images can take time, but the tool will suggest bounding boxes, speeding up the process. - ![Tagging some tomato paste](../../../../../translated_images/en/object-detector-tag-tomato-paste.f47c362fb0f0eb582f3bc68cf3855fb43a805106395358d41896a269c210b7b4.png) + ![Tagging some tomato paste](../../../../../translated_images/en/object-detector-tag-tomato-paste.f47c362fb0f0eb58.webp) > 💁 If you have more than 15 images per object, you can train after tagging 15 images and use the **Suggested tags** feature. This uses the trained model to detect objects in untagged images. You can confirm or reject the suggested bounding boxes, saving time. @@ -153,7 +153,7 @@ Once your object detector is trained, you can test it by providing new images to 1. Use the **Quick Test** button to upload testing images and verify that the objects are detected. Use the testing images you prepared earlier, not the ones used for training. - ![3 cans of tomato paste detected with probabilities of 38%, 35.5% and 34.6%](../../../../../translated_images/en/object-detector-detected-tomato-paste.52656fe87af4c37b4ee540526d63e73ed075da2e54a9a060aa528e0c562fb1b6.png) + ![3 cans of tomato paste detected with probabilities of 38%, 35.5% and 34.6%](../../../../../translated_images/en/object-detector-detected-tomato-paste.52656fe87af4c37b.webp) 1. Test all the available testing images and observe the probabilities. diff --git a/translations/en/5-retail/lessons/2-check-stock-device/README.md b/translations/en/5-retail/lessons/2-check-stock-device/README.md index 18699b0dd..b9dc9efb9 100644 --- a/translations/en/5-retail/lessons/2-check-stock-device/README.md +++ b/translations/en/5-retail/lessons/2-check-stock-device/README.md @@ -1,6 +1,6 @@ # Check stock from an IoT device -![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-20.0211df9551a8abb300fc8fcf7dc2789468dea2eabe9202273ac077b0ba37f15e.jpg) +![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-20.0211df9551a8abb3.webp) > Sketchnote by [Nitya Narasimhan](https://github.com/nitya). Click the image for a larger version. @@ -62,7 +62,7 @@ Iterations are published through the Custom Vision portal. 1. Click the **Publish** button for the iteration. - ![The publish button](../../../../../translated_images/en/custom-vision-object-detector-publish-button.34ee379fc650ccb9856c3868d0003f413b9529f102fc73c37168c98d721cc293.png) + ![The publish button](../../../../../translated_images/en/custom-vision-object-detector-publish-button.34ee379fc650ccb9.webp) 1. In the *Publish Model* dialog, set the *Prediction resource* to the `stock-detector-prediction` resource you created in the last lesson. Keep the name as `Iteration2`, and click the **Publish** button. @@ -76,7 +76,7 @@ Iterations are published through the Custom Vision portal. Also, copy the *Prediction-Key* value. This secure key is required to access the model. Only applications with this key can use the model; others will be denied access. - ![The prediction API dialog showing the URL and key](../../../../../translated_images/en/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![The prediction API dialog showing the URL and key](../../../../../translated_images/en/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ When a new iteration is published, it will have a different name. How would you update the IoT device to use the new iteration? @@ -95,7 +95,7 @@ When you use the object detector, it not only identifies objects with their tags In the **Predictions** tab of Custom Vision, the results of a prediction include bounding boxes drawn on the image sent for analysis. -![4 cans of tomato paste on a shelf with predictions for the 4 detections of 35.8%, 33.5%, 25.7% and 16.6%](../../../../../translated_images/en/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) +![4 cans of tomato paste on a shelf with predictions for the 4 detections of 35.8%, 33.5%, 25.7% and 16.6%](../../../../../translated_images/en/custom-vision-stock-prediction.942266ab1bcca341.webp) In the image above, 4 cans of tomato paste were detected. Red rectangles indicate the bounding boxes for each detected object. @@ -103,7 +103,7 @@ In the image above, 4 cans of tomato paste were detected. Red rectangles indicat Bounding boxes are defined by four values: top, left, height, and width. These values range from 0 to 1, representing percentages of the image's dimensions. The origin (0,0) is the top-left corner of the image. The top value indicates the distance from the top, while the bottom of the bounding box is calculated as the top plus the height. -![A bounding box around a can of tomato paste](../../../../../translated_images/en/bounding-box.1420a7ea0d3d15f71e1ffb5cf4b2271d184fac051f990abc541975168d163684.png) +![A bounding box around a can of tomato paste](../../../../../translated_images/en/bounding-box.1420a7ea0d3d15f7.webp) In the image above, which is 600 pixels wide and 800 pixels tall, the bounding box starts 320 pixels down, giving a top value of 0.4 (800 x 0.4 = 320). From the left, it starts 240 pixels across, giving a left value of 0.4 (600 x 0.4 = 240). The height is 240 pixels, giving a height value of 0.3 (800 x 0.3 = 240). The width is 120 pixels, giving a width value of 0.2 (600 x 0.2 = 120). @@ -118,7 +118,7 @@ Using percentage values ensures that the bounding box scales proportionally, reg Bounding boxes and probabilities can be used to evaluate detection accuracy. For example, if overlapping objects are detected, your code can analyze the bounding boxes and ignore improbable detections. -![Two bounding boxes overlapping a can of tomato paste](../../../../../translated_images/en/overlap-object-detection.d431e03cae75072a2760430eca7f2c5fdd43045bfd72dadcbf12711f7cd6c2ae.png) +![Two bounding boxes overlapping a can of tomato paste](../../../../../translated_images/en/overlap-object-detection.d431e03cae75072a.webp) In the example above, one bounding box predicts a can of tomato paste with 78.3% confidence. A second, smaller bounding box inside the first predicts the same object with 64.3% confidence. Your code can identify the overlap and discard the less probable detection. diff --git a/translations/en/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md b/translations/en/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md index 0e36854d0..8d7e45ce5 100644 --- a/translations/en/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md +++ b/translations/en/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md @@ -67,7 +67,7 @@ The code you used to classify images is very similar to the code used to detect You will be able to see the image that was taken and these values in the **Predictions** tab in Custom Vision. - ![4 cans of tomato paste on a shelf with predictions for the 4 detections of 35.8%, 33.5%, 25.7% and 16.6%](../../../../../translated_images/en/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![4 cans of tomato paste on a shelf with predictions for the 4 detections of 35.8%, 33.5%, 25.7% and 16.6%](../../../../../translated_images/en/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 You can find this code in the [code-detect/pi](../../../../../5-retail/lessons/2-check-stock-device/code-detect/pi) or [code-detect/virtual-iot-device](../../../../../5-retail/lessons/2-check-stock-device/code-detect/virtual-iot-device) folder. diff --git a/translations/en/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md b/translations/en/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md index 71857186a..848a55c74 100644 --- a/translations/en/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md +++ b/translations/en/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md @@ -95,7 +95,7 @@ The code used for classifying images is very similar to the code for detecting o You will also be able to view the captured image and these values in the **Predictions** tab in Custom Vision. - ![4 cans of tomato paste on a shelf with predictions for the 4 detections of 35.8%, 33.5%, 25.7% and 16.6%](../../../../../translated_images/en/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![4 cans of tomato paste on a shelf with predictions for the 4 detections of 35.8%, 33.5%, 25.7% and 16.6%](../../../../../translated_images/en/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 You can find this code in the [code-detect/wio-terminal](../../../../../5-retail/lessons/2-check-stock-device/code-detect/wio-terminal) folder. diff --git a/translations/en/6-consumer/lessons/1-speech-recognition/README.md b/translations/en/6-consumer/lessons/1-speech-recognition/README.md index 17e6f1d7f..d93724e73 100644 --- a/translations/en/6-consumer/lessons/1-speech-recognition/README.md +++ b/translations/en/6-consumer/lessons/1-speech-recognition/README.md @@ -1,6 +1,6 @@ # Recognize speech with an IoT device -![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-21.e34de51354d6606fb5ee08d8c89d0222eea0a2a7aaf744a8805ae847c4f69dc4.jpg) +![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-21.e34de51354d6606f.webp) > Sketchnote by [Nitya Narasimhan](https://github.com/nitya). Click the image for a larger version. @@ -51,7 +51,7 @@ Microphones come in various types: Dynamic microphones don't require external power; the electrical signal is generated entirely by the microphone. - ![Patti Smith singing into a Shure SM58 (dynamic cardioid type) microphone](../../../../../translated_images/en/dynamic-mic.8babac890a2d80dfb0874b5bf37d4b851fe2aeb9da6fd72945746176978bf3bb.jpg) + ![Patti Smith singing into a Shure SM58 (dynamic cardioid type) microphone](../../../../../translated_images/en/dynamic-mic.8babac890a2d80df.webp) * Ribbon - Ribbon microphones are similar to dynamic microphones but use a metal ribbon instead of a diaphragm. The ribbon moves within a magnetic field, generating an electrical current. Like dynamic microphones, ribbon microphones don't need external power. @@ -59,11 +59,11 @@ Microphones come in various types: * Condenser - Condenser microphones feature a thin metal diaphragm and a fixed metal backplate. Electricity is applied to both components, and as the diaphragm vibrates, the static charge between the plates changes, creating a signal. Condenser microphones require external power, known as *Phantom power*. - ![C451B small-diaphragm condenser microphone by AKG Acoustics](../../../../../translated_images/en/condenser-mic.6f6ed5b76ca19e0ec3fd0c544601542d4479a6cb7565db336de49fbbf69f623e.jpg) + ![C451B small-diaphragm condenser microphone by AKG Acoustics](../../../../../translated_images/en/condenser-mic.6f6ed5b76ca19e0e.webp) * MEMS - Microelectromechanical systems microphones, or MEMS, are microphones built on a chip. They have a pressure-sensitive diaphragm etched onto a silicon chip and operate similarly to condenser microphones. These microphones are extremely small and can be integrated into circuits. - ![A MEMS microphone on a circuit board](../../../../../translated_images/en/mems-microphone.80574019e1f5e4d9ee72fed720ecd25a39fc2969c91355d17ebb24ba4159e4c4.png) + ![A MEMS microphone on a circuit board](../../../../../translated_images/en/mems-microphone.80574019e1f5e4d9.webp) In the image above, the chip labeled **LEFT** is a MEMS microphone, with a tiny diaphragm less than a millimeter wide. @@ -159,7 +159,7 @@ To simplify the process and avoid the complexity of training and using a wake wo ## Convert speech to text -![Speech services logo](../../../../../translated_images/en/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![Speech services logo](../../../../../translated_images/en/azure-speech-logo.a1f08c4befb0159f.webp) Just like with image classification in an earlier project, there are pre-built AI services that can take speech as an audio file and convert it to text. One such service is the Speech Service, part of the Cognitive Services suite of pre-built AI services you can integrate into your applications. diff --git a/translations/en/6-consumer/lessons/1-speech-recognition/pi-audio.md b/translations/en/6-consumer/lessons/1-speech-recognition/pi-audio.md index d7e9033c6..92757b62b 100644 --- a/translations/en/6-consumer/lessons/1-speech-recognition/pi-audio.md +++ b/translations/en/6-consumer/lessons/1-speech-recognition/pi-audio.md @@ -16,13 +16,13 @@ The button can be connected to the Grove base hat. #### Task - connect the button -![A grove button](../../../../../translated_images/en/grove-button.a70cfbb809a8563681003250cf5b06d68cdcc68624f9e2f493d5a534ae2da1e5.png) +![A grove button](../../../../../translated_images/en/grove-button.a70cfbb809a85636.webp) 1. Insert one end of a Grove cable into the socket on the button module. It will only fit one way. 1. With the Raspberry Pi powered off, connect the other end of the Grove cable to the digital socket labeled **D5** on the Grove Base hat attached to the Pi. This socket is the second from the left in the row of sockets next to the GPIO pins. -![The grove button connected to socket D5](../../../../../translated_images/en/pi-button.c7a1a4f55943341ce1baf1057658e9a205804d4131d258e820c93f951df0abf3.png) +![The grove button connected to socket D5](../../../../../translated_images/en/pi-button.c7a1a4f55943341c.webp) ## Capture audio diff --git a/translations/en/6-consumer/lessons/1-speech-recognition/pi-microphone.md b/translations/en/6-consumer/lessons/1-speech-recognition/pi-microphone.md index ef83a0550..e3ec4bba2 100644 --- a/translations/en/6-consumer/lessons/1-speech-recognition/pi-microphone.md +++ b/translations/en/6-consumer/lessons/1-speech-recognition/pi-microphone.md @@ -34,7 +34,7 @@ You'll need to connect and configure both the microphone and speakers. 1. If you're using the ReSpeaker 2-Mics Pi HAT, remove the Grove base hat and attach the ReSpeaker hat in its place. - ![A Raspberry Pi with a ReSpeaker hat](../../../../../translated_images/en/pi-respeaker-hat.f00fabe7dd039a93e2e0aa0fc946c9af0c6a9eb17c32fa1ca097fb4e384f69f0.png) + ![A Raspberry Pi with a ReSpeaker hat](../../../../../translated_images/en/pi-respeaker-hat.f00fabe7dd039a93.webp) You'll need a Grove button later in this lesson, but since the ReSpeaker hat has a built-in Grove button, the Grove base hat is unnecessary. diff --git a/translations/en/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md b/translations/en/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md index 15ec8c4f4..b5fdddbe7 100644 --- a/translations/en/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md +++ b/translations/en/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md @@ -10,7 +10,7 @@ The built-in microphone captures an analog signal, which is converted into a dig ✅ Learn more about DMA on the [direct memory access page on Wikipedia](https://wikipedia.org/wiki/Direct_memory_access). -![Audio from the mic goes to an ADC then to the DMAC. This writes to one buffer. When this buffer is full, it is processed and the DMAC writes to a second buffer](../../../../../translated_images/en/dmac-adc-buffers.4509aee49145c90bc2e1be472b8ed2ddfcb2b6a81ad3e559114aca55f5fff759.png) +![Audio from the mic goes to an ADC then to the DMAC. This writes to one buffer. When this buffer is full, it is processed and the DMAC writes to a second buffer](../../../../../translated_images/en/dmac-adc-buffers.4509aee49145c90b.webp) The DMAC can record audio from the ADC at fixed intervals, such as 16,000 times per second for 16KHz audio. It writes this data to a pre-allocated memory buffer, and when the buffer is full, it notifies your code to process the data. Using a single buffer can cause delays in recording, but you can set up multiple buffers. The DMAC writes to buffer 1, and when it’s full, it notifies your code to process buffer 1 while it writes to buffer 2. When buffer 2 is full, it notifies your code and switches back to buffer 1. As long as you process each buffer faster than the time it takes to fill one, no data will be lost. diff --git a/translations/en/6-consumer/lessons/3-spoken-feedback/README.md b/translations/en/6-consumer/lessons/3-spoken-feedback/README.md index d334683fb..15de2c81d 100644 --- a/translations/en/6-consumer/lessons/3-spoken-feedback/README.md +++ b/translations/en/6-consumer/lessons/3-spoken-feedback/README.md @@ -1,6 +1,6 @@ # Set a timer and provide spoken feedback -![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-23.f38483e1d4df4828990d3f02d60e46c978b075d384ae7cb4f7bab738e107c850.jpg) +![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-23.f38483e1d4df4828.webp) > Sketchnote by [Nitya Narasimhan](https://github.com/nitya). Click the image for a larger version. diff --git a/translations/en/6-consumer/lessons/4-multiple-language-support/README.md b/translations/en/6-consumer/lessons/4-multiple-language-support/README.md index 51f6b252b..c2fc298d3 100644 --- a/translations/en/6-consumer/lessons/4-multiple-language-support/README.md +++ b/translations/en/6-consumer/lessons/4-multiple-language-support/README.md @@ -1,6 +1,6 @@ # Support multiple languages -![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-24.4246968ed058510ab275052e87ef9aa89c7b2f938915d103c605c04dc6cd5bb7.jpg) +![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-24.4246968ed058510a.webp) > Sketchnote by [Nitya Narasimhan](https://github.com/nitya). Click the image for a larger version. @@ -74,7 +74,7 @@ Several AI services can be integrated into applications to translate speech and ### Cognitive services Speech service -![The speech service logo](../../../../../translated_images/en/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![The speech service logo](../../../../../translated_images/en/azure-speech-logo.a1f08c4befb0159f.webp) The speech service you've used in previous lessons includes translation capabilities for speech recognition. When recognizing speech, you can request the text in the original language and other languages. @@ -82,7 +82,7 @@ The speech service you've used in previous lessons includes translation capabili ### Cognitive services Translator service -![The translator service logo](../../../../../translated_images/en/azure-translator-logo.c6ed3a4a433edfd2f11577eca105412c50b8396b194cbbd730723dd1d0793bcd.png) +![The translator service logo](../../../../../translated_images/en/azure-translator-logo.c6ed3a4a433edfd2.webp) The Translator service is a dedicated translation tool that can translate text from one language to one or more target languages. It offers additional features like profanity masking and custom translations for specific terms or phrases. diff --git a/translations/en/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md b/translations/en/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md index 23842d705..c7c6e6e8e 100644 --- a/translations/en/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md +++ b/translations/en/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md @@ -25,7 +25,7 @@ The speech service REST API doesn't support direct translations. Instead, you ca > > For example, if you train LUIS in English but want to use French as the user language, you can translate sentences like "set a 2 minute and 27 second timer" from English to French using Bing Translate, then use the **Listen translation** button to speak the translation into your microphone. > - > ![The listen translation button on Bing translate](../../../../../translated_images/en/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![The listen translation button on Bing translate](../../../../../translated_images/en/bing-translate.348aa796d6efe2a9.webp) 1. Add the translator API key below the `speech_api_key`: diff --git a/translations/en/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md b/translations/en/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md index 721c489c5..b77b64b5d 100644 --- a/translations/en/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md +++ b/translations/en/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md @@ -37,7 +37,7 @@ The speech service can process speech and not only convert it into text in the s > > For example, if you train LUIS in English but want to use French as the user language, you can translate sentences like "set a 2 minute and 27 second timer" from English into French using Bing Translate, then use the **Listen translation** button to speak the translation into your microphone. > - > ![The listen translation button on Bing translate](../../../../../translated_images/en/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![The listen translation button on Bing translate](../../../../../translated_images/en/bing-translate.348aa796d6efe2a9.webp) 1. Replace the `recognizer_config` and `recognizer` declarations with the following: diff --git a/translations/en/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md b/translations/en/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md index ead45a43c..367837649 100644 --- a/translations/en/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md +++ b/translations/en/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md @@ -105,7 +105,7 @@ The speech service REST API doesn't support direct translations. Instead, you ca > > For example, if you train LUIS in English but want to use French as the user language, you can translate sentences like "set a 2 minute and 27 second timer" from English into French using Bing Translate, then use the **Listen translation** button to speak the translation into your microphone. > - > ![The listen translation button on Bing translate](../../../../../translated_images/en/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![The listen translation button on Bing translate](../../../../../translated_images/en/bing-translate.348aa796d6efe2a9.webp) 1. Add the translator API key and location below the `SPEECH_LOCATION`: diff --git a/translations/en/README.md b/translations/en/README.md index 4791973a4..69d126a72 100644 --- a/translations/en/README.md +++ b/translations/en/README.md @@ -21,7 +21,7 @@ If you have product feedback or errors while building visit: Follow these steps to get started using these resources: 1. **Fork the Repository**: Click [![GitHub forks](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) 2. **Clone the Repository**: `git clone https://github.com/microsoft/IoT-For-Beginners.git` -3. [**Join The Microsoft Foundry Discord and meet experts and fellow developers**](https://discord.com/invite/ByRwuEEgH4) +3. [**Join The Microsot Foundry Discord and meet experts and fellow developers**](https://discord.com/invite/ByRwuEEgH4) ### 🌐 Multi-Language Support @@ -29,16 +29,26 @@ Follow these steps to get started using these resources: #### Supported via GitHub Action (Automated & Always Up-to-Date) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) > **Prefer to Clone Locally?** - +> > This repository includes 50+ language translations which significantly increases the download size. To clone without translations, use sparse checkout: +> +> **Bash / macOS / Linux:** > ```bash > git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git > cd IoT-For-Beginners > git sparse-checkout set --no-cone '/*' '!translations' '!translated_images' > ``` +> +> **CMD (Windows):** +> ```cmd +> git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git +> cd IoT-For-Beginners +> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" +> ``` +> > This gives you everything you need to complete the course with a much faster download. @@ -85,8 +95,8 @@ In addition, a low-stakes quiz before a class sets the intention of the student Each project is based around real-world hardware available to students and hobbyists. Each project looks into the specific project domain, providing relevant background knowledge. To be a successful developer it helps to understand the domain in which you are solving problems, providing this background knowledge allows students to think about their IoT solutions and learnings in the context of the kind of real-world problem that they might be asked to solve as an IoT developer. Students learn the 'why' of the solutions they are building, and get an appreciation of the end user. ## Hardware - We have two choices of IoT hardware to use for the projects depending on personal preference, programming language knowledge or preferences, learning goals and availability. We have also provided a 'virtual hardware' version for those who don't have access to hardware, or want to learn more before committing to a purchase. You can read more and find a 'shopping list' on the [hardware page](./hardware.md), including links to buy complete kits from our friends at Seeed Studio. + > 💁 Find our [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), and [Translation](TRANSLATIONS.md) guidelines. We welcome your constructive feedback! > > 🔧 Having issues? Check out our [Troubleshooting Guide](TROUBLESHOOTING.md) for solutions to common problems. @@ -165,11 +175,12 @@ Our team produces other curricula! Check out: ### LangChain [![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) [![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) - +[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- ### Azure / Edge / MCP / Agents [![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) + [![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) [![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) [![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) @@ -209,5 +220,5 @@ You can find all the attributions for the images used in this curriculum where r **Disclaimer**: -This document has been translated using the AI translation service [Co-op Translator](https://github.com/Azure/co-op-translator). While we strive for accuracy, please be aware that automated translations may contain errors or inaccuracies. The original document in its native language should be considered the authoritative source. For critical information, professional human translation is recommended. We are not liable for any misunderstandings or misinterpretations arising from the use of this translation. +This document has been translated using AI translation service [Co-op Translator](https://github.com/Azure/co-op-translator). While we strive for accuracy, please be aware that automated translations may contain errors or inaccuracies. The original document in its native language should be considered the authoritative source. For critical information, professional human translation is recommended. We are not liable for any misunderstandings or misinterpretations arising from the use of this translation. \ No newline at end of file diff --git a/translations/en/hardware.md b/translations/en/hardware.md index 6f714f832..d893d7ab0 100644 --- a/translations/en/hardware.md +++ b/translations/en/hardware.md @@ -26,7 +26,7 @@ Seeed Studios has kindly made all the hardware available as easy-to-purchase kit **[IoT for beginners with Seeed and Microsoft - Raspberry Pi 4 Starter Kit](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html)** -[![The Raspberry Pi Terminal hardware kit](../../translated_images/en/pi-hardware-kit.26dbadaedb7dd44c73b0131d5d68ea29472ed0a9744f90d5866c6d82f2d16380.png)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) +[![The Raspberry Pi Terminal hardware kit](../../translated_images/en/pi-hardware-kit.26dbadaedb7dd44c.webp)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) ## Arduino diff --git a/translations/es/.co-op-translator.json b/translations/es/.co-op-translator.json index 94719f556..4b9e0eb85 100644 --- a/translations/es/.co-op-translator.json +++ b/translations/es/.co-op-translator.json @@ -738,8 +738,8 @@ "language_code": "es" }, "README.md": { - "original_hash": "3fcc056cd3837e33d2bdf79f9c359fcf", - "translation_date": "2026-01-30T01:02:36+00:00", + "original_hash": "accf69391fa4450eadbf492ca024cccf", + "translation_date": "2026-04-06T15:45:25+00:00", "source_file": "README.md", "language_code": "es" }, diff --git a/translations/es/1-getting-started/lessons/1-introduction-to-iot/README.md b/translations/es/1-getting-started/lessons/1-introduction-to-iot/README.md index df4a6942b..5ca4ed455 100644 --- a/translations/es/1-getting-started/lessons/1-introduction-to-iot/README.md +++ b/translations/es/1-getting-started/lessons/1-introduction-to-iot/README.md @@ -1,6 +1,6 @@ # Introducción a IoT -![Un resumen visual de esta lección](../../../../../translated_images/es/lesson-1.2606670fa61ee904687da5d6fa4e726639d524d064c895117da1b95b9ff6251d.jpg) +![Un resumen visual de esta lección](../../../../../translated_images/es/lesson-1.2606670fa61ee904.webp) > Sketchnote por [Nitya Narasimhan](https://github.com/nitya). Haz clic en la imagen para una versión más grande. diff --git a/translations/es/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md b/translations/es/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md index 15d2f45a4..bd455e007 100644 --- a/translations/es/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md +++ b/translations/es/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md @@ -203,7 +203,7 @@ Como un segundo paso de 'Hola Mundo', ejecutarás la aplicación CounterFit y co La aplicación comenzará a ejecutarse y se abrirá en tu navegador web: - ![La aplicación CounterFit ejecutándose en un navegador](../../../../../translated_images/es/counterfit-first-run.433326358b669b31d0e99c3513cb01bfbb13724d162c99cdcc8f51ecf5f9c779.png) + ![La aplicación CounterFit ejecutándose en un navegador](../../../../../translated_images/es/counterfit-first-run.433326358b669b31.webp) Estará marcada como *Disconnected*, con el LED en la esquina superior derecha apagado. @@ -224,7 +224,7 @@ Como un segundo paso de 'Hola Mundo', ejecutarás la aplicación CounterFit y co 1. En este nuevo terminal, ejecuta el archivo `app.py` como antes. El estado de CounterFit cambiará a **Connected** y el LED se encenderá. - ![CounterFit mostrando como conectado](../../../../../translated_images/es/counterfit-connected.ed30b46d8f79b0921f3fc70be10366e596a89dca3f80c2224a9d9fc98fccf884.png) + ![CounterFit mostrando como conectado](../../../../../translated_images/es/counterfit-connected.ed30b46d8f79b092.webp) > 💁 Puedes encontrar este código en la carpeta [code/virtual-device](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/virtual-device). diff --git a/translations/es/1-getting-started/lessons/2-deeper-dive/README.md b/translations/es/1-getting-started/lessons/2-deeper-dive/README.md index 9a2e17df5..d7a31413d 100644 --- a/translations/es/1-getting-started/lessons/2-deeper-dive/README.md +++ b/translations/es/1-getting-started/lessons/2-deeper-dive/README.md @@ -1,6 +1,6 @@ # Una exploración más profunda en IoT -![Un resumen visual de esta lección](../../../../../translated_images/es/lesson-2.324b0580d620c25e0a24fb7fddfc0b29a846dd4b82c08e7a9466d580ee78ce51.jpg) +![Un resumen visual de esta lección](../../../../../translated_images/es/lesson-2.324b0580d620c25e.webp) > Resumen visual por [Nitya Narasimhan](https://github.com/nitya). Haz clic en la imagen para verla en mayor tamaño. @@ -38,7 +38,7 @@ La parte del **Dispositivo** en IoT se refiere a un aparato que puede interactua Estos dispositivos interactúan con el mundo físico, ya sea utilizando sensores para recopilar datos de su entorno o controlando salidas o actuadores para realizar cambios físicos. Un ejemplo típico es un termostato inteligente: un dispositivo que tiene un sensor de temperatura, un medio para establecer una temperatura deseada como un dial o pantalla táctil, y una conexión a un sistema de calefacción o enfriamiento que puede encenderse cuando la temperatura detectada está fuera del rango deseado. El sensor de temperatura detecta que la habitación está demasiado fría y un actuador enciende la calefacción. -![Un diagrama que muestra la temperatura y un dial como entradas a un dispositivo IoT, y el control de un calentador como salida](../../../../../translated_images/es/basic-thermostat.a923217fd1f37e5a6f3390396a65c22a387419ea2dd17e518ec24315ba6ae9a8.png) +![Un diagrama que muestra la temperatura y un dial como entradas a un dispositivo IoT, y el control de un calentador como salida](../../../../../translated_images/es/basic-thermostat.a923217fd1f37e5a.webp) Existen una gran variedad de dispositivos que pueden actuar como dispositivos IoT, desde hardware dedicado que detecta una sola cosa, hasta dispositivos de propósito general, ¡incluso tu smartphone! Un smartphone puede usar sensores para detectar el mundo que lo rodea y actuadores para interactuar con él, por ejemplo, utilizando un sensor GPS para detectar tu ubicación y un altavoz para darte instrucciones de navegación hacia un destino. @@ -54,7 +54,7 @@ Los dispositivos no siempre se conectan directamente a Internet a través de WiF En el ejemplo de un termostato inteligente, el termostato se conectaría usando WiFi doméstico a un servicio en la nube. Enviaría los datos de temperatura a este servicio en la nube, y desde allí se escribirían en una base de datos que permitiría al propietario verificar las temperaturas actuales y pasadas usando una aplicación en su teléfono. Otro servicio en la nube sabría qué temperatura desea el propietario y enviaría mensajes de vuelta al dispositivo IoT a través del servicio en la nube para indicarle al sistema de calefacción que se encienda o apague. -![Un diagrama que muestra la temperatura y un dial como entradas a un dispositivo IoT, el dispositivo IoT con comunicación bidireccional con la nube, que a su vez tiene comunicación bidireccional con un teléfono, y el control de un calentador como salida del dispositivo IoT](../../../../../translated_images/es/mobile-controlled-thermostat.4a994010473d8d6a52ba68c67e5f02dc8928c717e93ca4b9bc55525aa75bbb60.png) +![Un diagrama que muestra la temperatura y un dial como entradas a un dispositivo IoT, el dispositivo IoT con comunicación bidireccional con la nube, que a su vez tiene comunicación bidireccional con un teléfono, y el control de un calentador como salida del dispositivo IoT](../../../../../translated_images/es/mobile-controlled-thermostat.4a994010473d8d6a.webp) Una versión aún más inteligente podría usar IA en la nube con datos de otros sensores conectados a otros dispositivos IoT, como sensores de ocupación que detectan qué habitaciones están en uso, así como datos como el clima e incluso tu calendario, para tomar decisiones sobre cómo ajustar la temperatura de manera inteligente. Por ejemplo, podría apagar la calefacción si detecta en tu calendario que estás de vacaciones, o apagar la calefacción habitación por habitación dependiendo de cuáles usas, aprendiendo de los datos para ser cada vez más preciso con el tiempo. @@ -94,7 +94,7 @@ Cuanto más rápido sea el ciclo del reloj, más instrucciones se pueden procesa > 💁 Las CPUs ejecutan programas utilizando el [ciclo de búsqueda-decodificación-ejecución](https://wikipedia.org/wiki/Instruction_cycle). Por cada marca del reloj, la CPU buscará la siguiente instrucción en la memoria, la decodificará y luego la ejecutará, como usar una unidad lógica aritmética (ALU) para sumar 2 números. Algunas ejecuciones tomarán varios ciclos para completarse, por lo que el siguiente ciclo se ejecutará en la siguiente marca después de que la instrucción haya terminado. -![El ciclo de búsqueda-decodificación-ejecución mostrando la búsqueda de una instrucción del programa almacenado en RAM, luego decodificándola y ejecutándola en una CPU](../../../../../translated_images/es/fetch-decode-execute.2fd6f150f6280392807f4475382319abd0cee0b90058e1735444d6baa6f2078c.png) +![El ciclo de búsqueda-decodificación-ejecución mostrando la búsqueda de una instrucción del programa almacenado en RAM, luego decodificándola y ejecutándola en una CPU](../../../../../translated_images/es/fetch-decode-execute.2fd6f150f6280392.webp) Los microcontroladores tienen velocidades de reloj mucho más bajas que las computadoras de escritorio o portátiles, o incluso la mayoría de los smartphones. Por ejemplo, el Wio Terminal tiene una CPU que funciona a 120MHz o 120,000,000 ciclos por segundo. @@ -182,7 +182,7 @@ Las placas Arduino se programan en C o C++. Usar C/C++ permite que tu código se Escribirías tu código de configuración en la función `setup`, como conectarte a WiFi y servicios en la nube o inicializar pines para entrada y salida. Tu código de bucle estaría en la función `loop`, como leer de un sensor y enviar el valor a la nube. Normalmente incluirías un retraso en cada bucle, por ejemplo, si solo quieres que los datos del sensor se envíen cada 10 segundos, agregarías un retraso de 10 segundos al final del bucle para que el microcontrolador pueda dormir, ahorrando energía, y luego ejecutar el bucle nuevamente cuando sea necesario 10 segundos después. -![Un sketch de Arduino ejecutando setup primero, luego ejecutando loop repetidamente](../../../../../translated_images/es/arduino-sketch.79590cb837ff7a7c6a68d1afda6cab83fd53d3bb1bd9a8bf2eaf8d693a4d3ea6.png) +![Un sketch de Arduino ejecutando setup primero, luego ejecutando loop repetidamente](../../../../../translated_images/es/arduino-sketch.79590cb837ff7a7c.webp) ✅ Esta arquitectura de programa se conoce como un *bucle de eventos* o *bucle de mensajes*. Muchas aplicaciones utilizan esto en segundo plano y es el estándar para la mayoría de las aplicaciones de escritorio que se ejecutan en sistemas operativos como Windows, macOS o Linux. El `loop` escucha mensajes de componentes de la interfaz de usuario como botones o dispositivos como el teclado, y responde a ellos. Puedes leer más en este [artículo sobre el bucle de eventos](https://wikipedia.org/wiki/Event_loop). diff --git a/translations/es/1-getting-started/lessons/3-sensors-and-actuators/README.md b/translations/es/1-getting-started/lessons/3-sensors-and-actuators/README.md index 357224df5..7c5395661 100644 --- a/translations/es/1-getting-started/lessons/3-sensors-and-actuators/README.md +++ b/translations/es/1-getting-started/lessons/3-sensors-and-actuators/README.md @@ -1,6 +1,6 @@ # Interactúa con el mundo físico con sensores y actuadores -![Una vista general de esta lección en formato sketchnote](../../../../../translated_images/es/lesson-3.cc3b7b4cd646de598698cce043c0393fd62ef42bac2eaf60e61272cd844250f4.jpg) +![Una vista general de esta lección en formato sketchnote](../../../../../translated_images/es/lesson-3.cc3b7b4cd646de59.webp) > Sketchnote por [Nitya Narasimhan](https://github.com/nitya). Haz clic en la imagen para una versión más grande. @@ -92,7 +92,7 @@ Los sensores digitales, al igual que los sensores analógicos, detectan el mundo El sensor digital más simple es un botón o interruptor. Este es un sensor con dos estados: encendido o apagado. -![Un botón recibe 5 voltios. Cuando no se presiona devuelve 0 voltios, cuando se presiona devuelve 5 voltios](../../../../../translated_images/es/button.eadb560b77ac45e56f523d9d8876e40444f63b419e33eb820082d461fa79490b.png) +![Un botón recibe 5 voltios. Cuando no se presiona devuelve 0 voltios, cuando se presiona devuelve 5 voltios](../../../../../translated_images/es/button.eadb560b77ac45e5.webp) Los pines en dispositivos IoT como los pines GPIO pueden medir esta señal directamente como un 0 o 1. Si el voltaje enviado es el mismo que el voltaje devuelto, el valor leído es 1; de lo contrario, el valor leído es 0. No hay necesidad de convertir la señal, solo puede ser 1 o 0. @@ -125,7 +125,7 @@ Algunos actuadores comunes incluyen: Sigue la guía correspondiente a continuación para añadir un actuador a tu dispositivo IoT, controlado por el sensor, para construir una luz nocturna IoT. Recogerá niveles de luz del sensor de luz y usará un actuador en forma de LED para emitir luz cuando el nivel de luz detectado sea demasiado bajo. -![Un diagrama de flujo de la tarea que muestra los niveles de luz siendo leídos y verificados, y el LED siendo controlado](../../../../../translated_images/es/assignment-1-flow.7552a51acb1a5ec858dca6e855cdbb44206434006df8ba3799a25afcdab1665d.png) +![Un diagrama de flujo de la tarea que muestra los niveles de luz siendo leídos y verificados, y el LED siendo controlado](../../../../../translated_images/es/assignment-1-flow.7552a51acb1a5ec8.webp) * [Arduino - Wio Terminal](wio-terminal-actuator.md) * [Computadora de placa única - Raspberry Pi](pi-actuator.md) @@ -140,7 +140,7 @@ Al igual que los sensores, los actuadores pueden ser analógicos o digitales. Los actuadores analógicos toman una señal analógica y la convierten en algún tipo de interacción, donde la interacción cambia según el voltaje suministrado. Un ejemplo es una luz regulable, como las que podrías tener en tu casa. La cantidad de voltaje suministrado a la luz determina qué tan brillante es. -![Una luz atenuada con un voltaje bajo y más brillante con un voltaje más alto](../../../../../translated_images/es/dimmable-light.9ceffeb195dec1a849da718b2d71b32c35171ff7dfea9c07bbf82646a67acf6b.png) +![Una luz atenuada con un voltaje bajo y más brillante con un voltaje más alto](../../../../../translated_images/es/dimmable-light.9ceffeb195dec1a8.webp) Al igual que con los sensores, el dispositivo IoT real funciona con señales digitales, no analógicas. Esto significa que, para enviar una señal analógica, el dispositivo IoT necesita un convertidor digital a analógico (DAC), ya sea directamente en el dispositivo IoT o en una placa de conexión. Esto convertirá los 0s y 1s del dispositivo IoT en un voltaje analógico que el actuador pueda usar. @@ -187,7 +187,7 @@ Los actuadores digitales, al igual que los sensores digitales, tienen dos estado Un actuador digital simple es un LED. Cuando un dispositivo envía una señal digital de 1, se envía un voltaje alto que enciende el LED. Cuando se envía una señal digital de 0, el voltaje cae a 0V y el LED se apaga. -![Un LED está apagado a 0 voltios y encendido a 5V](../../../../../translated_images/es/led.ec6d94f66676a174ad06d9fa9ea49c2ee89beb18b312d5c6476467c66375b07f.png) +![Un LED está apagado a 0 voltios y encendido a 5V](../../../../../translated_images/es/led.ec6d94f66676a174.webp) ✅ ¿Qué otros actuadores simples de dos estados se te ocurren? Un ejemplo es un solenoide, que es un electroimán que puede activarse para hacer cosas como mover un cerrojo de puerta para bloquear/desbloquear una puerta. diff --git a/translations/es/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md b/translations/es/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md index e376add31..e53e1bd45 100644 --- a/translations/es/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md +++ b/translations/es/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md @@ -26,7 +26,7 @@ El LED Grove viene como un módulo con una selección de LEDs, lo que te permite Conecta el LED. -![Un LED Grove](../../../../../translated_images/es/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![Un LED Grove](../../../../../translated_images/es/grove-led.6c853be93f473cf2.webp) 1. Elige tu LED favorito e inserta las patas en los dos agujeros del módulo LED. @@ -40,7 +40,7 @@ Conecta el LED. 1. Con la Raspberry Pi apagada, conecta el otro extremo del cable Grove al enchufe digital marcado como **D5** en el Grove Base hat conectado a la Pi. Este enchufe es el segundo desde la izquierda, en la fila de enchufes junto a los pines GPIO. -![El LED Grove conectado al enchufe D5](../../../../../translated_images/es/pi-led.97f1d474981dc35d1c7996c7b17de355d3d0a6bc9606d79fa5f89df933415122.png) +![El LED Grove conectado al enchufe D5](../../../../../translated_images/es/pi-led.97f1d474981dc35d.webp) ## Programa la luz nocturna diff --git a/translations/es/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md b/translations/es/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md index 887a23744..d44757b2b 100644 --- a/translations/es/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md +++ b/translations/es/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md @@ -16,13 +16,13 @@ El sensor de luz Grove que se utiliza para detectar los niveles de luz debe esta Conecta el sensor de luz. -![Un sensor de luz Grove](../../../../../translated_images/es/grove-light-sensor.b8127b7c434e632d6bcdb57587a14e9ef69a268a22df95d08628f62b8fa5505c.png) +![Un sensor de luz Grove](../../../../../translated_images/es/grove-light-sensor.b8127b7c434e632d.webp) 1. Inserta un extremo de un cable Grove en el conector del módulo del sensor de luz. Solo encajará de una manera. 1. Con la Raspberry Pi apagada, conecta el otro extremo del cable Grove al conector analógico marcado como **A0** en el Grove Base hat conectado a la Pi. Este conector es el segundo desde la derecha, en la fila de conectores junto a los pines GPIO. -![El sensor de luz Grove conectado al conector A0](../../../../../translated_images/es/pi-light-sensor.66cc1e31fa48cd7d5f23400d4b2119aa41508275cb7c778053a7923b4e972d7e.png) +![El sensor de luz Grove conectado al conector A0](../../../../../translated_images/es/pi-light-sensor.66cc1e31fa48cd7d.webp) ## Programar el sensor de luz diff --git a/translations/es/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md b/translations/es/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md index b2f199a8b..c727e46a5 100644 --- a/translations/es/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md +++ b/translations/es/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md @@ -36,11 +36,11 @@ Agrega el LED a la aplicación CounterFit. 1. Selecciona el botón **Add** para crear el LED en el Pin 5. - ![Configuración del LED](../../../../../translated_images/es/counterfit-create-led.ba9db1c9b8c622a635d6dfae5cdc4e70c2b250635bd4f0601c6cf0bd22b7ba46.png) + ![Configuración del LED](../../../../../translated_images/es/counterfit-create-led.ba9db1c9b8c622a6.webp) El LED será creado y aparecerá en la lista de actuadores. - ![LED creado](../../../../../translated_images/es/counterfit-led.c0ab02de6d256ad84d9bad4d67a7faa709f0ea83e410cfe9b5561ef0cef30b1c.png) + ![LED creado](../../../../../translated_images/es/counterfit-led.c0ab02de6d256ad8.webp) Una vez que el LED haya sido creado, puedes cambiar el color usando el selector *Color*. Selecciona el botón **Set** para cambiar el color después de haberlo seleccionado. diff --git a/translations/es/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md b/translations/es/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md index b6fc2f22a..5e109160f 100644 --- a/translations/es/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md +++ b/translations/es/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md @@ -28,11 +28,11 @@ Agrega el sensor de luz a la aplicación CounterFit. 1. Selecciona el botón **Add** para crear el sensor de luz en el Pin 0. - ![Configuración del sensor de luz](../../../../../translated_images/es/counterfit-create-light-sensor.9f36a5e0d4458d8d554d54b34d2c806d56093d6e49fddcda2d20f6fef7f5cce1.png) + ![Configuración del sensor de luz](../../../../../translated_images/es/counterfit-create-light-sensor.9f36a5e0d4458d8d.webp) El sensor de luz será creado y aparecerá en la lista de sensores. - ![Sensor de luz creado](../../../../../translated_images/es/counterfit-light-sensor.5d0f5584df56b90f6b2561910d9cb20dfbd73eeff2177c238d38f4de54aefae1.png) + ![Sensor de luz creado](../../../../../translated_images/es/counterfit-light-sensor.5d0f5584df56b90f.webp) ## Programar el sensor de luz diff --git a/translations/es/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md b/translations/es/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md index 446c92fd6..fdb687e72 100644 --- a/translations/es/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md +++ b/translations/es/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md @@ -26,7 +26,7 @@ El Grove LED viene como un módulo con una selección de LEDs, permitiéndote el Conecta el LED. -![Un Grove LED](../../../../../translated_images/es/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![Un Grove LED](../../../../../translated_images/es/grove-led.6c853be93f473cf2.webp) 1. Elige tu LED favorito e inserta las patas en los dos agujeros del módulo LED. diff --git a/translations/es/1-getting-started/lessons/4-connect-internet/README.md b/translations/es/1-getting-started/lessons/4-connect-internet/README.md index 21d6cddec..2103bd19d 100644 --- a/translations/es/1-getting-started/lessons/4-connect-internet/README.md +++ b/translations/es/1-getting-started/lessons/4-connect-internet/README.md @@ -1,6 +1,6 @@ # Conecta tu dispositivo a Internet -![Un resumen visual de esta lección](../../../../../translated_images/es/lesson-4.7344e074ea68fa545fd320b12dce36d72dd62d28c3b4596cb26cf315f434b98f.jpg) +![Un resumen visual de esta lección](../../../../../translated_images/es/lesson-4.7344e074ea68fa54.webp) > Resumen visual por [Nitya Narasimhan](https://github.com/nitya). Haz clic en la imagen para verla en tamaño completo. @@ -47,7 +47,7 @@ MQTT es el protocolo de comunicación más popular para dispositivos IoT y se cu MQTT tiene un único intermediario y múltiples clientes. Todos los clientes se conectan al intermediario, y este enruta los mensajes a los clientes relevantes. Los mensajes se enrutan utilizando temas nombrados, en lugar de enviarse directamente a un cliente individual. Un cliente puede publicar en un tema, y cualquier cliente que se suscriba a ese tema recibirá el mensaje. -![Dispositivo IoT publicando telemetría en el tema /telemetry, y el servicio en la nube suscribiéndose a ese tema](../../../../../translated_images/es/mqtt.cbf7f21d9adc3e17548b359444cc11bb4bf2010543e32ece9a47becf54438c23.png) +![Dispositivo IoT publicando telemetría en el tema /telemetry, y el servicio en la nube suscribiéndose a ese tema](../../../../../translated_images/es/mqtt.cbf7f21d9adc3e17.webp) ✅ Investiga. Si tienes muchos dispositivos IoT, ¿cómo puedes asegurarte de que tu intermediario MQTT pueda manejar todos los mensajes? @@ -69,7 +69,7 @@ En lugar de lidiar con las complejidades de configurar un intermediario MQTT com > 💁 Este intermediario de prueba es público y no seguro. Cualquiera podría estar escuchando lo que publicas, por lo que no debe usarse con datos que necesiten mantenerse privados. -![Un diagrama de flujo de la tarea mostrando los niveles de luz siendo leídos y verificados, y el LED siendo controlado](../../../../../translated_images/es/assignment-1-internet-flow.3256feab5f052fd273bf4e331157c574c2c3fa42e479836fc9c3586f41db35a5.png) +![Un diagrama de flujo de la tarea mostrando los niveles de luz siendo leídos y verificados, y el LED siendo controlado](../../../../../translated_images/es/assignment-1-internet-flow.3256feab5f052fd2.webp) Sigue el paso relevante a continuación para conectar tu dispositivo al intermediario MQTT: @@ -350,7 +350,7 @@ Para maquinaria, podrías querer conservar los datos, especialmente si se usan p Los diseñadores de dispositivos IoT también deberían considerar si el dispositivo IoT puede usarse durante un corte de Internet o pérdida de señal causada por la ubicación. Un termostato inteligente debería poder tomar algunas decisiones limitadas para controlar la calefacción si no puede enviar telemetría a la nube debido a un corte. -[![Este Ferrari quedó inutilizado porque alguien intentó actualizarlo bajo tierra donde no hay recepción celular](../../../../../translated_images/es/bricked-car.dc38f8efadc6c59d76211f981a521efb300939283dee468f79503aae3ec67615.png)](https://twitter.com/internetofshit/status/1315736960082808832) +[![Este Ferrari quedó inutilizado porque alguien intentó actualizarlo bajo tierra donde no hay recepción celular](../../../../../translated_images/es/bricked-car.dc38f8efadc6c59d.webp)](https://twitter.com/internetofshit/status/1315736960082808832) Para que MQTT maneje una pérdida de conectividad, el código del dispositivo y del servidor deberá ser responsable de garantizar la entrega de mensajes si es necesario, por ejemplo, exigiendo que todos los mensajes enviados sean respondidos con mensajes adicionales en un tema de respuesta, y si no lo son, se coloquen en cola manualmente para reproducirlos más tarde. @@ -358,7 +358,7 @@ Para que MQTT maneje una pérdida de conectividad, el código del dispositivo y Los comandos son mensajes enviados desde la nube a un dispositivo, instruyéndolo para que haga algo. La mayoría de las veces esto implica dar algún tipo de salida a través de un actuador, pero también puede ser una instrucción para el propio dispositivo, como reiniciarse o recopilar telemetría adicional y devolverla como respuesta al comando. -![Un termostato conectado a Internet recibiendo un comando para encender la calefacción](../../../../../translated_images/es/commands.d6c06bbbb3a02cce95f2831a1c331daf6dedd4e470c4aa2b0ae54f332016e504.png) +![Un termostato conectado a Internet recibiendo un comando para encender la calefacción](../../../../../translated_images/es/commands.d6c06bbbb3a02cce.webp) Un termostato podría recibir un comando desde la nube para encender la calefacción. Basándose en los datos de telemetría de todos los sensores, si el servicio en la nube ha decidido que la calefacción debe estar encendida, enviará el comando correspondiente. diff --git a/translations/es/2-farm/lessons/1-predict-plant-growth/README.md b/translations/es/2-farm/lessons/1-predict-plant-growth/README.md index 559c7c967..ba11451a0 100644 --- a/translations/es/2-farm/lessons/1-predict-plant-growth/README.md +++ b/translations/es/2-farm/lessons/1-predict-plant-growth/README.md @@ -84,7 +84,7 @@ Los días grado de crecimiento, o GDD, se calculan por día como la temperatura La fórmula completa para calcular GDD es un poco complicada, pero hay una ecuación simplificada que a menudo se utiliza como una buena aproximación: -![GDD = T max + T min dividido por 2, todo menos T base](../../../../../translated_images/es/gdd-calculation.79b3660f9c5757aa92dc2dd2cdde75344e2d2c1565c4b3151640f7887edc0275.png) +![GDD = T max + T min dividido por 2, todo menos T base](../../../../../translated_images/es/gdd-calculation.79b3660f9c5757aa.webp) * **GDD** - este es el número de días grado de crecimiento * **T max** - esta es la temperatura máxima diaria en grados Celsius @@ -112,7 +112,7 @@ Usando estos números en nuestra fórmula: Esto da un cálculo de: -![GDD = 16 + 12 dividido por 2, todo menos 10, dando un resultado de 4](../../../../../translated_images/es/gdd-calculation-corn.64a58b7a7afcd0dfd46ff733996d939f17f4f3feac9f0d1c632be3523e51ebd9.png) +![GDD = 16 + 12 dividido por 2, todo menos 10, dando un resultado de 4](../../../../../translated_images/es/gdd-calculation-corn.64a58b7a7afcd0df.webp) El maíz recibió 4 GDD ese día. Suponiendo una variedad de maíz que necesita 800 GDD para madurar, necesitará otros 796 GDD para alcanzar la madurez. @@ -233,7 +233,7 @@ Los pasos para hacerlo manualmente son: Por ejemplo, si la temperatura más alta del día es 25°C y la más baja es 12°C: -![GDD = 25 + 12 dividido por 2, luego resta 10 del resultado dando 8.5](../../../../../translated_images/es/gdd-calculation-strawberries.59f57db94b22adb8ff6efb951ace33af104a1c6ccca3ffb0f8169c14cb160c90.png) +![GDD = 25 + 12 dividido por 2, luego resta 10 del resultado dando 8.5](../../../../../translated_images/es/gdd-calculation-strawberries.59f57db94b22adb8.webp) * 25 + 12 = 37 * 37 / 2 = 18.5 diff --git a/translations/es/2-farm/lessons/1-predict-plant-growth/assignment.md b/translations/es/2-farm/lessons/1-predict-plant-growth/assignment.md index d698d5d8b..752d6b000 100644 --- a/translations/es/2-farm/lessons/1-predict-plant-growth/assignment.md +++ b/translations/es/2-farm/lessons/1-predict-plant-growth/assignment.md @@ -33,7 +33,7 @@ Una vez que tengas los datos de temperatura, puedes usar el Jupyter Notebook en Jupyter se iniciará y abrirá el notebook en tu navegador. Sigue las instrucciones en el notebook para visualizar las temperaturas medidas y calcular los días grado de crecimiento. - ![El jupyter notebook](../../../../../translated_images/es/gdd-jupyter-notebook.c5b52cf21094f158a61f47f455490fd95f1729777ff90861a4521820bf354cdc.png) + ![El jupyter notebook](../../../../../translated_images/es/gdd-jupyter-notebook.c5b52cf21094f158.webp) ## Rúbrica diff --git a/translations/es/2-farm/lessons/1-predict-plant-growth/pi-temp.md b/translations/es/2-farm/lessons/1-predict-plant-growth/pi-temp.md index a71e66dc6..f535944c5 100644 --- a/translations/es/2-farm/lessons/1-predict-plant-growth/pi-temp.md +++ b/translations/es/2-farm/lessons/1-predict-plant-growth/pi-temp.md @@ -16,13 +16,13 @@ El sensor de temperatura Grove se puede conectar a la Raspberry Pi. Conecta el sensor de temperatura. -![Un sensor de temperatura Grove](../../../../../translated_images/es/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![Un sensor de temperatura Grove](../../../../../translated_images/es/grove-dht11.07f8eafceee17004.webp) 1. Inserta un extremo de un cable Grove en el conector del sensor de humedad y temperatura. Solo encajará de una manera. 1. Con la Raspberry Pi apagada, conecta el otro extremo del cable Grove al conector digital marcado como **D5** en el Grove Base Hat conectado a la Pi. Este conector es el segundo desde la izquierda, en la fila de conectores junto a los pines GPIO. -![El sensor de temperatura Grove conectado al conector A0](../../../../../translated_images/es/pi-temperature-sensor.3ff82fff672c8e565ef25a39d26d111de006b825a7e0867227ef4e7fbff8553c.png) +![El sensor de temperatura Grove conectado al conector A0](../../../../../translated_images/es/pi-temperature-sensor.3ff82fff672c8e56.webp) ## Programar el sensor de temperatura diff --git a/translations/es/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md b/translations/es/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md index 31b03b62f..9808eae2a 100644 --- a/translations/es/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md +++ b/translations/es/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md @@ -38,11 +38,11 @@ Agrega los sensores de humedad y temperatura a la aplicación CounterFit. 1. Selecciona el botón **Add** para crear el sensor de humedad en el Pin 5. - ![Configuración del sensor de humedad](../../../../../translated_images/es/counterfit-create-humidity-sensor.2750e27b6f30e09cf4e22101defd5252710717620816ab41ba688f91f757c49a.png) + ![Configuración del sensor de humedad](../../../../../translated_images/es/counterfit-create-humidity-sensor.2750e27b6f30e09c.webp) El sensor de humedad será creado y aparecerá en la lista de sensores. - ![Sensor de humedad creado](../../../../../translated_images/es/counterfit-humidity-sensor.7b12f7f339e430cb26c8211d2dba4ef75261b353a01da0932698b5bebd693f27.png) + ![Sensor de humedad creado](../../../../../translated_images/es/counterfit-humidity-sensor.7b12f7f339e430cb.webp) 1. Crea un sensor de temperatura: @@ -54,11 +54,11 @@ Agrega los sensores de humedad y temperatura a la aplicación CounterFit. 1. Selecciona el botón **Add** para crear el sensor de temperatura en el Pin 6. - ![Configuración del sensor de temperatura](../../../../../translated_images/es/counterfit-create-temperature-sensor.199350ed34f7343d79dccbe95eaf6c11d2121f03d1c35ab9613b330c23f39b29.png) + ![Configuración del sensor de temperatura](../../../../../translated_images/es/counterfit-create-temperature-sensor.199350ed34f7343d.webp) El sensor de temperatura será creado y aparecerá en la lista de sensores. - ![Sensor de temperatura creado](../../../../../translated_images/es/counterfit-temperature-sensor.f0560236c96a9016bafce7f6f792476fe3367bc6941a1f7d5811d144d4bcbfff.png) + ![Sensor de temperatura creado](../../../../../translated_images/es/counterfit-temperature-sensor.f0560236c96a9016.webp) ## Programar la aplicación del sensor de temperatura diff --git a/translations/es/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md b/translations/es/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md index 6e9566360..6c19cf718 100644 --- a/translations/es/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md +++ b/translations/es/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md @@ -18,7 +18,7 @@ El sensor de temperatura Grove se puede conectar al puerto digital del Wio Termi Conecta el sensor de temperatura. -![Un sensor de temperatura Grove](../../../../../translated_images/es/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![Un sensor de temperatura Grove](../../../../../translated_images/es/grove-dht11.07f8eafceee17004.webp) 1. Inserta un extremo de un cable Grove en el conector del sensor de humedad y temperatura. Solo encajará de una manera. diff --git a/translations/es/2-farm/lessons/2-detect-soil-moisture/README.md b/translations/es/2-farm/lessons/2-detect-soil-moisture/README.md index 80664868a..6cfd3e4d3 100644 --- a/translations/es/2-farm/lessons/2-detect-soil-moisture/README.md +++ b/translations/es/2-farm/lessons/2-detect-soil-moisture/README.md @@ -13,7 +13,7 @@ I²C tiene un bus compuesto por 2 cables principales, junto con 2 cables de alim | VCC | Colector común de voltaje | La fuente de alimentación para los dispositivos. Este cable está conectado a los cables SDA y SCL para proporcionarles energía a través de una resistencia pull-up que apaga la señal cuando ningún dispositivo actúa como controlador. | | GND | Tierra | Proporciona una tierra común para el circuito eléctrico. | -![Bus I2C con 3 dispositivos conectados a los cables SDA y SCL, compartiendo un cable de tierra común](../../../../../translated_images/es/i2c.83da845dde02256bdd462dbe0d5145461416b74930571b89d1ae142841eeb584.png) +![Bus I2C con 3 dispositivos conectados a los cables SDA y SCL, compartiendo un cable de tierra común](../../../../../translated_images/es/i2c.83da845dde02256b.webp) Para enviar datos, un dispositivo emitirá una condición de inicio para indicar que está listo para enviar datos. Luego se convertirá en el controlador. El controlador envía la dirección del dispositivo con el que desea comunicarse, junto con la indicación de si quiere leer o escribir datos. Después de que los datos han sido transmitidos, el controlador envía una condición de parada para indicar que ha terminado. Después de esto, otro dispositivo puede convertirse en el controlador y enviar o recibir datos. diff --git a/translations/es/2-farm/lessons/2-detect-soil-moisture/assignment.md b/translations/es/2-farm/lessons/2-detect-soil-moisture/assignment.md index ce03eb9fe..c4f63d070 100644 --- a/translations/es/2-farm/lessons/2-detect-soil-moisture/assignment.md +++ b/translations/es/2-farm/lessons/2-detect-soil-moisture/assignment.md @@ -20,14 +20,14 @@ Necesitarás repetir estos pasos varias veces para obtener las lecturas necesari La humedad gravimétrica del suelo se calcula como: -![La humedad del suelo % es el peso húmedo menos el peso seco, dividido por el peso seco, multiplicado por 100](../../../../../translated_images/es/gsm-calculation.6da38c6201eec14e7573bb2647aa18892883193553d23c9d77e5dc681522dfb2.png) +![La humedad del suelo % es el peso húmedo menos el peso seco, dividido por el peso seco, multiplicado por 100](../../../../../translated_images/es/gsm-calculation.6da38c6201eec14e.webp) * W - el peso del suelo húmedo * W - el peso del suelo seco Por ejemplo, supongamos que tienes una muestra de suelo que pesa 212g húmeda y 197g seca. -![El cálculo completado](../../../../../translated_images/es/gsm-calculation-example.99f9803b4f29e97668e7c15412136c0c399ab12dbba0b89596fdae9d8aedb6fb.png) +![El cálculo completado](../../../../../translated_images/es/gsm-calculation-example.99f9803b4f29e976.webp) * W = 212g * W = 197g diff --git a/translations/es/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md b/translations/es/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md index 037880bfa..9b942d9a9 100644 --- a/translations/es/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md +++ b/translations/es/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md @@ -34,11 +34,11 @@ Agrega el sensor de humedad del suelo a la aplicación CounterFit. 1. Selecciona el botón **Add** para crear el sensor *Soil Moisture* en el Pin 0. - ![Configuración del sensor de humedad del suelo](../../../../../translated_images/es/counterfit-create-soil-moisture-sensor.35266135a5e0ae68b29a684d7db0d2933a8098b2307d197f7c71577b724603aa.png) + ![Configuración del sensor de humedad del suelo](../../../../../translated_images/es/counterfit-create-soil-moisture-sensor.35266135a5e0ae68.webp) El sensor de humedad del suelo será creado y aparecerá en la lista de sensores. - ![Sensor de humedad del suelo creado](../../../../../translated_images/es/counterfit-soil-moisture-sensor.81742b2de0e9de60a3b3b9a2ff8ecc686d428eb6d71820f27a693be26e5aceee.png) + ![Sensor de humedad del suelo creado](../../../../../translated_images/es/counterfit-soil-moisture-sensor.81742b2de0e9de60.webp) ## Programar la aplicación del sensor de humedad del suelo diff --git a/translations/es/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md b/translations/es/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md index 32cba4fed..e53080800 100644 --- a/translations/es/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md +++ b/translations/es/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md @@ -18,7 +18,7 @@ El sensor de humedad del suelo Grove puede conectarse al puerto analógico/digit Conecta el sensor de humedad del suelo. -![Un sensor Grove de humedad del suelo](../../../../../translated_images/es/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![Un sensor Grove de humedad del suelo](../../../../../translated_images/es/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. Inserta un extremo de un cable Grove en el conector del sensor de humedad del suelo. Solo encajará de una manera. diff --git a/translations/es/2-farm/lessons/3-automated-plant-watering/README.md b/translations/es/2-farm/lessons/3-automated-plant-watering/README.md index 8a23044ee..871ec0b56 100644 --- a/translations/es/2-farm/lessons/3-automated-plant-watering/README.md +++ b/translations/es/2-farm/lessons/3-automated-plant-watering/README.md @@ -1,6 +1,6 @@ # Riego automatizado de plantas -![Una vista general en sketchnote de esta lección](../../../../../translated_images/es/lesson-7.30b5f577d3cb8e031238751475cb519c7d6dbaea261b5df4643d086ffb2a03bb.jpg) +![Una vista general en sketchnote de esta lección](../../../../../translated_images/es/lesson-7.30b5f577d3cb8e03.webp) > Sketchnote por [Nitya Narasimhan](https://github.com/nitya). Haz clic en la imagen para una versión más grande. @@ -32,7 +32,7 @@ Los dispositivos IoT utilizan un voltaje bajo. Aunque esto es suficiente para se La solución a esto es conectar una bomba a una fuente de alimentación externa y usar un actuador para encender la bomba, similar a cómo encenderías una luz. Se necesita una pequeña cantidad de energía (en forma de energía en tu cuerpo) para que tu dedo accione un interruptor, y esto conecta la luz a la electricidad de red que funciona a 110v/240v. -![Un interruptor de luz enciende la luz](../../../../../translated_images/es/light-switch.760317ad6ab8bd6d611da5352dfe9c73a94a0822ccec7df3c8bae35da18e1658.png) +![Un interruptor de luz enciende la luz](../../../../../translated_images/es/light-switch.760317ad6ab8bd6d.webp) > 🎓 [Electricidad de red](https://wikipedia.org/wiki/Mains_electricity) se refiere a la electricidad entregada a hogares y negocios a través de infraestructura nacional en muchas partes del mundo. @@ -72,7 +72,7 @@ Cuando la palanca se mueve, generalmente puedes escucharla hacer contacto con el El electroimán no necesita mucha energía para activarse y tirar de la palanca, puede controlarse utilizando la salida de 3.3V o 5V de un kit de desarrollo IoT. El circuito de salida puede transportar mucha más energía, dependiendo del relé, incluyendo voltaje de red o incluso niveles de energía más altos para uso industrial. De esta manera, un kit de desarrollo IoT puede controlar un sistema de riego, desde una pequeña bomba para una sola planta, hasta un sistema industrial masivo para toda una granja comercial. -![Un relé Grove con el circuito de control, circuito de salida y relé etiquetados](../../../../../translated_images/es/grove-relay-labelled.293e068f5c3c2a199bd7892f2661fdc9e10c920b535cfed317fbd6d1d4ae1168.png) +![Un relé Grove con el circuito de control, circuito de salida y relé etiquetados](../../../../../translated_images/es/grove-relay-labelled.293e068f5c3c2a19.webp) La imagen anterior muestra un relé Grove. El circuito de control se conecta a un dispositivo IoT y enciende o apaga el relé utilizando 3.3V o 5V. El circuito de salida tiene dos terminales, cualquiera de ellos puede ser alimentación o tierra. El circuito de salida puede manejar hasta 250V a 10A, suficiente para una variedad de dispositivos alimentados por red. Puedes obtener relés que pueden manejar incluso niveles de energía más altos. diff --git a/translations/es/2-farm/lessons/3-automated-plant-watering/pi-relay.md b/translations/es/2-farm/lessons/3-automated-plant-watering/pi-relay.md index 474473a5d..733a56f59 100644 --- a/translations/es/2-farm/lessons/3-automated-plant-watering/pi-relay.md +++ b/translations/es/2-farm/lessons/3-automated-plant-watering/pi-relay.md @@ -18,13 +18,13 @@ El relé Grove puede conectarse a la Raspberry Pi. Conecta el relé. -![Un relé Grove](../../../../../translated_images/es/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) +![Un relé Grove](../../../../../translated_images/es/grove-relay.d426958ca210fbd0.webp) 1. Inserta un extremo de un cable Grove en el conector del relé. Solo encajará de una manera. 1. Con la Raspberry Pi apagada, conecta el otro extremo del cable Grove al conector digital marcado como **D5** en el Grove Base Hat conectado a la Pi. Este conector es el segundo desde la izquierda, en la fila de conectores junto a los pines GPIO. Deja el sensor de humedad del suelo conectado al conector **A0**. -![El relé Grove conectado al conector D5, y el sensor de humedad del suelo conectado al conector A0](../../../../../translated_images/es/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e69ec716cd2719ce117700bd1fc933eaf93476c103c57939b.png) +![El relé Grove conectado al conector D5, y el sensor de humedad del suelo conectado al conector A0](../../../../../translated_images/es/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e.webp) 1. Inserta el sensor de humedad del suelo en la tierra, si no lo has hecho ya en la lección anterior. diff --git a/translations/es/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md b/translations/es/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md index ca64c5d02..9d3f4e75d 100644 --- a/translations/es/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md +++ b/translations/es/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md @@ -28,11 +28,11 @@ Agrega el relé a la aplicación CounterFit. 1. Selecciona el botón **Add** para crear el relé en el Pin 5. - ![Configuración del relé](../../../../../translated_images/es/counterfit-create-relay.fa7c40fd0f2f6afc33b35ea94fcb235085be4861e14e3fe6b9b7bcfc82d1c888.png) + ![Configuración del relé](../../../../../translated_images/es/counterfit-create-relay.fa7c40fd0f2f6afc.webp) El relé será creado y aparecerá en la lista de actuadores. - ![Relé creado](../../../../../translated_images/es/counterfit-relay.bbf74c1dbdc8b9acd983367fcbd06703a402aefef6af54ddb28e11307ba8a12c.png) + ![Relé creado](../../../../../translated_images/es/counterfit-relay.bbf74c1dbdc8b9ac.webp) ## Programar el relé diff --git a/translations/es/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md b/translations/es/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md index 505427b41..30568209e 100644 --- a/translations/es/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md +++ b/translations/es/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md @@ -18,7 +18,7 @@ El relé Grove puede conectarse al puerto digital del Wio Terminal. Conecta el relé. -![Un relé Grove](../../../../../translated_images/es/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) +![Un relé Grove](../../../../../translated_images/es/grove-relay.d426958ca210fbd0.webp) 1. Inserta un extremo de un cable Grove en el conector del relé. Solo encajará de una manera. diff --git a/translations/es/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md b/translations/es/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md index 27cc4497b..9c7af3072 100644 --- a/translations/es/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md +++ b/translations/es/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md @@ -1,6 +1,6 @@ # Migra tu planta a la nube -![Un resumen visual de esta lección](../../../../../translated_images/es/lesson-8.3f21f3c11159e6a0a376351973ea5724d5de68fa23b4288853a174bed9ac48c3.jpg) +![Un resumen visual de esta lección](../../../../../translated_images/es/lesson-8.3f21f3c11159e6a0.webp) > Resumen visual por [Nitya Narasimhan](https://github.com/nitya). Haz clic en la imagen para una versión más grande. @@ -46,8 +46,8 @@ Esto podía ser muy costoso, requerir una amplia gama de empleados especializado La nube a menudo se describe en broma como "el ordenador de otra persona". La idea inicial era simple: en lugar de comprar ordenadores, alquilas los de otra persona. Un proveedor de computación en la nube se encargaría de gestionar enormes centros de datos. Ellos serían responsables de comprar e instalar el hardware, gestionar la energía y la refrigeración, las redes, la seguridad del edificio, las actualizaciones de hardware y software, todo. Como cliente, alquilas los ordenadores que necesitas, aumentando el alquiler cuando la demanda sube y reduciéndolo cuando la demanda baja. Estos centros de datos en la nube están distribuidos por todo el mundo. -![Un centro de datos en la nube de Microsoft](../../../../../translated_images/es/azure-region-existing.73f704604f2aa6cb9b5a49ed40e93d4fd81ae3f4e6af4a8ca504023902832f56.png) -![Expansión planificada de un centro de datos en la nube de Microsoft](../../../../../translated_images/es/azure-region-planned-expansion.a5074a1e8af74f156a73552d502429e5b126ea5019274d767ecb4b9afdad442b.png) +![Un centro de datos en la nube de Microsoft](../../../../../translated_images/es/azure-region-existing.73f704604f2aa6cb.webp) +![Expansión planificada de un centro de datos en la nube de Microsoft](../../../../../translated_images/es/azure-region-planned-expansion.a5074a1e8af74f15.webp) Estos centros de datos pueden tener varios kilómetros cuadrados de tamaño. Las imágenes anteriores fueron tomadas hace algunos años en un centro de datos en la nube de Microsoft y muestran el tamaño inicial, junto con una expansión planificada. El área despejada para la expansión tiene más de 5 kilómetros cuadrados. @@ -108,11 +108,11 @@ Los servicios de IoT en la nube resuelven estos problemas. Son mantenidos por gr Los dispositivos IoT se conectan a un servicio en la nube ya sea utilizando un SDK de dispositivo (una biblioteca que proporciona código para trabajar con las características del servicio) o directamente a través de un protocolo de comunicación como MQTT o HTTP. El SDK de dispositivo suele ser la ruta más fácil, ya que maneja todo por ti, como saber a qué temas publicar o suscribirse y cómo manejar la seguridad. -![Los dispositivos se conectan a un servicio usando un SDK de dispositivo. El código del servidor también se conecta al servicio a través de un SDK](../../../../../translated_images/es/iot-service-connectivity.7e873847921a5d6fd60d0ba3a943210194518cee0d4e362476624316443275c3.png) +![Los dispositivos se conectan a un servicio usando un SDK de dispositivo. El código del servidor también se conecta al servicio a través de un SDK](../../../../../translated_images/es/iot-service-connectivity.7e873847921a5d6f.webp) Tu dispositivo luego se comunica con otras partes de tu aplicación a través de este servicio, de manera similar a cómo enviaste telemetría y recibiste comandos a través de MQTT. Esto generalmente se hace utilizando un SDK de servicio o una biblioteca similar. Los mensajes van desde tu dispositivo al servicio, donde otros componentes de tu aplicación pueden leerlos, y los mensajes pueden enviarse de vuelta a tu dispositivo. -![Los dispositivos sin una clave secreta válida no pueden conectarse al servicio IoT](../../../../../translated_images/es/iot-service-allowed-denied-connection.818b0063ac213fb84204a7229303764d9b467ca430fb822b4ac2fca267d56726.png) +![Los dispositivos sin una clave secreta válida no pueden conectarse al servicio IoT](../../../../../translated_images/es/iot-service-allowed-denied-connection.818b0063ac213fb8.webp) Estos servicios implementan seguridad al conocer todos los dispositivos que pueden conectarse y enviar datos, ya sea registrando previamente los dispositivos en el servicio o proporcionando a los dispositivos claves secretas o certificados que pueden usar para registrarse en el servicio la primera vez que se conectan. Los dispositivos desconocidos no pueden conectarse; si lo intentan, el servicio rechaza la conexión e ignora los mensajes enviados por ellos. @@ -124,7 +124,7 @@ Otros componentes de tu aplicación pueden conectarse al servicio IoT y obtener Ahora que tienes una suscripción a Azure, puedes registrarte en un servicio IoT. El servicio IoT de Microsoft se llama Azure IoT Hub. -![El logo de Azure IoT Hub](../../../../../translated_images/es/azure-iot-hub-logo.28a19de76d0a1932464d858f7558712bcdace3e5ec69c434d482ed7ce41c3a26.png) +![El logo de Azure IoT Hub](../../../../../translated_images/es/azure-iot-hub-logo.28a19de76d0a1932.webp) El siguiente video ofrece una breve descripción general de Azure IoT Hub: diff --git a/translations/es/2-farm/lessons/5-migrate-application-to-the-cloud/README.md b/translations/es/2-farm/lessons/5-migrate-application-to-the-cloud/README.md index 091084cf7..5e83b0df4 100644 --- a/translations/es/2-farm/lessons/5-migrate-application-to-the-cloud/README.md +++ b/translations/es/2-farm/lessons/5-migrate-application-to-the-cloud/README.md @@ -1,6 +1,6 @@ # Migra la lógica de tu aplicación a la nube -![Una ilustración resumen de esta lección](../../../../../translated_images/es/lesson-9.dfe99c8e891f48e179724520da9f5794392cf9a625079281ccdcbf09bd85e1b6.jpg) +![Una ilustración resumen de esta lección](../../../../../translated_images/es/lesson-9.dfe99c8e891f48e1.webp) > Ilustración por [Nitya Narasimhan](https://github.com/nitya). Haz clic en la imagen para una versión más grande. @@ -28,7 +28,7 @@ En esta lección cubriremos: Sin servidor, o computación sin servidor, implica crear pequeños bloques de código que se ejecutan en la nube en respuesta a diferentes tipos de eventos. Cuando ocurre el evento, tu código se ejecuta y recibe datos sobre el evento. Estos eventos pueden provenir de muchas fuentes, como solicitudes web, mensajes en una cola, cambios en datos de una base de datos o mensajes enviados a un servicio IoT por dispositivos IoT. -![Eventos enviados desde un servicio IoT a un servicio sin servidor, todos procesados al mismo tiempo por múltiples funciones en ejecución](../../../../../translated_images/es/iot-messages-to-serverless.0194da1cc0732bb7d0f823aed3fce54735c6b1ad3bf36089804d8aaefc0a774f.png) +![Eventos enviados desde un servicio IoT a un servicio sin servidor, todos procesados al mismo tiempo por múltiples funciones en ejecución](../../../../../translated_images/es/iot-messages-to-serverless.0194da1cc0732bb7.webp) > 💁 Si has usado disparadores de bases de datos antes, puedes pensar en esto como algo similar: código que se activa por un evento como insertar una fila. @@ -54,7 +54,7 @@ Como desarrollador de IoT, el modelo sin servidor es ideal. Puedes escribir una El servicio de computación sin servidor de Microsoft se llama Azure Functions. -![El logo de Azure Functions](../../../../../translated_images/es/azure-functions-logo.1cfc8e3204c9c44aaf80fcf406fc8544d80d7f00f8d3e8ed6fed764563e17564.png) +![El logo de Azure Functions](../../../../../translated_images/es/azure-functions-logo.1cfc8e3204c9c44a.webp) El siguiente video corto ofrece una visión general de Azure Functions. diff --git a/translations/es/2-farm/lessons/6-keep-your-plant-secure/README.md b/translations/es/2-farm/lessons/6-keep-your-plant-secure/README.md index 36823fda0..3b94ba33f 100644 --- a/translations/es/2-farm/lessons/6-keep-your-plant-secure/README.md +++ b/translations/es/2-farm/lessons/6-keep-your-plant-secure/README.md @@ -1,6 +1,6 @@ # Mantén tu planta segura -![Un resumen visual de esta lección](../../../../../translated_images/es/lesson-10.829c86b80b9403bb770929ee553a1d293afe50dc23121aaf9be144673ae012cc.jpg) +![Un resumen visual de esta lección](../../../../../translated_images/es/lesson-10.829c86b80b9403bb.webp) > Dibujo por [Nitya Narasimhan](https://github.com/nitya). Haz clic en la imagen para verla en mayor tamaño. @@ -52,11 +52,11 @@ Estos son escenarios del mundo real y ocurren todo el tiempo. Algunos ejemplos s Cuando un dispositivo se conecta a un servicio IoT, utiliza un ID para identificarse. El problema es que este ID puede ser clonado: un hacker podría configurar un dispositivo malicioso que use el mismo ID que un dispositivo real pero que envíe datos falsos. -![Tanto dispositivos válidos como maliciosos podrían usar el mismo ID para enviar telemetría](../../../../../translated_images/es/iot-device-and-hacked-device-connecting.e0671675df74d6d99eb1dedb5a670e606f698efa6202b1ad4c8ae548db299cc6.png) +![Tanto dispositivos válidos como maliciosos podrían usar el mismo ID para enviar telemetría](../../../../../translated_images/es/iot-device-and-hacked-device-connecting.e0671675df74d6d9.webp) La solución a esto es convertir los datos enviados en un formato codificado, utilizando un valor conocido solo por el dispositivo y la nube para codificar los datos. Este proceso se llama *encriptación*, y el valor utilizado para encriptar los datos se llama *clave de encriptación*. -![Si se usa encriptación, solo se aceptarán mensajes encriptados; los demás serán rechazados](../../../../../translated_images/es/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f979e46f2849b573564eeb4a4dc5b52f669f62745397492fb.png) +![Si se usa encriptación, solo se aceptarán mensajes encriptados; los demás serán rechazados](../../../../../translated_images/es/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f.webp) El servicio en la nube puede luego convertir los datos a un formato legible, utilizando un proceso llamado *desencriptación*, ya sea con la misma clave de encriptación o con una *clave de desencriptación*. Si el mensaje encriptado no puede ser desencriptado con la clave, el dispositivo ha sido hackeado y el mensaje es rechazado. diff --git a/translations/es/3-transport/lessons/1-location-tracking/README.md b/translations/es/3-transport/lessons/1-location-tracking/README.md index 355d5692a..656a4c3e2 100644 --- a/translations/es/3-transport/lessons/1-location-tracking/README.md +++ b/translations/es/3-transport/lessons/1-location-tracking/README.md @@ -1,6 +1,6 @@ # Seguimiento de ubicación -![Una vista general ilustrada de esta lección](../../../../../translated_images/es/lesson-11.9fddbac4b664c6d50ab7ac9bb32f1fc3f945f03760e72f7f43938073762fb017.jpg) +![Una vista general ilustrada de esta lección](../../../../../translated_images/es/lesson-11.9fddbac4b664c6d5.webp) > Ilustración por [Nitya Narasimhan](https://github.com/nitya). Haz clic en la imagen para una versión más grande. @@ -63,13 +63,13 @@ La Tierra es una esfera, un círculo tridimensional. Debido a esto, los puntos s > 💁 Nadie sabe realmente la razón original por la cual los círculos se dividen en 360 grados. La [página de grados (ángulo) en Wikipedia](https://wikipedia.org/wiki/Degree_(angle)) cubre algunas de las posibles razones. -![Líneas de latitud desde 90° en el Polo Norte, 45° a mitad de camino entre el Polo Norte y el ecuador, 0° en el ecuador, -45° a mitad de camino entre el ecuador y el Polo Sur, y -90° en el Polo Sur](../../../../../translated_images/es/latitude-lines.11d8d91dfb2014a57437272d7db7fd6607243098e8685f06e0c5f1ec984cb7eb.png) +![Líneas de latitud desde 90° en el Polo Norte, 45° a mitad de camino entre el Polo Norte y el ecuador, 0° en el ecuador, -45° a mitad de camino entre el ecuador y el Polo Sur, y -90° en el Polo Sur](../../../../../translated_images/es/latitude-lines.11d8d91dfb2014a5.webp) La latitud se mide utilizando líneas que rodean la Tierra y corren paralelas al ecuador, dividiendo los hemisferios norte y sur en 90° cada uno. El ecuador está en 0°, el Polo Norte está en 90°, también conocido como 90° Norte, y el Polo Sur está en -90°, o 90° Sur. La longitud se mide como el número de grados hacia el este y el oeste. El origen de 0° de longitud se llama el *Meridiano de Greenwich*, y fue definido en 1884 como una línea desde el Polo Norte al Polo Sur que pasa por el [Observatorio Real Británico en Greenwich, Inglaterra](https://wikipedia.org/wiki/Royal_Observatory,_Greenwich). -![Líneas de longitud que van desde -180° al oeste del Meridiano de Greenwich, hasta 0° en el Meridiano de Greenwich, hasta 180° al este del Meridiano de Greenwich](../../../../../translated_images/es/longitude-meridians.ab4ef1c91c064586b0185a3c8d39e585903696c6a7d28c098a93a629cddb5d20.png) +![Líneas de longitud que van desde -180° al oeste del Meridiano de Greenwich, hasta 0° en el Meridiano de Greenwich, hasta 180° al este del Meridiano de Greenwich](../../../../../translated_images/es/longitude-meridians.ab4ef1c91c064586.webp) > 🎓 Un meridiano es una línea imaginaria recta que va desde el Polo Norte al Polo Sur, formando un semicírculo. @@ -100,7 +100,7 @@ Las coordenadas de un punto siempre se dan como `latitud, longitud`, por lo que * Una latitud de 47.6423109 (47.6423109 grados al norte del ecuador) * Una longitud de -122.1390293 (122.1390293 grados al oeste del Meridiano de Greenwich). -![El campus de Microsoft en 47.6423109,-122.117198](../../../../../translated_images/es/microsoft-gps-location-world.a321d481b010f6adfcca139b2ba0adc53b79f58a540495b8e2ce7f779ea64bfe.png) +![El campus de Microsoft en 47.6423109,-122.117198](../../../../../translated_images/es/microsoft-gps-location-world.a321d481b010f6ad.webp) ## Sistemas de Posicionamiento Global (GPS) @@ -112,7 +112,7 @@ Los sistemas GPS funcionan al tener varios satélites que envían una señal con > 💁 Los sensores GPS necesitan antenas para detectar ondas de radio. Las antenas integradas en camiones y automóviles con GPS a bordo están posicionadas para obtener una buena señal, generalmente en el parabrisas o el techo. Si estás usando un sistema GPS separado, como un teléfono inteligente o un dispositivo IoT, entonces necesitas asegurarte de que la antena integrada en el sistema GPS o teléfono tenga una vista clara del cielo, como estar montada en tu parabrisas. -![Al conocer la distancia del sensor a múltiples satélites, se puede calcular la ubicación](../../../../../translated_images/es/gps-satellites.04acf1148fe25fbf1586bc2e8ba698e8d79b79a50c36824b38417dd13372b90f.png) +![Al conocer la distancia del sensor a múltiples satélites, se puede calcular la ubicación](../../../../../translated_images/es/gps-satellites.04acf1148fe25fbf.webp) Los satélites GPS están orbitando la Tierra, no en un punto fijo sobre el sensor, por lo que los datos de ubicación incluyen la altitud sobre el nivel del mar además de la latitud y longitud. diff --git a/translations/es/3-transport/lessons/1-location-tracking/pi-gps-sensor.md b/translations/es/3-transport/lessons/1-location-tracking/pi-gps-sensor.md index fd60b2001..8cad0bb85 100644 --- a/translations/es/3-transport/lessons/1-location-tracking/pi-gps-sensor.md +++ b/translations/es/3-transport/lessons/1-location-tracking/pi-gps-sensor.md @@ -18,13 +18,13 @@ El sensor Grove GPS puede conectarse a la Raspberry Pi. Conecta el sensor GPS. -![Un sensor Grove GPS](../../../../../translated_images/es/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![Un sensor Grove GPS](../../../../../translated_images/es/grove-gps-sensor.247943bf69b03f0d.webp) 1. Inserta un extremo de un cable Grove en el conector del sensor GPS. Solo encajará de una manera. 1. Con la Raspberry Pi apagada, conecta el otro extremo del cable Grove al conector UART marcado como **UART** en el Grove Base Hat conectado a la Pi. Este conector está en la fila del medio, en el lado más cercano a la ranura de la tarjeta SD, en el extremo opuesto a los puertos USB y el conector Ethernet. - ![El sensor Grove GPS conectado al conector UART](../../../../../translated_images/es/pi-gps-sensor.1f99ee2b2f6528915047ec78967bd362e0e4ee0ed594368a3837b9cf9cdaca64.png) + ![El sensor Grove GPS conectado al conector UART](../../../../../translated_images/es/pi-gps-sensor.1f99ee2b2f652891.webp) 1. Coloca el sensor GPS de manera que la antena conectada tenga visibilidad al cielo, idealmente cerca de una ventana abierta o al aire libre. Es más fácil obtener una señal clara sin obstáculos para la antena. diff --git a/translations/es/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md b/translations/es/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md index bbbe36f9d..61663c5cf 100644 --- a/translations/es/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md +++ b/translations/es/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md @@ -38,11 +38,11 @@ Agrega el sensor GPS a la aplicación CounterFit. 1. Selecciona el botón **Add** para crear el sensor GPS en el puerto `/dev/ttyAMA0`. - ![Configuración del sensor GPS](../../../../../translated_images/es/counterfit-create-gps-sensor.6385dc9357d85ad1d47b4abb2525e7651fd498917d25eefc5a72feab09eedc70.png) + ![Configuración del sensor GPS](../../../../../translated_images/es/counterfit-create-gps-sensor.6385dc9357d85ad1.webp) El sensor GPS será creado y aparecerá en la lista de sensores. - ![Sensor GPS creado](../../../../../translated_images/es/counterfit-gps-sensor.3fbb15af0a5367566f2f11324ef5a6f30861cdf2b497071a5e002b7aa473550e.png) + ![Sensor GPS creado](../../../../../translated_images/es/counterfit-gps-sensor.3fbb15af0a536756.webp) ## Programar el sensor GPS @@ -102,17 +102,17 @@ Programa la aplicación del sensor GPS. * Configura la **Source** como `Lat/Lon` y establece una latitud, longitud y número de satélites utilizados para obtener la posición GPS. Este valor se enviará solo una vez, así que marca la casilla **Repeat** para que los datos se repitan cada segundo. - ![El sensor GPS con lat lon seleccionado](../../../../../translated_images/es/counterfit-gps-sensor-latlon.008c867d75464fbe7f84107cc57040df565ac07cb57d2f21db37d087d470197d.png) + ![El sensor GPS con lat lon seleccionado](../../../../../translated_images/es/counterfit-gps-sensor-latlon.008c867d75464fbe.webp) * Configura la **Source** como `NMEA` y agrega algunas sentencias NMEA en el cuadro de texto. Todos estos valores se enviarán, con un retraso de 1 segundo antes de que se pueda leer cada nueva sentencia GGA (posición fija). - ![El sensor GPS con sentencias NMEA configuradas](../../../../../translated_images/es/counterfit-gps-sensor-nmea.c62eea442171e17e19528b051b104cfcecdc9cd18db7bc72920f29821ae63f73.png) + ![El sensor GPS con sentencias NMEA configuradas](../../../../../translated_images/es/counterfit-gps-sensor-nmea.c62eea442171e17e.webp) Puedes usar una herramienta como [nmeagen.org](https://www.nmeagen.org) para generar estas sentencias dibujando en un mapa. Estos valores se enviarán solo una vez, así que marca la casilla **Repeat** para que los datos se repitan un segundo después de que se hayan enviado todos. * Configura la **Source** como archivo GPX y carga un archivo GPX con ubicaciones de ruta. Puedes descargar archivos GPX de varios sitios populares de mapas y senderismo, como [AllTrails](https://www.alltrails.com/). Estos archivos contienen múltiples ubicaciones GPS como un recorrido, y el sensor GPS devolverá cada nueva ubicación en intervalos de 1 segundo. - ![El sensor GPS con un archivo GPX configurado](../../../../../translated_images/es/counterfit-gps-sensor-gpxfile.8310b063ce8a425ccc8ebeec8306aeac5e8e55207f007d52c6e1194432a70cd9.png) + ![El sensor GPS con un archivo GPX configurado](../../../../../translated_images/es/counterfit-gps-sensor-gpxfile.8310b063ce8a425c.webp) Estos valores se enviarán solo una vez, así que marca la casilla **Repeat** para que los datos se repitan un segundo después de que se hayan enviado todos. diff --git a/translations/es/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md b/translations/es/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md index b85b5306f..3936bd8ec 100644 --- a/translations/es/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md +++ b/translations/es/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md @@ -18,7 +18,7 @@ El sensor Grove GPS se puede conectar al Wio Terminal. Conecta el sensor GPS. -![Un sensor Grove GPS](../../../../../translated_images/es/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![Un sensor Grove GPS](../../../../../translated_images/es/grove-gps-sensor.247943bf69b03f0d.webp) 1. Inserta un extremo de un cable Grove en el conector del sensor GPS. Solo encajará de una manera. diff --git a/translations/es/3-transport/lessons/2-store-location-data/README.md b/translations/es/3-transport/lessons/2-store-location-data/README.md index 19f56603d..fa16cd83c 100644 --- a/translations/es/3-transport/lessons/2-store-location-data/README.md +++ b/translations/es/3-transport/lessons/2-store-location-data/README.md @@ -1,6 +1,6 @@ # Datos de ubicación de la tienda -![Una vista general en sketchnote de esta lección](../../../../../translated_images/es/lesson-12.ca7f53039712a3ec14ad6474d8445361c84adab643edc53fa6269b77895606bb.jpg) +![Una vista general en sketchnote de esta lección](../../../../../translated_images/es/lesson-12.ca7f53039712a3ec.webp) > Sketchnote por [Nitya Narasimhan](https://github.com/nitya). Haz clic en la imagen para una versión más grande. @@ -75,7 +75,7 @@ Las bases de datos NoSQL se llaman NoSQL porque no tienen la misma estructura r > 💁 A pesar de su nombre, algunas bases de datos NoSQL permiten usar SQL para consultar los datos. -![Documentos en carpetas en una base de datos NoSQL](../../../../../translated_images/es/noqsl-database.62d24ccf5b73f60d35c245a8533f1c7147c0928e955b82cb290b2e184bb434df.png) +![Documentos en carpetas en una base de datos NoSQL](../../../../../translated_images/es/noqsl-database.62d24ccf5b73f60d.webp) Las bases de datos NoSQL no tienen un esquema predefinido que limite cómo se almacenan los datos; en cambio, puedes insertar cualquier dato no estructurado, generalmente utilizando documentos JSON. Estos documentos pueden organizarse en carpetas, similar a los archivos en tu computadora. Cada documento puede tener diferentes campos en comparación con otros documentos. Por ejemplo, si estuvieras almacenando datos IoT de tus vehículos agrícolas, algunos podrían tener campos para datos de acelerómetro y velocidad, mientras que otros podrían tener campos para la temperatura en el remolque. Si agregaras un nuevo tipo de camión, como uno con básculas integradas para rastrear el peso de los productos transportados, entonces tu dispositivo IoT podría agregar este nuevo campo y podría almacenarse sin cambios en la base de datos. @@ -89,7 +89,7 @@ En esta lección, usarás almacenamiento NoSQL para guardar datos IoT. En la última lección capturaste datos GPS de un sensor GPS conectado a tu dispositivo IoT. Para almacenar estos datos IoT en la nube, necesitas enviarlos a un servicio IoT. Una vez más, usarás Azure IoT Hub, el mismo servicio IoT en la nube que utilizaste en el proyecto anterior. -![Enviando telemetría GPS desde un dispositivo IoT a IoT Hub](../../../../../translated_images/es/gps-telemetry-iot-hub.8115335d51cd2c1285d20e9d1b18cf685e59a8e093e7797291ef173445af6f3d.png) +![Enviando telemetría GPS desde un dispositivo IoT a IoT Hub](../../../../../translated_images/es/gps-telemetry-iot-hub.8115335d51cd2c12.webp) ### Tarea - enviar datos GPS a un IoT Hub @@ -171,7 +171,7 @@ Los datos de ruta fría se almacenan en almacenes de datos: bases de datos dise Una vez que los datos están fluyendo hacia tu IoT Hub, puedes escribir código sin servidor para escuchar eventos publicados en el punto de conexión compatible con Event-Hub. Esta es la ruta templada: estos datos serán almacenados y utilizados en la próxima lección para informes sobre el recorrido. -![Enviando telemetría GPS desde un dispositivo IoT a IoT Hub, luego a Azure Functions mediante un disparador de Event Hub](../../../../../translated_images/es/gps-telemetry-iot-hub-functions.24d3fa5592455e9f4e2fe73856b40c3915a292b90263c31d652acfd976cfedd8.png) +![Enviando telemetría GPS desde un dispositivo IoT a IoT Hub, luego a Azure Functions mediante un disparador de Event Hub](../../../../../translated_images/es/gps-telemetry-iot-hub-functions.24d3fa5592455e9f.webp) ### Tarea - manejar eventos GPS usando código sin servidor @@ -193,7 +193,7 @@ Una vez que los datos están fluyendo hacia tu IoT Hub, puedes escribir código ## Cuentas de Almacenamiento de Azure -![El logotipo de Azure Storage](../../../../../translated_images/es/azure-storage-logo.605c0f602c640d482a80f1b35a2629a32d595711b7ab1d7ceea843250615ff32.png) +![El logotipo de Azure Storage](../../../../../translated_images/es/azure-storage-logo.605c0f602c640d48.webp) Las Cuentas de Almacenamiento de Azure son un servicio de almacenamiento de propósito general que puede almacenar datos de diversas maneras. Puedes almacenar datos como blobs, en colas, en tablas o como archivos, y todo al mismo tiempo. diff --git a/translations/es/3-transport/lessons/3-visualize-location-data/README.md b/translations/es/3-transport/lessons/3-visualize-location-data/README.md index a5177b3b5..9e48a2abf 100644 --- a/translations/es/3-transport/lessons/3-visualize-location-data/README.md +++ b/translations/es/3-transport/lessons/3-visualize-location-data/README.md @@ -1,6 +1,6 @@ # Visualizar datos de ubicación -![Resumen visual de esta lección](../../../../../translated_images/es/lesson-13.a259db1485021be7d7c72e90842fbe0ab977529e8684c179b5fb1ea75e92b3ef.jpg) +![Resumen visual de esta lección](../../../../../translated_images/es/lesson-13.a259db1485021be7.webp) > Dibujo por [Nitya Narasimhan](https://github.com/nitya). Haz clic en la imagen para verla en mayor tamaño. @@ -64,11 +64,11 @@ Tomemos un ejemplo simple: en el proyecto de la granja capturaste datos de humed Para un humano, entender estos datos puede ser complicado. Es una pared de números sin mucho significado. Como primer paso para visualizar estos datos, se pueden trazar en un gráfico de líneas: -![Un gráfico de líneas con los datos anteriores](../../../../../translated_images/es/chart-soil-moisture.fd6d9d0cdc0b5f75e78038ecb8945dfc84b38851359de99d84b16e3336d6d7c2.png) +![Un gráfico de líneas con los datos anteriores](../../../../../translated_images/es/chart-soil-moisture.fd6d9d0cdc0b5f75.webp) Esto se puede mejorar aún más añadiendo una línea que indique cuándo se activó el sistema de riego automático al alcanzar una lectura de humedad del suelo de 450: -![Un gráfico de líneas de humedad del suelo con una línea en 450](../../../../../translated_images/es/chart-soil-moisture-relay.fbb391236d34a64d0abf1df396e9197e0a24df14150620b9cc820a64a55c9326.png) +![Un gráfico de líneas de humedad del suelo con una línea en 450](../../../../../translated_images/es/chart-soil-moisture-relay.fbb391236d34a64d.webp) Este gráfico muestra rápidamente no solo los niveles de humedad del suelo, sino también los puntos donde se activó el sistema de riego. @@ -84,7 +84,7 @@ Cuando se trabaja con datos GPS, la visualización más clara puede ser trazar l Trabajar con mapas es un ejercicio interesante, y hay muchas opciones disponibles como Bing Maps, Leaflet, Open Street Maps y Google Maps. En esta lección, aprenderás sobre [Azure Maps](https://azure.microsoft.com/services/azure-maps/?WT.mc_id=academic-17441-jabenn) y cómo pueden mostrar tus datos GPS. -![El logotipo de Azure Maps](../../../../../translated_images/es/azure-maps-logo.35d01dcfbd81fe6140e94257aaa1538f785a58c91576d14e0ebe7a2f6c694b99.png) +![El logotipo de Azure Maps](../../../../../translated_images/es/azure-maps-logo.35d01dcfbd81fe61.webp) Azure Maps es "una colección de servicios geoespaciales y SDKs que utilizan datos de mapas actualizados para proporcionar contexto geográfico a aplicaciones web y móviles". Los desarrolladores cuentan con herramientas para crear mapas hermosos e interactivos que pueden hacer cosas como proporcionar rutas de tráfico recomendadas, información sobre incidentes de tráfico, navegación en interiores, capacidades de búsqueda, información de elevación, servicios meteorológicos y más. @@ -185,7 +185,7 @@ Ahora puedes dar el siguiente paso, que es mostrar tu mapa en una página web. U Si abres tu archivo `index.html` en un navegador web, deberías ver un mapa cargado y centrado en el área de Seattle. - ![Un mapa que muestra Seattle, una ciudad en el estado de Washington, EE. UU.](../../../../../translated_images/es/map-image.8fb2c53eb23ef39c1c0a4410a5282e879b3b452b707eb066ff04c5488d3d72b7.png) + ![Un mapa que muestra Seattle, una ciudad en el estado de Washington, EE. UU.](../../../../../translated_images/es/map-image.8fb2c53eb23ef39c.webp) ✅ Experimenta con los parámetros de zoom y centro para cambiar la visualización de tu mapa. Puedes agregar diferentes coordenadas correspondientes a la latitud y longitud de tus datos para re-centrar el mapa. @@ -319,7 +319,7 @@ Si haces una llamada a tu almacenamiento para obtener los datos, podrías sorpre 1. Carga la página HTML en tu navegador. Se cargará el mapa, luego se cargarán todos los datos GPS desde el almacenamiento y se representarán en el mapa. - ![Un mapa del parque estatal Saint Edward cerca de Seattle, con círculos mostrando un camino alrededor del borde del parque](../../../../../translated_images/es/map-path.896832e72dc696ffe20650e4051027d4855442d955f93fdbb80bb417ca8a406f.png) + ![Un mapa del parque estatal Saint Edward cerca de Seattle, con círculos mostrando un camino alrededor del borde del parque](../../../../../translated_images/es/map-path.896832e72dc696ff.webp) > 💁 Puedes encontrar este código en la [carpeta de código](../../../../../3-transport/lessons/3-visualize-location-data/code). diff --git a/translations/es/3-transport/lessons/4-geofences/README.md b/translations/es/3-transport/lessons/4-geofences/README.md index bf93c884f..cc499b891 100644 --- a/translations/es/3-transport/lessons/4-geofences/README.md +++ b/translations/es/3-transport/lessons/4-geofences/README.md @@ -1,6 +1,6 @@ # Geocercas -![Una vista general de esta lección en formato sketchnote](../../../../../translated_images/es/lesson-14.63980c5150ae3c153e770fb71d044c1845dce79248d86bed9fc525adf3ede73c.jpg) +![Una vista general de esta lección en formato sketchnote](../../../../../translated_images/es/lesson-14.63980c5150ae3c15.webp) > Sketchnote por [Nitya Narasimhan](https://github.com/nitya). Haz clic en la imagen para una versión más grande. @@ -35,7 +35,7 @@ En esta lección cubriremos: Una geocerca es un perímetro virtual para una región geográfica del mundo real. Las geocercas pueden ser círculos definidos como un punto y un radio (por ejemplo, un círculo de 100m alrededor de un edificio), o un polígono que cubre un área como una zona escolar, límites de una ciudad, o un campus universitario o de oficinas. -![Algunos ejemplos de geocercas mostrando una geocerca circular alrededor de la tienda de Microsoft y una geocerca poligonal alrededor del campus oeste de Microsoft](../../../../../translated_images/es/geofence-examples.172fbc534665769f6e1a1ddcf75e3b25183cd10354c80cc603ba44b635390e1a.png) +![Algunos ejemplos de geocercas mostrando una geocerca circular alrededor de la tienda de Microsoft y una geocerca poligonal alrededor del campus oeste de Microsoft](../../../../../translated_images/es/geofence-examples.172fbc534665769f.webp) > 💁 Puede que ya hayas usado geocercas sin saberlo. Si has configurado un recordatorio usando la aplicación de recordatorios de iOS o Google Keep basado en una ubicación, has utilizado una geocerca. Estas aplicaciones configuran una geocerca basada en la ubicación dada y te alertan cuando tu teléfono entra en la geocerca. @@ -212,7 +212,7 @@ Es importante conocer la distancia al borde de la geocerca y combinar esto con o Por ejemplo, imagina lecturas de GPS que muestran que un vehículo estaba conduciendo por una carretera que termina corriendo junto a una geocerca. Si un único valor de GPS es inexacto y coloca el vehículo dentro de la geocerca, a pesar de que no hay acceso vehicular, entonces puede ignorarse. -![Un rastro de GPS mostrando un vehículo pasando por el campus de Microsoft en la 520, con lecturas de GPS a lo largo de la carretera excepto una en el campus, dentro de una geocerca](../../../../../translated_images/es/geofence-crossing-inaccurate-gps.6a3ed911202ad9cabb66d3964888cec03a42c61d5b8f536ad5bdc99716b370f5.png) +![Un rastro de GPS mostrando un vehículo pasando por el campus de Microsoft en la 520, con lecturas de GPS a lo largo de la carretera excepto una en el campus, dentro de una geocerca](../../../../../translated_images/es/geofence-crossing-inaccurate-gps.6a3ed911202ad9ca.webp) En la imagen anterior, hay una geocerca sobre parte del campus de Microsoft. La línea roja muestra un camión conduciendo a lo largo de la 520, con círculos que representan las lecturas de GPS. La mayoría de estas son precisas y están a lo largo de la 520, con una lectura inexacta dentro de la geocerca. No hay forma de que esa lectura sea correcta: no hay carreteras para que el camión se desvíe repentinamente de la 520 hacia el campus y luego regrese a la 520. El código que verifica esta geocerca necesitará tomar en cuenta las lecturas previas antes de actuar sobre los resultados de la prueba de la geocerca. ✅ ¿Qué datos adicionales necesitarías verificar para determinar si una lectura de GPS puede considerarse correcta? @@ -284,7 +284,7 @@ Como recordarás de lecciones anteriores, el IoT Hub te permitirá reproducir ev La respuesta es que no puede. En su lugar, puedes definir múltiples conexiones separadas para leer eventos, y cada una puede gestionar la reproducción de mensajes no leídos. Estos se llaman *grupos de consumidores*. Cuando te conectas al punto de conexión, puedes especificar a qué grupo de consumidores deseas conectarte. Cada componente de tu aplicación se conectará a un grupo de consumidores diferente. -![Un IoT Hub con 3 grupos de consumidores distribuyendo los mismos mensajes a 3 diferentes aplicaciones de Functions](../../../../../translated_images/es/consumer-groups.a3262e26fc27ba2092863678ad57af15c7223416e388a23f330c058cf4358630.png) +![Un IoT Hub con 3 grupos de consumidores distribuyendo los mismos mensajes a 3 diferentes aplicaciones de Functions](../../../../../translated_images/es/consumer-groups.a3262e26fc27ba20.webp) En teoría, hasta 5 aplicaciones pueden conectarse a cada grupo de consumidores, y todas recibirán mensajes cuando lleguen. Es una buena práctica tener solo una aplicación accediendo a cada grupo de consumidores para evitar el procesamiento duplicado de mensajes y asegurarse de que, al reiniciar, todos los mensajes en cola se procesen correctamente. Por ejemplo, si lanzas tu aplicación de Functions localmente además de ejecutarla en la nube, ambas procesarían mensajes, lo que llevaría a blobs duplicados almacenados en la cuenta de almacenamiento. diff --git a/translations/es/4-manufacturing/lessons/1-train-fruit-detector/README.md b/translations/es/4-manufacturing/lessons/1-train-fruit-detector/README.md index 59979cb99..fed29d9cb 100644 --- a/translations/es/4-manufacturing/lessons/1-train-fruit-detector/README.md +++ b/translations/es/4-manufacturing/lessons/1-train-fruit-detector/README.md @@ -1,6 +1,6 @@ # Entrena un detector de calidad de frutas -![Una vista general ilustrada de esta lección](../../../../../translated_images/es/lesson-15.843d21afdc6fb2bba70cd9db7b7d2f91598859fafda2078b0bdc44954194b6c0.jpg) +![Una vista general ilustrada de esta lección](../../../../../translated_images/es/lesson-15.843d21afdc6fb2bb.webp) > Ilustración por [Nitya Narasimhan](https://github.com/nitya). Haz clic en la imagen para una versión más grande. @@ -38,7 +38,7 @@ No todos los cultivos maduran de manera uniforme. Los tomates, por ejemplo, pued El auge de la cosecha automatizada trasladó la clasificación de productos de la cosecha a la fábrica. Los alimentos viajarían en largas cintas transportadoras con equipos de personas revisando los productos y eliminando cualquier cosa que no cumpliera con el estándar de calidad requerido. La cosecha era más barata gracias a la maquinaria, pero todavía había un costo asociado con la clasificación manual de los alimentos. -![Si se detecta un tomate rojo, continúa su trayecto sin interrupciones. Si se detecta un tomate verde, se lanza a un contenedor de desechos mediante una palanca](../../../../../translated_images/es/optical-tomato-sorting.61aa134bdda4e5b1bfb16a212c1e35a6ef0c426cbb8b1c975f79d7bfbf48d068.png) +![Si se detecta un tomate rojo, continúa su trayecto sin interrupciones. Si se detecta un tomate verde, se lanza a un contenedor de desechos mediante una palanca](../../../../../translated_images/es/optical-tomato-sorting.61aa134bdda4e5b1.webp) La siguiente evolución fue usar máquinas para clasificar, ya sea integradas en la cosechadora o en las plantas de procesamiento. La primera generación de estas máquinas usaba sensores ópticos para detectar colores, controlando actuadores para empujar tomates verdes a un contenedor de desechos usando palancas o ráfagas de aire, dejando que los tomates rojos continuaran en una red de cintas transportadoras. @@ -62,7 +62,7 @@ Por ejemplo, podrías darle a un modelo millones de imágenes de plátanos inmad > 🎓 Los resultados de los modelos de ML se llaman *predicciones* -![2 plátanos, uno maduro con una predicción de 99.7% maduro, 0.3% inmaduro, y uno inmaduro con una predicción de 1.4% maduro, 98.6% inmaduro](../../../../../translated_images/es/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50ece4e4589e724b142da0681f35470fe3db3f7d51240f69c85.png) +![2 plátanos, uno maduro con una predicción de 99.7% maduro, 0.3% inmaduro, y uno inmaduro con una predicción de 1.4% maduro, 98.6% inmaduro](../../../../../translated_images/es/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50e.webp) Los modelos de ML no dan una respuesta binaria, en cambio, dan probabilidades. Por ejemplo, un modelo puede recibir una imagen de un plátano y predecir `maduro` con un 99.7% y `inmaduro` con un 0.3%. Tu código luego elegiría la mejor predicción y decidiría que el plátano está maduro. @@ -90,7 +90,7 @@ Hay una amplia gama de herramientas que pueden ayudarte a hacer esto, incluyendo Custom Vision es una herramienta basada en la nube para entrenar clasificadores de imágenes. Te permite entrenar un clasificador usando solo un pequeño número de imágenes. Puedes subir imágenes a través de un portal web, una API web o un SDK, dando a cada imagen una *etiqueta* que clasifique esa imagen. Luego entrenas el modelo y lo pruebas para ver qué tan bien funciona. Una vez que estés satisfecho con el modelo, puedes publicar versiones de este que pueden ser accesibles a través de una API web o un SDK. -![El logo de Azure Custom Vision](../../../../../translated_images/es/custom-vision-logo.d3d4e7c8a87ec9daf825e72e210576c3cbf60312577be7a139e22dd97ab7f1e6.png) +![El logo de Azure Custom Vision](../../../../../translated_images/es/custom-vision-logo.d3d4e7c8a87ec9da.webp) > 💁 Puedes entrenar un modelo de Custom Vision con tan solo 5 imágenes por clasificación, pero más es mejor. Puedes obtener mejores resultados con al menos 30 imágenes. @@ -146,7 +146,7 @@ Para usar Custom Vision, primero necesitas crear dos recursos de servicios cogni Cuando crees tu proyecto, asegúrate de usar el recurso `fruit-quality-detector-training` que creaste anteriormente. Usa un tipo de proyecto *Clasificación*, un tipo de clasificación *Multiclase* y el dominio *Alimentos*. - ![La configuración para el proyecto de Custom Vision con el nombre configurado como fruit-quality-detector, sin descripción, el recurso configurado como fruit-quality-detector-training, el tipo de proyecto configurado como clasificación, el tipo de clasificación configurado como multiclase y el dominio configurado como alimentos](../../../../../translated_images/es/custom-vision-create-project.cf46325b92d8b131089f6647cf5e07b664cb77850e106d66e3c057b6b69756c6.png) + ![La configuración para el proyecto de Custom Vision con el nombre configurado como fruit-quality-detector, sin descripción, el recurso configurado como fruit-quality-detector-training, el tipo de proyecto configurado como clasificación, el tipo de clasificación configurado como multiclase y el dominio configurado como alimentos](../../../../../translated_images/es/custom-vision-create-project.cf46325b92d8b131.webp) ✅ Tómate un tiempo para explorar la interfaz de usuario de Custom Vision para tu clasificador de imágenes. @@ -164,7 +164,7 @@ Los clasificadores de imágenes funcionan con resoluciones muy bajas. Por ejempl * Usando 2 plátanos maduros, toma algunas fotos de cada uno desde diferentes ángulos, tomando al menos 7 fotos (5 para entrenar, 2 para probar), pero idealmente más. - ![Fotos de 2 plátanos diferentes](../../../../../translated_images/es/banana-training-images.530eb203346d73bc23b8b990fb4609470bf4ff7c942ccc13d4cfffeed9be1ad4.png) + ![Fotos de 2 plátanos diferentes](../../../../../translated_images/es/banana-training-images.530eb203346d73bc.webp) * Repite el mismo proceso usando 2 plátanos inmaduros. @@ -174,7 +174,7 @@ Los clasificadores de imágenes funcionan con resoluciones muy bajas. Por ejempl 1. Sigue la [sección de subir y etiquetar imágenes del tutorial rápido para construir un clasificador en la documentación de Microsoft](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) para subir tus imágenes de entrenamiento. Etiqueta las frutas maduras como `ripe` y las inmaduras como `unripe`. - ![Los diálogos de subida mostrando la carga de imágenes de plátanos maduros e inmaduros](../../../../../translated_images/es/image-upload-bananas.0751639f3815e0ec42bdbc6254d1e4357a185834d1ae10c9948a0e7d6d336695.png) + ![Los diálogos de subida mostrando la carga de imágenes de plátanos maduros e inmaduros](../../../../../translated_images/es/image-upload-bananas.0751639f3815e0ec.webp) 1. Sigue la [sección de entrenar el clasificador del tutorial rápido para construir un clasificador en la documentación de Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#train-the-classifier) para entrenar el clasificador de imágenes con tus imágenes subidas. @@ -192,7 +192,7 @@ Una vez que tu clasificador esté entrenado, puedes probarlo dándole una nueva 1. Sigue la [documentación para probar tu modelo en los documentos de Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/test-your-model?WT.mc_id=academic-17441-jabenn#test-your-model) para probar tu clasificador de imágenes. Usa las imágenes de prueba que creaste anteriormente, no ninguna de las imágenes que usaste para entrenar. - ![Un plátano inmaduro predicho como inmaduro con una probabilidad del 98.9%, maduro con una probabilidad del 1.1%](../../../../../translated_images/es/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64886422438850ea14f0be6ac918c217ea3b255c685abfabe7.png) + ![Un plátano inmaduro predicho como inmaduro con una probabilidad del 98.9%, maduro con una probabilidad del 1.1%](../../../../../translated_images/es/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64.webp) 1. Prueba todas las imágenes de prueba que tengas y observa las probabilidades. diff --git a/translations/es/4-manufacturing/lessons/2-check-fruit-from-device/README.md b/translations/es/4-manufacturing/lessons/2-check-fruit-from-device/README.md index a593ef720..597105180 100644 --- a/translations/es/4-manufacturing/lessons/2-check-fruit-from-device/README.md +++ b/translations/es/4-manufacturing/lessons/2-check-fruit-from-device/README.md @@ -1,6 +1,6 @@ # Verificar la calidad de la fruta desde un dispositivo IoT -![Un resumen visual de esta lección](../../../../../translated_images/es/lesson-16.215daf18b00631fbdfd64c6fc2dc6044dff5d544288825d8076f9fb83d964c23.jpg) +![Un resumen visual de esta lección](../../../../../translated_images/es/lesson-16.215daf18b00631fb.webp) > Resumen visual por [Nitya Narasimhan](https://github.com/nitya). Haz clic en la imagen para una versión más grande. @@ -26,7 +26,7 @@ En esta lección cubriremos: Los sensores de cámara, como su nombre lo indica, son cámaras que puedes conectar a tu dispositivo IoT. Pueden tomar imágenes fijas o capturar video en streaming. Algunos devuelven datos de imagen sin procesar, mientras que otros comprimen los datos en un archivo de imagen como JPEG o PNG. Por lo general, las cámaras que funcionan con dispositivos IoT son mucho más pequeñas y de menor resolución que las que podrías estar acostumbrado a usar, aunque también puedes encontrar cámaras de alta resolución que rivalizan con los mejores teléfonos. Además, puedes obtener lentes intercambiables, configuraciones de múltiples cámaras, cámaras térmicas infrarrojas o cámaras UV. -![La luz de una escena pasa a través de una lente y se enfoca en un sensor CMOS](../../../../../translated_images/es/cmos-sensor.75f9cd74decb137149a4c9ea825251a4549497d67c0ae2776159e6102bb53aa9.png) +![La luz de una escena pasa a través de una lente y se enfoca en un sensor CMOS](../../../../../translated_images/es/cmos-sensor.75f9cd74decb1371.webp) La mayoría de los sensores de cámara utilizan sensores de imagen donde cada píxel es un fotodiodo. Una lente enfoca la imagen en el sensor de imagen, y miles o millones de fotodiodos detectan la luz que incide en cada uno, registrándola como datos de píxeles. @@ -74,7 +74,7 @@ Las iteraciones se publican desde el portal de Custom Vision. 1. Haz clic en el botón **Publish** para la iteración. - ![El botón de publicar](../../../../../translated_images/es/custom-vision-publish-button.b7174e1977b0c33b8b72d4e5b1326c779e0af196f3849d09985ee2d7d5493a39.png) + ![El botón de publicar](../../../../../translated_images/es/custom-vision-publish-button.b7174e1977b0c33b.webp) 1. En el cuadro de diálogo *Publish Model*, configura el *Prediction resource* en el recurso `fruit-quality-detector-prediction` que creaste en la lección anterior. Deja el nombre como `Iteration2` y selecciona el botón **Publish**. @@ -88,7 +88,7 @@ Las iteraciones se publican desde el portal de Custom Vision. También copia el valor de la *Prediction-Key*. Esta es una clave segura que debes pasar al llamar al modelo. Solo las aplicaciones que pasen esta clave podrán usar el modelo; cualquier otra aplicación será rechazada. - ![El cuadro de diálogo de la API de predicción mostrando la URL y la clave](../../../../../translated_images/es/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![El cuadro de diálogo de la API de predicción mostrando la URL y la clave](../../../../../translated_images/es/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ Cuando se publica una nueva iteración, tendrá un nombre diferente. ¿Cómo crees que podrías cambiar la iteración que está usando un dispositivo IoT? @@ -109,7 +109,7 @@ Es posible que los resultados que obtengas al usar la cámara conectada a tu dis Para obtener los mejores resultados de un clasificador de imágenes, debes entrenar el modelo con imágenes que sean lo más similares posible a las imágenes utilizadas para las predicciones. Por ejemplo, si usaste la cámara de tu teléfono para capturar imágenes para el entrenamiento, la calidad, nitidez y color de las imágenes serán diferentes a las de una cámara conectada a un dispositivo IoT. -![2 imágenes de un plátano, una de baja resolución con poca iluminación de un dispositivo IoT, y otra de alta resolución con buena iluminación de un teléfono](../../../../../translated_images/es/banana-picture-compare.174df164dc326a42cf7fb051a7497e6113c620e91552d92ca914220305d47d9a.png) +![2 imágenes de un plátano, una de baja resolución con poca iluminación de un dispositivo IoT, y otra de alta resolución con buena iluminación de un teléfono](../../../../../translated_images/es/banana-picture-compare.174df164dc326a42.webp) En la imagen anterior, la foto del plátano a la izquierda fue tomada con una cámara Raspberry Pi, mientras que la de la derecha fue tomada del mismo plátano en la misma ubicación con un iPhone. Hay una diferencia notable en la calidad: la foto del iPhone es más nítida, con colores más brillantes y mayor contraste. diff --git a/translations/es/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md b/translations/es/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md index 0b9cb0dd7..b21fafd2d 100644 --- a/translations/es/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md +++ b/translations/es/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md @@ -16,7 +16,7 @@ La cámara se puede conectar a la Raspberry Pi utilizando un cable plano. ### Tarea - conectar la cámara -![Una cámara Raspberry Pi](../../../../../translated_images/es/pi-camera-module.4278753c31bd6e757aa2b858be97d72049f71616278cefe4fb5abb485b40a078.png) +![Una cámara Raspberry Pi](../../../../../translated_images/es/pi-camera-module.4278753c31bd6e75.webp) 1. Apaga la Raspberry Pi. @@ -24,17 +24,17 @@ La cámara se puede conectar a la Raspberry Pi utilizando un cable plano. Puedes encontrar una animación que muestra cómo abrir el clip e insertar el cable en la [documentación de Raspberry Pi para comenzar con el módulo de cámara](https://projects.raspberrypi.org/en/projects/getting-started-with-picamera/2). - ![El cable plano insertado en el módulo de cámara](../../../../../translated_images/es/pi-camera-ribbon-cable.0bf82acd251611c21ac616f082849413e2b322a261d0e4f8fec344248083b07e.png) + ![El cable plano insertado en el módulo de cámara](../../../../../translated_images/es/pi-camera-ribbon-cable.0bf82acd251611c2.webp) 1. Retira el Grove Base Hat de la Raspberry Pi. 1. Pasa el cable plano a través de la ranura para cámara en el Grove Base Hat. Asegúrate de que el lado azul del cable mire hacia los puertos analógicos etiquetados como **A0**, **A1**, etc. - ![El cable plano pasando a través del Grove Base Hat](../../../../../translated_images/es/grove-base-hat-ribbon-cable.501fed202fcf73b11b2b68f6d246189f7d15d3e4423c572ddee79d77b4632b47.png) + ![El cable plano pasando a través del Grove Base Hat](../../../../../translated_images/es/grove-base-hat-ribbon-cable.501fed202fcf73b1.webp) 1. Inserta el cable plano en el puerto de cámara de la Raspberry Pi. Una vez más, tira del clip de plástico negro hacia arriba, inserta el cable y luego empuja el clip hacia abajo. El lado azul del cable debe mirar hacia los puertos USB y Ethernet. - ![El cable plano conectado al puerto de cámara en la Raspberry Pi](../../../../../translated_images/es/pi-camera-socket-ribbon-cable.a18309920b11800911082ed7aa6fb28e6d9be3a022e4079ff990016cae3fca10.png) + ![El cable plano conectado al puerto de cámara en la Raspberry Pi](../../../../../translated_images/es/pi-camera-socket-ribbon-cable.a18309920b118009.webp) 1. Vuelve a colocar el Grove Base Hat. @@ -101,7 +101,7 @@ Programa el dispositivo. La línea `camera.rotation = 0` establece la rotación de la imagen. El cable plano entra por la parte inferior de la cámara, pero si tu cámara está girada para apuntar más fácilmente al objeto que deseas clasificar, puedes cambiar esta línea al número de grados de rotación. - ![La cámara colgando sobre una lata de bebida](../../../../../translated_images/es/pi-camera-upside-down.5376961ba31459883362124152ad6b823d5ac5fc14e85f317e22903bd681c2b6.png) + ![La cámara colgando sobre una lata de bebida](../../../../../translated_images/es/pi-camera-upside-down.5376961ba3145988.webp) Por ejemplo, si suspendes el cable plano sobre algo para que esté en la parte superior de la cámara, entonces establece la rotación en 180: diff --git a/translations/es/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md b/translations/es/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md index 479126136..e3b3a2a08 100644 --- a/translations/es/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md +++ b/translations/es/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md @@ -84,7 +84,7 @@ El servicio Custom Vision tiene un SDK de Python que puedes usar para clasificar Podrás ver la imagen que se tomó y estos valores en la pestaña **Predictions** en Custom Vision. - ![Un plátano en Custom Vision predicho como maduro al 56.8% y no maduro al 43.1%](../../../../../translated_images/es/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![Un plátano en Custom Vision predicho como maduro al 56.8% y no maduro al 43.1%](../../../../../translated_images/es/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 Puedes encontrar este código en la carpeta [code-classify/pi](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/pi) o [code-classify/virtual-iot-device](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/virtual-iot-device). diff --git a/translations/es/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md b/translations/es/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md index 19f56811d..43f371e70 100644 --- a/translations/es/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md +++ b/translations/es/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md @@ -34,11 +34,11 @@ Agrega la cámara a la aplicación CounterFit. 1. Selecciona el botón **Add** para crear la cámara. - ![La configuración de la cámara](../../../../../translated_images/es/counterfit-create-camera.a5de97f59c0bd3cbe0416d7e89a3cfe86d19fbae05c641c53a91286412af0a34.png) + ![La configuración de la cámara](../../../../../translated_images/es/counterfit-create-camera.a5de97f59c0bd3cb.webp) La cámara será creada y aparecerá en la lista de sensores. - ![La cámara creada](../../../../../translated_images/es/counterfit-camera.001ec52194c8ee5d3f617173da2c79e1df903d10882adc625cbfc493525125d4.png) + ![La cámara creada](../../../../../translated_images/es/counterfit-camera.001ec52194c8ee5d.webp) ## Programar la cámara @@ -103,7 +103,7 @@ Programa el dispositivo. 1. Configura la imagen que la cámara en CounterFit capturará. Puedes establecer la *Source* como *File*, luego subir un archivo de imagen, o establecer la *Source* como *WebCam*, y las imágenes se capturarán desde tu cámara web. Asegúrate de seleccionar el botón **Set** después de elegir una imagen o tu cámara web. - ![CounterFit con un archivo configurado como fuente de imagen y una cámara web mostrando a una persona sosteniendo un plátano en la vista previa de la cámara](../../../../../translated_images/es/counterfit-camera-options.eb3bd5150a8e7dffbf24bc5bcaba0cf2cdef95fbe6bbe393695d173817d6b8df.png) + ![CounterFit con un archivo configurado como fuente de imagen y una cámara web mostrando a una persona sosteniendo un plátano en la vista previa de la cámara](../../../../../translated_images/es/counterfit-camera-options.eb3bd5150a8e7dff.webp) 1. Se capturará una imagen y se guardará como `image.jpg` en la carpeta actual. Verás este archivo en el explorador de VS Code. Selecciona el archivo para ver la imagen. Si necesita rotación, actualiza la línea `camera.rotation = 0` según sea necesario y toma otra foto. diff --git a/translations/es/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md b/translations/es/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md index 5990fb2c3..9f0bd53f0 100644 --- a/translations/es/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md +++ b/translations/es/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md @@ -16,7 +16,7 @@ La ArduCam no tiene un conector Grove; en su lugar, se conecta tanto a los buses Conecta la cámara. -![Un sensor ArduCam](../../../../../translated_images/es/arducam.20e4e4cbb268296570b5914e20d6c349fc42ddac9ed4e1b9deba2188204eebae.png) +![Un sensor ArduCam](../../../../../translated_images/es/arducam.20e4e4cbb2682965.webp) 1. Los pines en la base de la ArduCam deben conectarse a los pines GPIO del Wio Terminal. Para facilitar la identificación de los pines correctos, coloca la etiqueta de pines GPIO que viene con el Wio Terminal alrededor de los pines: @@ -35,7 +35,7 @@ Conecta la cámara. | SDA | 3 (I2C1_SDA) | Datos seriales I2C | | SCL | 5 (I2C1_SCL) | Reloj serial I2C | - ![El Wio Terminal conectado a la ArduCam con cables de puente](../../../../../translated_images/es/arducam-wio-terminal-connections.a4d5a4049bdb5ab800a2877389fc6ecf5e4ff307e6451ff56c517e6786467d0a.png) + ![El Wio Terminal conectado a la ArduCam con cables de puente](../../../../../translated_images/es/arducam-wio-terminal-connections.a4d5a4049bdb5ab8.webp) Las conexiones GND y VCC proporcionan una fuente de alimentación de 5V a la ArduCam. Funciona a 5V, a diferencia de los sensores Grove que funcionan a 3V. Esta energía proviene directamente de la conexión USB-C que alimenta el dispositivo. @@ -456,7 +456,7 @@ El Wio Terminal solo admite tarjetas microSD de hasta 16GB de tamaño. Si tienes 1. Apaga el Wio Terminal y expulsa la tarjeta microSD presionándola ligeramente y soltándola, y saldrá. Es posible que necesites usar una herramienta delgada para hacerlo. Conecta la tarjeta microSD a tu computadora para ver las imágenes. - ![Una imagen de un plátano capturada con la ArduCam](../../../../../translated_images/es/banana-arducam.be1b32d4267a8194b0fd042362e56faa431da9cd4af172051b37243ea9be0256.jpg) + ![Una imagen de un plátano capturada con la ArduCam](../../../../../translated_images/es/banana-arducam.be1b32d4267a8194.webp) > 💁 Puede que la cámara necesite unas cuantas imágenes para ajustar el balance de blancos. Notarás esto según el color de las imágenes capturadas, las primeras pueden verse descoloridas. Siempre puedes solucionar esto cambiando el código para capturar algunas imágenes que se ignoren en la función `setup`. diff --git a/translations/es/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md b/translations/es/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md index a0ec70160..dd7a857ea 100644 --- a/translations/es/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md +++ b/translations/es/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md @@ -208,7 +208,7 @@ Estos certificados contienen claves públicas y no necesitan mantenerse seguros. Podrás ver la imagen que se tomó y estos valores en la pestaña **Predictions** en Custom Vision. - ![Un plátano en Custom Vision predicho como maduro al 56.8% y no maduro al 43.1%](../../../../../translated_images/es/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![Un plátano en Custom Vision predicho como maduro al 56.8% y no maduro al 43.1%](../../../../../translated_images/es/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 Puedes encontrar este código en la carpeta [code-classify/wio-terminal](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/wio-terminal). diff --git a/translations/es/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md b/translations/es/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md index 56866f296..bfc107e1d 100644 --- a/translations/es/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md +++ b/translations/es/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md @@ -1,6 +1,6 @@ # Ejecuta tu detector de frutas en el edge -![Resumen visual de esta lección](../../../../../translated_images/es/lesson-17.bc333c3c35ba8e42cce666cfffa82b915f787f455bd94e006aea2b6f2722421a.jpg) +![Resumen visual de esta lección](../../../../../translated_images/es/lesson-17.bc333c3c35ba8e42.webp) > Resumen visual por [Nitya Narasimhan](https://github.com/nitya). Haz clic en la imagen para una versión más grande. @@ -33,11 +33,11 @@ En esta lección cubriremos: La computación en el edge implica tener computadoras que procesen datos de IoT lo más cerca posible de donde se generan. En lugar de realizar este procesamiento en la nube, se traslada al borde de la nube, es decir, a tu red interna. -![Diagrama de arquitectura que muestra servicios de internet en la nube y dispositivos IoT en una red local](../../../../../translated_images/es/cloud-without-edge.b4da641f6022c95ed6b91fde8b5323abd2f94e0d52073ad54172ae8f5dac90e9.png) +![Diagrama de arquitectura que muestra servicios de internet en la nube y dispositivos IoT en una red local](../../../../../translated_images/es/cloud-without-edge.b4da641f6022c95e.webp) En las lecciones anteriores, tus dispositivos recopilaban datos y los enviaban a la nube para ser analizados, ejecutando funciones sin servidor o modelos de IA en la nube. -![Diagrama de arquitectura que muestra dispositivos IoT en una red local conectados a dispositivos edge, y estos dispositivos edge conectados a la nube](../../../../../translated_images/es/cloud-with-edge.1e26462c62c126fe150bd15a5714ddf0be599f09bacbad08b85be02b76ea1ae1.png) +![Diagrama de arquitectura que muestra dispositivos IoT en una red local conectados a dispositivos edge, y estos dispositivos edge conectados a la nube](../../../../../translated_images/es/cloud-with-edge.1e26462c62c126fe.webp) La computación en el edge implica mover algunos de los servicios de la nube a computadoras que operan en la misma red que los dispositivos IoT, comunicándose con la nube solo cuando sea necesario. Por ejemplo, puedes ejecutar modelos de IA en dispositivos edge para analizar la madurez de las frutas y enviar solo análisis a la nube, como el número de frutas maduras frente a inmaduras. @@ -85,7 +85,7 @@ Para los sistemas IoT, a menudo querrás una combinación de computación en la ## Azure IoT Edge -![El logotipo de Azure IoT Edge](../../../../../translated_images/es/azure-iot-edge-logo.c1c076749b5cba2e8755262fadc2f19ca1146b948d76990b1229199ac2292d79.png) +![El logotipo de Azure IoT Edge](../../../../../translated_images/es/azure-iot-edge-logo.c1c076749b5cba2e.webp) Azure IoT Edge es un servicio que puede ayudarte a trasladar cargas de trabajo fuera de la nube hacia el edge. Configuras un dispositivo como un dispositivo edge y, desde la nube, puedes implementar código en ese dispositivo edge. Esto te permite combinar las capacidades de la nube y el edge. @@ -99,7 +99,7 @@ IoT Edge está integrado en IoT Hub, por lo que puedes gestionar dispositivos ed IoT Edge ejecuta código desde *contenedores*: aplicaciones autónomas que se ejecutan de forma aislada del resto de las aplicaciones en tu computadora. Cuando ejecutas un contenedor, actúa como una computadora separada dentro de tu computadora, con su propio software, servicios y aplicaciones en ejecución. La mayoría de las veces, los contenedores no pueden acceder a nada en tu computadora a menos que elijas compartir cosas como una carpeta con el contenedor. El contenedor luego expone servicios a través de un puerto abierto al que puedes conectarte o exponer a tu red. -![Una solicitud web redirigida a un contenedor](../../../../../translated_images/es/container-web-browser.4ee81dd4f0d8838ce622b2a0d600b6a4322b5d4fe43159facd87b7b34f84d66a.png) +![Una solicitud web redirigida a un contenedor](../../../../../translated_images/es/container-web-browser.4ee81dd4f0d8838c.webp) Por ejemplo, puedes tener un contenedor con un sitio web ejecutándose en el puerto 80, el puerto HTTP predeterminado, y puedes exponerlo desde tu computadora también en el puerto 80. @@ -196,11 +196,11 @@ Una vez que el modelo haya sido entrenado, debe ser exportado como un contenedor ## Prepara tu contenedor para el despliegue -![Los contenedores se construyen, luego se envían a un registro de contenedores, y se despliegan desde el registro de contenedores a un dispositivo edge usando IoT Edge](../../../../../translated_images/es/container-edge-flow.c246050dd60ceefdb6ace026a4ce5c6aa4112bb5898ae23fbb2ab4be29ae3e1b.png) +![Los contenedores se construyen, luego se envían a un registro de contenedores, y se despliegan desde el registro de contenedores a un dispositivo edge usando IoT Edge](../../../../../translated_images/es/container-edge-flow.c246050dd60ceefd.webp) Una vez que hayas descargado tu modelo, debe ser construido en un contenedor y luego enviado a un registro de contenedores, que es una ubicación en línea donde puedes almacenar contenedores. IoT Edge puede descargar el contenedor desde el registro y enviarlo a tu dispositivo. -![Logo de Azure Container Registry](../../../../../translated_images/es/azure-container-registry-logo.09494206991d4b295025ebff7d4e2900325e527a59184ffbc8464b6ab59654be.png) +![Logo de Azure Container Registry](../../../../../translated_images/es/azure-container-registry-logo.09494206991d4b29.webp) El registro de contenedores que usarás para esta lección es Azure Container Registry. Este no es un servicio gratuito, así que para ahorrar dinero asegúrate de [limpiar tu proyecto](../../../clean-up.md) una vez que hayas terminado. diff --git a/translations/es/4-manufacturing/lessons/4-trigger-fruit-detector/README.md b/translations/es/4-manufacturing/lessons/4-trigger-fruit-detector/README.md index 667cded25..e09aaa634 100644 --- a/translations/es/4-manufacturing/lessons/4-trigger-fruit-detector/README.md +++ b/translations/es/4-manufacturing/lessons/4-trigger-fruit-detector/README.md @@ -1,6 +1,6 @@ # Activar la detección de calidad de frutas desde un sensor -![Resumen visual de esta lección](../../../../../translated_images/es/lesson-18.92c32ed1d354caa5a54baa4032cf0b172d4655e8e326ad5d46c558a0def15365.jpg) +![Resumen visual de esta lección](../../../../../translated_images/es/lesson-18.92c32ed1d354caa5.webp) > Resumen visual por [Nitya Narasimhan](https://github.com/nitya). Haz clic en la imagen para una versión más grande. @@ -39,7 +39,7 @@ Las aplicaciones de IoT pueden describirse como *cosas* (dispositivos) que enví ### Arquitectura de referencia de IoT -![Una arquitectura de referencia de IoT](../../../../../translated_images/es/iot-reference-architecture.2278b98b55c6d4e89bde18eada3688d893861d43507641804dd2f9d3079cfaa0.png) +![Una arquitectura de referencia de IoT](../../../../../translated_images/es/iot-reference-architecture.2278b98b55c6d4e8.webp) El diagrama anterior muestra una arquitectura de referencia de IoT. @@ -49,7 +49,7 @@ El diagrama anterior muestra una arquitectura de referencia de IoT. * **Insights** provienen de aplicaciones sin servidor o de análisis realizados sobre datos almacenados. * **Acciones** pueden ser comandos enviados a dispositivos o visualización de datos que permiten a los humanos tomar decisiones. -![Una arquitectura de referencia de IoT en Azure](../../../../../translated_images/es/iot-reference-architecture-azure.0b8d2161af924cb18ae48a8558a19541cca47f27264851b5b7e56d7b8bb372ac.png) +![Una arquitectura de referencia de IoT en Azure](../../../../../translated_images/es/iot-reference-architecture-azure.0b8d2161af924cb1.webp) El diagrama anterior muestra algunos de los componentes y servicios cubiertos hasta ahora en estas lecciones y cómo se vinculan en una arquitectura de referencia de IoT. @@ -89,7 +89,7 @@ Necesitas construir un sistema donde las frutas sean detectadas a medida que lle ### Prototipar tu aplicación -![Una arquitectura de referencia de IoT para verificar la calidad de frutas](../../../../../translated_images/es/iot-reference-architecture-fruit-quality.cc705f121c3b6fa71c800d9630935ac34bc08223a04601e35f41d5e9b5dd5207.png) +![Una arquitectura de referencia de IoT para verificar la calidad de frutas](../../../../../translated_images/es/iot-reference-architecture-fruit-quality.cc705f121c3b6fa7.webp) El diagrama anterior muestra una arquitectura de referencia para esta aplicación prototipo. @@ -124,7 +124,7 @@ Sigue la guía correspondiente para usar un sensor de proximidad y detectar un o El prototipo del detector de frutas tiene múltiples componentes que se comunican entre sí. -![Los componentes comunicándose entre sí](../../../../../translated_images/es/fruit-quality-detector-message-flow.adf2a65da8fd8741ac7af11361574de89adc126785d67606bb4d2ec00467e380.png) +![Los componentes comunicándose entre sí](../../../../../translated_images/es/fruit-quality-detector-message-flow.adf2a65da8fd8741.webp) * Un sensor de proximidad mide la distancia a una fruta y envía esta información a IoT Hub. * El comando para controlar la cámara proviene de IoT Hub hacia el dispositivo con la cámara. diff --git a/translations/es/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md b/translations/es/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md index da848a365..5e8825e6c 100644 --- a/translations/es/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md +++ b/translations/es/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md @@ -20,7 +20,7 @@ El sensor Grove Time of Flight puede conectarse a la Raspberry Pi. Conecta el sensor Time of Flight. -![Un sensor Grove Time of Flight](../../../../../translated_images/es/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![Un sensor Grove Time of Flight](../../../../../translated_images/es/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. Inserta un extremo de un cable Grove en el conector del sensor Time of Flight. Solo encajará de una manera. diff --git a/translations/es/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md b/translations/es/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md index 0323bf1c0..b4180a4a6 100644 --- a/translations/es/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md +++ b/translations/es/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md @@ -36,11 +36,11 @@ Agrega el sensor de distancia a la aplicación CounterFit. 1. Selecciona el botón **Add** para crear el sensor de distancia. - ![Configuración del sensor de distancia](../../../../../translated_images/es/counterfit-create-distance-sensor.967c9fb98f27888d95920c9784d004c972490eb71f70397fe13bd70a79a879a3.png) + ![Configuración del sensor de distancia](../../../../../translated_images/es/counterfit-create-distance-sensor.967c9fb98f27888d.webp) El sensor de distancia se creará y aparecerá en la lista de sensores. - ![Sensor de distancia creado](../../../../../translated_images/es/counterfit-distance-sensor.079eefeeea0b68afc36431ce8fcbe2f09a7e4916ed1cd5cb30e696db53bc18fa.png) + ![Sensor de distancia creado](../../../../../translated_images/es/counterfit-distance-sensor.079eefeeea0b68af.webp) ## Programar el sensor de distancia diff --git a/translations/es/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md b/translations/es/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md index 63d901ffa..4b12b4d9b 100644 --- a/translations/es/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md +++ b/translations/es/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md @@ -20,7 +20,7 @@ El sensor Grove Time of Flight puede conectarse al Wio Terminal. Conecta el sensor de tiempo de vuelo. -![Un sensor Grove Time of Flight](../../../../../translated_images/es/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![Un sensor Grove Time of Flight](../../../../../translated_images/es/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. Inserta un extremo del cable Grove en el conector del sensor de tiempo de vuelo. Solo encajará de una manera. diff --git a/translations/es/5-retail/lessons/1-train-stock-detector/README.md b/translations/es/5-retail/lessons/1-train-stock-detector/README.md index 061509bc4..dcbebc52e 100644 --- a/translations/es/5-retail/lessons/1-train-stock-detector/README.md +++ b/translations/es/5-retail/lessons/1-train-stock-detector/README.md @@ -1,6 +1,6 @@ # Entrena un detector de existencias -![Una vista general ilustrada de esta lección](../../../../../translated_images/es/lesson-19.cf6973cecadf080c4b526310620dc4d6f5994c80fb0139c6f378cc9ca2d435cd.jpg) +![Una vista general ilustrada de esta lección](../../../../../translated_images/es/lesson-19.cf6973cecadf080c.webp) > Ilustración por [Nitya Narasimhan](https://github.com/nitya). Haz clic en la imagen para una versión más grande. @@ -36,7 +36,7 @@ La detección de objetos implica identificar objetos en imágenes utilizando IA. La clasificación de imágenes se trata de clasificar una imagen en su totalidad: cuáles son las probabilidades de que toda la imagen coincida con cada etiqueta. Obtienes probabilidades para cada etiqueta utilizada para entrenar el modelo. -![Clasificación de imágenes de nueces de marañón y pasta de tomate](../../../../../translated_images/es/image-classifier-cashews-tomato.bc2e16ab8f05cf9ac0f59f73e32efc4227f9a5b601b90b2c60f436694547a965.png) +![Clasificación de imágenes de nueces de marañón y pasta de tomate](../../../../../translated_images/es/image-classifier-cashews-tomato.bc2e16ab8f05cf9a.webp) En el ejemplo anterior, dos imágenes son clasificadas utilizando un modelo entrenado para clasificar envases de nueces de marañón o latas de pasta de tomate. La primera imagen es un envase de nueces de marañón y tiene dos resultados del clasificador de imágenes: @@ -60,7 +60,7 @@ Cuando lo usas para predecir imágenes, en lugar de obtener una lista de etiquet > 🎓 *Cuadros delimitadores* son los cuadros alrededor de un objeto. -![Detección de objetos de nueces de marañón y pasta de tomate](../../../../../translated_images/es/object-detector-cashews-tomato.1af7c26686b4db0e709754aeb196f4e73271f54e2085db3bcccb70d4a0d84d97.png) +![Detección de objetos de nueces de marañón y pasta de tomate](../../../../../translated_images/es/object-detector-cashews-tomato.1af7c26686b4db0e.webp) La imagen anterior contiene tanto un envase de nueces de marañón como tres latas de pasta de tomate. El detector de objetos detectó las nueces de marañón, devolviendo el cuadro delimitador que contiene las nueces de marañón con el porcentaje de probabilidad de que el cuadro delimitador contenga el objeto, en este caso 97.6%. El detector de objetos también ha detectado tres latas de pasta de tomate y proporciona tres cuadros delimitadores separados, uno para cada lata detectada, y cada uno tiene una probabilidad de que el cuadro delimitador contenga una lata de pasta de tomate. @@ -111,7 +111,7 @@ Puedes entrenar un detector de objetos utilizando Custom Vision, de manera simil Cuando crees tu proyecto, asegúrate de usar el recurso `stock-detector-training` que creaste anteriormente. Usa el tipo de proyecto *Detección de objetos* y el dominio *Productos en estantes*. - ![La configuración del proyecto de Custom Vision con el nombre configurado como fruit-quality-detector, sin descripción, el recurso configurado como fruit-quality-detector-training, el tipo de proyecto configurado como clasificación, los tipos de clasificación configurados como multi-clase y los dominios configurados como alimentos](../../../../../translated_images/es/custom-vision-create-object-detector-project.32d4fb9aa8e7e7375f8a799bfce517aca970f2cb65e42d4245c5e635c734ab29.png) + ![La configuración del proyecto de Custom Vision con el nombre configurado como fruit-quality-detector, sin descripción, el recurso configurado como fruit-quality-detector-training, el tipo de proyecto configurado como clasificación, los tipos de clasificación configurados como multi-clase y los dominios configurados como alimentos](../../../../../translated_images/es/custom-vision-create-object-detector-project.32d4fb9aa8e7e737.webp) ✅ El dominio de productos en estantes está específicamente dirigido a detectar existencias en estantes de tiendas. Lee más sobre los diferentes dominios en la [documentación Seleccionar un dominio en Microsoft Docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/select-domain?WT.mc_id=academic-17441-jabenn#object-detection) @@ -133,11 +133,11 @@ Para entrenar tu modelo necesitarás un conjunto de imágenes que contengan los 1. Sigue la [sección Subir y etiquetar imágenes del inicio rápido para construir un detector de objetos en la documentación de Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/get-started-build-detector?WT.mc_id=academic-17441-jabenn#upload-and-tag-images) para subir tus imágenes de entrenamiento. Crea etiquetas relevantes dependiendo de los tipos de objetos que deseas detectar. - ![Los cuadros de diálogo de carga muestran la carga de imágenes de plátanos maduros e inmaduros](../../../../../translated_images/es/image-upload-object-detector.77c7892c3093cb59b79018edecd678749a75d71a099bc8a2d2f2f76320f88a5b.png) + ![Los cuadros de diálogo de carga muestran la carga de imágenes de plátanos maduros e inmaduros](../../../../../translated_images/es/image-upload-object-detector.77c7892c3093cb59.webp) Cuando dibujes cuadros delimitadores para los objetos, mantenlos ajustados alrededor del objeto. Puede tomar un tiempo delinear todas las imágenes, pero la herramienta detectará lo que cree que son los cuadros delimitadores, haciéndolo más rápido. - ![Etiquetando algo de pasta de tomate](../../../../../translated_images/es/object-detector-tag-tomato-paste.f47c362fb0f0eb582f3bc68cf3855fb43a805106395358d41896a269c210b7b4.png) + ![Etiquetando algo de pasta de tomate](../../../../../translated_images/es/object-detector-tag-tomato-paste.f47c362fb0f0eb58.webp) > 💁 Si tienes más de 15 imágenes para cada objeto, puedes entrenar después de 15 y usar la función **Etiquetas sugeridas**. Esto utilizará el modelo entrenado para detectar los objetos en la imagen no etiquetada. Luego puedes confirmar los objetos detectados o rechazar y volver a dibujar los cuadros delimitadores. Esto puede ahorrar *mucho* tiempo. @@ -155,7 +155,7 @@ Una vez que tu detector de objetos esté entrenado, puedes probarlo dándole nue 1. Usa el botón **Prueba rápida** para subir imágenes de prueba y verificar que los objetos sean detectados. Usa las imágenes de prueba que creaste anteriormente, no ninguna de las imágenes que usaste para entrenar. - ![3 latas de pasta de tomate detectadas con probabilidades de 38%, 35.5% y 34.6%](../../../../../translated_images/es/object-detector-detected-tomato-paste.52656fe87af4c37b4ee540526d63e73ed075da2e54a9a060aa528e0c562fb1b6.png) + ![3 latas de pasta de tomate detectadas con probabilidades de 38%, 35.5% y 34.6%](../../../../../translated_images/es/object-detector-detected-tomato-paste.52656fe87af4c37b.webp) 1. Prueba todas las imágenes de prueba que tengas y observa las probabilidades. diff --git a/translations/es/5-retail/lessons/2-check-stock-device/README.md b/translations/es/5-retail/lessons/2-check-stock-device/README.md index 208d15a15..86f6c3326 100644 --- a/translations/es/5-retail/lessons/2-check-stock-device/README.md +++ b/translations/es/5-retail/lessons/2-check-stock-device/README.md @@ -1,6 +1,6 @@ # Verificar inventario desde un dispositivo IoT -![Una vista general en sketchnote de esta lección](../../../../../translated_images/es/lesson-20.0211df9551a8abb300fc8fcf7dc2789468dea2eabe9202273ac077b0ba37f15e.jpg) +![Una vista general en sketchnote de esta lección](../../../../../translated_images/es/lesson-20.0211df9551a8abb3.webp) > Sketchnote por [Nitya Narasimhan](https://github.com/nitya). Haz clic en la imagen para una versión más grande. @@ -62,7 +62,7 @@ Las iteraciones se publican desde el portal de Custom Vision. 1. Haz clic en el botón **Publish** para la iteración. - ![El botón de publicar](../../../../../translated_images/es/custom-vision-object-detector-publish-button.34ee379fc650ccb9856c3868d0003f413b9529f102fc73c37168c98d721cc293.png) + ![El botón de publicar](../../../../../translated_images/es/custom-vision-object-detector-publish-button.34ee379fc650ccb9.webp) 1. En el cuadro de diálogo *Publish Model*, configura el *Prediction resource* al recurso `stock-detector-prediction` que creaste en la última lección. Deja el nombre como `Iteration2`, y selecciona el botón **Publish**. @@ -76,7 +76,7 @@ Las iteraciones se publican desde el portal de Custom Vision. También toma una copia del valor *Prediction-Key*. Esta es una clave segura que debes pasar cuando llames al modelo. Solo las aplicaciones que pasen esta clave pueden usar el modelo, cualquier otra aplicación será rechazada. - ![El cuadro de diálogo de la API de predicción mostrando la URL y la clave](../../../../../translated_images/es/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![El cuadro de diálogo de la API de predicción mostrando la URL y la clave](../../../../../translated_images/es/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ Cuando se publica una nueva iteración, tendrá un nombre diferente. ¿Cómo crees que podrías cambiar la iteración que está utilizando un dispositivo IoT? @@ -95,7 +95,7 @@ Cuando usas el detector de objetos, no solo obtienes los objetos detectados con Los resultados de una predicción en la pestaña **Predictions** en Custom Vision tienen las cajas delimitadoras dibujadas en la imagen que se envió para la predicción. -![4 latas de pasta de tomate en un estante con predicciones para las 4 detecciones de 35.8%, 33.5%, 25.7% y 16.6%](../../../../../translated_images/es/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) +![4 latas de pasta de tomate en un estante con predicciones para las 4 detecciones de 35.8%, 33.5%, 25.7% y 16.6%](../../../../../translated_images/es/custom-vision-stock-prediction.942266ab1bcca341.webp) En la imagen anterior, se detectaron 4 latas de pasta de tomate. En los resultados, se superpone un cuadro rojo para cada objeto que fue detectado en la imagen, indicando la caja delimitadora para la imagen. @@ -103,7 +103,7 @@ En la imagen anterior, se detectaron 4 latas de pasta de tomate. En los resultad Las cajas delimitadoras se definen con 4 valores: top, left, height y width. Estos valores están en una escala de 0-1, representando las posiciones como un porcentaje del tamaño de la imagen. El origen (la posición 0,0) es la esquina superior izquierda de la imagen, por lo que el valor top es la distancia desde la parte superior, y la parte inferior de la caja delimitadora es el top más la height. -![Una caja delimitadora alrededor de una lata de pasta de tomate](../../../../../translated_images/es/bounding-box.1420a7ea0d3d15f71e1ffb5cf4b2271d184fac051f990abc541975168d163684.png) +![Una caja delimitadora alrededor de una lata de pasta de tomate](../../../../../translated_images/es/bounding-box.1420a7ea0d3d15f7.webp) La imagen anterior tiene 600 píxeles de ancho y 800 píxeles de alto. La caja delimitadora comienza a 320 píxeles hacia abajo, dando un valor top de 0.4 (800 x 0.4 = 320). Desde la izquierda, la caja delimitadora comienza a 240 píxeles hacia adentro, dando un valor left de 0.4 (600 x 0.4 = 240). La altura de la caja delimitadora es de 240 píxeles, dando un valor height de 0.3 (800 x 0.3 = 240). El ancho de la caja delimitadora es de 120 píxeles, dando un valor width de 0.2 (600 x 0.2 = 120). @@ -118,7 +118,7 @@ Usar valores porcentuales de 0-1 significa que, sin importar el tamaño al que s Puedes usar las cajas delimitadoras combinadas con las probabilidades para evaluar qué tan precisa es una detección. Por ejemplo, un detector de objetos puede detectar múltiples objetos que se superponen, por ejemplo, detectando una lata dentro de otra. Tu código podría revisar las cajas delimitadoras, entender que esto es imposible, y ignorar cualquier objeto que tenga una superposición significativa con otros objetos. -![Dos cajas delimitadoras superpuestas en una lata de pasta de tomate](../../../../../translated_images/es/overlap-object-detection.d431e03cae75072a2760430eca7f2c5fdd43045bfd72dadcbf12711f7cd6c2ae.png) +![Dos cajas delimitadoras superpuestas en una lata de pasta de tomate](../../../../../translated_images/es/overlap-object-detection.d431e03cae75072a.webp) En el ejemplo anterior, una caja delimitadora indicó una lata de pasta de tomate predicha con un 78.3%. Una segunda caja delimitadora es ligeramente más pequeña y está dentro de la primera caja delimitadora con una probabilidad de 64.3%. Tu código puede revisar las cajas delimitadoras, ver que se superponen completamente, e ignorar la probabilidad más baja ya que no hay forma de que una lata esté dentro de otra. diff --git a/translations/es/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md b/translations/es/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md index 80813e537..4ee1ce8f5 100644 --- a/translations/es/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md +++ b/translations/es/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md @@ -67,7 +67,7 @@ El código que usaste para clasificar imágenes es muy similar al código para d Podrás ver la imagen que se tomó y estos valores en la pestaña **Predictions** en Custom Vision. - ![4 latas de pasta de tomate en un estante con predicciones para las 4 detecciones de 35.8%, 33.5%, 25.7% y 16.6%](../../../../../translated_images/es/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![4 latas de pasta de tomate en un estante con predicciones para las 4 detecciones de 35.8%, 33.5%, 25.7% y 16.6%](../../../../../translated_images/es/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 Puedes encontrar este código en la carpeta [code-detect/pi](../../../../../5-retail/lessons/2-check-stock-device/code-detect/pi) o [code-detect/virtual-iot-device](../../../../../5-retail/lessons/2-check-stock-device/code-detect/virtual-iot-device). diff --git a/translations/es/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md b/translations/es/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md index 5a3c8e376..167ebd6e5 100644 --- a/translations/es/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md +++ b/translations/es/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md @@ -95,7 +95,7 @@ El código que usaste para clasificar imágenes es muy similar al código para d Podrás ver la imagen que se tomó y estos valores en la pestaña **Predictions** en Custom Vision. - ![4 latas de pasta de tomate en una estantería con predicciones para las 4 detecciones de 35.8%, 33.5%, 25.7% y 16.6%](../../../../../translated_images/es/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![4 latas de pasta de tomate en una estantería con predicciones para las 4 detecciones de 35.8%, 33.5%, 25.7% y 16.6%](../../../../../translated_images/es/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 Puedes encontrar este código en la carpeta [code-detect/wio-terminal](../../../../../5-retail/lessons/2-check-stock-device/code-detect/wio-terminal). diff --git a/translations/es/6-consumer/lessons/1-speech-recognition/README.md b/translations/es/6-consumer/lessons/1-speech-recognition/README.md index e54835c51..9089ebf68 100644 --- a/translations/es/6-consumer/lessons/1-speech-recognition/README.md +++ b/translations/es/6-consumer/lessons/1-speech-recognition/README.md @@ -1,6 +1,6 @@ # Reconocer voz con un dispositivo IoT -![Una visión general ilustrada de esta lección](../../../../../translated_images/es/lesson-21.e34de51354d6606fb5ee08d8c89d0222eea0a2a7aaf744a8805ae847c4f69dc4.jpg) +![Una visión general ilustrada de esta lección](../../../../../translated_images/es/lesson-21.e34de51354d6606f.webp) > Ilustración por [Nitya Narasimhan](https://github.com/nitya). Haz clic en la imagen para una versión más grande. @@ -51,7 +51,7 @@ Los micrófonos vienen en una variedad de tipos: Los micrófonos dinámicos no necesitan energía para funcionar, la señal eléctrica se genera completamente desde el micrófono. - ![Patti Smith cantando en un micrófono Shure SM58 (tipo cardioide dinámico)](../../../../../translated_images/es/dynamic-mic.8babac890a2d80dfb0874b5bf37d4b851fe2aeb9da6fd72945746176978bf3bb.jpg) + ![Patti Smith cantando en un micrófono Shure SM58 (tipo cardioide dinámico)](../../../../../translated_images/es/dynamic-mic.8babac890a2d80df.webp) * De cinta - Los micrófonos de cinta son similares a los dinámicos, excepto que tienen una cinta metálica en lugar de un diafragma. Esta cinta se mueve en un campo magnético generando una corriente eléctrica. Al igual que los micrófonos dinámicos, los de cinta no necesitan energía para funcionar. @@ -59,11 +59,11 @@ Los micrófonos vienen en una variedad de tipos: * Condensador - Los micrófonos de condensador tienen un diafragma metálico delgado y una placa trasera metálica fija. Se aplica electricidad a ambos, y a medida que el diafragma vibra, la carga estática entre las placas cambia generando una señal. Los micrófonos de condensador necesitan energía para funcionar, llamada *Phantom power*. - ![Micrófono de condensador de diafragma pequeño C451B de AKG Acoustics](../../../../../translated_images/es/condenser-mic.6f6ed5b76ca19e0ec3fd0c544601542d4479a6cb7565db336de49fbbf69f623e.jpg) + ![Micrófono de condensador de diafragma pequeño C451B de AKG Acoustics](../../../../../translated_images/es/condenser-mic.6f6ed5b76ca19e0e.webp) * MEMS - Los micrófonos de sistemas microelectromecánicos, o MEMS, son micrófonos en un chip. Tienen un diafragma sensible a la presión grabado en un chip de silicio, y funcionan de manera similar a un micrófono de condensador. Estos micrófonos pueden ser diminutos e integrarse en circuitos. - ![Un micrófono MEMS en una placa de circuito](../../../../../translated_images/es/mems-microphone.80574019e1f5e4d9ee72fed720ecd25a39fc2969c91355d17ebb24ba4159e4c4.png) + ![Un micrófono MEMS en una placa de circuito](../../../../../translated_images/es/mems-microphone.80574019e1f5e4d9.webp) En la imagen de arriba, el chip etiquetado como **LEFT** es un micrófono MEMS, con un diafragma diminuto de menos de un milímetro de ancho. @@ -159,7 +159,7 @@ Para evitar la complejidad de entrenar y usar un modelo de palabras de activaci ## Convertir voz a texto -![Logotipo de servicios de voz](../../../../../translated_images/es/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![Logotipo de servicios de voz](../../../../../translated_images/es/azure-speech-logo.a1f08c4befb0159f.webp) Al igual que con la clasificación de imágenes en un proyecto anterior, existen servicios de IA preconstruidos que pueden tomar voz como archivo de audio y convertirla en texto. Uno de estos servicios es el Servicio de Voz, parte de los Servicios Cognitivos, servicios de IA preconstruidos que puedes usar en tus aplicaciones. diff --git a/translations/es/6-consumer/lessons/1-speech-recognition/pi-audio.md b/translations/es/6-consumer/lessons/1-speech-recognition/pi-audio.md index 2f589b519..42d2e8db7 100644 --- a/translations/es/6-consumer/lessons/1-speech-recognition/pi-audio.md +++ b/translations/es/6-consumer/lessons/1-speech-recognition/pi-audio.md @@ -16,13 +16,13 @@ El botón puede conectarse al Grove Base Hat. #### Tarea - conectar el botón -![Un botón Grove](../../../../../translated_images/es/grove-button.a70cfbb809a8563681003250cf5b06d68cdcc68624f9e2f493d5a534ae2da1e5.png) +![Un botón Grove](../../../../../translated_images/es/grove-button.a70cfbb809a85636.webp) 1. Inserta un extremo de un cable Grove en el conector del módulo del botón. Solo encajará de una manera. 1. Con la Raspberry Pi apagada, conecta el otro extremo del cable Grove al conector digital marcado como **D5** en el Grove Base Hat conectado a la Pi. Este conector es el segundo desde la izquierda, en la fila de conectores junto a los pines GPIO. -![El botón Grove conectado al conector D5](../../../../../translated_images/es/pi-button.c7a1a4f55943341ce1baf1057658e9a205804d4131d258e820c93f951df0abf3.png) +![El botón Grove conectado al conector D5](../../../../../translated_images/es/pi-button.c7a1a4f55943341c.webp) ## Capturar audio diff --git a/translations/es/6-consumer/lessons/1-speech-recognition/pi-microphone.md b/translations/es/6-consumer/lessons/1-speech-recognition/pi-microphone.md index d74387cc0..1e7c43178 100644 --- a/translations/es/6-consumer/lessons/1-speech-recognition/pi-microphone.md +++ b/translations/es/6-consumer/lessons/1-speech-recognition/pi-microphone.md @@ -34,7 +34,7 @@ El micrófono y los altavoces necesitan ser conectados y configurados. 1. Si estás utilizando el ReSpeaker 2-Mics Pi HAT, puedes quitar el Grove base hat y luego colocar el ReSpeaker hat en su lugar. - ![Una Raspberry Pi con un ReSpeaker hat](../../../../../translated_images/es/pi-respeaker-hat.f00fabe7dd039a93e2e0aa0fc946c9af0c6a9eb17c32fa1ca097fb4e384f69f0.png) + ![Una Raspberry Pi con un ReSpeaker hat](../../../../../translated_images/es/pi-respeaker-hat.f00fabe7dd039a93.webp) Necesitarás un botón Grove más adelante en esta lección, pero uno está integrado en este hat, por lo que el Grove base hat no es necesario. diff --git a/translations/es/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md b/translations/es/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md index 68d96f217..bf1004f50 100644 --- a/translations/es/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md +++ b/translations/es/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md @@ -10,7 +10,7 @@ El micrófono integrado captura una señal analógica, que se convierte en una s ✅ Lee más sobre DMA en la [página de acceso directo a memoria en Wikipedia](https://wikipedia.org/wiki/Direct_memory_access). -![El audio del micrófono pasa a un ADC y luego al DMAC. Este escribe en un búfer. Cuando este búfer está lleno, se procesa y el DMAC escribe en un segundo búfer](../../../../../translated_images/es/dmac-adc-buffers.4509aee49145c90bc2e1be472b8ed2ddfcb2b6a81ad3e559114aca55f5fff759.png) +![El audio del micrófono pasa a un ADC y luego al DMAC. Este escribe en un búfer. Cuando este búfer está lleno, se procesa y el DMAC escribe en un segundo búfer](../../../../../translated_images/es/dmac-adc-buffers.4509aee49145c90b.webp) El DMAC puede capturar audio desde el ADC en intervalos fijos, como 16,000 veces por segundo para audio a 16KHz. Puede escribir estos datos capturados en un búfer de memoria preasignado, y cuando este se llena, lo pone a disposición de tu código para procesarlo. Usar esta memoria puede retrasar la captura de audio, pero puedes configurar múltiples búferes. El DMAC escribe en el búfer 1, y cuando este se llena, notifica a tu código para procesarlo mientras el DMAC escribe en el búfer 2. Cuando el búfer 2 se llena, notifica a tu código y vuelve a escribir en el búfer 1. De esta manera, mientras proceses cada búfer en menos tiempo del que toma llenarlo, no perderás datos. diff --git a/translations/es/6-consumer/lessons/2-language-understanding/README.md b/translations/es/6-consumer/lessons/2-language-understanding/README.md index ca11f1f9c..503761a34 100644 --- a/translations/es/6-consumer/lessons/2-language-understanding/README.md +++ b/translations/es/6-consumer/lessons/2-language-understanding/README.md @@ -1,6 +1,6 @@ # Comprender el lenguaje -![Una vista general en sketchnote de esta lección](../../../../../translated_images/es/lesson-22.6148ea28500d9e00c396aaa2649935fb6641362c8f03d8e5e90a676977ab01dd.jpg) +![Una vista general en sketchnote de esta lección](../../../../../translated_images/es/lesson-22.6148ea28500d9e00.webp) > Sketchnote por [Nitya Narasimhan](https://github.com/nitya). Haz clic en la imagen para una versión más grande. @@ -46,7 +46,7 @@ Los modelos de comprensión del lenguaje son modelos de inteligencia artificial ## Crear un modelo de comprensión del lenguaje -![El logo de LUIS](../../../../../translated_images/es/luis-logo.5cb4f3e88c020ee6df4f614e8831f4a4b6809a7247bf52085fb48d629ef9be52.png) +![El logo de LUIS](../../../../../translated_images/es/luis-logo.5cb4f3e88c020ee6.webp) Puedes crear modelos de comprensión del lenguaje utilizando LUIS, un servicio de comprensión del lenguaje de Microsoft que forma parte de Cognitive Services. @@ -169,7 +169,7 @@ Puedes encontrar instrucciones para usar el portal de LUIS en la [documentación 1. A medida que ingreses cada ejemplo, LUIS comenzará a detectar entidades y subrayará y etiquetará las que encuentre. - ![Los ejemplos con los números y unidades de tiempo subrayados por LUIS](../../../../../translated_images/es/luis-intent-examples.25716580b2d2723cf1bafdf277d015c7f046d8cfa20f27bddf3a0873ec45fab7.png) + ![Los ejemplos con los números y unidades de tiempo subrayados por LUIS](../../../../../translated_images/es/luis-intent-examples.25716580b2d2723c.webp) ### Tarea - entrenar y probar el modelo diff --git a/translations/es/6-consumer/lessons/3-spoken-feedback/README.md b/translations/es/6-consumer/lessons/3-spoken-feedback/README.md index 9a3bbe9e1..ccb519a5f 100644 --- a/translations/es/6-consumer/lessons/3-spoken-feedback/README.md +++ b/translations/es/6-consumer/lessons/3-spoken-feedback/README.md @@ -1,6 +1,6 @@ # Configura un temporizador y proporciona retroalimentación hablada -![Un resumen visual de esta lección](../../../../../translated_images/es/lesson-23.f38483e1d4df4828990d3f02d60e46c978b075d384ae7cb4f7bab738e107c850.jpg) +![Un resumen visual de esta lección](../../../../../translated_images/es/lesson-23.f38483e1d4df4828.webp) > Boceto por [Nitya Narasimhan](https://github.com/nitya). Haz clic en la imagen para una versión más grande. diff --git a/translations/es/6-consumer/lessons/4-multiple-language-support/README.md b/translations/es/6-consumer/lessons/4-multiple-language-support/README.md index e3a5b4697..2ce4273e3 100644 --- a/translations/es/6-consumer/lessons/4-multiple-language-support/README.md +++ b/translations/es/6-consumer/lessons/4-multiple-language-support/README.md @@ -1,6 +1,6 @@ # Soporte para múltiples idiomas -![Resumen visual de esta lección](../../../../../translated_images/es/lesson-24.4246968ed058510ab275052e87ef9aa89c7b2f938915d103c605c04dc6cd5bb7.jpg) +![Resumen visual de esta lección](../../../../../translated_images/es/lesson-24.4246968ed058510a.webp) > Resumen visual por [Nitya Narasimhan](https://github.com/nitya). Haz clic en la imagen para una versión más grande. @@ -74,7 +74,7 @@ Existen varios servicios de IA que puedes usar en tus aplicaciones para traducir ### Servicio de voz de Cognitive Services -![El logotipo del servicio de voz](../../../../../translated_images/es/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![El logotipo del servicio de voz](../../../../../translated_images/es/azure-speech-logo.a1f08c4befb0159f.webp) El servicio de voz que has estado utilizando en las últimas lecciones tiene capacidades de traducción para el reconocimiento de voz. Cuando reconoces voz, puedes solicitar no solo el texto de la voz en el mismo idioma, sino también en otros idiomas. @@ -82,7 +82,7 @@ El servicio de voz que has estado utilizando en las últimas lecciones tiene cap ### Servicio de traductor de Cognitive Services -![El logotipo del servicio de traductor](../../../../../translated_images/es/azure-translator-logo.c6ed3a4a433edfd2f11577eca105412c50b8396b194cbbd730723dd1d0793bcd.png) +![El logotipo del servicio de traductor](../../../../../translated_images/es/azure-translator-logo.c6ed3a4a433edfd2.webp) El servicio de traductor es un servicio dedicado que puede traducir texto de un idioma a uno o más idiomas de destino. Además de traducir, admite una amplia gama de funciones adicionales, como enmascarar lenguaje ofensivo. También te permite proporcionar una traducción específica para una palabra o frase en particular, trabajar con términos que no deseas traducir o tener una traducción específica bien conocida. diff --git a/translations/es/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md b/translations/es/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md index a12f1ded8..d82c74d90 100644 --- a/translations/es/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md +++ b/translations/es/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md @@ -25,7 +25,7 @@ La API REST del servicio de voz no admite traducciones directas; en su lugar, pu > > Por ejemplo, si entrenas LUIS en inglés pero deseas usar francés como idioma del usuario, puedes traducir frases como "set a 2 minute and 27 second timer" del inglés al francés usando Bing Translate, y luego usar el botón **Escuchar traducción** para hablar la traducción en tu micrófono. > - > ![El botón de escuchar traducción en Bing Translate](../../../../../translated_images/es/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![El botón de escuchar traducción en Bing Translate](../../../../../translated_images/es/bing-translate.348aa796d6efe2a9.webp) 1. Agrega la clave de la API del traductor debajo de `speech_api_key`: diff --git a/translations/es/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md b/translations/es/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md index 5c36ef530..b8130c860 100644 --- a/translations/es/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md +++ b/translations/es/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md @@ -37,7 +37,7 @@ El servicio de voz puede tomar voz y no solo convertirla en texto en el mismo id > > Por ejemplo, si entrenas LUIS en inglés pero deseas usar francés como idioma del usuario, puedes traducir frases como "set a 2 minute and 27 second timer" del inglés al francés usando Bing Translate, luego usar el botón **Escuchar traducción** para hablar la traducción en tu micrófono. > - > ![El botón escuchar traducción en Bing Translate](../../../../../translated_images/es/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![El botón escuchar traducción en Bing Translate](../../../../../translated_images/es/bing-translate.348aa796d6efe2a9.webp) 1. Reemplaza las declaraciones `recognizer_config` y `recognizer` con lo siguiente: diff --git a/translations/es/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md b/translations/es/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md index 48d5c81f6..543122c5b 100644 --- a/translations/es/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md +++ b/translations/es/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md @@ -105,7 +105,7 @@ La API REST del servicio de discurso no admite traducciones directas. En su luga > > Por ejemplo, si entrenas LUIS en inglés pero deseas usar francés como idioma del usuario, puedes traducir frases como "set a 2 minute and 27 second timer" de inglés a francés utilizando Bing Translate, luego usar el botón **Escuchar traducción** para hablar la traducción en tu micrófono. > - > ![El botón escuchar traducción en Bing Translate](../../../../../translated_images/es/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![El botón escuchar traducción en Bing Translate](../../../../../translated_images/es/bing-translate.348aa796d6efe2a9.webp) 1. Agrega la clave de API del traductor y la ubicación debajo de `SPEECH_LOCATION`: diff --git a/translations/es/README.md b/translations/es/README.md index dec49b300..1576f62de 100644 --- a/translations/es/README.md +++ b/translations/es/README.md @@ -1,16 +1,16 @@ -[![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/) +[![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 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/) ### Únete a la Comunidad Azure AI Foundry -Si te quedas atascado o tienes alguna pregunta sobre la creación de aplicaciones de IA, únete a otros estudiantes y desarrolladores experimentados en debates sobre MCP. Es una comunidad de apoyo donde las preguntas son bienvenidas y el conocimiento se comparte libremente. +Si te quedas atascado o tienes alguna pregunta sobre cómo crear aplicaciones de IA. Únete a otros estudiantes y desarrolladores experimentados en discusiones sobre MCP. Es una comunidad de apoyo donde las preguntas son bienvenidas y el conocimiento se comparte libremente. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) @@ -18,43 +18,53 @@ Si tienes comentarios sobre el producto o errores mientras construyes, visita: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -Sigue estos pasos para comenzar a usar estos recursos: -1. **Haz un Fork del Repositorio**: Haz clic en [![GitHub forks](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) -2. **Clona el Repositorio**: `git clone https://github.com/microsoft/IoT-For-Beginners.git` -3. [**Únete al Discord de Microsoft Foundry y conoce a expertos y otros desarrolladores**](https://discord.com/invite/ByRwuEEgH4) +Sigue estos pasos para comenzar a usar estos recursos: +1. **Haz un fork del repositorio**: Haz clic en [![GitHub forks](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) +2. **Clona el repositorio**: `git clone https://github.com/microsoft/IoT-For-Beginners.git` +3. [**Únete al Discord de Microsoft Foundry y conoce expertos y compañeros desarrolladores**](https://discord.com/invite/ByRwuEEgH4) -### 🌐 Soporte Multilenguaje +### 🌐 Soporte Multi-Idioma -#### Soportado mediante GitHub Action (Automatizado y Siempre Actualizado) +#### Compatible vía GitHub Action (Automatizado y Siempre Actualizado) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](./README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Árabe](../ar/README.md) | [Bengalí](../bn/README.md) | [Búlgaro](../bg/README.md) | [Burmés (Myanmar)](../my/README.md) | [Chino (Simplificado)](../zh-CN/README.md) | [Chino (Tradicional, Hong Kong)](../zh-HK/README.md) | [Chino (Tradicional, Macao)](../zh-MO/README.md) | [Chino (Tradicional, Taiwán)](../zh-TW/README.md) | [Croata](../hr/README.md) | [Checo](../cs/README.md) | [Danés](../da/README.md) | [Holandés](../nl/README.md) | [Estonio](../et/README.md) | [Finlandés](../fi/README.md) | [Francés](../fr/README.md) | [Alemán](../de/README.md) | [Griego](../el/README.md) | [Hebreo](../he/README.md) | [Hindi](../hi/README.md) | [Húngaro](../hu/README.md) | [Indonesio](../id/README.md) | [Italiano](../it/README.md) | [Japonés](../ja/README.md) | [Kannada](../kn/README.md) | [Jemer](../km/README.md) | [Coreano](../ko/README.md) | [Lituano](../lt/README.md) | [Malayo](../ms/README.md) | [Malayalam](../ml/README.md) | [Maratí](../mr/README.md) | [Nepalí](../ne/README.md) | [Pidgin Nigeriano](../pcm/README.md) | [Noruego](../no/README.md) | [Persa (Farsi)](../fa/README.md) | [Polaco](../pl/README.md) | [Portugués (Brasil)](../pt-BR/README.md) | [Portugués (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Rumano](../ro/README.md) | [Ruso](../ru/README.md) | [Serbio (Cirílico)](../sr/README.md) | [Eslovaco](../sk/README.md) | [Esloveno](../sl/README.md) | [Español](./README.md) | [Swahili](../sw/README.md) | [Sueco](../sv/README.md) | [Tagalo (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Tailandés](../th/README.md) | [Turco](../tr/README.md) | [Ucraniano](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamita](../vi/README.md) > **¿Prefieres Clonar Localmente?** - -> Este repositorio incluye más de 50 traducciones a diferentes idiomas lo que incrementa significativamente el tamaño de descarga. Para clonar sin traducciones, usa sparse checkout: +> +> Este repositorio incluye más de 50 traducciones de idiomas, lo que aumenta significativamente el tamaño de la descarga. Para clonar sin las traducciones, usa sparse checkout: +> +> **Bash / macOS / Linux:** > ```bash > git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git > cd IoT-For-Beginners > git sparse-checkout set --no-cone '/*' '!translations' '!translated_images' > ``` -> Esto te da todo lo que necesitas para completar el curso con una descarga mucho más rápida. +> +> **CMD (Windows):** +> ```cmd +> git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git +> cd IoT-For-Beginners +> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" +> ``` +> +> Esto te proporciona todo lo necesario para completar el curso con una descarga mucho más rápida. -# IoT para Principiantes - Un Currículum +# IoT para Principiantes - Un Currículo -Los Defensores de Azure Cloud en Microsoft se complacen en ofrecer un currículum de 12 semanas y 24 lecciones sobre los conceptos básicos de IoT. Cada lección incluye cuestionarios antes y después de la lección, instrucciones escritas para completarla, una solución, una tarea y más. Nuestra pedagogía basada en proyectos te permite aprender mientras construyes, una forma comprobada para que las nuevas habilidades “se queden”. +Los Azure Cloud Advocates en Microsoft están encantados de ofrecer un currículo de 12 semanas, con 24 lecciones, todo sobre los fundamentos del IoT. Cada lección incluye cuestionarios antes y después de la lección, instrucciones escritas para completar la lección, una solución, una tarea y más. Nuestra pedagogía basada en proyectos te permite aprender mientras construyes, una forma comprobada de que las nuevas habilidades "se queden". -Los proyectos cubren el trayecto de los alimentos desde la granja hasta la mesa. Esto incluye agricultura, logística, fabricación, venta al por menor y consumo, todas áreas populares de la industria para dispositivos IoT. +Los proyectos cubren el recorrido de los alimentos desde la granja hasta la mesa. Esto incluye agricultura, logística, manufactura, venta minorista y consumidor: todos áreas industriales populares para dispositivos IoT. -![Un mapa del curso que muestra 24 lecciones abarcando introducción, agricultura, transporte, procesamiento, venta al por menor y cocina](../../translated_images/es/Roadmap.bb1dec285dda0eda.webp) +![Un mapa del curso mostrando 24 lecciones que cubren introducción, agricultura, transporte, procesamiento, venta minorista y cocina](../../translated_images/es/Roadmap.bb1dec285dda0eda.webp) > Sketchnote por [Nitya Narasimhan](https://github.com/nitya). Haz clic en la imagen para una versión más grande. -**Un agradecimiento sincero a nuestros autores [Jen Fox](https://github.com/jenfoxbot), [Jen Looper](https://github.com/jlooper), [Jim Bennett](https://github.com/jimbobbennett), y nuestro artista de sketchnote [Nitya Narasimhan](https://github.com/nitya).** +**Un agradecimiento profundo a nuestros autores [Jen Fox](https://github.com/jenfoxbot), [Jen Looper](https://github.com/jlooper), [Jim Bennett](https://github.com/jimbobbennett), y a nuestra artista de sketchnotes [Nitya Narasimhan](https://github.com/nitya).** -**Gracias también a nuestro equipo de [Embajadores Estudiantiles de Microsoft Learn](https://studentambassadors.microsoft.com?WT.mc_id=academic-17441-jabenn) que han estado revisando y traduciendo este currículum - [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), y [Zina Kamel](https://www.linkedin.com/in/zina-kamel/).** +**Gracias también a nuestro equipo de [Microsoft Learn Student Ambassadors](https://studentambassadors.microsoft.com?WT.mc_id=academic-17441-jabenn) que han estado revisando y traduciendo este currículo - [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), y [Zina Kamel](https://www.linkedin.com/in/zina-kamel/).** ¡Conoce al equipo! @@ -62,114 +72,113 @@ Los proyectos cubren el trayecto de los alimentos desde la granja hasta la mesa. **Gif por** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 ¡Haz clic en la imagen de arriba para ver un video sobre el proyecto! +> 🎥 Haz clic en la imagen de arriba para un video sobre el proyecto! -> **Profesores**, hemos [incluido algunas sugerencias](for-teachers.md) sobre cómo usar este currículum. Si desean crear sus propias lecciones, también hemos incluido una [plantilla de lección](lesson-template/README.md). +> **Profesores**, hemos [incluido algunas sugerencias](for-teachers.md) sobre cómo usar este currículo. Si quieres crear tus propias lecciones, también hemos incluido una [plantilla de lección](lesson-template/README.md). -> **[Estudiantes](https://aka.ms/student-page)**, para usar este currículum por cuenta propia, haz un fork del repositorio completo y completa los ejercicios por tu cuenta, comenzando con un cuestionario previo a la lección, luego leyendo la lección y completando el resto de actividades. Intenta crear los proyectos comprendiendo las lecciones en vez de copiar el código solución; sin embargo, ese código está disponible en las carpetas /solutions de cada lección orientada a proyectos. Otra idea sería formar un grupo de estudio con amigos y revisar el contenido juntos. Para estudio adicional, recomendamos [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn). +> **[Estudiantes](https://aka.ms/student-page)**, para usar este currículo por tu cuenta, haz un fork del repositorio completo y completa los ejercicios por tu cuenta, empezando con un cuestionario previo a la clase, luego leyendo la lección y completando el resto de las actividades. Intenta crear los proyectos comprendiendo las lecciones en lugar de copiar el código solución; no obstante ese código está disponible en las carpetas /solutions en cada lección orientada a proyectos. Otra idea es formar un grupo de estudio con amigos y revisar el contenido juntos. Para estudio avanzado, recomendamos [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn). -Para una vista general en video de este curso, mira este video: +Para una visión general en video de este curso, mira este video: [![Video promocional](https://img.youtube.com/vi/bccEMm8gRuc/0.jpg)](https://youtube.com/watch?v=bccEMm8gRuc "Promo video") -> 🎥 ¡Haz clic en la imagen de arriba para ver un video sobre el proyecto! +> 🎥 Haz clic en la imagen de arriba para un video sobre el proyecto! ## Pedagogía -Hemos elegido dos principios pedagógicos al construir este currículum: asegurar que esté basado en proyectos y que incluya cuestionarios frecuentes. Al final de esta serie, los estudiantes habrán construido un sistema de monitoreo y riego de plantas, un rastreador de vehículos, una configuración de fábrica inteligente para rastrear y verificar alimentos, y un temporizador de cocina controlado por voz, y habrán aprendido los fundamentos del Internet de las Cosas, incluyendo cómo escribir código para dispositivos, conectar con la nube, analizar telemetría y ejecutar IA en el borde. +Hemos elegido dos principios pedagógicos al construir este currículo: asegurar que sea basado en proyectos y que incluya cuestionarios frecuentes. Al final de esta serie, los estudiantes habrán construido un sistema de monitoreo y riego de plantas, un rastreador de vehículos, una fábrica inteligente para rastrear y controlar alimentos, y un temporizador de cocina controlado por voz, y habrán aprendido los fundamentos del Internet de las Cosas, incluyendo cómo escribir código para dispositivos, conectarse a la nube, analizar telemetría y ejecutar IA en el edge. -Al asegurar que el contenido se alinea con proyectos, el proceso se vuelve más atractivo para los estudiantes y se aumenta la retención de conceptos. +Al asegurar que el contenido esté alineado con proyectos, el proceso es más atractivo para los estudiantes y la retención de conceptos se aumenta. -Además, un cuestionario de bajo riesgo antes de la clase establece la intención del estudiante hacia el aprendizaje de un tema, mientras que un segundo cuestionario después de la clase asegura una mayor retención. Este currículum fue diseñado para ser flexible y divertido y puede tomarse completo o parcial. Los proyectos comienzan pequeños y se vuelven cada vez más complejos al final del ciclo de 12 semanas. +Además, un cuestionario de baja presión antes de la clase establece la intención del estudiante hacia el aprendizaje del tema, mientras que un segundo cuestionario después de la clase asegura una retención adicional. Este currículo fue diseñado para ser flexible y divertido y puede ser tomado en su totalidad o en partes. Los proyectos empiezan pequeños y se vuelven cada vez más complejos al finalizar el ciclo de 12 semanas. -Cada proyecto se basa en hardware del mundo real disponible para estudiantes y aficionados. Cada proyecto examina el dominio específico del proyecto, proporcionando el conocimiento de fondo relevante. Para ser un desarrollador exitoso, es útil comprender el dominio en el cual estás resolviendo problemas; al proporcionar este conocimiento de fondo se permite que los estudiantes piensen sobre sus soluciones y aprendizajes de IoT en el contexto del tipo de problema real que podrían tener que resolver como desarrolladores de IoT. Los estudiantes aprenden el 'por qué' de las soluciones que están construyendo y obtienen una apreciación del usuario final. +Cada proyecto está basado en hardware real disponible para estudiantes y aficionados. Cada proyecto se adentra en el dominio específico del proyecto, proporcionando conocimientos relevantes. Para ser un desarrollador exitoso es útil entender el dominio en el que se están resolviendo problemas; proporcionar este conocimiento permite a los estudiantes pensar sobre sus soluciones y aprendizajes en IoT en el contexto del tipo de problema real que podrían tener que resolver como desarrolladores IoT. Los estudiantes aprenden el 'por qué' de las soluciones que están construyendo y adquieren una apreciación por el usuario final. ## Hardware +Tenemos dos opciones de hardware IoT para usar en los proyectos, dependiendo de la preferencia personal, conocimiento o preferencias del lenguaje de programación, objetivos de aprendizaje y disponibilidad. También hemos proporcionado una versión de 'hardware virtual' para quienes no tienen acceso a hardware o desean aprender más antes de comprometerse a una compra. Puede leer más y encontrar una 'lista de compras' en la [página de hardware](./hardware.md), incluidos enlaces para comprar kits completos de nuestros amigos en Seeed Studio. -Tenemos dos opciones de hardware IoT para usar en los proyectos dependiendo de las preferencias personales, conocimientos o preferencias de lenguaje de programación, objetivos de aprendizaje y disponibilidad. También hemos proporcionado una versión de 'hardware virtual' para aquellos que no tengan acceso a hardware o quieran aprender más antes de comprometerse a una compra. Puedes leer más y encontrar una 'lista de compras' en la [página de hardware](./hardware.md), incluyendo enlaces para comprar kits completos de nuestros amigos en Seeed Studio. -> 💁 Encuentra nuestro [Código de Conducta](CODE_OF_CONDUCT.md), las guías de [Contribución](CONTRIBUTING.md) y [Traducción](TRANSLATIONS.md). ¡Agradecemos tus comentarios constructivos! +> 💁 Encuentre nuestro [Código de Conducta](CODE_OF_CONDUCT.md), [Contribuciones](CONTRIBUTING.md) y pautas de [Traducción](TRANSLATIONS.md). ¡Agradecemos sus comentarios constructivos! > -> 🔧 ¿Tienes problemas? Consulta nuestra [Guía de Solución de Problemas](TROUBLESHOOTING.md) para soluciones a problemas comunes. +> 🔧 ¿Tiene problemas? Consulte nuestra [Guía de solución de problemas](TROUBLESHOOTING.md) para obtener soluciones a problemas comunes. ## Cada lección incluye: -- sketchnote +- esquema visual - video suplementario opcional - cuestionario de calentamiento previo a la lección - lección escrita - para lecciones basadas en proyectos, guías paso a paso sobre cómo construir el proyecto -- controles de conocimiento +- verificaciones de conocimiento - un desafío - lectura suplementaria - tarea - [cuestionario posterior a la lección](https://ff-quizzes.netlify.app/en/) -> **Una nota sobre los cuestionarios**: Todos los cuestionarios están contenidos en la carpeta quiz-app, con un total de 48 cuestionarios de tres preguntas cada uno. Están enlazados desde dentro de las lecciones, pero la app de cuestionarios puede ejecutarse localmente o desplegarse en Azure; sigue las instrucciones en la carpeta `quiz-app`. Están siendo localizados gradualmente. +> **Una nota sobre los cuestionarios**: Todos los cuestionarios están contenidos en la carpeta quiz-app, para un total de 48 cuestionarios con tres preguntas cada uno. Se enlazan dentro de las lecciones, pero la aplicación de cuestionarios puede ejecutarse localmente o desplegarse en Azure; siga las instrucciones en la carpeta `quiz-app`. Se están localizando gradualmente. ## Lecciones -| | Nombre del Proyecto | Conceptos Enseñados | Objetivos de Aprendizaje | Lección Vinculada | -| :---: | :--------------------------------------------: | :-------------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------: | -| 01 | [Empezando](./1-getting-started/README.md) | Introducción al IoT | Aprende los principios básicos del IoT y los bloques fundamentales de soluciones IoT como sensores y servicios en la nube mientras configuras tu primer dispositivo IoT | [Introducción al IoT](./1-getting-started/lessons/1-introduction-to-iot/README.md) | -| 02 | [Empezando](./1-getting-started/README.md) | Una mirada más profunda al IoT | Aprende más sobre los componentes de un sistema IoT, así como microcontroladores y computadoras de placa única | [Una mirada más profunda al IoT](./1-getting-started/lessons/2-deeper-dive/README.md) | -| 03 | [Empezando](./1-getting-started/README.md) | Interactuar con el mundo físico con sensores y actuadores | Aprende sobre sensores para recopilar datos del mundo físico y actuadores para enviar retroalimentación, mientras construyes una luz nocturna | [Interactuar con el mundo físico con sensores y actuadores](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | -| 04 | [Empezando](./1-getting-started/README.md) | Conecta tu dispositivo a Internet | Aprende cómo conectar un dispositivo IoT a Internet para enviar y recibir mensajes conectando tu luz nocturna a un broker MQTT | [Conecta tu dispositivo a Internet](./1-getting-started/lessons/4-connect-internet/README.md) | -| 05 | [Granja](./2-farm/README.md) | Predecir el crecimiento de plantas | Aprende cómo predecir el crecimiento de plantas utilizando datos de temperatura capturados por un dispositivo IoT | [Predecir el crecimiento de plantas](./2-farm/lessons/1-predict-plant-growth/README.md) | -| 06 | [Granja](./2-farm/README.md) | Detectar la humedad del suelo | Aprende cómo detectar la humedad del suelo y calibrar un sensor de humedad del suelo | [Detectar la humedad del suelo](./2-farm/lessons/2-detect-soil-moisture/README.md) | -| 07 | [Granja](./2-farm/README.md) | Riego automático de plantas | Aprende cómo automatizar y temporizar el riego usando un relé y MQTT | [Riego automático de plantas](./2-farm/lessons/3-automated-plant-watering/README.md) | -| 08 | [Granja](./2-farm/README.md) | Migra tu planta a la nube | Aprende sobre la nube y servicios IoT hospedados en la nube y cómo conectar tu planta a uno de estos en lugar de un broker MQTT público | [Migra tu planta a la nube](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | -| 09 | [Granja](./2-farm/README.md) | Migra la lógica de tu aplicación a la nube | Aprende cómo puedes escribir lógica de la aplicación en la nube que responda a mensajes IoT | [Migra la lógica de tu aplicación a la nube](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | -| 10 | [Granja](./2-farm/README.md) | Mantén segura tu planta | Aprende sobre seguridad en IoT y cómo mantener segura tu planta con llaves y certificados | [Mantén segura tu planta](./2-farm/lessons/6-keep-your-plant-secure/README.md) | -| 11 | [Transporte](./3-transport/README.md) | Rastreo de ubicación | Aprende sobre rastreo de ubicación GPS para dispositivos IoT | [Rastreo de ubicación](./3-transport/lessons/1-location-tracking/README.md) | -| 12 | [Transporte](./3-transport/README.md) | Almacenar datos de ubicación | Aprende cómo almacenar datos de IoT para ser visualizados o analizados más tarde | [Almacenar datos de ubicación](./3-transport/lessons/2-store-location-data/README.md) | -| 13 | [Transporte](./3-transport/README.md) | Visualizar datos de ubicación | Aprende sobre visualizar datos de ubicación en un mapa y cómo los mapas representan el mundo real 3D en 2 dimensiones | [Visualizar datos de ubicación](./3-transport/lessons/3-visualize-location-data/README.md) | -| 14 | [Transporte](./3-transport/README.md) | Geocercas | Aprende sobre geocercas y cómo se pueden usar para alertar cuando vehículos en la cadena de suministro están cerca de su destino | [Geocercas](./3-transport/lessons/4-geofences/README.md) | -| 15 | [Manufactura](./4-manufacturing/README.md) | Entrena un detector de calidad de frutas | Aprende a entrenar un clasificador de imágenes en la nube para detectar la calidad de las frutas | [Entrena un detector de calidad de frutas](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | -| 16 | [Manufactura](./4-manufacturing/README.md) | Revisa la calidad de las frutas desde un dispositivo IoT | Aprende a usar tu detector de calidad de frutas desde un dispositivo IoT | [Revisa la calidad de las frutas desde un dispositivo IoT](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | -| 17 | [Manufactura](./4-manufacturing/README.md) | Ejecuta tu detector de frutas en el edge | Aprende a ejecutar tu detector de frutas en un dispositivo IoT en el edge | [Ejecuta tu detector de frutas en el edge](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | -| 18 | [Manufactura](./4-manufacturing/README.md) | Activa la detección de calidad de frutas desde un sensor | Aprende a activar la detección de calidad de frutas desde un sensor | [Activa la detección de calidad de frutas desde un sensor](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | -| 19 | [Retail](./5-retail/README.md) | Entrena un detector de stock | Aprende a usar detección de objetos para entrenar un detector de stock para contar existencias en una tienda | [Entrena un detector de stock](./5-retail/lessons/1-train-stock-detector/README.md) | -| 20 | [Retail](./5-retail/README.md) | Revisa el stock desde un dispositivo IoT | Aprende a revisar el stock desde un dispositivo IoT usando un modelo de detección de objetos | [Revisa el stock desde un dispositivo IoT](./5-retail/lessons/2-check-stock-device/README.md) | -| 21 | [Consumidor](./6-consumer/README.md) | Reconoce el habla con un dispositivo IoT | Aprende a reconocer el habla de un dispositivo IoT para construir un temporizador inteligente | [Reconoce el habla con un dispositivo IoT](./6-consumer/lessons/1-speech-recognition/README.md) | -| 22 | [Consumidor](./6-consumer/README.md) | Comprende el lenguaje | Aprende a comprender oraciones habladas a un dispositivo IoT | [Comprende el lenguaje](./6-consumer/lessons/2-language-understanding/README.md) | -| 23 | [Consumidor](./6-consumer/README.md) | Configura un temporizador y da retroalimentación hablada | Aprende a configurar un temporizador en un dispositivo IoT y dar retroalimentación hablada sobre cuándo se configura y cuándo termina | [Configura un temporizador y da retroalimentación hablada](./6-consumer/lessons/3-spoken-feedback/README.md) | -| 24 | [Consumidor](./6-consumer/README.md) | Soporta múltiples idiomas | Aprende cómo soportar varios idiomas, tanto al ser hablado como en las respuestas de tu temporizador inteligente | [Soporta múltiples idiomas](./6-consumer/lessons/4-multiple-language-support/README.md) | +| | Nombre del Proyecto | Conceptos Enseñados | Objetivos de Aprendizaje | Lección Enlazada | +| :---: | :--------------------------------------------: | :-------------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :-----------------------------------------------------------------------------------------------------------------------------: | +| 01 | [Introducción](./1-getting-started/README.md) | Introducción al IoT | Aprenda los principios básicos del IoT y los bloques fundamentales de las soluciones IoT como sensores y servicios en la nube mientras configura su primer dispositivo IoT | [Introducción al IoT](./1-getting-started/lessons/1-introduction-to-iot/README.md) | +| 02 | [Introducción](./1-getting-started/README.md) | Un vistazo más profundo al IoT | Aprenda más sobre los componentes de un sistema IoT, así como microcontroladores y computadoras de placa única | [Un vistazo más profundo al IoT](./1-getting-started/lessons/2-deeper-dive/README.md) | +| 03 | [Introducción](./1-getting-started/README.md) | Interactúe con el mundo físico mediante sensores y actuadores | Conozca los sensores para recolectar datos del mundo físico y los actuadores para enviar retroalimentación, mientras construye una luz nocturna | [Interactúe con el mundo físico mediante sensores y actuadores](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | +| 04 | [Introducción](./1-getting-started/README.md) | Conecte su dispositivo a Internet | Aprenda cómo conectar un dispositivo IoT a Internet para enviar y recibir mensajes conectando su luz nocturna a un broker MQTT | [Conecte su dispositivo a Internet](./1-getting-started/lessons/4-connect-internet/README.md) | +| 05 | [Granja](./2-farm/README.md) | Prediga el crecimiento de plantas | Aprenda a predecir el crecimiento de plantas usando datos de temperatura capturados por un dispositivo IoT | [Prediga el crecimiento de plantas](./2-farm/lessons/1-predict-plant-growth/README.md) | +| 06 | [Granja](./2-farm/README.md) | Detecte la humedad del suelo | Aprenda a detectar la humedad del suelo y calibrar un sensor de humedad del suelo | [Detecte la humedad del suelo](./2-farm/lessons/2-detect-soil-moisture/README.md) | +| 07 | [Granja](./2-farm/README.md) | Riego automatizado de plantas | Aprenda cómo automatizar y programar el riego usando un relé y MQTT | [Riego automatizado de plantas](./2-farm/lessons/3-automated-plant-watering/README.md) | +| 08 | [Granja](./2-farm/README.md) | Migre su planta a la nube | Aprenda sobre la nube y los servicios IoT alojados en la nube y cómo conectar su planta a uno de estos en lugar de a un broker MQTT público | [Migre su planta a la nube](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | +| 09 | [Granja](./2-farm/README.md) | Migre la lógica de su aplicación a la nube | Aprenda cómo escribir lógica de aplicación en la nube que responda a mensajes IoT | [Migre la lógica de su aplicación a la nube](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | +| 10 | [Granja](./2-farm/README.md) | Mantenga su planta segura | Aprenda sobre seguridad en IoT y cómo mantener segura su planta con claves y certificados | [Mantenga su planta segura](./2-farm/lessons/6-keep-your-plant-secure/README.md) | +| 11 | [Transporte](./3-transport/README.md) | Seguimiento de ubicación | Aprenda sobre el seguimiento de ubicación GPS para dispositivos IoT | [Seguimiento de ubicación](./3-transport/lessons/1-location-tracking/README.md) | +| 12 | [Transporte](./3-transport/README.md) | Almacene datos de ubicación | Aprenda cómo almacenar datos IoT para visualización o análisis posterior | [Almacene datos de ubicación](./3-transport/lessons/2-store-location-data/README.md) | +| 13 | [Transporte](./3-transport/README.md) | Visualice datos de ubicación | Aprenda sobre la visualización de datos de ubicación en un mapa y cómo los mapas representan el mundo real 3D en 2 dimensiones | [Visualice datos de ubicación](./3-transport/lessons/3-visualize-location-data/README.md) | +| 14 | [Transporte](./3-transport/README.md) | Geocercas | Aprenda sobre geocercas y cómo pueden usarse para alertar cuando vehículos en la cadena de suministro están cerca de su destino | [Geocercas](./3-transport/lessons/4-geofences/README.md) | +| 15 | [Manufactura](./4-manufacturing/README.md) | Entrene un detector de calidad de fruta | Aprenda sobre entrenamiento de un clasificador de imágenes en la nube para detectar calidad de frutas | [Entrene un detector de calidad de fruta](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | +| 16 | [Manufactura](./4-manufacturing/README.md) | Verifique la calidad de fruta desde un dispositivo IoT | Aprenda a usar su detector de calidad de fruta desde un dispositivo IoT | [Verifique la calidad de fruta desde un dispositivo IoT](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | +| 17 | [Manufactura](./4-manufacturing/README.md) | Ejecute su detector de frutas en el edge | Aprenda sobre la ejecución de su detector de frutas en un dispositivo IoT en el edge | [Ejecute su detector de frutas en el edge](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | +| 18 | [Manufactura](./4-manufacturing/README.md) | Active la detección de calidad de fruta desde un sensor | Aprenda sobre la activación de la detección de calidad de fruta desde un sensor | [Active la detección de calidad de fruta desde un sensor](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | +| 19 | [Retail](./5-retail/README.md) | Entrene un detector de existencias | Aprenda a usar detección de objetos para entrenar un detector de existencias que cuente el stock en una tienda | [Entrene un detector de existencias](./5-retail/lessons/1-train-stock-detector/README.md) | +| 20 | [Retail](./5-retail/README.md) | Verifique existencias desde un dispositivo IoT | Aprenda a verificar existencias desde un dispositivo IoT usando un modelo de detección de objetos | [Verifique existencias desde un dispositivo IoT](./5-retail/lessons/2-check-stock-device/README.md) | +| 21 | [Consumidor](./6-consumer/README.md) | Reconozca voz con un dispositivo IoT | Aprenda a reconocer voz desde un dispositivo IoT para construir un temporizador inteligente | [Reconozca voz con un dispositivo IoT](./6-consumer/lessons/1-speech-recognition/README.md) | +| 22 | [Consumidor](./6-consumer/README.md) | Comprenda el lenguaje | Aprenda a entender frases habladas a un dispositivo IoT | [Comprenda el lenguaje](./6-consumer/lessons/2-language-understanding/README.md) | +| 23 | [Consumidor](./6-consumer/README.md) | Configure un temporizador y proporcione retroalimentación hablada | Aprenda a configurar un temporizador en un dispositivo IoT y dar retroalimentación hablada sobre cuándo se configura y cuándo termina el temporizador | [Configure un temporizador y proporcione retroalimentación hablada](./6-consumer/lessons/3-spoken-feedback/README.md) | +| 24 | [Consumidor](./6-consumer/README.md) | Soporte para múltiples idiomas | Aprenda a soportar múltiples idiomas, tanto para entender lo hablado como para las respuestas de su temporizador inteligente | [Soporte para múltiples idiomas](./6-consumer/lessons/4-multiple-language-support/README.md) | ## Acceso sin conexión -Puedes ejecutar esta documentación sin conexión usando [Docsify](https://docsify.js.org/#/). Haz un fork de este repositorio, [instala Docsify](https://docsify.js.org/#/quickstart) en tu máquina local, y luego en la carpeta raíz de este repositorio, escribe `docsify serve`. El sitio web se servirá en el puerto 3000 en tu localhost: `localhost:3000`. +Puede ejecutar esta documentación sin conexión usando [Docsify](https://docsify.js.org/#/). Haga un fork de este repositorio, [instale Docsify](https://docsify.js.org/#/quickstart) en su máquina local y luego, en la carpeta raíz de este repositorio, escriba `docsify serve`. El sitio web se servirá en el puerto 3000 de su localhost: `localhost:3000`. ## Cuestionario -Gracias a la comunidad por alojar el cuestionario interactivo que prueba tus conocimientos en cada uno de los capítulos. Puedes probar tus conocimientos [aquí](https://ff-quizzes.netlify.app/en/) +Gracias a la comunidad por alojar el cuestionario interactivo que pone a prueba su conocimiento en cada uno de los capítulos. Puede evaluar su conocimiento [aquí](https://ff-quizzes.netlify.app/en/) ### PDF -Puedes generar un PDF de este contenido para acceso sin conexión si lo necesitas. Para ello, asegúrate de tener [npm instalado](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) y ejecuta los siguientes comandos en la carpeta raíz de este repositorio: +Puede generar un PDF de este contenido para acceso sin conexión si es necesario. Para hacerlo, asegúrese de tener [npm instalado](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) y ejecute los siguientes comandos en la carpeta raíz de este repositorio: ```sh npm i npm run convert ``` -### Presentaciones - -Hay presentaciones para algunas de las lecciones en la carpeta [slides](../../slides). +### Diapositivas +Hay presentaciones de diapositivas para algunas de las lecciones en la carpeta [slides](../../slides). ## Otros Currículos -¡Nuestro equipo produce otros currículos! Consulta: +¡Nuestro equipo produce otros currículos! Échele un vistazo: ### LangChain -[![LangChain4j para Principiantes](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) -[![LangChain.js para Principiantes](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) - +[![LangChain4j para principiantes](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) +[![LangChain.js para principiantes](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain para principiantes](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- ### Azure / Edge / MCP / Agentes -[![AZD para Principiantes](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AZD para principiantes](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI para Principiantes](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) [![MCP para Principiantes](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) [![Agentes de IA para Principiantes](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) @@ -199,15 +208,15 @@ Hay presentaciones para algunas de las lecciones en la carpeta [slides](../../sl [![Copilot para Programación en Pareja con IA](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) [![Copilot para C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) [![Aventura Copilot](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - + -## Atribuciones de imágenes +## Atribuciones de las imágenes -Puedes encontrar todas las atribuciones para las imágenes usadas en este plan de estudios donde sea requerido en [Attributions](./attributions.md). +Puedes encontrar todas las atribuciones de las imágenes usadas en este currículo donde sea necesario en [Atribuciones](./attributions.md). --- -**Descargo de responsabilidad**: -Este documento ha sido traducido utilizando el servicio de traducción automática [Co-op Translator](https://github.com/Azure/co-op-translator). Aunque nos esforzamos por la precisión, tenga en cuenta que las traducciones automáticas pueden contener errores o inexactitudes. El documento original en su idioma nativo debe considerarse la fuente autorizada. Para información crítica, se recomienda la traducción profesional realizada por humanos. No nos hacemos responsables por malentendidos o interpretaciones erróneas derivadas del uso de esta traducción. +**Aviso Legal**: +Este documento ha sido traducido utilizando el servicio de traducción por IA [Co-op Translator](https://github.com/Azure/co-op-translator). Aunque nos esforzamos por la precisión, por favor tenga en cuenta que las traducciones automáticas pueden contener errores o inexactitudes. El documento original en su idioma nativo debe considerarse la fuente autorizada. Para información crítica, se recomienda la traducción profesional humana. No nos hacemos responsables de ningún malentendido o interpretación errónea derivada del uso de esta traducción. \ No newline at end of file diff --git a/translations/es/hardware.md b/translations/es/hardware.md index 8db95cd4b..20cd5be21 100644 --- a/translations/es/hardware.md +++ b/translations/es/hardware.md @@ -26,7 +26,7 @@ Seeed Studios ha tenido la amabilidad de poner todo el hardware disponible en ki **[IoT para principiantes con Seeed y Microsoft - Kit de inicio Raspberry Pi 4](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html)** -[![El kit de hardware Raspberry Pi Terminal](../../translated_images/es/pi-hardware-kit.26dbadaedb7dd44c73b0131d5d68ea29472ed0a9744f90d5866c6d82f2d16380.png)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) +[![El kit de hardware Raspberry Pi Terminal](../../translated_images/es/pi-hardware-kit.26dbadaedb7dd44c.webp)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) ## Arduino diff --git a/translations/et/.co-op-translator.json b/translations/et/.co-op-translator.json index 32ac5935f..238888f81 100644 --- a/translations/et/.co-op-translator.json +++ b/translations/et/.co-op-translator.json @@ -738,8 +738,8 @@ "language_code": "et" }, "README.md": { - "original_hash": "3fcc056cd3837e33d2bdf79f9c359fcf", - "translation_date": "2026-01-30T02:55:24+00:00", + "original_hash": "accf69391fa4450eadbf492ca024cccf", + "translation_date": "2026-04-06T18:10:12+00:00", "source_file": "README.md", "language_code": "et" }, diff --git a/translations/et/1-getting-started/lessons/1-introduction-to-iot/README.md b/translations/et/1-getting-started/lessons/1-introduction-to-iot/README.md index 7f2d9dab2..ec31fdfac 100644 --- a/translations/et/1-getting-started/lessons/1-introduction-to-iot/README.md +++ b/translations/et/1-getting-started/lessons/1-introduction-to-iot/README.md @@ -1,6 +1,6 @@ # Sissejuhatus asjade internetti -![Selle õppetunni visandmärkmed](../../../../../translated_images/et/lesson-1.2606670fa61ee904687da5d6fa4e726639d524d064c895117da1b95b9ff6251d.jpg) +![Selle õppetunni visandmärkmed](../../../../../translated_images/et/lesson-1.2606670fa61ee904.webp) > Visandmärkmed: [Nitya Narasimhan](https://github.com/nitya). Suurema versiooni vaatamiseks klõpsake pildil. diff --git a/translations/et/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md b/translations/et/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md index a978c2754..6fa2ecccb 100644 --- a/translations/et/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md +++ b/translations/et/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md @@ -203,7 +203,7 @@ Teise "Tere maailm" sammuna käivitate CounterFiti rakenduse ja ühendate oma ko Rakendus hakkab tööle ja avaneb teie veebibrauseris: - ![CounterFit rakendus töötab brauseris](../../../../../translated_images/et/counterfit-first-run.433326358b669b31d0e99c3513cb01bfbb13724d162c99cdcc8f51ecf5f9c779.png) + ![CounterFit rakendus töötab brauseris](../../../../../translated_images/et/counterfit-first-run.433326358b669b31.webp) See on märgitud kui *Disconnected* ja paremas ülanurgas olev LED on välja lülitatud. @@ -224,7 +224,7 @@ Teise "Tere maailm" sammuna käivitate CounterFiti rakenduse ja ühendate oma ko 1. Käivitage selles uues terminalis `app.py` fail nagu varem. CounterFiti olek muutub **Connected** ja LED süttib. - ![CounterFit näitab ühendatud olekut](../../../../../translated_images/et/counterfit-connected.ed30b46d8f79b0921f3fc70be10366e596a89dca3f80c2224a9d9fc98fccf884.png) + ![CounterFit näitab ühendatud olekut](../../../../../translated_images/et/counterfit-connected.ed30b46d8f79b092.webp) > 💁 Selle koodi leiate kaustast [code/virtual-device](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/virtual-device). diff --git a/translations/et/1-getting-started/lessons/2-deeper-dive/README.md b/translations/et/1-getting-started/lessons/2-deeper-dive/README.md index 1dd2ba3dc..4428cc266 100644 --- a/translations/et/1-getting-started/lessons/2-deeper-dive/README.md +++ b/translations/et/1-getting-started/lessons/2-deeper-dive/README.md @@ -1,6 +1,6 @@ # Süvitsi IoT teemadesse -![Selle õppetunni visuaalne ülevaade](../../../../../translated_images/et/lesson-2.324b0580d620c25e0a24fb7fddfc0b29a846dd4b82c08e7a9466d580ee78ce51.jpg) +![Selle õppetunni visuaalne ülevaade](../../../../../translated_images/et/lesson-2.324b0580d620c25e.webp) > Visuaalne märkmik: [Nitya Narasimhan](https://github.com/nitya). Klõpsa pildil, et näha suuremat versiooni. @@ -38,7 +38,7 @@ IoT **asi** viitab seadmele, mis suudab suhelda füüsilise maailmaga. Need sead Need seadmed suhtlevad füüsilise maailmaga, kas sensorite abil, et koguda andmeid oma ümbrusest, või juhtides väljundeid või aktuaatoreid, et teha füüsilisi muudatusi. Tüüpiline näide on nutikas termostaat – seade, millel on temperatuuriandur, vahend soovitud temperatuuri seadmiseks, näiteks ketas või puutetundlik ekraan, ja ühendus kütte- või jahutussüsteemiga, mida saab sisse lülitada, kui tuvastatud temperatuur on väljaspool soovitud vahemikku. Temperatuuriandur tuvastab, et ruum on liiga külm, ja aktuaator lülitab kütte sisse. -![Diagram, mis näitab temperatuuri ja ketast IoT seadme sisenditena ning kütte juhtimist väljundina](../../../../../translated_images/et/basic-thermostat.a923217fd1f37e5a6f3390396a65c22a387419ea2dd17e518ec24315ba6ae9a8.png) +![Diagram, mis näitab temperatuuri ja ketast IoT seadme sisenditena ning kütte juhtimist väljundina](../../../../../translated_images/et/basic-thermostat.a923217fd1f37e5a.webp) IoT seadmeteks võivad olla väga erinevad asjad, alates spetsiaalsest riistvarast, mis tuvastab ühte asja, kuni üldotstarbeliste seadmeteni, isegi teie nutitelefon! Nutitelefon võib kasutada sensoreid, et tuvastada ümbritsevat maailma, ja aktuaatoreid, et suhelda maailmaga – näiteks GPS-sensori abil tuvastada teie asukohta ja kõlarit, et anda navigeerimisjuhiseid sihtkohta. @@ -54,7 +54,7 @@ Seadmed ei pruugi alati otse Internetiga ühenduda WiFi või kaabliga. Mõned se Näiteks nutika termostaadi puhul ühendub termostaat koduse WiFi kaudu pilveteenusega. See saadab temperatuuriandmed pilveteenusele, kust need kirjutatakse mingisse andmebaasi, võimaldades koduomanikul kontrollida praegust ja varasemat temperatuuri telefoni rakenduse kaudu. Teine pilveteenus teab, millist temperatuuri koduomanik soovib, ja saadab sõnumeid IoT seadmele pilveteenuse kaudu, et öelda küttele, kas see tuleks sisse või välja lülitada. -![Diagram, mis näitab temperatuuri ja ketast IoT seadme sisenditena, IoT seadet kahepoolse suhtlusega pilvega, mis omakorda suhtleb kahepoolse suhtlusega telefoniga, ja kütte juhtimist IoT seadme väljundina](../../../../../translated_images/et/mobile-controlled-thermostat.4a994010473d8d6a52ba68c67e5f02dc8928c717e93ca4b9bc55525aa75bbb60.png) +![Diagram, mis näitab temperatuuri ja ketast IoT seadme sisenditena, IoT seadet kahepoolse suhtlusega pilvega, mis omakorda suhtleb kahepoolse suhtlusega telefoniga, ja kütte juhtimist IoT seadme väljundina](../../../../../translated_images/et/mobile-controlled-thermostat.4a994010473d8d6a.webp) Veelgi nutikam versioon võiks kasutada pilves AI-d koos andmetega teistelt IoT seadmetelt, näiteks liikumisanduritelt, mis tuvastavad, millised ruumid on kasutuses, samuti andmeid nagu ilm ja isegi teie kalender, et teha otsuseid temperatuuri nutikaks seadmiseks. Näiteks võiks see lülitada kütte välja, kui teie kalendrist loeb, et olete puhkusel, või lülitada kütte välja ruumipõhiselt sõltuvalt sellest, milliseid ruume te kasutate, õppides andmetest aja jooksul üha täpsemaks. @@ -94,7 +94,7 @@ Mida kiirem on kellatsükkel, seda rohkem juhiseid saab sekundis töödelda ja s > 💁 CPU-d käitavad programme kasutades [fetch-decode-execute tsüklit](https://wikipedia.org/wiki/Instruction_cycle). Iga kellatiksumisega hangib CPU järgmise juhise mälust, dekodeerib selle ja täidab selle, näiteks kasutades aritmeetika-loogika üksust (ALU), et liita kaks numbrit. Mõned täitmised võtavad mitu tiksumist, nii et järgmine tsükkel käivitub järgmise tiksumise ajal pärast juhise täitmist. -![Fetch-decode-execute tsüklid, mis näitavad, kuidas fetch võtab juhise RAM-is salvestatud programmist, seejärel dekodeerib ja täidab selle CPU-s](../../../../../translated_images/et/fetch-decode-execute.2fd6f150f6280392807f4475382319abd0cee0b90058e1735444d6baa6f2078c.png) +![Fetch-decode-execute tsüklid, mis näitavad, kuidas fetch võtab juhise RAM-is salvestatud programmist, seejärel dekodeerib ja täidab selle CPU-s](../../../../../translated_images/et/fetch-decode-execute.2fd6f150f6280392.webp) Mikroprotsessoritel on palju madalamad kellakiirused kui lauaarvutitel, sülearvutitel või isegi enamikul nutitelefonidel. Näiteks Wio Terminalil on CPU, mis töötab 120MHz juures ehk 120 000 000 tsüklit sekundis. @@ -183,7 +183,7 @@ Arduino plaate programmeeritakse C või C++ keeles. C/C++ kasutamine võimaldab `setup` funktsiooni kirjutatakse algseadistuse kood, näiteks WiFi ja pilveteenustega ühendamine või kontaktide initsialiseerimine sisendi ja väljundi jaoks. `loop` funktsioon sisaldab töötlemiskoodi, näiteks sensori lugemine ja väärtuse saatmine pilve. Tavaliselt lisatakse igasse tsüklisse viivitus, näiteks kui soovid sensori andmeid saata iga 10 sekundi järel, lisatakse tsükli lõppu 10-sekundiline viivitus, et mikrokontroller saaks magada, säästes energiat, ja käivitada tsükli uuesti 10 sekundi pärast. -![Arduino visand, mis käivitab kõigepealt setup-funktsiooni ja seejärel loop-funktsiooni korduvalt](../../../../../translated_images/et/arduino-sketch.79590cb837ff7a7c6a68d1afda6cab83fd53d3bb1bd9a8bf2eaf8d693a4d3ea6.png) +![Arduino visand, mis käivitab kõigepealt setup-funktsiooni ja seejärel loop-funktsiooni korduvalt](../../../../../translated_images/et/arduino-sketch.79590cb837ff7a7c.webp) ✅ Seda programmi arhitektuuri nimetatakse *sündmuste tsükliks* või *sõnumite tsükliks*. Paljud rakendused kasutavad seda taustal ja see on standard enamiku desktop-rakenduste jaoks, mis töötavad operatsioonisüsteemidel nagu Windows, macOS või Linux. `loop` kuulab sõnumeid kasutajaliidese komponentidelt, nagu nupud, või seadmetelt, nagu klaviatuur, ja reageerib neile. Loe rohkem sellest [artiklist sündmuste tsükli kohta](https://wikipedia.org/wiki/Event_loop). diff --git a/translations/et/1-getting-started/lessons/3-sensors-and-actuators/README.md b/translations/et/1-getting-started/lessons/3-sensors-and-actuators/README.md index 12115aba4..66a740e6d 100644 --- a/translations/et/1-getting-started/lessons/3-sensors-and-actuators/README.md +++ b/translations/et/1-getting-started/lessons/3-sensors-and-actuators/README.md @@ -1,6 +1,6 @@ # Suhtle füüsilise maailmaga sensorite ja täiturmehhanismide abil -![Selle õppetunni visand](../../../../../translated_images/et/lesson-3.cc3b7b4cd646de598698cce043c0393fd62ef42bac2eaf60e61272cd844250f4.jpg) +![Selle õppetunni visand](../../../../../translated_images/et/lesson-3.cc3b7b4cd646de59.webp) > Visandi autor [Nitya Narasimhan](https://github.com/nitya). Klõpsa pildil, et näha suuremat versiooni. @@ -92,7 +92,7 @@ Digitaalsed sensorid, nagu analoogsensorid, tuvastavad ümbritsevat maailma elek Lihtsaim digitaalne sensor on nupp või lüliti. See on sensor, millel on kaks olekut, sisse või välja. -![Nuppu saadetakse 5 volti. Kui seda ei vajutata, tagastab see 0 volti, kui vajutatakse, tagastab see 5 volti](../../../../../translated_images/et/button.eadb560b77ac45e56f523d9d8876e40444f63b419e33eb820082d461fa79490b.png) +![Nuppu saadetakse 5 volti. Kui seda ei vajutata, tagastab see 0 volti, kui vajutatakse, tagastab see 5 volti](../../../../../translated_images/et/button.eadb560b77ac45e5.webp) IoT-seadme GPIO-pinnid võivad seda signaali otse mõõta kui 0 või 1. Kui saadetud pinge on sama, mis tagastatud pinge, loetakse väärtuseks 1, vastasel juhul loetakse väärtuseks 0. Signaali ei ole vaja teisendada, see võib olla ainult 1 või 0. @@ -125,7 +125,7 @@ Mõned levinumad täiturmehhanismid on: Järgi allolevaid juhiseid, et lisada täiturmehhanism oma IoT-seadmele, mida juhib sensor, et ehitada IoT öölamp. See kogub valguse tasemeid valgussensorilt ja kasutab täiturmehhanismina LED-i, et kiirata valgust, kui tuvastatud valguse tase on liiga madal. -![Ülesande vooskeem, mis näitab valguse taseme lugemist ja kontrollimist ning LED-i juhtimist](../../../../../translated_images/et/assignment-1-flow.7552a51acb1a5ec858dca6e855cdbb44206434006df8ba3799a25afcdab1665d.png) +![Ülesande vooskeem, mis näitab valguse taseme lugemist ja kontrollimist ning LED-i juhtimist](../../../../../translated_images/et/assignment-1-flow.7552a51acb1a5ec8.webp) * [Arduino - Wio Terminal](wio-terminal-actuator.md) * [Üheplaadiarvuti - Raspberry Pi](pi-actuator.md) @@ -140,7 +140,7 @@ Nagu sensorid, võivad täiturmehhanismid olla kas analoog- või digitaalsed. Analoogtäiturmehhanismid võtavad vastu analoogsignaali ja muudavad selle mingiks interaktsiooniks, kus interaktsioon muutub vastavalt saadud pingele. Üks näide on reguleeritava heledusega lamp, nagu need, mis võivad olla teie kodus. Lambi heledust määrab sellele antava pinge suurus. -![Lamp madala pingega hämaras ja kõrge pingega eredam](../../../../../translated_images/et/dimmable-light.9ceffeb195dec1a849da718b2d71b32c35171ff7dfea9c07bbf82646a67acf6b.png) +![Lamp madala pingega hämaras ja kõrge pingega eredam](../../../../../translated_images/et/dimmable-light.9ceffeb195dec1a8.webp) Nagu sensorite puhul, töötavad tegelikud IoT-seadmed digitaalsete signaalidega, mitte analoogsignaalidega. See tähendab, et analoogsignaali saatmiseks vajab IoT-seade digitaal-analoogmuundurit (DAC), kas otse IoT-seadmel või ühendusplaadil. See muundab IoT-seadme 0-d ja 1-d analoogpingeks, mida aktuaator saab kasutada. @@ -187,7 +187,7 @@ Digitaalsed aktuaatorid, nagu digitaalsed sensorid, on kas kahes olekus, mida ju Üks lihtne digitaalne aktuaator on LED. Kui seade saadab digitaalse signaali 1, saadetakse kõrge pinge, mis süütab LED-i. Kui saadetakse digitaalse signaali 0, langeb pinge 0V-ni ja LED kustub. -![LED on 0 voldi juures kustunud ja 5V juures süttinud](../../../../../translated_images/et/led.ec6d94f66676a174ad06d9fa9ea49c2ee89beb18b312d5c6476467c66375b07f.png) +![LED on 0 voldi juures kustunud ja 5V juures süttinud](../../../../../translated_images/et/led.ec6d94f66676a174.webp) ✅ Milliseid teisi lihtsaid kahe olekuga aktuaatoreid oskate välja mõelda? Üks näide on solenoid, mis on elektromagnet, mida saab aktiveerida, et teha asju nagu uksepolti liigutamine ukse lukustamiseks/avamiseks. diff --git a/translations/et/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md b/translations/et/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md index 5d8cb09d0..da21fbba7 100644 --- a/translations/et/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md +++ b/translations/et/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md @@ -26,7 +26,7 @@ Grove LED on moodul, millel on valik erinevaid LED-e, võimaldades valida oma le Ühenda LED. -![Grove LED](../../../../../translated_images/et/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![Grove LED](../../../../../translated_images/et/grove-led.6c853be93f473cf2.webp) 1. Vali oma lemmik LED ja sisesta selle jalad LED-mooduli kahte auku. @@ -40,7 +40,7 @@ Grove LED on moodul, millel on valik erinevaid LED-e, võimaldades valida oma le 1. Kui Raspberry Pi on välja lülitatud, ühenda Grove-kaabli teine ots Grove Base hat-i digitaalsesse pesasse, mis on märgitud **D5**. See pesa on teine vasakult, GPIO-pesade kõrval asuvas reas. -![Grove LED ühendatud pesaga D5](../../../../../translated_images/et/pi-led.97f1d474981dc35d1c7996c7b17de355d3d0a6bc9606d79fa5f89df933415122.png) +![Grove LED ühendatud pesaga D5](../../../../../translated_images/et/pi-led.97f1d474981dc35d.webp) ## Programmeeri öölamp diff --git a/translations/et/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md b/translations/et/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md index 6c4c89432..346ef3110 100644 --- a/translations/et/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md +++ b/translations/et/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md @@ -16,13 +16,13 @@ Grove valgusandur, mida kasutatakse valguse taseme tuvastamiseks, tuleb ühendad Ühenda valgusandur. -![Grove valgusandur](../../../../../translated_images/et/grove-light-sensor.b8127b7c434e632d6bcdb57587a14e9ef69a268a22df95d08628f62b8fa5505c.png) +![Grove valgusandur](../../../../../translated_images/et/grove-light-sensor.b8127b7c434e632d.webp) 1. Sisestage Grove kaabli üks ots valgusanduri mooduli pistikusse. Kaabel läheb sisse ainult ühel viisil. 1. Kui Raspberry Pi on välja lülitatud, ühendage Grove kaabli teine ots analoogpistikusse, mis on märgitud **A0** Grove Base hat-il, mis on Pi külge kinnitatud. See pistik asub GPIO pin-ide kõrval, teises pesas paremalt. -![Grove valgusandur ühendatud pistikuga A0](../../../../../translated_images/et/pi-light-sensor.66cc1e31fa48cd7d5f23400d4b2119aa41508275cb7c778053a7923b4e972d7e.png) +![Grove valgusandur ühendatud pistikuga A0](../../../../../translated_images/et/pi-light-sensor.66cc1e31fa48cd7d.webp) ## Programmeeri valgusandur diff --git a/translations/et/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md b/translations/et/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md index a6f15c0b8..826b4503c 100644 --- a/translations/et/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md +++ b/translations/et/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md @@ -36,11 +36,11 @@ Lisa LED CounterFit rakendusse. 1. Vajuta **Add** nuppu, et luua LED Pin 5 peal. - ![LED-i seaded](../../../../../translated_images/et/counterfit-create-led.ba9db1c9b8c622a635d6dfae5cdc4e70c2b250635bd4f0601c6cf0bd22b7ba46.png) + ![LED-i seaded](../../../../../translated_images/et/counterfit-create-led.ba9db1c9b8c622a6.webp) LED luuakse ja ilmub täiturmehhanismide loendisse. - ![Loodud LED](../../../../../translated_images/et/counterfit-led.c0ab02de6d256ad84d9bad4d67a7faa709f0ea83e410cfe9b5561ef0cef30b1c.png) + ![Loodud LED](../../../../../translated_images/et/counterfit-led.c0ab02de6d256ad8.webp) Kui LED on loodud, saad muuta selle värvi *Color* valiku abil. Vali värv ja vajuta **Set** nuppu, et värv muuta. diff --git a/translations/et/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md b/translations/et/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md index c7fea0a06..8fef74f73 100644 --- a/translations/et/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md +++ b/translations/et/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md @@ -28,11 +28,11 @@ Lisa valgusandur CounterFit rakendusse. 1. Vajuta **Add** nuppu, et luua valgusandur Pin 0 külge. - ![Valgusanduri seaded](../../../../../translated_images/et/counterfit-create-light-sensor.9f36a5e0d4458d8d554d54b34d2c806d56093d6e49fddcda2d20f6fef7f5cce1.png) + ![Valgusanduri seaded](../../../../../translated_images/et/counterfit-create-light-sensor.9f36a5e0d4458d8d.webp) Valgusandur luuakse ja ilmub andurite nimekirja. - ![Loodud valgusandur](../../../../../translated_images/et/counterfit-light-sensor.5d0f5584df56b90f6b2561910d9cb20dfbd73eeff2177c238d38f4de54aefae1.png) + ![Loodud valgusandur](../../../../../translated_images/et/counterfit-light-sensor.5d0f5584df56b90f.webp) ## Programmeeri valgusandur diff --git a/translations/et/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md b/translations/et/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md index a20f37eac..949ebae24 100644 --- a/translations/et/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md +++ b/translations/et/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md @@ -26,7 +26,7 @@ Grove LED on moodul, millel on valik erinevaid LED-e, mis võimaldab valida vär Ühenda LED. -![Grove LED](../../../../../translated_images/et/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![Grove LED](../../../../../translated_images/et/grove-led.6c853be93f473cf2.webp) 1. Vali oma lemmik LED ja sisesta selle jalad LED-mooduli kahte auku. diff --git a/translations/et/1-getting-started/lessons/4-connect-internet/README.md b/translations/et/1-getting-started/lessons/4-connect-internet/README.md index 9e9106f6f..d4447d41d 100644 --- a/translations/et/1-getting-started/lessons/4-connect-internet/README.md +++ b/translations/et/1-getting-started/lessons/4-connect-internet/README.md @@ -1,6 +1,6 @@ # Ühenda oma seade Internetiga -![Selle õppetunni visuaalne ülevaade](../../../../../translated_images/et/lesson-4.7344e074ea68fa545fd320b12dce36d72dd62d28c3b4596cb26cf315f434b98f.jpg) +![Selle õppetunni visuaalne ülevaade](../../../../../translated_images/et/lesson-4.7344e074ea68fa54.webp) > Visuaalne ülevaade: [Nitya Narasimhan](https://github.com/nitya). Klõpsa pildil, et näha suuremat versiooni. @@ -47,7 +47,7 @@ MQTT on IoT-seadmete seas kõige populaarsem suhtlusprotokoll ja seda käsitleta MQTT-l on üks vahendaja ja mitu klienti. Kõik kliendid ühenduvad vahendajaga, ja vahendaja suunab sõnumid vastavatele klientidele. Sõnumeid suunatakse nimeliste teemade kaudu, mitte otse individuaalsele kliendile. Klient saab avaldada teemas ja kõik kliendid, kes seda teemat tellivad, saavad sõnumi. -![IoT-seade avaldab telemeetria teemal /telemetry ja pilveteenus tellib seda teemat](../../../../../translated_images/et/mqtt.cbf7f21d9adc3e17548b359444cc11bb4bf2010543e32ece9a47becf54438c23.png) +![IoT-seade avaldab telemeetria teemal /telemetry ja pilveteenus tellib seda teemat](../../../../../translated_images/et/mqtt.cbf7f21d9adc3e17.webp) ✅ Uuri lähemalt. Kui sul on palju IoT-seadmeid, kuidas tagada, et sinu MQTT vahendaja suudab kõiki sõnumeid hallata? @@ -69,7 +69,7 @@ Selle ülesande raames ei pea sa tegelema MQTT vahendaja seadistamise keerukuseg > 💁 See testvahendaja on avalik ja mitte turvaline. Kõik võivad kuulata, mida sa avaldad, seega ei tohiks seda kasutada andmetega, mis peavad jääma privaatseks. -![Ülesande vooskeem, mis näitab valguse taseme lugemist ja kontrollimist ning LED-i juhtimist](../../../../../translated_images/et/assignment-1-internet-flow.3256feab5f052fd273bf4e331157c574c2c3fa42e479836fc9c3586f41db35a5.png) +![Ülesande vooskeem, mis näitab valguse taseme lugemist ja kontrollimist ning LED-i juhtimist](../../../../../translated_images/et/assignment-1-internet-flow.3256feab5f052fd2.webp) Järgi allpool toodud samme, et ühendada oma seade MQTT vahendajaga: @@ -351,7 +351,7 @@ Masinate puhul võib olla vajalik andmed säilitada, eriti kui neid kasutatakse IoT-seadme disainerid peaksid kaaluma ka seda, kas IoT-seadet saab kasutada internetikatkestuse või signaali kadumise korral, mis on põhjustatud asukohast. Nutikas termostaat peaks suutma teha mõningaid piiratud otsuseid kütmise juhtimiseks, kui see ei saa telemeetriat pilve saata katkestuse tõttu. -[![See Ferrari muutus kasutuskõlbmatuks, kuna keegi üritas seda uuendada maa all, kus pole mobiililevi](../../../../../translated_images/et/bricked-car.dc38f8efadc6c59d76211f981a521efb300939283dee468f79503aae3ec67615.png)](https://twitter.com/internetofshit/status/1315736960082808832) +[![See Ferrari muutus kasutuskõlbmatuks, kuna keegi üritas seda uuendada maa all, kus pole mobiililevi](../../../../../translated_images/et/bricked-car.dc38f8efadc6c59d.webp)](https://twitter.com/internetofshit/status/1315736960082808832) MQTT puhul, et käsitleda ühenduse kaotust, peavad seade ja serveri kood vastutama sõnumite edastamise tagamise eest, kui see on vajalik, näiteks nõudes, et kõik saadetud sõnumid vastatakse täiendavate sõnumitega vastusteemal, ja kui ei, siis need järjekorrastatakse käsitsi, et hiljem uuesti saata. @@ -359,7 +359,7 @@ MQTT puhul, et käsitleda ühenduse kaotust, peavad seade ja serveri kood vastut Käsklused on sõnumid, mida pilv saadab seadmele, juhendades seda midagi tegema. Enamasti hõlmab see mingisuguse väljundi andmist läbi aktuaatori, kuid see võib olla juhis seadmele endale, näiteks taaskäivitamiseks või lisatelemeetria kogumiseks ja vastusena käsklusele tagastamiseks. -![Internetiühendusega termostaat, mis saab käsu kütmise sisselülitamiseks](../../../../../translated_images/et/commands.d6c06bbbb3a02cce95f2831a1c331daf6dedd4e470c4aa2b0ae54f332016e504.png) +![Internetiühendusega termostaat, mis saab käsu kütmise sisselülitamiseks](../../../../../translated_images/et/commands.d6c06bbbb3a02cce.webp) Termostaat võiks saada pilvest käsu kütmise sisselülitamiseks. Kõigi sensorite telemeetriaandmete põhjal otsustab pilveteenus, et küte peaks olema sisse lülitatud, ja saadab vastava käsu. diff --git a/translations/et/2-farm/lessons/1-predict-plant-growth/README.md b/translations/et/2-farm/lessons/1-predict-plant-growth/README.md index 9affe6ba3..4ac4c15b8 100644 --- a/translations/et/2-farm/lessons/1-predict-plant-growth/README.md +++ b/translations/et/2-farm/lessons/1-predict-plant-growth/README.md @@ -1,6 +1,6 @@ # Ennusta taimede kasvu IoT abil -![Selle õppetunni visandmärkmete ülevaade](../../../../../translated_images/et/lesson-5.42b234299279d263143148b88ab4583861a32ddb03110c6c1120e41bb88b2592.jpg) +![Selle õppetunni visandmärkmete ülevaade](../../../../../translated_images/et/lesson-5.42b234299279d263.webp) > Visandmärkmed: [Nitya Narasimhan](https://github.com/nitya). Klõpsa pildil, et näha suuremat versiooni. @@ -90,7 +90,7 @@ Kasvupäevad ehk GDD arvutatakse iga päeva kohta kui päeva keskmine temperatuu Täielik GDD valem on veidi keeruline, kuid sageli kasutatakse lihtsustatud võrrandit, mis on hea ligikaudne arvutus: -![GDD = T max + T min jagatud 2-ga, kõik miinus T base](../../../../../translated_images/et/gdd-calculation.79b3660f9c5757aa92dc2dd2cdde75344e2d2c1565c4b3151640f7887edc0275.png) +![GDD = T max + T min jagatud 2-ga, kõik miinus T base](../../../../../translated_images/et/gdd-calculation.79b3660f9c5757aa.webp) * **GDD** – kasvupäevade arv * **Tmax** – päeva maksimaalne temperatuur kraadides Celsiuse järgi @@ -118,7 +118,7 @@ Sisestades need arvud meie arvutusse: See annab arvutuseks: -![GDD = 16 + 12 jagatud 2-ga, kõik miinus 10, tulemuseks 4](../../../../../translated_images/et/gdd-calculation-corn.64a58b7a7afcd0dfd46ff733996d939f17f4f3feac9f0d1c632be3523e51ebd9.png) +![GDD = 16 + 12 jagatud 2-ga, kõik miinus 10, tulemuseks 4](../../../../../translated_images/et/gdd-calculation-corn.64a58b7a7afcd0df.webp) Mais sai sel päeval 4 GDD. Eeldades maisisorti, mis vajab küpsemiseks 800 GDD, vajab see veel 796 GDD, et küpseda. @@ -239,7 +239,7 @@ Selle käsitsi tegemise sammud on järgmised: Näiteks, kui päeva kõrgeim temperatuur on 25°C ja madalaim 12°C: -![GDD = 25 + 12 jagatud 2-ga, seejärel lahutatakse tulemusest 10, tulemuseks on 8.5](../../../../../translated_images/et/gdd-calculation-strawberries.59f57db94b22adb8ff6efb951ace33af104a1c6ccca3ffb0f8169c14cb160c90.png) +![GDD = 25 + 12 jagatud 2-ga, seejärel lahutatakse tulemusest 10, tulemuseks on 8.5](../../../../../translated_images/et/gdd-calculation-strawberries.59f57db94b22adb8.webp) * 25 + 12 = 37 * 37 / 2 = 18.5 diff --git a/translations/et/2-farm/lessons/1-predict-plant-growth/assignment.md b/translations/et/2-farm/lessons/1-predict-plant-growth/assignment.md index 3a4cb0a94..54a3286ca 100644 --- a/translations/et/2-farm/lessons/1-predict-plant-growth/assignment.md +++ b/translations/et/2-farm/lessons/1-predict-plant-growth/assignment.md @@ -33,7 +33,7 @@ Kui sul on temperatuuriandmed olemas, saad kasutada selle repo Jupyter Notebooki Jupyter käivitub ja avab notebooki sinu brauseris. Järgi notebookis olevaid juhiseid, et visualiseerida mõõdetud temperatuurid ja arvutada kasvukraadipäevad. - ![Jupyter notebook](../../../../../translated_images/et/gdd-jupyter-notebook.c5b52cf21094f158a61f47f455490fd95f1729777ff90861a4521820bf354cdc.png) + ![Jupyter notebook](../../../../../translated_images/et/gdd-jupyter-notebook.c5b52cf21094f158.webp) ## Hindamiskriteeriumid diff --git a/translations/et/2-farm/lessons/1-predict-plant-growth/pi-temp.md b/translations/et/2-farm/lessons/1-predict-plant-growth/pi-temp.md index 5be07fa55..f1bbeb5c0 100644 --- a/translations/et/2-farm/lessons/1-predict-plant-growth/pi-temp.md +++ b/translations/et/2-farm/lessons/1-predict-plant-growth/pi-temp.md @@ -16,13 +16,13 @@ Grove temperatuurianduri saab ühendada Raspberry Piga. Ühenda temperatuuriandur -![Grove temperatuuriandur](../../../../../translated_images/et/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![Grove temperatuuriandur](../../../../../translated_images/et/grove-dht11.07f8eafceee17004.webp) 1. Sisesta Grove kaabli üks ots niiskuse ja temperatuuri anduri pistikusse. Kaabel läheb sisse ainult ühel viisil. 1. Kui Raspberry Pi on välja lülitatud, ühenda Grove kaabli teine ots Grove Base hatti digitaalsesse pistikusse, mis on märgitud **D5**. See pistik asub GPIO pinide kõrval olevate pistikute reas, vasakult teine. -![Grove temperatuuriandur ühendatud pistikuga A0](../../../../../translated_images/et/pi-temperature-sensor.3ff82fff672c8e565ef25a39d26d111de006b825a7e0867227ef4e7fbff8553c.png) +![Grove temperatuuriandur ühendatud pistikuga A0](../../../../../translated_images/et/pi-temperature-sensor.3ff82fff672c8e56.webp) ## Programmeeri temperatuuriandur diff --git a/translations/et/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md b/translations/et/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md index 0121dfbc7..7f4af79c9 100644 --- a/translations/et/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md +++ b/translations/et/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md @@ -38,11 +38,11 @@ Lisa niiskuse ja temperatuuri andurid CounterFit rakendusse. 1. Vajuta **Add** nuppu, et luua niiskuse andur Pin 5-le. - ![Niiskuse anduri seaded](../../../../../translated_images/et/counterfit-create-humidity-sensor.2750e27b6f30e09cf4e22101defd5252710717620816ab41ba688f91f757c49a.png) + ![Niiskuse anduri seaded](../../../../../translated_images/et/counterfit-create-humidity-sensor.2750e27b6f30e09c.webp) Niiskuse andur luuakse ja ilmub andurite loendisse. - ![Loodud niiskuse andur](../../../../../translated_images/et/counterfit-humidity-sensor.7b12f7f339e430cb26c8211d2dba4ef75261b353a01da0932698b5bebd693f27.png) + ![Loodud niiskuse andur](../../../../../translated_images/et/counterfit-humidity-sensor.7b12f7f339e430cb.webp) 1. Loo temperatuuri andur: @@ -54,11 +54,11 @@ Lisa niiskuse ja temperatuuri andurid CounterFit rakendusse. 1. Vajuta **Add** nuppu, et luua temperatuuri andur Pin 6-le. - ![Temperatuuri anduri seaded](../../../../../translated_images/et/counterfit-create-temperature-sensor.199350ed34f7343d79dccbe95eaf6c11d2121f03d1c35ab9613b330c23f39b29.png) + ![Temperatuuri anduri seaded](../../../../../translated_images/et/counterfit-create-temperature-sensor.199350ed34f7343d.webp) Temperatuuri andur luuakse ja ilmub andurite loendisse. - ![Loodud temperatuuri andur](../../../../../translated_images/et/counterfit-temperature-sensor.f0560236c96a9016bafce7f6f792476fe3367bc6941a1f7d5811d144d4bcbfff.png) + ![Loodud temperatuuri andur](../../../../../translated_images/et/counterfit-temperature-sensor.f0560236c96a9016.webp) ## Programmeeri temperatuuri anduri rakendus diff --git a/translations/et/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md b/translations/et/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md index c244832ba..d439be1b6 100644 --- a/translations/et/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md +++ b/translations/et/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md @@ -18,7 +18,7 @@ Grove temperatuurianduri saab ühendada Wio Terminali digitaalsesse porti. Ühenda temperatuuriandur. -![Grove temperatuuriandur](../../../../../translated_images/et/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![Grove temperatuuriandur](../../../../../translated_images/et/grove-dht11.07f8eafceee17004.webp) 1. Sisesta Grove-kaabli üks ots niiskuse ja temperatuuri anduri pistikusse. Kaabel läheb sisse ainult ühes suunas. diff --git a/translations/et/2-farm/lessons/2-detect-soil-moisture/README.md b/translations/et/2-farm/lessons/2-detect-soil-moisture/README.md index 097593dea..97ef67f47 100644 --- a/translations/et/2-farm/lessons/2-detect-soil-moisture/README.md +++ b/translations/et/2-farm/lessons/2-detect-soil-moisture/README.md @@ -1,6 +1,6 @@ # Tuvasta mulla niiskus -![Selle õppetunni visuaalne ülevaade](../../../../../translated_images/et/lesson-6.3e493b60eee85adc8c74dfeaaec3a3a6cfba61fedbcb84aa0146e7e80603a5dd.jpg) +![Selle õppetunni visuaalne ülevaade](../../../../../translated_images/et/lesson-6.3e493b60eee85adc.webp) > Visuaalne ülevaade: [Nitya Narasimhan](https://github.com/nitya). Klõpsa pildil, et näha suuremat versiooni. @@ -16,7 +16,7 @@ See õppetund oli osa [IoT algajatele: Projekt 2 - Digitaalne põllumajandus](ht Eelmises õppetunnis uurisime, kuidas mõõta keskkonna omadusi ja kasutada neid taimede kasvu ennustamiseks. Temperatuuri saab kontrollida, kuid see on kulukas, kuna nõuab kontrollitud keskkonda. Lihtsaim keskkonna omadus, mida taimede jaoks kontrollida, on vesi – midagi, mida hallatakse igapäevaselt, alates suurtest niisutussüsteemidest kuni väikeste laste kastmiskannudeni. -![Laps kastab aeda](../../../../../translated_images/et/child-watering-garden.9a5d3f1bfe6d0d8d488291e8189899b2c59f82abaa487f18d404217a25e671e7.jpg) +![Laps kastab aeda](../../../../../translated_images/et/child-watering-garden.9a5d3f1bfe6d0d8d.webp) Selles õppetunnis õpid, kuidas mõõta mulla niiskust, ja järgmises õppetunnis, kuidas automatiseeritud kastmissüsteemi juhtida. See õppetund tutvustab kolmandat sensorit – oled juba kasutanud valgusandurit ja temperatuuriandurit, ning nüüd õpid, kuidas sensorid ja aktuaatorid suhtlevad IoT seadmetega, et mõista, kuidas mulla niiskuse sensor saadab andmeid IoT seadmele. @@ -55,7 +55,7 @@ Mulla niiskuse mõõtmiseks on mitmeid erinevaid sensoreid: * Mahtuvuslik – mahtuvuslik niiskuse sensor mõõdab elektrilaengu hulka, mida saab salvestada positiivse ja negatiivse elektriplaadi vahel ehk [mahtuvust](https://wikipedia.org/wiki/Capacitance). Mulla mahtuvus muutub niiskustaseme muutudes ja seda saab teisendada pingeks, mida IoT seade saab mõõta. Mida niiskem muld, seda madalam pinge sensorist väljub. - ![Mahtuvuslik mulla niiskuse sensor](../../../../../translated_images/et/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) + ![Mahtuvuslik mulla niiskuse sensor](../../../../../translated_images/et/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) Mõlemad sensorid on analoogsensorid, mis tagastavad pinge, et näidata mulla niiskust. Aga kuidas see pinge jõuab sinu koodini? Enne nende sensoritega edasi minemist vaatame, kuidas sensorid ja aktuaatorid suhtlevad IoT seadmetega. @@ -83,11 +83,11 @@ Sa saad kasutada GPIO pinne otse mõne digitaalse sensori ja aktuaatoriga, kui s * Nupp. Sa saad ühendada nupu 5V pinni ja sisendiks seadistatud pinni vahel. Kui vajutad nuppu, lõpetab see vooluringi 5V pinni, nupu ja sisendpinni vahel. Koodist saad lugeda sisendpinni pinget ja kui see on kõrge (5V), siis nupp on vajutatud; kui see on madal (0V), siis nupp pole vajutatud. Pidage meeles, et tegelikku pinget ennast ei loeta, selle asemel saad digitaalse signaali 1 või 0, sõltuvalt sellest, kas pinge ületab läve või mitte. - ![Nupp saadab 5 volti. Kui seda ei vajutata, tagastab see 0 volti ehk 0; kui vajutatakse, tagastab see 5 volti ehk 1](../../../../../translated_images/et/button-with-digital.3749edea8eb885af0303f7ea29e2389d704661c0ca3225b08ff0cbc22f332059.png) + ![Nupp saadab 5 volti. Kui seda ei vajutata, tagastab see 0 volti ehk 0; kui vajutatakse, tagastab see 5 volti ehk 1](../../../../../translated_images/et/button-with-digital.3749edea8eb885af.webp) * LED. Sa saad ühendada LED-i väljundpinni ja maanduspinni vahel (kasutades takistit, muidu põletad LED-i läbi). Koodist saad seadistada väljundpinni kõrgeks ja see saadab 3,3V, luues vooluringi 3,3V pinni, LED-i ja maanduspinni vahel. See süütab LED-i. - ![LED-i saadetakse signaal 1 (3,3V), mis süütab LED-i. Kui saadetakse 0 (0V), LED ei sütti.](../../../../../translated_images/et/led-digital-control.13b9be14077ea49f883c2ec52e1ce1c587804f2ed653f4061661e6a8783dd8c7.png) + ![LED-i saadetakse signaal 1 (3,3V), mis süütab LED-i. Kui saadetakse 0 (0V), LED ei sütti.](../../../../../translated_images/et/led-digital-control.13b9be14077ea49f.webp) Täpsemate sensorite jaoks saad kasutada GPIO pinne digitaalsete andmete saatmiseks ja vastuvõtmiseks otse digitaalsete sensorite ja aktuaatoritega või kontrollerplaatide kaudu, millel on ADC-d ja DAC-d analoogsensorite ja -aktuaatoritega suhtlemiseks. @@ -101,7 +101,7 @@ Mõned seadmed, nagu Arduino, pakuvad analoogpinne. Need on samad kui GPIO pinni Näiteks 3,3V plaadil, kui sensor tagastab 3,3V, siis tagastatav väärtus oleks 1,023. Kui tagastatav pinge on 1,65V, siis tagastatav väärtus on 511. -![Mulla niiskuse sensor saadab 3,3V ja tagastab 1,65V ehk lugemise 511](../../../../../translated_images/et/analog-sensor-voltage.3b6f3153922473997cae6f71a6110d89a020a8a1838a83fba4f97e8fa6cef3ac.png) +![Mulla niiskuse sensor saadab 3,3V ja tagastab 1,65V ehk lugemise 511](../../../../../translated_images/et/analog-sensor-voltage.3b6f315392247399.webp) > 💁 Tagasi öölambi juurde – õppetund 3, valgusandur tagastas väärtuse vahemikus 0–1,023. Kui kasutad Wio Terminali, oli sensor ühendatud analoogpinniga. Kui kasutad Raspberry Pi-d, siis oli sensor ühendatud analoogpinniga baasmütsil, millel on integreeritud ADC, et suhelda GPIO pinne kaudu. Virtuaalne seade oli seadistatud saatma väärtust vahemikus 0–1,023, et simuleerida analoogpinni. @@ -124,7 +124,7 @@ I2C sisaldab siini, mis koosneb kahest peamisest juhtmest, koos kahe | VCC | Voltage common collector | Seadmete toiteallikas. See on ühendatud SDA ja SCL juhtmetega, et tagada nende toide tõmbetakisti kaudu, mis lülitab signaali välja, kui ükski seade pole kontroller. | | GND | Ground | Tagab elektriahela ühise maanduse. | -![I2C siin, millele on ühendatud 3 seadet SDA ja SCL juhtmetega, jagades ühist maandusjuhet](../../../../../translated_images/et/i2c.83da845dde02256bdd462dbe0d5145461416b74930571b89d1ae142841eeb584.png) +![I2C siin, millele on ühendatud 3 seadet SDA ja SCL juhtmetega, jagades ühist maandusjuhet](../../../../../translated_images/et/i2c.83da845dde02256b.webp) Andmete saatmiseks annab üks seade käivitusseisundi, et näidata, et see on valmis andmeid saatma. Seejärel muutub see kontrolleriks. Kontroller saadab seadme aadressi, kellega ta soovib suhelda, koos teatega, kas ta soovib andmeid lugeda või kirjutada. Pärast andmete edastamist saadab kontroller lõpetamisseisundi, et näidata, et ta on lõpetanud. Pärast seda võib teine seade muutuda kontrolleriks ja andmeid saata või vastu võtta. I2C-l on kiiruspiirangud, kus on kolm erinevat režiimi, mis töötavad fikseeritud kiirustel. Kõige kiirem on High Speed režiim, mille maksimaalne kiirus on 3,4 Mbps (megabitti sekundis), kuigi väga vähesed seadmed toetavad seda kiirust. Näiteks Raspberry Pi on piiratud kiirusega Fast Mode, mille kiirus on 400 Kbps (kilobitti sekundis). Standard Mode töötab kiirusega 100 Kbps. diff --git a/translations/et/2-farm/lessons/2-detect-soil-moisture/assignment.md b/translations/et/2-farm/lessons/2-detect-soil-moisture/assignment.md index a33223ed5..2847934c8 100644 --- a/translations/et/2-farm/lessons/2-detect-soil-moisture/assignment.md +++ b/translations/et/2-farm/lessons/2-detect-soil-moisture/assignment.md @@ -20,14 +20,14 @@ Selleks tuleb samme mitu korda korrata, iga kord erineva mulla niiskustasemega. Gravimeetriline mulla niiskus arvutatakse järgmiselt: -![mulla niiskus % on märja kaalu miinus kuiva kaalu, jagatud kuiva kaaluga, korrutatud 100-ga](../../../../../translated_images/et/gsm-calculation.6da38c6201eec14e7573bb2647aa18892883193553d23c9d77e5dc681522dfb2.png) +![mulla niiskus % on märja kaalu miinus kuiva kaalu, jagatud kuiva kaaluga, korrutatud 100-ga](../../../../../translated_images/et/gsm-calculation.6da38c6201eec14e.webp) * Wmärg - märja mulla kaal * Wkuiv - kuiva mulla kaal Näiteks, oletame, et sul on mullaproov, mis kaalub märjana 212g ja kuivana 197g. -![Täidetud arvutus](../../../../../translated_images/et/gsm-calculation-example.99f9803b4f29e97668e7c15412136c0c399ab12dbba0b89596fdae9d8aedb6fb.png) +![Täidetud arvutus](../../../../../translated_images/et/gsm-calculation-example.99f9803b4f29e976.webp) * Wmärg = 212g * Wkuiv = 197g diff --git a/translations/et/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md b/translations/et/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md index 60ea07676..95e0491fa 100644 --- a/translations/et/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md +++ b/translations/et/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md @@ -18,13 +18,13 @@ Grove mulla niiskuse sensorit saab ühendada Raspberry Pi-ga. Ühenda mulla niiskuse sensor. -![Grove mulla niiskuse sensor](../../../../../translated_images/et/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![Grove mulla niiskuse sensor](../../../../../translated_images/et/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. Sisesta Grove-kaabli üks ots mulla niiskuse sensori pistikusse. Kaabel läheb sisse ainult ühel viisil. 1. Kui Raspberry Pi on välja lülitatud, ühenda Grove-kaabli teine ots analoogpistikusse, mis on märgistatud **A0** Grove Base Hat-il, mis on kinnitatud Pi-le. See pistik on GPIO-pinnide kõrval asuva pistikurea parempoolne teine. -![Grove mulla niiskuse sensor ühendatud A0 pistikusse](../../../../../translated_images/et/pi-soil-moisture-sensor.fdd7eb2393792cf6739cacf1985d9f55beda16d372f30d0b5a51d586f978a870.png) +![Grove mulla niiskuse sensor ühendatud A0 pistikusse](../../../../../translated_images/et/pi-soil-moisture-sensor.fdd7eb2393792cf6.webp) 1. Sisesta mulla niiskuse sensor mulda. Sellel on "kõrgeima positsiooni joon" – valge joon sensori peal. Sisesta sensor kuni selle jooneni, kuid mitte üle selle. diff --git a/translations/et/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md b/translations/et/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md index 5c92e8d7c..58fbcf539 100644 --- a/translations/et/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md +++ b/translations/et/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md @@ -34,11 +34,11 @@ Lisa mulla niiskuse sensor CounterFit rakendusse. 1. Valige **Add** nupp, et luua *Soil Moisture* sensor Pin 0-le. - ![Mulla niiskuse sensori seaded](../../../../../translated_images/et/counterfit-create-soil-moisture-sensor.35266135a5e0ae68b29a684d7db0d2933a8098b2307d197f7c71577b724603aa.png) + ![Mulla niiskuse sensori seaded](../../../../../translated_images/et/counterfit-create-soil-moisture-sensor.35266135a5e0ae68.webp) Mulla niiskuse sensor luuakse ja ilmub sensorite loendisse. - ![Loodud mulla niiskuse sensor](../../../../../translated_images/et/counterfit-soil-moisture-sensor.81742b2de0e9de60a3b3b9a2ff8ecc686d428eb6d71820f27a693be26e5aceee.png) + ![Loodud mulla niiskuse sensor](../../../../../translated_images/et/counterfit-soil-moisture-sensor.81742b2de0e9de60.webp) ## Programmeeri mulla niiskuse sensori rakendus diff --git a/translations/et/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md b/translations/et/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md index 239635092..bb73f852f 100644 --- a/translations/et/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md +++ b/translations/et/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md @@ -18,7 +18,7 @@ Grove mulla niiskuse sensorit saab ühendada Wio Terminali konfigureeritava anal Ühenda mulla niiskuse sensor. -![Grove mulla niiskuse sensor](../../../../../translated_images/et/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![Grove mulla niiskuse sensor](../../../../../translated_images/et/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. Sisesta Grove-kaabli üks ots mulla niiskuse sensori pistikusse. Kaabel läheb sisse ainult ühes suunas. diff --git a/translations/et/2-farm/lessons/3-automated-plant-watering/README.md b/translations/et/2-farm/lessons/3-automated-plant-watering/README.md index 411ff0ebe..508557a6f 100644 --- a/translations/et/2-farm/lessons/3-automated-plant-watering/README.md +++ b/translations/et/2-farm/lessons/3-automated-plant-watering/README.md @@ -1,6 +1,6 @@ # Automaatne taimede kastmine -![Selle õppetunni visuaalne ülevaade](../../../../../translated_images/et/lesson-7.30b5f577d3cb8e031238751475cb519c7d6dbaea261b5df4643d086ffb2a03bb.jpg) +![Selle õppetunni visuaalne ülevaade](../../../../../translated_images/et/lesson-7.30b5f577d3cb8e03.webp) > Visuaalne ülevaade: [Nitya Narasimhan](https://github.com/nitya). Klõpsa pildil, et näha suuremat versiooni. @@ -32,7 +32,7 @@ IoT-seadmed kasutavad madalat pinget. Kuigi see on piisav sensorite ja madala v Lahendus sellele probleemile on ühendada pump välise toiteallikaga ja kasutada aktuaatorit pumba sisse lülitamiseks, sarnaselt sellele, kuidas lülitate valguse sisse. Väike kogus energiat (näiteks teie keha energia) on piisav, et sõrm lülitaks lüliti sisse, mis ühendab valguse koduse elektrivõrguga, mis töötab 110v/240v pingel. -![Valguselüliti lülitab valguse sisse](../../../../../translated_images/et/light-switch.760317ad6ab8bd6d611da5352dfe9c73a94a0822ccec7df3c8bae35da18e1658.png) +![Valguselüliti lülitab valguse sisse](../../../../../translated_images/et/light-switch.760317ad6ab8bd6d.webp) > 🎓 [Kodune elektrivõrk](https://wikipedia.org/wiki/Mains_electricity) viitab elektrile, mida tarnitakse kodudesse ja ettevõtetesse riikliku infrastruktuuri kaudu paljudes maailma osades. @@ -72,7 +72,7 @@ Kui kang liigub, kuulete tavaliselt, kuidas see elektromagnetiga kontakti teeb, Elektromagnet ei vaja palju energiat, et aktiveeruda ja kangi tõmmata, seda saab juhtida 3.3V või 5V väljundiga IoT arenduskomplektist. Väljundvooluring suudab kanda palju rohkem energiat, sõltuvalt releest, sealhulgas koduvõrgu pinget või isegi kõrgemaid energiatasemeid tööstuslikuks kasutamiseks. Nii saab IoT arenduskomplekt juhtida kastmissüsteemi, alates väikesest pumbast ühe taime jaoks kuni massiivse tööstusliku süsteemini terve kommertsfarmi jaoks. -![Grove relee, millel on märgitud juhtimisahel, väljundvooluring ja relee](../../../../../translated_images/et/grove-relay-labelled.293e068f5c3c2a199bd7892f2661fdc9e10c920b535cfed317fbd6d1d4ae1168.png) +![Grove relee, millel on märgitud juhtimisahel, väljundvooluring ja relee](../../../../../translated_images/et/grove-relay-labelled.293e068f5c3c2a19.webp) Ülaltoodud pildil on Grove relee. Juhtimisahel ühendub IoT-seadmega ja lülitab relee sisse või välja, kasutades 3.3V või 5V. Väljundvooluringil on kaks terminali, millest kumbki võib olla toide või maandus. Väljundvooluring suudab käsitleda kuni 250V pinget ja 10A voolu, mis on piisav mitmesuguste koduvõrgu seadmete jaoks. Saadaval on releed, mis suudavad käsitleda veelgi kõrgemaid energiatasemeid. diff --git a/translations/et/2-farm/lessons/3-automated-plant-watering/pi-relay.md b/translations/et/2-farm/lessons/3-automated-plant-watering/pi-relay.md index e92e2a5bd..9e55897a0 100644 --- a/translations/et/2-farm/lessons/3-automated-plant-watering/pi-relay.md +++ b/translations/et/2-farm/lessons/3-automated-plant-watering/pi-relay.md @@ -18,13 +18,13 @@ Grove relee saab ühendada Raspberry Pi-ga. Ühendage relee. -![Grove relee](../../../../../translated_images/et/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) +![Grove relee](../../../../../translated_images/et/grove-relay.d426958ca210fbd0.webp) 1. Sisestage Grove kaabli üks ots relee pistikusse. See läheb sisse ainult ühel viisil. 1. Kui Raspberry Pi on välja lülitatud, ühendage Grove kaabli teine ots digitaalse pistikuga, mis on märgitud **D5** Grove Base Hat'il, mis on ühendatud Pi-ga. See pistik on teine vasakult, pistikute reas GPIO pin'ide kõrval. Jätke mulla niiskuse andur ühendatuks **A0** pistikuga. -![Grove relee ühendatud D5 pistikuga ja mulla niiskuse andur ühendatud A0 pistikuga](../../../../../translated_images/et/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e69ec716cd2719ce117700bd1fc933eaf93476c103c57939b.png) +![Grove relee ühendatud D5 pistikuga ja mulla niiskuse andur ühendatud A0 pistikuga](../../../../../translated_images/et/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e.webp) 1. Sisestage mulla niiskuse andur mulda, kui see ei ole juba eelmise õppetüki käigus tehtud. diff --git a/translations/et/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md b/translations/et/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md index bc9010a9f..0d6a5fe11 100644 --- a/translations/et/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md +++ b/translations/et/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md @@ -28,11 +28,11 @@ Lisa relee CounterFit rakendusse. 1. Valige **Add** nupp, et luua relee Pin 5-le. - ![Relee seaded](../../../../../translated_images/et/counterfit-create-relay.fa7c40fd0f2f6afc33b35ea94fcb235085be4861e14e3fe6b9b7bcfc82d1c888.png) + ![Relee seaded](../../../../../translated_images/et/counterfit-create-relay.fa7c40fd0f2f6afc.webp) Relee luuakse ja ilmub aktuaatorite loendisse. - ![Loodud relee](../../../../../translated_images/et/counterfit-relay.bbf74c1dbdc8b9acd983367fcbd06703a402aefef6af54ddb28e11307ba8a12c.png) + ![Loodud relee](../../../../../translated_images/et/counterfit-relay.bbf74c1dbdc8b9ac.webp) ## Programmeeri relee diff --git a/translations/et/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md b/translations/et/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md index 4e6412585..bf9721a07 100644 --- a/translations/et/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md +++ b/translations/et/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md @@ -18,7 +18,7 @@ Grove relee saab ühendada Wio Terminali digitaalse pordiga. Ühendage relee. -![Grove relee](../../../../../translated_images/et/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) +![Grove relee](../../../../../translated_images/et/grove-relay.d426958ca210fbd0.webp) 1. Sisestage Grove kaabli üks ots relee pistikusse. See läheb sisse ainult ühel viisil. diff --git a/translations/et/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md b/translations/et/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md index 6366fc7fb..31d23e14f 100644 --- a/translations/et/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md +++ b/translations/et/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md @@ -1,6 +1,6 @@ # Viige oma taim pilve -![Selle õppetunni visuaalne ülevaade](../../../../../translated_images/et/lesson-8.3f21f3c11159e6a0a376351973ea5724d5de68fa23b4288853a174bed9ac48c3.jpg) +![Selle õppetunni visuaalne ülevaade](../../../../../translated_images/et/lesson-8.3f21f3c11159e6a0.webp) > Visuaal autorilt [Nitya Narasimhan](https://github.com/nitya). Klõpsake pildil, et näha suuremat versiooni. @@ -46,8 +46,8 @@ See võis olla väga kallis, nõuda laia valikut oskustega töötajaid ja olla a Pilve nimetatakse tihti naljatades "kellegi teise arvutiks". Algne idee oli lihtne - arvutite ostmise asemel rentida kellegi teise arvutit. Keegi teine, pilveteenuse pakkuja, haldaks suuri andmekeskusi. Nad vastutaksid riistvara ostmise ja paigaldamise, elektri ja jahutuse, võrgunduse, hoone turvalisuse, riist- ja tarkvarauuenduste eest, kõige eest. Kliendina rendiksite vajalikke arvuteid, rentides rohkem, kui nõudlus kasvab, ja vähendades renditud arvuteid, kui nõudlus langeb. Need pilve andmekeskused asuvad üle kogu maailma. -![Microsofti pilve andmekeskus](../../../../../translated_images/et/azure-region-existing.73f704604f2aa6cb9b5a49ed40e93d4fd81ae3f4e6af4a8ca504023902832f56.png) -![Microsofti pilve andmekeskuse plaanitud laienemine](../../../../../translated_images/et/azure-region-planned-expansion.a5074a1e8af74f156a73552d502429e5b126ea5019274d767ecb4b9afdad442b.png) +![Microsofti pilve andmekeskus](../../../../../translated_images/et/azure-region-existing.73f704604f2aa6cb.webp) +![Microsofti pilve andmekeskuse plaanitud laienemine](../../../../../translated_images/et/azure-region-planned-expansion.a5074a1e8af74f15.webp) Need andmekeskused võivad olla mitme ruutkilomeetri suurused. Ülaltoodud pildid on tehtud mõned aastad tagasi Microsofti pilve andmekeskuses ja näitavad algset suurust koos plaanitud laienemisega. Laienemiseks puhastatud ala on üle 5 ruutkilomeetri. @@ -108,11 +108,11 @@ Pilve IoT-teenused lahendavad need probleemid. Neid haldavad suured pilveteenuse IoT-seadmed ühenduvad pilveteenusega kas seadme SDK (teek, mis pakub koodi teenuse funktsioonidega töötamiseks) või otse suhtlusprotokolli, näiteks MQTT või HTTP kaudu. Seadme SDK on tavaliselt lihtsaim tee, kuna see haldab kõike teie eest, näiteks teab, milliseid teemasid avaldada või tellida ja kuidas turvalisust hallata. -![Seadmed ühenduvad teenusega seadme SDK kaudu. Serveri kood ühendub teenusega samuti SDK kaudu](../../../../../translated_images/et/iot-service-connectivity.7e873847921a5d6fd60d0ba3a943210194518cee0d4e362476624316443275c3.png) +![Seadmed ühenduvad teenusega seadme SDK kaudu. Serveri kood ühendub teenusega samuti SDK kaudu](../../../../../translated_images/et/iot-service-connectivity.7e873847921a5d6f.webp) Teie seade suhtleb seejärel teie rakenduse teiste osadega selle teenuse kaudu - sarnaselt sellele, kuidas te saatsite telemeetriat ja saite käske MQTT kaudu. Tavaliselt kasutatakse selleks teenuse SDK-d või sarnast teeki. Sõnumid tulevad teie seadmest teenusesse, kus rakenduse muud komponendid saavad neid lugeda, ja sõnumeid saab saata tagasi teie seadmesse. -![Seadmed, millel pole kehtivat salajast võtit, ei saa IoT-teenusega ühenduda](../../../../../translated_images/et/iot-service-allowed-denied-connection.818b0063ac213fb84204a7229303764d9b467ca430fb822b4ac2fca267d56726.png) +![Seadmed, millel pole kehtivat salajast võtit, ei saa IoT-teenusega ühenduda](../../../../../translated_images/et/iot-service-allowed-denied-connection.818b0063ac213fb8.webp) Need teenused rakendavad turvalisust, teades kõiki seadmeid, mis saavad ühenduda ja andmeid saata, kas seadmete eelregistreerimise kaudu teenuses või andes seadmetele salajased võtmed või sertifikaadid, mida nad saavad kasutada teenusega registreerimiseks esmakordsel ühendamisel. Tundmatud seadmed ei saa ühenduda; kui nad proovivad, teenus lükkab ühenduse tagasi ja ignoreerib nende saadetud sõnumeid. @@ -126,7 +126,7 @@ Teie rakenduse muud komponendid saavad ühenduda IoT-teenusega ja saada teavet k Nüüd, kui teil on Azure'i tellimus, saate registreeruda IoT-teenuse jaoks. Microsofti IoT-teenus on nimega Azure IoT Hub. -![Azure IoT Hubi logo](../../../../../translated_images/et/azure-iot-hub-logo.28a19de76d0a1932464d858f7558712bcdace3e5ec69c434d482ed7ce41c3a26.png) +![Azure IoT Hubi logo](../../../../../translated_images/et/azure-iot-hub-logo.28a19de76d0a1932.webp) Allolev video annab lühikese ülevaate Azure IoT Hubist: diff --git a/translations/et/2-farm/lessons/5-migrate-application-to-the-cloud/README.md b/translations/et/2-farm/lessons/5-migrate-application-to-the-cloud/README.md index c0df5c15c..fb237fb39 100644 --- a/translations/et/2-farm/lessons/5-migrate-application-to-the-cloud/README.md +++ b/translations/et/2-farm/lessons/5-migrate-application-to-the-cloud/README.md @@ -1,6 +1,6 @@ # Rakenda oma rakenduse loogika pilve -![Selle õppetunni visuaalne ülevaade](../../../../../translated_images/et/lesson-9.dfe99c8e891f48e179724520da9f5794392cf9a625079281ccdcbf09bd85e1b6.jpg) +![Selle õppetunni visuaalne ülevaade](../../../../../translated_images/et/lesson-9.dfe99c8e891f48e1.webp) > Visuaalne ülevaade: [Nitya Narasimhan](https://github.com/nitya). Klõpsa pildil, et näha suuremat versiooni. @@ -28,7 +28,7 @@ Selles õppetunnis käsitleme: Serverivaba, või serverivaba arvutus, hõlmab väikeste koodiplokkide loomist, mis töötavad pilves vastuseks erinevatele sündmustele. Kui sündmus toimub, käivitatakse teie kood ja sellele edastatakse sündmuse andmed. Need sündmused võivad pärineda mitmesugustest allikatest, sealhulgas veebipäringutest, järjekorda pandud sõnumitest, andmebaasis tehtud muudatustest või IoT-seadmete poolt IoT-teenusele saadetud sõnumitest. -![Sündmused, mis saadetakse IoT-teenusest serverivabasse teenusesse, kus neid töödeldakse samaaegselt mitme funktsiooni poolt](../../../../../translated_images/et/iot-messages-to-serverless.0194da1cc0732bb7d0f823aed3fce54735c6b1ad3bf36089804d8aaefc0a774f.png) +![Sündmused, mis saadetakse IoT-teenusest serverivabasse teenusesse, kus neid töödeldakse samaaegselt mitme funktsiooni poolt](../../../../../translated_images/et/iot-messages-to-serverless.0194da1cc0732bb7.webp) > 💁 Kui olete varem kasutanud andmebaasi käivitajaid, võite mõelda sellele kui samale asjale – kood, mis käivitatakse sündmuse, näiteks rea lisamise, korral. @@ -54,7 +54,7 @@ IoT-arendajana on serverivaba mudel ideaalne. Saate kirjutada funktsiooni, mis k Microsofti serverivaba arvutusteenus kannab nime Azure Functions. -![Azure Functions logo](../../../../../translated_images/et/azure-functions-logo.1cfc8e3204c9c44aaf80fcf406fc8544d80d7f00f8d3e8ed6fed764563e17564.png) +![Azure Functions logo](../../../../../translated_images/et/azure-functions-logo.1cfc8e3204c9c44a.webp) Lühike video allpool annab ülevaate Azure Functionsist. diff --git a/translations/et/2-farm/lessons/6-keep-your-plant-secure/README.md b/translations/et/2-farm/lessons/6-keep-your-plant-secure/README.md index e1386e881..5dfd54238 100644 --- a/translations/et/2-farm/lessons/6-keep-your-plant-secure/README.md +++ b/translations/et/2-farm/lessons/6-keep-your-plant-secure/README.md @@ -1,6 +1,6 @@ # Hoia oma taim turvalisena -![Selle õppetunni visuaalne ülevaade](../../../../../translated_images/et/lesson-10.829c86b80b9403bb770929ee553a1d293afe50dc23121aaf9be144673ae012cc.jpg) +![Selle õppetunni visuaalne ülevaade](../../../../../translated_images/et/lesson-10.829c86b80b9403bb.webp) > Visuaalne märkmik: [Nitya Narasimhan](https://github.com/nitya). Klõpsa pildil, et näha suuremat versiooni. @@ -52,11 +52,11 @@ Need on reaalsed olukorrad, mis juhtuvad pidevalt. Mõned näited toodi varasema Kui seade ühendub IoT-teenusega, kasutab see ID-d enda tuvastamiseks. Probleem on selles, et seda ID-d saab kloonida - häkker võib seadistada pahatahtliku seadme, mis kasutab sama ID-d kui päris seade, kuid saadab valeandmeid. -![Nii kehtivad kui pahatahtlikud seadmed võivad kasutada sama ID-d telemeetria saatmiseks](../../../../../translated_images/et/iot-device-and-hacked-device-connecting.e0671675df74d6d99eb1dedb5a670e606f698efa6202b1ad4c8ae548db299cc6.png) +![Nii kehtivad kui pahatahtlikud seadmed võivad kasutada sama ID-d telemeetria saatmiseks](../../../../../translated_images/et/iot-device-and-hacked-device-connecting.e0671675df74d6d9.webp) Lahendus sellele probleemile on andmete muutmine krüpteeritud vormingusse, kasutades mingit väärtust, mida teavad ainult seade ja pilv. Seda protsessi nimetatakse *krüpteerimiseks*, ja väärtust, mida kasutatakse andmete krüpteerimiseks, nimetatakse *krüpteerimisvõtmeks*. -![Kui kasutatakse krüpteerimist, siis aktsepteeritakse ainult krüpteeritud sõnumeid, teised lükatakse tagasi](../../../../../translated_images/et/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f979e46f2849b573564eeb4a4dc5b52f669f62745397492fb.png) +![Kui kasutatakse krüpteerimist, siis aktsepteeritakse ainult krüpteeritud sõnumeid, teised lükatakse tagasi](../../../../../translated_images/et/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f.webp) Pilveteenus saab seejärel andmed tagasi loetavasse vormingusse muuta, kasutades protsessi, mida nimetatakse *dekrüpteerimiseks*, kas sama krüpteerimisvõtme või *dekrüpteerimisvõtme* abil. Kui krüpteeritud sõnumit ei saa võtmega dekrüpteerida, on seade häkitud ja sõnum lükatakse tagasi. diff --git a/translations/et/3-transport/lessons/1-location-tracking/README.md b/translations/et/3-transport/lessons/1-location-tracking/README.md index b2a56984e..a52a2c91e 100644 --- a/translations/et/3-transport/lessons/1-location-tracking/README.md +++ b/translations/et/3-transport/lessons/1-location-tracking/README.md @@ -1,6 +1,6 @@ # Asukoha jälgimine -![Selle õppetunni visuaalne ülevaade](../../../../../translated_images/et/lesson-11.9fddbac4b664c6d50ab7ac9bb32f1fc3f945f03760e72f7f43938073762fb017.jpg) +![Selle õppetunni visuaalne ülevaade](../../../../../translated_images/et/lesson-11.9fddbac4b664c6d5.webp) > Visuaal autorilt [Nitya Narasimhan](https://github.com/nitya). Klõpsa pildil, et näha suuremat versiooni. @@ -63,13 +63,13 @@ Maa on sfäär – kolmemõõtmeline ring. Seetõttu määratakse punktid, jagad > 💁 Keegi ei tea täpselt, miks ringid jagatakse 360 kraadiks. [Kraad (nurk) Wikipedia leht](https://wikipedia.org/wiki/Degree_(angle)) käsitleb mõningaid võimalikke põhjuseid. -![Laiuskraadide jooned: 90° põhjapoolusel, 45° põhjapooluse ja ekvaatori vahel, 0° ekvaatoril, -45° ekvaatori ja lõunapooluse vahel ning -90° lõunapoolusel](../../../../../translated_images/et/latitude-lines.11d8d91dfb2014a57437272d7db7fd6607243098e8685f06e0c5f1ec984cb7eb.png) +![Laiuskraadide jooned: 90° põhjapoolusel, 45° põhjapooluse ja ekvaatori vahel, 0° ekvaatoril, -45° ekvaatori ja lõunapooluse vahel ning -90° lõunapoolusel](../../../../../translated_images/et/latitude-lines.11d8d91dfb2014a5.webp) Laiuskraadi mõõdetakse joontega, mis ümbritsevad Maad ja kulgevad paralleelselt ekvaatoriga, jagades põhjapoolkera ja lõunapoolkera 90° osadeks. Ekvaator on 0°, põhjapoolus on 90°, tuntud ka kui 90° põhja, ja lõunapoolus on -90°, ehk 90° lõuna. Pikkuskraadi mõõdetakse kraadide arvuna idast ja läänest. Pikkuskraadi 0° alguspunkti nimetatakse *nullmeridiaaniks* ja see määrati 1884. aastal joonena, mis kulgeb põhjapoolusest lõunapooluseni läbi [Briti Kuningliku Observatooriumi Greenwichis, Inglismaal](https://wikipedia.org/wiki/Royal_Observatory,_Greenwich). -![Pikkuskraadi jooned: -180° nullmeridiaanist läänes, 0° nullmeridiaanil, 180° nullmeridiaanist idas](../../../../../translated_images/et/longitude-meridians.ab4ef1c91c064586b0185a3c8d39e585903696c6a7d28c098a93a629cddb5d20.png) +![Pikkuskraadi jooned: -180° nullmeridiaanist läänes, 0° nullmeridiaanil, 180° nullmeridiaanist idas](../../../../../translated_images/et/longitude-meridians.ab4ef1c91c064586.webp) > 🎓 Meridiaan on kujuteldav sirgjoon, mis kulgeb põhjapoolusest lõunapooluseni, moodustades poolringi. @@ -100,7 +100,7 @@ Punkti koordinaadid antakse alati kujul `laiuskraad, pikkuskraad`, seega varasem * Laiuskraadi 47.6423109 (47.6423109 kraadi põhja ekvaatorist) * Pikkuskraadi -122.1390293 (122.1390293 kraadi lääne nullmeridiaanist). -![Microsofti kampus koordinaatidel 47.6423109,-122.117198](../../../../../translated_images/et/microsoft-gps-location-world.a321d481b010f6adfcca139b2ba0adc53b79f58a540495b8e2ce7f779ea64bfe.png) +![Microsofti kampus koordinaatidel 47.6423109,-122.117198](../../../../../translated_images/et/microsoft-gps-location-world.a321d481b010f6ad.webp) ## Globaalne positsioneerimissüsteem (GPS) @@ -112,7 +112,7 @@ GPS-süsteemid töötavad nii, et mitmed satelliidid saadavad signaali, mis sisa > 💁 GPS-andurid vajavad antenne raadiosageduste tuvastamiseks. Veoautodes ja autodes sisseehitatud GPS-antenne paigutatakse hea signaali saamiseks tavaliselt esiklaasile või katusele. Kui kasutate eraldi GPS-süsteemi, näiteks nutitelefoni või IoT-seadet, peate tagama, et GPS-süsteemi või telefoni sisseehitatud antennil oleks selge vaade taevasse, näiteks esiklaasil. -![Teades anduri kaugust mitmest satelliidist, saab asukoha arvutada](../../../../../translated_images/et/gps-satellites.04acf1148fe25fbf1586bc2e8ba698e8d79b79a50c36824b38417dd13372b90f.png) +![Teades anduri kaugust mitmest satelliidist, saab asukoha arvutada](../../../../../translated_images/et/gps-satellites.04acf1148fe25fbf.webp) GPS-satelliidid tiirlevad ümber Maa, mitte ei ole fikseeritud punktis anduri kohal, seega sisaldavad asukohaandmed ka kõrgust merepinnast lisaks laius- ja pikkuskraadidele. diff --git a/translations/et/3-transport/lessons/1-location-tracking/pi-gps-sensor.md b/translations/et/3-transport/lessons/1-location-tracking/pi-gps-sensor.md index e33efc494..1809b62b4 100644 --- a/translations/et/3-transport/lessons/1-location-tracking/pi-gps-sensor.md +++ b/translations/et/3-transport/lessons/1-location-tracking/pi-gps-sensor.md @@ -18,13 +18,13 @@ Grove GPS-sensorit saab ühendada Raspberry Piga. Ühendage GPS-sensor. -![Grove GPS-sensor](../../../../../translated_images/et/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![Grove GPS-sensor](../../../../../translated_images/et/grove-gps-sensor.247943bf69b03f0d.webp) 1. Sisestage Grove-kaabli üks ots GPS-sensori pistikusse. Kaabel läheb sisse ainult ühes suunas. 1. Kui Raspberry Pi on välja lülitatud, ühendage Grove-kaabli teine ots Grove Base hatisse, UART-pistikusse, mis on tähistatud **UART**. See pistik asub keskmises reas, SD-kaardi pesa lähedal, USB-portide ja Etherneti pesa vastaspoolel. - ![Grove GPS-sensor ühendatud UART-pistikuga](../../../../../translated_images/et/pi-gps-sensor.1f99ee2b2f6528915047ec78967bd362e0e4ee0ed594368a3837b9cf9cdaca64.png) + ![Grove GPS-sensor ühendatud UART-pistikuga](../../../../../translated_images/et/pi-gps-sensor.1f99ee2b2f652891.webp) 1. Paigutage GPS-sensor nii, et ühendatud antennil oleks nähtavus taeva suunas - ideaalis avatud akna lähedal või väljas. Selgem signaal on kergemini saadaval, kui antenni ees pole takistusi. diff --git a/translations/et/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md b/translations/et/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md index 1c983888c..83dd40725 100644 --- a/translations/et/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md +++ b/translations/et/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md @@ -38,11 +38,11 @@ Lisage GPS-andur CounterFit rakendusse. 1. Valige **Add** nupp, et luua GPS-andur pordil `/dev/ttyAMA0`. - ![GPS-anduri seaded](../../../../../translated_images/et/counterfit-create-gps-sensor.6385dc9357d85ad1d47b4abb2525e7651fd498917d25eefc5a72feab09eedc70.png) + ![GPS-anduri seaded](../../../../../translated_images/et/counterfit-create-gps-sensor.6385dc9357d85ad1.webp) GPS-andur luuakse ja ilmub andurite loendisse. - ![Loodud GPS-andur](../../../../../translated_images/et/counterfit-gps-sensor.3fbb15af0a5367566f2f11324ef5a6f30861cdf2b497071a5e002b7aa473550e.png) + ![Loodud GPS-andur](../../../../../translated_images/et/counterfit-gps-sensor.3fbb15af0a536756.webp) ## Programmeerige GPS-andur @@ -102,17 +102,17 @@ Programmeeri GPS-anduri rakendus. * Määrake **Source** väärtuseks `Lat/Lon` ja määrake konkreetne laiuskraad, pikkuskraad ja satelliitide arv, mida GPS-fiksi saamiseks kasutatakse. See väärtus saadetakse ainult üks kord, seega kontrollige **Repeat** kasti, et andmed korduksid iga sekundi järel. - ![GPS-andur, millel on valitud lat lon](../../../../../translated_images/et/counterfit-gps-sensor-latlon.008c867d75464fbe7f84107cc57040df565ac07cb57d2f21db37d087d470197d.png) + ![GPS-andur, millel on valitud lat lon](../../../../../translated_images/et/counterfit-gps-sensor-latlon.008c867d75464fbe.webp) * Määrake **Source** väärtuseks `NMEA` ja lisage mõned NMEA laused tekstikasti. Kõik need väärtused saadetakse, kusjuures iga uue GGA (asukoha fikseerimise) lause lugemise vahel on 1-sekundiline viivitus. - ![GPS-andur, millel on määratud NMEA laused](../../../../../translated_images/et/counterfit-gps-sensor-nmea.c62eea442171e17e19528b051b104cfcecdc9cd18db7bc72920f29821ae63f73.png) + ![GPS-andur, millel on määratud NMEA laused](../../../../../translated_images/et/counterfit-gps-sensor-nmea.c62eea442171e17e.webp) Võite kasutada tööriista nagu [nmeagen.org](https://www.nmeagen.org), et genereerida neid lauseid kaardil joonistades. Need väärtused saadetakse ainult üks kord, seega kontrollige **Repeat** kasti, et andmed korduksid üks sekund pärast nende kõigi saatmist. * Määrake **Source** väärtuseks GPX-fail ja laadige üles GPX-fail rajakohtadega. GPX-faile saab alla laadida mitmetelt populaarsetelt kaardistamis- ja matkamissaitidelt, nagu [AllTrails](https://www.alltrails.com/). Need failid sisaldavad mitmeid GPS-asukohti rajana ja GPS-andur tagastab iga uue asukoha 1-sekundiliste intervallidega. - ![GPS-andur, millel on määratud GPX-fail](../../../../../translated_images/et/counterfit-gps-sensor-gpxfile.8310b063ce8a425ccc8ebeec8306aeac5e8e55207f007d52c6e1194432a70cd9.png) + ![GPS-andur, millel on määratud GPX-fail](../../../../../translated_images/et/counterfit-gps-sensor-gpxfile.8310b063ce8a425c.webp) Need väärtused saadetakse ainult üks kord, seega kontrollige **Repeat** kasti, et andmed korduksid üks sekund pärast nende kõigi saatmist. diff --git a/translations/et/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md b/translations/et/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md index a82842805..bd5b4fedd 100644 --- a/translations/et/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md +++ b/translations/et/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md @@ -18,7 +18,7 @@ Grove GPS-sensorit saab ühendada Wio Terminaliga. Ühendage GPS-sensor. -![Grove GPS-sensor](../../../../../translated_images/et/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![Grove GPS-sensor](../../../../../translated_images/et/grove-gps-sensor.247943bf69b03f0d.webp) 1. Sisestage Grove-kaabli üks ots GPS-sensori pistikusse. Kaabel läheb sisse ainult ühes suunas. diff --git a/translations/et/3-transport/lessons/2-store-location-data/README.md b/translations/et/3-transport/lessons/2-store-location-data/README.md index 26a515615..a0d6b435c 100644 --- a/translations/et/3-transport/lessons/2-store-location-data/README.md +++ b/translations/et/3-transport/lessons/2-store-location-data/README.md @@ -1,6 +1,6 @@ # Poe asukohaandmed -![Selle õppetunni visandmärkmete ülevaade](../../../../../translated_images/et/lesson-12.ca7f53039712a3ec14ad6474d8445361c84adab643edc53fa6269b77895606bb.jpg) +![Selle õppetunni visandmärkmete ülevaade](../../../../../translated_images/et/lesson-12.ca7f53039712a3ec.webp) > Visandmärkmed: [Nitya Narasimhan](https://github.com/nitya). Klõpsake pildil, et näha suuremat versiooni. @@ -75,7 +75,7 @@ NoSQL-andmebaasid on nimetatud NoSQL-iks, kuna neil puudub SQL-andmebaaside jäi > 💁 Hoolimata nende nimest, võimaldavad mõned NoSQL-andmebaasid kasutada SQL-i andmete pärimiseks. -![Dokumendid kaustades NoSQL-andmebaasis](../../../../../translated_images/et/noqsl-database.62d24ccf5b73f60d35c245a8533f1c7147c0928e955b82cb290b2e184bb434df.png) +![Dokumendid kaustades NoSQL-andmebaasis](../../../../../translated_images/et/noqsl-database.62d24ccf5b73f60d.webp) NoSQL-andmebaasidel puudub eelnevalt määratletud skeem, mis piiraks andmete salvestamist; selle asemel saate sisestada mis tahes struktureerimata andmeid, tavaliselt JSON-dokumentidena. Need dokumendid saab korraldada kaustadesse, sarnaselt failidele teie arvutis. Iga dokument võib sisaldada erinevaid välju võrreldes teiste dokumentidega - näiteks kui salvestate IoT-andmeid oma farmisõidukitest, võivad mõned sisaldada kiirendus- ja kiirusandmeid, teised aga haagise temperatuuriandmeid. Kui lisate uue veokitüübi, näiteks sisseehitatud kaaludega veoki, mis jälgib veetava toodangu kaalu, võib teie IoT-seade lisada selle uue välja ja see salvestatakse ilma andmebaasi muutmata. @@ -89,7 +89,7 @@ Selles õppetunnis kasutate NoSQL-salvestust IoT-andmete salvestamiseks. Eelmises õppetunnis kogusite GPS-andmeid GPS-andurilt, mis oli ühendatud teie IoT-seadmega. IoT-andmete pilves salvestamiseks peate need saatma IoT-teenusesse. Jällegi kasutate Azure IoT Hubi, sama IoT-pilveteenust, mida kasutasite eelmises projektis. -![GPS-telemeetria saatmine IoT-seadmest IoT Hubi](../../../../../translated_images/et/gps-telemetry-iot-hub.8115335d51cd2c1285d20e9d1b18cf685e59a8e093e7797291ef173445af6f3d.png) +![GPS-telemeetria saatmine IoT-seadmest IoT Hubi](../../../../../translated_images/et/gps-telemetry-iot-hub.8115335d51cd2c12.webp) ### Ülesanne - GPS-andmete saatmine IoT Hubi @@ -171,7 +171,7 @@ Külma tee andmed salvestatakse andmeladudesse - andmebaasidesse, mis on mõeldu Kui andmed voolavad teie IoT Hubi, saate kirjutada serverivaba koodi, et kuulata sündmusi, mis avaldatakse Event-Hubiga ühilduval lõpp-punktil. See on soe tee - need andmed salvestatakse ja neid kasutatakse järgmises õppetunnis teekonna aruandluseks. -![GPS-telemeetria saatmine IoT-seadmest IoT Hubi, seejärel Azure Functionsisse sündmuste huba päästiku kaudu](../../../../../translated_images/et/gps-telemetry-iot-hub-functions.24d3fa5592455e9f4e2fe73856b40c3915a292b90263c31d652acfd976cfedd8.png) +![GPS-telemeetria saatmine IoT-seadmest IoT Hubi, seejärel Azure Functionsisse sündmuste huba päästiku kaudu](../../../../../translated_images/et/gps-telemetry-iot-hub-functions.24d3fa5592455e9f.webp) ### Ülesanne - GPS-sündmuste käsitlemine serverivaba koodi abil @@ -194,7 +194,7 @@ Kui andmed voolavad teie IoT Hubi, saate kirjutada serverivaba koodi, et kuulata ## Azure'i salvestuskontod -![Azure Storage logo](../../../../../translated_images/et/azure-storage-logo.605c0f602c640d482a80f1b35a2629a32d595711b7ab1d7ceea843250615ff32.png) +![Azure Storage logo](../../../../../translated_images/et/azure-storage-logo.605c0f602c640d48.webp) Azure'i salvestuskontod on üldotstarbeline salvestusteenus, mis võimaldab andmeid salvestada mitmel erineval viisil. Sa saad andmeid salvestada blobidena, järjekordades, tabelites või failidena – ja seda kõike samaaegselt. diff --git a/translations/et/3-transport/lessons/3-visualize-location-data/README.md b/translations/et/3-transport/lessons/3-visualize-location-data/README.md index fac4064a2..66b0cc16d 100644 --- a/translations/et/3-transport/lessons/3-visualize-location-data/README.md +++ b/translations/et/3-transport/lessons/3-visualize-location-data/README.md @@ -1,6 +1,6 @@ # Visualiseeri asukohaandmeid -![Selle õppetunni visuaalne ülevaade](../../../../../translated_images/et/lesson-13.a259db1485021be7d7c72e90842fbe0ab977529e8684c179b5fb1ea75e92b3ef.jpg) +![Selle õppetunni visuaalne ülevaade](../../../../../translated_images/et/lesson-13.a259db1485021be7.webp) > Visuaalne ülevaade: [Nitya Narasimhan](https://github.com/nitya). Klõpsa pildil, et näha suuremat versiooni. @@ -64,11 +64,11 @@ Lihtsa näitena - farmiprojektis salvestasid mulla niiskuse näidud. Tabel mulla Inimesena võib sellise andmestiku mõistmine olla keeruline. See on lihtsalt numbrite sein ilma tähenduseta. Esimese sammuna selle andmestiku visualiseerimiseks saab selle kujutada joondiagrammil: -![Ülaltoodud andmete joondiagramm](../../../../../translated_images/et/chart-soil-moisture.fd6d9d0cdc0b5f75e78038ecb8945dfc84b38851359de99d84b16e3336d6d7c2.png) +![Ülaltoodud andmete joondiagramm](../../../../../translated_images/et/chart-soil-moisture.fd6d9d0cdc0b5f75.webp) Seda saab veelgi täiustada, lisades joone, mis näitab, millal automaatne kastmissüsteem käivitati mulla niiskuse näidu 450 juures: -![Mulla niiskuse joondiagramm koos joonega näidul 450](../../../../../translated_images/et/chart-soil-moisture-relay.fbb391236d34a64d0abf1df396e9197e0a24df14150620b9cc820a64a55c9326.png) +![Mulla niiskuse joondiagramm koos joonega näidul 450](../../../../../translated_images/et/chart-soil-moisture-relay.fbb391236d34a64d.webp) See diagramm näitab kiiresti mitte ainult mulla niiskuse tasemeid, vaid ka punkte, kus kastmissüsteem käivitati. @@ -84,7 +84,7 @@ GPS-andmetega töötamisel võib kõige selgem visualiseerimine olla andmete kaa Kaartidega töötamine on huvitav ülesanne ja valikuid on palju, näiteks Bing Maps, Leaflet, Open Street Maps ja Google Maps. Selles õppetunnis õpid tundma [Azure Maps](https://azure.microsoft.com/services/azure-maps/?WT.mc_id=academic-17441-jabenn) ja kuidas need saavad kuvada sinu GPS-andmeid. -![Azure Maps logo](../../../../../translated_images/et/azure-maps-logo.35d01dcfbd81fe6140e94257aaa1538f785a58c91576d14e0ebe7a2f6c694b99.png) +![Azure Maps logo](../../../../../translated_images/et/azure-maps-logo.35d01dcfbd81fe61.webp) Azure Maps on "georuumiliste teenuste ja SDK-de kogum, mis kasutab värskeid kaardiandmeid, et pakkuda geograafilist konteksti veebirakendustele ja mobiilirakendustele." Arendajatele pakutakse tööriistu, et luua kauneid, interaktiivseid kaarte, mis suudavad teha asju nagu soovitada liiklusmarsruute, anda teavet liiklusõnnetuste kohta, siseruumide navigeerimine, otsinguvõimalused, kõrgusteave, ilmateenused ja palju muud. @@ -185,7 +185,7 @@ Nüüd saad astuda järgmise sammu, mis on kaardi kuvamine veebilehel. Kasutame Kui avad oma `index.html` lehe veebibrauseris, peaksid nägema kaarti, mis on keskendunud Seattle'i piirkonnale. - ![Kaart, mis näitab Seattle'i, linna Washingtoni osariigis, USA-s](../../../../../translated_images/et/map-image.8fb2c53eb23ef39c1c0a4410a5282e879b3b452b707eb066ff04c5488d3d72b7.png) + ![Kaart, mis näitab Seattle'i, linna Washingtoni osariigis, USA-s](../../../../../translated_images/et/map-image.8fb2c53eb23ef39c.webp) ✅ Katseta suumi ja keskpunkti parameetreid, et muuta oma kaardi kuvamist. Saad lisada erinevaid koordinaate, mis vastavad sinu andmete laius- ja pikkuskraadile, et kaarti ümber keskendada. @@ -319,7 +319,7 @@ Kui teete salvestusele päringu, et andmeid hankida, võite üllatusega näha om 1. Laadige HTML-leht oma brauserisse. See laadib kaardi, seejärel laadib kõik GPS-andmed salvestusest ja kuvab need kaardil. - ![Saint Edward State Parki kaart Seattle'i lähedal, kus ringid näitavad teekonda pargi serva ümber](../../../../../translated_images/et/map-path.896832e72dc696ffe20650e4051027d4855442d955f93fdbb80bb417ca8a406f.png) + ![Saint Edward State Parki kaart Seattle'i lähedal, kus ringid näitavad teekonda pargi serva ümber](../../../../../translated_images/et/map-path.896832e72dc696ff.webp) > 💁 Selle koodi leiate [koodi](../../../../../3-transport/lessons/3-visualize-location-data/code) kaustast. diff --git a/translations/et/3-transport/lessons/4-geofences/README.md b/translations/et/3-transport/lessons/4-geofences/README.md index d1ec85a72..30c6c9f2b 100644 --- a/translations/et/3-transport/lessons/4-geofences/README.md +++ b/translations/et/3-transport/lessons/4-geofences/README.md @@ -1,6 +1,6 @@ # Geopiirded -![Selle õppetunni visuaalne ülevaade](../../../../../translated_images/et/lesson-14.63980c5150ae3c153e770fb71d044c1845dce79248d86bed9fc525adf3ede73c.jpg) +![Selle õppetunni visuaalne ülevaade](../../../../../translated_images/et/lesson-14.63980c5150ae3c15.webp) > Visuaal autorilt [Nitya Narasimhan](https://github.com/nitya). Klõpsa pildil, et näha suuremat versiooni. @@ -35,7 +35,7 @@ Selles õppetunnis käsitleme: Geopiire on virtuaalne perimeeter reaalse maailma geograafilise piirkonna jaoks. Geopiirded võivad olla ringid, mis on määratletud punktina ja raadiusena (näiteks 100m laiune ring hoone ümber), või polügoonid, mis katavad ala, nagu koolitsoon, linnapiirid või ülikooli või kontori kampus. -![Mõned geopiirde näited, mis näitavad ringikujulist geopiiret Microsofti ettevõtte poe ümber ja polügoon-geopiiret Microsofti läänekampuse ümber](../../../../../translated_images/et/geofence-examples.172fbc534665769f6e1a1ddcf75e3b25183cd10354c80cc603ba44b635390e1a.png) +![Mõned geopiirde näited, mis näitavad ringikujulist geopiiret Microsofti ettevõtte poe ümber ja polügoon-geopiiret Microsofti läänekampuse ümber](../../../../../translated_images/et/geofence-examples.172fbc534665769f.webp) > 💁 Võimalik, et olete juba geopiirdeid kasutanud seda teadvustamata. Kui olete seadnud meeldetuletuse iOS-i meeldetuletuste rakenduses või Google Keepis asukoha põhjal, olete kasutanud geopiiret. Need rakendused loovad geopiirde antud asukoha põhjal ja teavitavad teid, kui teie telefon siseneb geopiirdesse. @@ -212,7 +212,7 @@ Oluline on teada kaugust geopiirde servani ja kombineerida see muu teabega, nagu Näiteks kujutage ette GPS-i näiteid, mis näitavad, et sõiduk sõidab mööda teed, mis kulgeb geopiirde kõrval. Kui üksik GPS-i väärtus on ebatäpne ja paigutab sõiduki geopiirde sisse, kuigi seal ei ole sõidukile juurdepääsu, siis võib selle ignoreerida. -![GPS-i rada, mis näitab sõidukit möödumas Microsofti kampusest mööda 520 teed, GPS-i näidud mööda teed, välja arvatud üks kampusel, geopiirde sees](../../../../../translated_images/et/geofence-crossing-inaccurate-gps.6a3ed911202ad9cabb66d3964888cec03a42c61d5b8f536ad5bdc99716b370f5.png) +![GPS-i rada, mis näitab sõidukit möödumas Microsofti kampusest mööda 520 teed, GPS-i näidud mööda teed, välja arvatud üks kampusel, geopiirde sees](../../../../../translated_images/et/geofence-crossing-inaccurate-gps.6a3ed911202ad9ca.webp) Ülaloleval pildil on geopiire, mis katab osa Microsofti kampusest. Punane joon näitab veoauto liikumist mööda 520 maanteed, kus ringid tähistavad GPS-i lugemisi. Enamik neist on täpsed ja jäävad 520 maantee piiridesse, kuid üks ebatäpne lugemine asub geopiirde sees. See lugemine ei saa olla õige – ei ole teid, mille kaudu veoauto saaks äkitselt 520 maanteelt kampusele pöörata ja siis tagasi 520 maanteele. Geopiirde kontrollimiseks mõeldud kood peab arvestama varasemaid lugemisi enne, kui tegutseb geopiirde testi tulemuste põhjal. ✅ Milliseid lisanduvaid andmeid oleks vaja kontrollida, et GPS-i lugemist saaks pidada korrektseks? @@ -284,7 +284,7 @@ Nagu mäletad eelmistest õppetundidest, võimaldab IoT Hub taasesitada sündmus Vastus on, et see ei tea! Selle asemel saad määratleda mitu eraldi ühendust, et lugeda sündmusi, ja igaüks neist saab hallata lugemata sõnumite taasesitamist. Neid nimetatakse *tarbijarühmadeks*. Kui ühendad lõpp-punktiga, saad määrata, millise tarbijarühmaga soovid ühenduda. Iga rakenduse komponent ühendub erineva tarbijarühmaga. -![Üks IoT Hub koos 3 tarbijarühmaga, mis jagavad samu sõnumeid 3 erinevale Functions rakendusele](../../../../../translated_images/et/consumer-groups.a3262e26fc27ba2092863678ad57af15c7223416e388a23f330c058cf4358630.png) +![Üks IoT Hub koos 3 tarbijarühmaga, mis jagavad samu sõnumeid 3 erinevale Functions rakendusele](../../../../../translated_images/et/consumer-groups.a3262e26fc27ba20.webp) Teoreetiliselt saab iga tarbijarühmaga ühendada kuni 5 rakendust, ja kõik saavad sõnumeid, kui need saabuvad. Parim praktika on, et iga tarbijarühma kasutaks ainult üks rakendus, et vältida sõnumite dubleerimist ja tagada, et taaskäivitamisel töödeldakse kõik järjekorras olevad sõnumid korrektselt. Näiteks, kui käivitad oma Functions rakenduse lokaalselt ja pilves samaaegselt, töötlevad mõlemad sõnumeid, mis viib dubleeritud blobide salvestamiseni salvestuskontole. diff --git a/translations/et/4-manufacturing/lessons/1-train-fruit-detector/README.md b/translations/et/4-manufacturing/lessons/1-train-fruit-detector/README.md index 61abc32af..4a3a472d5 100644 --- a/translations/et/4-manufacturing/lessons/1-train-fruit-detector/README.md +++ b/translations/et/4-manufacturing/lessons/1-train-fruit-detector/README.md @@ -1,6 +1,6 @@ # Treeni puuviljade kvaliteedi tuvastajat -![Selle õppetunni visuaalne ülevaade](../../../../../translated_images/et/lesson-15.843d21afdc6fb2bba70cd9db7b7d2f91598859fafda2078b0bdc44954194b6c0.jpg) +![Selle õppetunni visuaalne ülevaade](../../../../../translated_images/et/lesson-15.843d21afdc6fb2bb.webp) > Visuaalne ülevaade: [Nitya Narasimhan](https://github.com/nitya). Klõpsa pildil, et näha suuremat versiooni. @@ -38,7 +38,7 @@ Kõik saagid ei küpse ühtlaselt. Näiteks tomatitel võib viinapuul olla veel Automatiseeritud koristamise tõus viis toodangu sorteerimise koristamisest tehasesse. Toit liikus pikkadel konveierlintidel, kus meeskonnad korjasid toodangust välja kõik, mis ei vastanud kvaliteedistandarditele. Kuigi koristamine oli masinate abil odavam, oli toidu käsitsi sorteerimine endiselt kulukas. -![Kui tuvastatakse punane tomat, jätkab see oma teekonda. Kui tuvastatakse roheline tomat, lükatakse see kangi abil jäätmekasti.](../../../../../translated_images/et/optical-tomato-sorting.61aa134bdda4e5b1bfb16a212c1e35a6ef0c426cbb8b1c975f79d7bfbf48d068.png) +![Kui tuvastatakse punane tomat, jätkab see oma teekonda. Kui tuvastatakse roheline tomat, lükatakse see kangi abil jäätmekasti.](../../../../../translated_images/et/optical-tomato-sorting.61aa134bdda4e5b1.webp) Järgmine arenguetapp oli masinate kasutamine sorteerimiseks, kas koristusmasinates või töötlemisettevõtetes. Esimese põlvkonna masinad kasutasid optilisi sensoreid värvide tuvastamiseks, juhtides aktuaatoreid, mis lükkasid rohelised tomatid kangide või õhupuhangutega jäätmekasti, jättes punased tomatid konveierlintide võrgustikul edasi liikuma. @@ -62,7 +62,7 @@ Näiteks võid anda mudelile miljoneid pilte toorestest banaanidest sisendtreeni > 🎓 ML-mudelite tulemusi nimetatakse *ennustusteks*. -![2 banaani, küps banaan ennustusega 99.7% küps, 0.3% toore, ja toore banaan ennustusega 1.4% küps, 98.6% toore.](../../../../../translated_images/et/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50ece4e4589e724b142da0681f35470fe3db3f7d51240f69c85.png) +![2 banaani, küps banaan ennustusega 99.7% küps, 0.3% toore, ja toore banaan ennustusega 1.4% küps, 98.6% toore.](../../../../../translated_images/et/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50e.webp) ML-mudelid ei anna binaarset vastust, vaid tõenäosusi. Näiteks võib mudelile anda pildi banaanist ja see ennustab `küps` 99.7% ja `toore` 0.3%. Sinu kood valib parima ennustuse ja otsustab, et banaan on küps. @@ -90,7 +90,7 @@ Selleks on olemas lai valik tööriistu, sealhulgas pilvepõhised teenused, mis Custom Vision on pilvepõhine tööriist pildiklassifikaatorite treenimiseks. See võimaldab treenida klassifikaatorit, kasutades ainult väikest hulka pilte. Sa saad pilte üles laadida veebipõhise portaali, veebipõhise API või SDK kaudu, andes igale pildile *märgise*, mis klassifitseerib selle pildi. Seejärel treenid mudelit ja testid seda, et näha, kui hästi see toimib. Kui oled mudeliga rahul, saad avaldada selle versioone, mida saab kasutada veebipõhise API või SDK kaudu. -![Azure Custom Vision logo](../../../../../translated_images/et/custom-vision-logo.d3d4e7c8a87ec9daf825e72e210576c3cbf60312577be7a139e22dd97ab7f1e6.png) +![Azure Custom Vision logo](../../../../../translated_images/et/custom-vision-logo.d3d4e7c8a87ec9da.webp) > 💁 Custom Vision mudelit saab treenida vaid 5 pildiga klassifikatsiooni kohta, kuid rohkem on parem. Saad paremaid tulemusi vähemalt 30 pildiga. @@ -146,7 +146,7 @@ Custom Visioni kasutamiseks pead esmalt looma Azure'is kaks Cognitive Services r Projekti loomisel kasuta kindlasti varem loodud `fruit-quality-detector-training` ressurssi. Kasuta *Classification* projekti tüüpi, *Multiclass* klassifikatsiooni tüüpi ja *Food* domeeni. - ![Custom Vision projekti seaded, kus nimi on fruit-quality-detector, kirjeldust pole, ressurss on fruit-quality-detector-training, projekti tüüp on classification, klassifikatsiooni tüüp on multi class ja domeen on food.](../../../../../translated_images/et/custom-vision-create-project.cf46325b92d8b131089f6647cf5e07b664cb77850e106d66e3c057b6b69756c6.png) + ![Custom Vision projekti seaded, kus nimi on fruit-quality-detector, kirjeldust pole, ressurss on fruit-quality-detector-training, projekti tüüp on classification, klassifikatsiooni tüüp on multi class ja domeen on food.](../../../../../translated_images/et/custom-vision-create-project.cf46325b92d8b131.webp) ✅ Võta aega, et uurida Custom Vision kasutajaliidest oma pildiklassifikaatori jaoks. @@ -165,7 +165,7 @@ Pildiklassifikaatorid töötavad väga madala resolutsiooniga. Näiteks Custom V * Kasutades 2 küpset banaani, tee mõlemast mõned pildid erinevate nurkade alt, tehes vähemalt 7 pilti (5 treenimiseks, 2 testimiseks), kuid ideaalis rohkem. - ![Fotod kahest erinevast banaanist](../../../../../translated_images/et/banana-training-images.530eb203346d73bc23b8b990fb4609470bf4ff7c942ccc13d4cfffeed9be1ad4.png) + ![Fotod kahest erinevast banaanist](../../../../../translated_images/et/banana-training-images.530eb203346d73bc.webp) * Korda sama protsessi 2 toore banaaniga. @@ -175,7 +175,7 @@ Pildiklassifikaatorid töötavad väga madala resolutsiooniga. Näiteks Custom V 1. Järgi [piltide üleslaadimise ja sildistamise juhiseid Microsofti dokumentatsioonis](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), et laadida üles oma treeningpildid. Sildista küpsed viljad kui `ripe` ja toored viljad kui `unripe`. - ![Üleslaadimise dialoogid, mis näitavad küpsete ja toorete banaanipiltide üleslaadimist](../../../../../translated_images/et/image-upload-bananas.0751639f3815e0ec42bdbc6254d1e4357a185834d1ae10c9948a0e7d6d336695.png) + ![Üleslaadimise dialoogid, mis näitavad küpsete ja toorete banaanipiltide üleslaadimist](../../../../../translated_images/et/image-upload-bananas.0751639f3815e0ec.webp) 1. Järgi [klassifikaatori treenimise juhiseid Microsofti dokumentatsioonis](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#train-the-classifier), et treenida pildiklassifikaatorit oma üleslaaditud piltidega. @@ -193,7 +193,7 @@ Kui klassifikaator on treenitud, saad seda testida, andes sellele uue pildi klas 1. Järgi [oma mudeli testimise juhiseid Microsofti dokumentatsioonis](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/test-your-model?WT.mc_id=academic-17441-jabenn#test-your-model), et testida oma pildiklassifikaatorit. Kasuta testimispilte, mille varem tegid, mitte treeningpilte. - ![Toore banaani ennustus: tõenäosus 98.9% toore, 1.1% küpse](../../../../../translated_images/et/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64886422438850ea14f0be6ac918c217ea3b255c685abfabe7.png) + ![Toore banaani ennustus: tõenäosus 98.9% toore, 1.1% küpse](../../../../../translated_images/et/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64.webp) 1. Proovi kõiki testimispilte, mis sul on, ja jälgi tõenäosusi. diff --git a/translations/et/4-manufacturing/lessons/2-check-fruit-from-device/README.md b/translations/et/4-manufacturing/lessons/2-check-fruit-from-device/README.md index fefe5542f..085155335 100644 --- a/translations/et/4-manufacturing/lessons/2-check-fruit-from-device/README.md +++ b/translations/et/4-manufacturing/lessons/2-check-fruit-from-device/README.md @@ -1,6 +1,6 @@ # Kontrolli puuviljade kvaliteeti IoT-seadmest -![Selle õppetunni ülevaade sketšina](../../../../../translated_images/et/lesson-16.215daf18b00631fbdfd64c6fc2dc6044dff5d544288825d8076f9fb83d964c23.jpg) +![Selle õppetunni ülevaade sketšina](../../../../../translated_images/et/lesson-16.215daf18b00631fb.webp) > Sketš: [Nitya Narasimhan](https://github.com/nitya). Klõpsa pildil, et näha suuremat versiooni. @@ -26,7 +26,7 @@ Selles õppetunnis käsitleme: Kaamerasensorid, nagu nimigi ütleb, on kaamerad, mida saab ühendada IoT-seadmega. Need võivad teha nii üksikuid pilte kui ka salvestada voogedastusega videot. Mõned tagastavad toorpildi andmeid, teised aga tihendavad pildiandmed pildifailiks, näiteks JPEG või PNG. Tavaliselt on IoT-seadmetega töötavad kaamerad palju väiksemad ja madalama resolutsiooniga, kui te olete harjunud, kuid on olemas ka kõrge resolutsiooniga kaameraid, mis võivad konkureerida tippklassi telefonidega. Saadaval on erinevaid vahetatavaid läätsi, mitme kaamera seadistusi, infrapuna termokaameraid või UV-kaameraid. -![Valgus stseenist läbib läätse ja fokuseeritakse CMOS-sensorile](../../../../../translated_images/et/cmos-sensor.75f9cd74decb137149a4c9ea825251a4549497d67c0ae2776159e6102bb53aa9.png) +![Valgus stseenist läbib läätse ja fokuseeritakse CMOS-sensorile](../../../../../translated_images/et/cmos-sensor.75f9cd74decb1371.webp) Enamik kaamerasensoreid kasutab pildisensoreid, kus iga piksel on fotodiood. Lääts fokuseerib pildi pildisensorile ja tuhanded või miljonid fotodioodid tuvastavad igaühele langeva valguse ning salvestavad selle pikslite andmetena. @@ -74,7 +74,7 @@ Iteratsioone avaldatakse Custom Vision portaalist. 1. Valige iteratsiooni jaoks **Publish** nupp. - ![Avaldamise nupp](../../../../../translated_images/et/custom-vision-publish-button.b7174e1977b0c33b8b72d4e5b1326c779e0af196f3849d09985ee2d7d5493a39.png) + ![Avaldamise nupp](../../../../../translated_images/et/custom-vision-publish-button.b7174e1977b0c33b.webp) 1. *Publish Model* dialoogis määrake *Prediction resource* väärtuseks `fruit-quality-detector-prediction` ressurss, mille lõite eelmises õppetunnis. Jätke nimi `Iteration2` ja valige **Publish** nupp. @@ -88,7 +88,7 @@ Iteratsioone avaldatakse Custom Vision portaalist. Samuti kopeerige *Prediction-Key* väärtus. See on turvaline võti, mida peate mudeli kutsumisel edastama. Ainult rakendused, mis edastavad selle võtme, saavad mudelit kasutada, kõik teised rakendused lükatakse tagasi. - ![Ennustuse API dialoog, mis näitab URL-i ja võtit](../../../../../translated_images/et/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![Ennustuse API dialoog, mis näitab URL-i ja võtit](../../../../../translated_images/et/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ Kui uus iteratsioon avaldatakse, on sellel erinev nimi. Kuidas arvate, et muudaksite iteratsiooni, mida IoT-seade kasutab? @@ -109,7 +109,7 @@ Võite avastada, et tulemused, mida saate kaameraga ühendatud IoT-seadmest, ei Parimate tulemuste saavutamiseks pildiklassifikaatoriga soovite treenida mudelit piltidega, mis on võimalikult sarnased ennustamiseks kasutatavate piltidega. Kui kasutasite oma telefoni kaamerat piltide jäädvustamiseks treenimiseks, on näiteks pildikvaliteet, teravus ja värvid erinevad IoT-seadmega ühendatud kaamerast. -![2 banaanipilti, üks madala resolutsiooniga ja halva valgustusega IoT-seadmest ning teine kõrge resolutsiooniga ja hea valgustusega telefonist](../../../../../translated_images/et/banana-picture-compare.174df164dc326a42cf7fb051a7497e6113c620e91552d92ca914220305d47d9a.png) +![2 banaanipilti, üks madala resolutsiooniga ja halva valgustusega IoT-seadmest ning teine kõrge resolutsiooniga ja hea valgustusega telefonist](../../../../../translated_images/et/banana-picture-compare.174df164dc326a42.webp) Ülaltoodud pildil on vasakpoolne banaanipilt tehtud Raspberry Pi kaameraga, parempoolne aga sama banaani pilt samas kohas iPhone'iga. Kvaliteedis on märgatav erinevus - iPhone'i pilt on teravam, heledamate värvide ja suurema kontrastsusega. diff --git a/translations/et/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md b/translations/et/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md index 3f8c076d4..fcb541dec 100644 --- a/translations/et/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md +++ b/translations/et/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md @@ -16,7 +16,7 @@ Kaamera saab Raspberry Pi-ga ühendada lintkaabli abil. ### Ülesanne - kaamera ühendamine -![Raspberry Pi kaamera](../../../../../translated_images/et/pi-camera-module.4278753c31bd6e757aa2b858be97d72049f71616278cefe4fb5abb485b40a078.png) +![Raspberry Pi kaamera](../../../../../translated_images/et/pi-camera-module.4278753c31bd6e75.webp) 1. Lülitage Pi välja. @@ -24,17 +24,17 @@ Kaamera saab Raspberry Pi-ga ühendada lintkaabli abil. Animatsiooni, mis näitab, kuidas klambrit avada ja kaablit sisestada, leiate [Raspberry Pi kaameramooduli dokumentatsioonist](https://projects.raspberrypi.org/en/projects/getting-started-with-picamera/2). - ![Lintkaabel sisestatud kaameramoodulisse](../../../../../translated_images/et/pi-camera-ribbon-cable.0bf82acd251611c21ac616f082849413e2b322a261d0e4f8fec344248083b07e.png) + ![Lintkaabel sisestatud kaameramoodulisse](../../../../../translated_images/et/pi-camera-ribbon-cable.0bf82acd251611c2.webp) 1. Eemaldage Grove Base Hat Pi-lt. 1. Viige lintkaabel läbi Grove Base Hat kaamera ava. Veenduge, et kaabli sinine külg oleks suunatud analoogportide **A0**, **A1** jne poole. - ![Lintkaabel läbimas Grove Base Hat'i](../../../../../translated_images/et/grove-base-hat-ribbon-cable.501fed202fcf73b11b2b68f6d246189f7d15d3e4423c572ddee79d77b4632b47.png) + ![Lintkaabel läbimas Grove Base Hat'i](../../../../../translated_images/et/grove-base-hat-ribbon-cable.501fed202fcf73b1.webp) 1. Sisestage lintkaabel Pi kaamerapistikusse. Tõmmake jälle must plastklamber üles, sisestage kaabel ja lükake klamber tagasi. Kaabli sinine külg peaks olema suunatud USB- ja Ethernet-pistikute poole. - ![Lintkaabel ühendatud Pi kaamerapistikuga](../../../../../translated_images/et/pi-camera-socket-ribbon-cable.a18309920b11800911082ed7aa6fb28e6d9be3a022e4079ff990016cae3fca10.png) + ![Lintkaabel ühendatud Pi kaamerapistikuga](../../../../../translated_images/et/pi-camera-socket-ribbon-cable.a18309920b118009.webp) 1. Paigaldage Grove Base Hat tagasi. @@ -101,7 +101,7 @@ Programmeerige seade. Rida `camera.rotation = 0` määrab pildi pööramise. Lintkaabel tuleb kaamera alt, kuid kui teie kaamera on pööratud, et hõlbustada objekti suunamist, mida soovite klassifitseerida, saate seda rida muuta vastavalt pöördenurkadele. - ![Kaamera rippumas joogipurgi kohal](../../../../../translated_images/et/pi-camera-upside-down.5376961ba31459883362124152ad6b823d5ac5fc14e85f317e22903bd681c2b6.png) + ![Kaamera rippumas joogipurgi kohal](../../../../../translated_images/et/pi-camera-upside-down.5376961ba3145988.webp) Näiteks, kui riputate lintkaabli üle millegi nii, et see on kaamera ülaosas, määrake pööramine väärtuseks 180: diff --git a/translations/et/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md b/translations/et/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md index de5027597..70fcfb49d 100644 --- a/translations/et/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md +++ b/translations/et/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md @@ -84,7 +84,7 @@ Custom Vision teenusel on Python SDK, mida saab kasutada piltide klassifitseerim Saad näha tehtud pilti ja neid väärtusi **Predictions** vahekaardil Custom Vision teenuses. - ![Banaan Custom Vision teenuses, ennustatud küps 56.8% ja toore 43.1%](../../../../../translated_images/et/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![Banaan Custom Vision teenuses, ennustatud küps 56.8% ja toore 43.1%](../../../../../translated_images/et/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 Selle koodi leiad [code-classify/pi](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/pi) või [code-classify/virtual-iot-device](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/virtual-iot-device) kaustast. diff --git a/translations/et/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md b/translations/et/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md index 1e5404a38..9cc65a834 100644 --- a/translations/et/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md +++ b/translations/et/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md @@ -34,11 +34,11 @@ Lisage kaamera CounterFit rakendusse. 1. Valige **Add** nupp, et kaamera luua. - ![Kaamera seaded](../../../../../translated_images/et/counterfit-create-camera.a5de97f59c0bd3cbe0416d7e89a3cfe86d19fbae05c641c53a91286412af0a34.png) + ![Kaamera seaded](../../../../../translated_images/et/counterfit-create-camera.a5de97f59c0bd3cb.webp) Kaamera luuakse ja ilmub sensorite loendisse. - ![Loodud kaamera](../../../../../translated_images/et/counterfit-camera.001ec52194c8ee5d3f617173da2c79e1df903d10882adc625cbfc493525125d4.png) + ![Loodud kaamera](../../../../../translated_images/et/counterfit-camera.001ec52194c8ee5d.webp) ## Kaamera programmeerimine @@ -103,7 +103,7 @@ Programmeerige seade. 1. Konfigureerige pilt, mida CounterFit kaamera jäädvustab. Võite määrata *Source* väärtuseks *File* ja üles laadida pildifaili või määrata *Source* väärtuseks *WebCam*, et pilte jäädvustataks teie veebikaamerast. Veenduge, et valite **Set** nupu pärast pildi valimist või veebikaamera seadistamist. - ![CounterFit, kus pildi allikaks on määratud fail, ja veebikaamera, mis näitab inimest, kes hoiab banaani veebikaamera eelvaates](../../../../../translated_images/et/counterfit-camera-options.eb3bd5150a8e7dffbf24bc5bcaba0cf2cdef95fbe6bbe393695d173817d6b8df.png) + ![CounterFit, kus pildi allikaks on määratud fail, ja veebikaamera, mis näitab inimest, kes hoiab banaani veebikaamera eelvaates](../../../../../translated_images/et/counterfit-camera-options.eb3bd5150a8e7dff.webp) 1. Pilt jäädvustatakse ja salvestatakse failina `image.jpg` praeguses kaustas. Näete seda faili VS Code'i failihalduris. Valige fail, et pilti vaadata. Kui see vajab pööramist, uuendage rida `camera.rotation = 0` vastavalt ja tehke uus pilt. diff --git a/translations/et/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md b/translations/et/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md index 75c405cd1..0c0783014 100644 --- a/translations/et/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md +++ b/translations/et/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md @@ -16,7 +16,7 @@ ArduCamil ei ole Grove-pesa, selle asemel ühendatakse see nii SPI kui ka I Ühendage kaamera. -![ArduCam sensor](../../../../../translated_images/et/arducam.20e4e4cbb268296570b5914e20d6c349fc42ddac9ed4e1b9deba2188204eebae.png) +![ArduCam sensor](../../../../../translated_images/et/arducam.20e4e4cbb2682965.webp) 1. ArduCami alumised pistikud tuleb ühendada Wio Terminali GPIO-pistikutesse. Õigete pistikute leidmise hõlbustamiseks kinnitage Wio Terminaliga kaasas olev GPIO-pistiku kleebis pistikute ümber: @@ -35,7 +35,7 @@ ArduCamil ei ole Grove-pesa, selle asemel ühendatakse see nii SPI kui ka I | SDA | 3 (I2C1_SDA) | I2C Serial Data | | SCL | 5 (I2C1_SCL) | I2C Serial Clock | - ![Wio Terminal ühendatud ArduCamiga hüppajajuhtmete abil](../../../../../translated_images/et/arducam-wio-terminal-connections.a4d5a4049bdb5ab800a2877389fc6ecf5e4ff307e6451ff56c517e6786467d0a.png) + ![Wio Terminal ühendatud ArduCamiga hüppajajuhtmete abil](../../../../../translated_images/et/arducam-wio-terminal-connections.a4d5a4049bdb5ab8.webp) GND ja VCC ühendused tagavad ArduCamile 5V toiteallika. See töötab 5V juures, erinevalt Grove sensoritest, mis töötavad 3V juures. See toide tuleb otse USB-C ühendusest, mis seadet toidab. @@ -456,7 +456,7 @@ Wio Terminal toetab ainult kuni 16GB suuruseid microSD kaarte. Kui teil on suure 1. Lülitage microSD kaart välja ja eemaldage see, vajutades seda kergelt sisse ja vabastades, ning see hüppab välja. Võite vajada õhukest tööriista selleks. Ühendage microSD kaart oma arvutiga, et pilte vaadata. - ![Pilt banaanist, jäädvustatud ArduCamiga](../../../../../translated_images/et/banana-arducam.be1b32d4267a8194b0fd042362e56faa431da9cd4af172051b37243ea9be0256.jpg) + ![Pilt banaanist, jäädvustatud ArduCamiga](../../../../../translated_images/et/banana-arducam.be1b32d4267a8194.webp) > 💁 Kaamera valge tasakaalu kohandamiseks võib kuluda paar pilti. Näete seda piltide värvi põhjal, esimesed paar pilti võivad olla värvilt ebatäpsed. Selle ümber saab töötada, muutes koodi nii, et `setup` funktsioonis jäädvustatakse paar pilti, mida ignoreeritakse. diff --git a/translations/et/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md b/translations/et/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md index b307ef2cb..f7ec1d2cb 100644 --- a/translations/et/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md +++ b/translations/et/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md @@ -208,7 +208,7 @@ Need sertifikaadid sisaldavad avalikke võtmeid ja neid ei ole vaja turvaliselt Saad näha tehtud pilti ja neid väärtusi Custom Visioni **Predictions** vahekaardil. - ![Banaan Custom Visionis, ennustatud küps 56,8% ja toore 43,1% tõenäosusega](../../../../../translated_images/et/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![Banaan Custom Visionis, ennustatud küps 56,8% ja toore 43,1% tõenäosusega](../../../../../translated_images/et/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 Selle koodi leiad kaustast [code-classify/wio-terminal](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/wio-terminal). diff --git a/translations/et/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md b/translations/et/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md index ffdd08a15..36c061a82 100644 --- a/translations/et/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md +++ b/translations/et/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md @@ -1,6 +1,6 @@ # Käivita oma puuviljatuvastaja servas -![Selle õppetunni visuaalne ülevaade](../../../../../translated_images/et/lesson-17.bc333c3c35ba8e42cce666cfffa82b915f787f455bd94e006aea2b6f2722421a.jpg) +![Selle õppetunni visuaalne ülevaade](../../../../../translated_images/et/lesson-17.bc333c3c35ba8e42.webp) > Visuaalne ülevaade: [Nitya Narasimhan](https://github.com/nitya). Klõpsa pildil, et näha suuremat versiooni. @@ -33,11 +33,11 @@ Selles õppetunnis käsitleme: Serva-arvutus tähendab IoT-andmete töötlemist võimalikult lähedal andmete genereerimise kohale. Selle asemel, et andmeid pilves töödelda, viiakse töötlemine pilve serva – sinu sisemisse võrku. -![Arhitektuuri diagramm, mis näitab pilveteenuseid ja IoT-seadmeid kohalikus võrgus](../../../../../translated_images/et/cloud-without-edge.b4da641f6022c95ed6b91fde8b5323abd2f94e0d52073ad54172ae8f5dac90e9.png) +![Arhitektuuri diagramm, mis näitab pilveteenuseid ja IoT-seadmeid kohalikus võrgus](../../../../../translated_images/et/cloud-without-edge.b4da641f6022c95e.webp) Senistes õppetundides kogusid seadmed andmeid ja saatsid need pilve analüüsimiseks, kus käitati serverivabasid funktsioone või AI-mudeleid. -![Arhitektuuri diagramm, mis näitab IoT-seadmeid kohalikus võrgus, mis ühenduvad servaseadmetega, ja need servaseadmed ühenduvad pilvega](../../../../../translated_images/et/cloud-with-edge.1e26462c62c126fe150bd15a5714ddf0be599f09bacbad08b85be02b76ea1ae1.png) +![Arhitektuuri diagramm, mis näitab IoT-seadmeid kohalikus võrgus, mis ühenduvad servaseadmetega, ja need servaseadmed ühenduvad pilvega](../../../../../translated_images/et/cloud-with-edge.1e26462c62c126fe.webp) Serva-arvutus tähendab, et osa pilveteenustest viiakse pilvest välja ja arvutitesse, mis töötavad samas võrgus kui IoT-seadmed, suheldes pilvega ainult vajadusel. Näiteks saab servaseadmetes käitada AI-mudeleid, et analüüsida puuviljade küpsust, ja saata pilve ainult analüüsitulemused, nagu küpsete ja toorete puuviljade arv. @@ -85,7 +85,7 @@ IoT-süsteemide puhul soovid sageli kasutada pilve- ja serva-arvutuse kombinatsi ## Azure IoT Edge -![Azure IoT Edge logo](../../../../../translated_images/et/azure-iot-edge-logo.c1c076749b5cba2e8755262fadc2f19ca1146b948d76990b1229199ac2292d79.png) +![Azure IoT Edge logo](../../../../../translated_images/et/azure-iot-edge-logo.c1c076749b5cba2e.webp) Azure IoT Edge on teenus, mis aitab sul viia töökoormused pilvest serva. Sa seadistad seadme servaseadmeks ja pilvest saad sellele servaseadmele koodi juurutada. See võimaldab sul kombineerida pilve ja serva võimalusi. @@ -99,7 +99,7 @@ IoT Edge on IoT Hubi sisse ehitatud, nii et saad servaseadmeid hallata sama teen IoT Edge käitab koodi *konteineritest* – iseseisvatest rakendustest, mis töötavad eraldatult ülejäänud rakendustest sinu arvutis. Kui sa käitad konteinerit, toimib see nagu eraldi arvuti sinu arvutis, oma tarkvara, teenuste ja rakendustega. Enamasti ei saa konteinerid sinu arvutis midagi juurde pääseda, kui sa ei otsusta jagada näiteks kausta konteineriga. Konteiner avab teenused avatud pordi kaudu, millele saab ligi pääseda või võrku avada. -![Veebipäring suunatakse konteinerisse](../../../../../translated_images/et/container-web-browser.4ee81dd4f0d8838ce622b2a0d600b6a4322b5d4fe43159facd87b7b34f84d66a.png) +![Veebipäring suunatakse konteinerisse](../../../../../translated_images/et/container-web-browser.4ee81dd4f0d8838c.webp) Näiteks saad konteineris käitada veebisaiti, mis töötab pordil 80, vaikimisi HTTP-port, ja seejärel avada selle oma arvutis samuti pordil 80. @@ -195,11 +195,11 @@ Kui mudel on treenitud, tuleb see eksportida konteinerina. ## Valmistage oma konteiner juurutamiseks ette -![Konteinerid luuakse ja lükatakse seejärel konteineriregistrisse, kust need IoT Edge abil servaseadmesse juurutatakse](../../../../../translated_images/et/container-edge-flow.c246050dd60ceefdb6ace026a4ce5c6aa4112bb5898ae23fbb2ab4be29ae3e1b.png) +![Konteinerid luuakse ja lükatakse seejärel konteineriregistrisse, kust need IoT Edge abil servaseadmesse juurutatakse](../../../../../translated_images/et/container-edge-flow.c246050dd60ceefd.webp) Kui olete oma mudeli alla laadinud, tuleb see ehitada konteineriks ja lükata konteineriregistrisse - veebipõhisesse asukohta, kus saate konteinerid salvestada. Seejärel saab IoT Edge konteineri registrist alla laadida ja teie seadmesse lükata. -![Azure Container Registry logo](../../../../../translated_images/et/azure-container-registry-logo.09494206991d4b295025ebff7d4e2900325e527a59184ffbc8464b6ab59654be.png) +![Azure Container Registry logo](../../../../../translated_images/et/azure-container-registry-logo.09494206991d4b29.webp) Selles õppetükis kasutatav konteineriregister on Azure Container Registry. See ei ole tasuta teenus, seega raha säästmiseks veenduge, et [puhastate oma projekti](../../../clean-up.md), kui olete lõpetanud. diff --git a/translations/et/4-manufacturing/lessons/4-trigger-fruit-detector/README.md b/translations/et/4-manufacturing/lessons/4-trigger-fruit-detector/README.md index 2d3d6f978..b5ce7f278 100644 --- a/translations/et/4-manufacturing/lessons/4-trigger-fruit-detector/README.md +++ b/translations/et/4-manufacturing/lessons/4-trigger-fruit-detector/README.md @@ -1,6 +1,6 @@ # Käivita puuviljade kvaliteedi tuvastamine sensori abil -![Selle õppetunni visuaalne ülevaade](../../../../../translated_images/et/lesson-18.92c32ed1d354caa5a54baa4032cf0b172d4655e8e326ad5d46c558a0def15365.jpg) +![Selle õppetunni visuaalne ülevaade](../../../../../translated_images/et/lesson-18.92c32ed1d354caa5.webp) > Visuaalne ülevaade: [Nitya Narasimhan](https://github.com/nitya). Klõpsa pildil, et näha suuremat versiooni. @@ -39,7 +39,7 @@ IoT-rakendusi saab kirjeldada kui *asju* (seadmeid), mis saadavad andmeid, mis g ### IoT arhitektuuri näidis -![IoT arhitektuuri näidis](../../../../../translated_images/et/iot-reference-architecture.2278b98b55c6d4e89bde18eada3688d893861d43507641804dd2f9d3079cfaa0.png) +![IoT arhitektuuri näidis](../../../../../translated_images/et/iot-reference-architecture.2278b98b55c6d4e8.webp) Ülaltoodud diagramm näitab IoT arhitektuuri näidist. @@ -49,7 +49,7 @@ IoT-rakendusi saab kirjeldada kui *asju* (seadmeid), mis saadavad andmeid, mis g * **Teadmised** pärinevad serverivabadest rakendustest või analüüsidest, mis tehakse salvestatud andmetel. * **Tegevused** võivad olla käsklused, mis saadetakse seadmetele, või andmete visualiseerimine, mis võimaldab inimestel otsuseid teha. -![IoT arhitektuuri näidis Azure'i jaoks](../../../../../translated_images/et/iot-reference-architecture-azure.0b8d2161af924cb18ae48a8558a19541cca47f27264851b5b7e56d7b8bb372ac.png) +![IoT arhitektuuri näidis Azure'i jaoks](../../../../../translated_images/et/iot-reference-architecture-azure.0b8d2161af924cb1.webp) Ülaltoodud diagramm näitab mõningaid komponente ja teenuseid, mida on seni õppetundides käsitletud, ja kuidas need IoT arhitektuuri näidises omavahel seotud on. @@ -89,7 +89,7 @@ Te peate ehitama süsteemi, kus puuviljad tuvastatakse nende saabumisel konveier ### Rakenduse prototüüpimine -![IoT arhitektuuri näidis puuviljade kvaliteedi kontrollimiseks](../../../../../translated_images/et/iot-reference-architecture-fruit-quality.cc705f121c3b6fa71c800d9630935ac34bc08223a04601e35f41d5e9b5dd5207.png) +![IoT arhitektuuri näidis puuviljade kvaliteedi kontrollimiseks](../../../../../translated_images/et/iot-reference-architecture-fruit-quality.cc705f121c3b6fa7.webp) Ülaltoodud diagramm näitab selle prototüübi rakenduse arhitektuuri näidist. @@ -124,7 +124,7 @@ Töötage läbi vastav juhend, et kasutada lähedussensorit objekti tuvastamisek Puuviljade tuvastamise prototüüp sisaldab mitmeid komponente, mis suhtlevad omavahel. -![Komponendid, mis suhtlevad omavahel](../../../../../translated_images/et/fruit-quality-detector-message-flow.adf2a65da8fd8741ac7af11361574de89adc126785d67606bb4d2ec00467e380.png) +![Komponendid, mis suhtlevad omavahel](../../../../../translated_images/et/fruit-quality-detector-message-flow.adf2a65da8fd8741.webp) * Lähedussensor, mis mõõdab puuvilja kaugust ja saadab selle IoT Hubi * Käsklused kaamera juhtimiseks, mis tulevad IoT Hubist kaameraseadmesse diff --git a/translations/et/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md b/translations/et/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md index bd5325ccf..cb5e96f6f 100644 --- a/translations/et/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md +++ b/translations/et/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md @@ -20,7 +20,7 @@ Grove Time of Flight anduri saab ühendada Raspberry Pi-ga. Ühenda Time of Flight andur. -![Grove Time of Flight andur](../../../../../translated_images/et/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![Grove Time of Flight andur](../../../../../translated_images/et/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. Sisesta Grove kaabli üks ots Time of Flight anduri pistikusse. Kaabel läheb sisse ainult ühel viisil. diff --git a/translations/et/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md b/translations/et/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md index 11a765a99..3174b2754 100644 --- a/translations/et/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md +++ b/translations/et/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md @@ -36,11 +36,11 @@ Lisage kaugusandur CounterFit rakendusse. 1. Valige **Add** nupp, et luua kaugusandur. - ![Kaugusanduri seaded](../../../../../translated_images/et/counterfit-create-distance-sensor.967c9fb98f27888d95920c9784d004c972490eb71f70397fe13bd70a79a879a3.png) + ![Kaugusanduri seaded](../../../../../translated_images/et/counterfit-create-distance-sensor.967c9fb98f27888d.webp) Kaugusandur luuakse ja ilmub andurite loendisse. - ![Loodud kaugusandur](../../../../../translated_images/et/counterfit-distance-sensor.079eefeeea0b68afc36431ce8fcbe2f09a7e4916ed1cd5cb30e696db53bc18fa.png) + ![Loodud kaugusandur](../../../../../translated_images/et/counterfit-distance-sensor.079eefeeea0b68af.webp) ## Programmeerige kaugusandur diff --git a/translations/et/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md b/translations/et/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md index a95c42539..ae8b7e34f 100644 --- a/translations/et/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md +++ b/translations/et/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md @@ -20,7 +20,7 @@ Grove Time of Flight anduri saab ühendada Wio Terminaliga. Ühenda Time of Flight andur. -![Grove Time of Flight andur](../../../../../translated_images/et/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![Grove Time of Flight andur](../../../../../translated_images/et/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. Sisesta ühe Grove-kaabli ots Time of Flight anduri pistikusse. See läheb sisse ainult ühes suunas. diff --git a/translations/et/5-retail/lessons/1-train-stock-detector/README.md b/translations/et/5-retail/lessons/1-train-stock-detector/README.md index 26568dbf3..7268fdfeb 100644 --- a/translations/et/5-retail/lessons/1-train-stock-detector/README.md +++ b/translations/et/5-retail/lessons/1-train-stock-detector/README.md @@ -1,6 +1,6 @@ # Treeni varude detektorit -![Selle õppetunni visuaalne ülevaade](../../../../../translated_images/et/lesson-19.cf6973cecadf080c4b526310620dc4d6f5994c80fb0139c6f378cc9ca2d435cd.jpg) +![Selle õppetunni visuaalne ülevaade](../../../../../translated_images/et/lesson-19.cf6973cecadf080c.webp) > Visuaalne ülevaade: [Nitya Narasimhan](https://github.com/nitya). Klõpsa pildil, et näha suuremat versiooni. @@ -36,7 +36,7 @@ Objektide tuvastamine hõlmab objektide tuvastamist piltidel tehisintellekti abi Pildiklassifikatsioon seisneb pildi tervikuna klassifitseerimises – millised on tõenäosused, et kogu pilt vastab igale sildile. Tagastatakse tõenäosused iga sildi kohta, mida mudeli treenimiseks kasutati. -![Pildiklassifikatsioon india pähklite ja tomatipasta kohta](../../../../../translated_images/et/image-classifier-cashews-tomato.bc2e16ab8f05cf9ac0f59f73e32efc4227f9a5b601b90b2c60f436694547a965.png) +![Pildiklassifikatsioon india pähklite ja tomatipasta kohta](../../../../../translated_images/et/image-classifier-cashews-tomato.bc2e16ab8f05cf9a.webp) Ülaltoodud näites klassifitseeritakse kaks pilti mudeli abil, mis on treenitud klassifitseerima india pähklite karpe või tomatipasta purke. Esimene pilt on india pähklite karp ja sellel on kaks tulemust pildiklassifikaatorist: @@ -60,7 +60,7 @@ Kui kasutate seda piltide ennustamiseks, ei saa te tagasi siltide ja protsentide > 🎓 *Piirdekastid* on kastid objekti ümber. -![Objektide tuvastamine india pähklite ja tomatipasta kohta](../../../../../translated_images/et/object-detector-cashews-tomato.1af7c26686b4db0e709754aeb196f4e73271f54e2085db3bcccb70d4a0d84d97.png) +![Objektide tuvastamine india pähklite ja tomatipasta kohta](../../../../../translated_images/et/object-detector-cashews-tomato.1af7c26686b4db0e.webp) Ülaltoodud pilt sisaldab nii india pähklite karpi kui ka kolme tomatipasta purki. Objektide detektor tuvastas india pähklid, tagastades piirdekasti, mis sisaldab india pähkleid koos protsendilise tõenäosusega, et piirdekast sisaldab objekti, antud juhul 97.6%. Objektide detektor tuvastas ka kolm tomatipasta purki ja annab kolm eraldi piirdekasti, üks iga tuvastatud purgi kohta, ning igaühel on protsendiline tõenäosus, et piirdekast sisaldab tomatipasta purki. @@ -111,7 +111,7 @@ Objektide detektorit saab treenida Custom Visioni abil, sarnaselt sellele, kuida Projekti loomisel veenduge, et kasutate varem loodud `stock-detector-training` ressurssi. Kasutage *Object Detection* projekti tüüpi ja *Products on Shelves* domeeni. - ![Custom Vision projekti seaded, kus nimi on fruit-quality-detector, kirjeldust pole, ressurss on fruit-quality-detector-training, projekti tüüp on klassifikatsioon, klassifikatsiooni tüübid on multi class ja domeenid on food](../../../../../translated_images/et/custom-vision-create-object-detector-project.32d4fb9aa8e7e7375f8a799bfce517aca970f2cb65e42d4245c5e635c734ab29.png) + ![Custom Vision projekti seaded, kus nimi on fruit-quality-detector, kirjeldust pole, ressurss on fruit-quality-detector-training, projekti tüüp on klassifikatsioon, klassifikatsiooni tüübid on multi class ja domeenid on food](../../../../../translated_images/et/custom-vision-create-object-detector-project.32d4fb9aa8e7e737.webp) ✅ *Products on Shelves* domeen on spetsiaalselt suunatud varude tuvastamiseks poe riiulitel. Lugege rohkem erinevate domeenide kohta [Microsofti dokumentatsiooni domeeni valimise jaotisest](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/select-domain?WT.mc_id=academic-17441-jabenn#object-detection). @@ -133,11 +133,11 @@ Mudeli treenimiseks vajate pilte, mis sisaldavad tuvastatavaid objekte. 1. Järgige [Microsofti dokumentatsiooni kiirjuhendi "Piltide üleslaadimine ja märgistamine" jaotist](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/get-started-build-detector?WT.mc_id=academic-17441-jabenn#upload-and-tag-images), et laadida üles oma treeningpildid. Looge asjakohased sildid sõltuvalt tuvastatavate objektide tüübist. - ![Üleslaadimise dialoogid, mis näitavad küpsete ja toorete banaanipiltide üleslaadimist](../../../../../translated_images/et/image-upload-object-detector.77c7892c3093cb59b79018edecd678749a75d71a099bc8a2d2f2f76320f88a5b.png) + ![Üleslaadimise dialoogid, mis näitavad küpsete ja toorete banaanipiltide üleslaadimist](../../../../../translated_images/et/image-upload-object-detector.77c7892c3093cb59.webp) Kui joonistate objektide piirdekaste, hoidke need tihedalt objekti ümber. Kõigi piltide kontuuride joonistamine võib võtta aega, kuid tööriist tuvastab, mida ta arvab olevat piirdekastid, muutes selle kiiremaks. - ![Tomatipasta märgistamine](../../../../../translated_images/et/object-detector-tag-tomato-paste.f47c362fb0f0eb582f3bc68cf3855fb43a805106395358d41896a269c210b7b4.png) + ![Tomatipasta märgistamine](../../../../../translated_images/et/object-detector-tag-tomato-paste.f47c362fb0f0eb58.webp) > 💁 Kui teil on iga objekti jaoks rohkem kui 15 pilti, saate treenida pärast 15 pilti ja kasutada **Suggested tags** funktsiooni. See kasutab treenitud mudelit objektide tuvastamiseks märgistamata pildil. Seejärel saate tuvastatud objektid kinnitada või tagasi lükata ja piirdekastid uuesti joonistada. See võib säästa *palju* aega. @@ -155,7 +155,7 @@ Kui teie objektide detektor on treenitud, saate seda testida, andes sellele uusi 1. Kasutage **Quick Test** nuppu, et üles laadida testimispildid ja kontrollida, kas objektid tuvastatakse. Kasutage varem loodud testimispilte, mitte treeningpilte. - ![3 tomatipasta purki tuvastatud tõenäosustega 38%, 35.5% ja 34.6%](../../../../../translated_images/et/object-detector-detected-tomato-paste.52656fe87af4c37b4ee540526d63e73ed075da2e54a9a060aa528e0c562fb1b6.png) + ![3 tomatipasta purki tuvastatud tõenäosustega 38%, 35.5% ja 34.6%](../../../../../translated_images/et/object-detector-detected-tomato-paste.52656fe87af4c37b.webp) 1. Proovige kõiki testimispilte, mis teil on, ja jälgige tõenäosusi. diff --git a/translations/et/5-retail/lessons/2-check-stock-device/README.md b/translations/et/5-retail/lessons/2-check-stock-device/README.md index 347e46aa4..6047a1e5a 100644 --- a/translations/et/5-retail/lessons/2-check-stock-device/README.md +++ b/translations/et/5-retail/lessons/2-check-stock-device/README.md @@ -1,6 +1,6 @@ # Kontrolli laoseisu IoT-seadmest -![Selle õppetunni visandmärkmete ülevaade](../../../../../translated_images/et/lesson-20.0211df9551a8abb300fc8fcf7dc2789468dea2eabe9202273ac077b0ba37f15e.jpg) +![Selle õppetunni visandmärkmete ülevaade](../../../../../translated_images/et/lesson-20.0211df9551a8abb3.webp) > Visandmärkmed: [Nitya Narasimhan](https://github.com/nitya). Klõpsa pildil, et näha suuremat versiooni. @@ -62,7 +62,7 @@ Iteratsioone avaldatakse Custom Vision portaalist. 1. Valige iteratsiooni **Publish** nupp. - ![Avaldamise nupp](../../../../../translated_images/et/custom-vision-object-detector-publish-button.34ee379fc650ccb9856c3868d0003f413b9529f102fc73c37168c98d721cc293.png) + ![Avaldamise nupp](../../../../../translated_images/et/custom-vision-object-detector-publish-button.34ee379fc650ccb9.webp) 1. *Publish Model* dialoogis määrake *Prediction resource* väärtuseks `stock-detector-prediction` ressurss, mille lõite eelmises õppetunnis. Jätke nimi `Iteration2` ja valige **Publish** nupp. @@ -76,7 +76,7 @@ Iteratsioone avaldatakse Custom Vision portaalist. Samuti kopeerige *Prediction-Key* väärtus. See on turvaline võti, mida peate mudeli kutsumisel edastama. Ainult rakendused, mis edastavad selle võtme, saavad mudelit kasutada, kõik muud rakendused lükatakse tagasi. - ![Ennustuse API dialoog, mis näitab URL-i ja võtit](../../../../../translated_images/et/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![Ennustuse API dialoog, mis näitab URL-i ja võtit](../../../../../translated_images/et/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ Kui uus iteratsioon avaldatakse, on sellel erinev nimi. Kuidas arvate, et saaksite muuta iteratsiooni, mida IoT-seade kasutab? @@ -95,7 +95,7 @@ Kui kasutate objektidetektorit, saate tagasi mitte ainult tuvastatud objektid ko Ennustuse tulemused **Predictions** vahekaardil Custom Visionis näitavad piiravaid kaste pildil, mis saadeti ennustamiseks. -![4 purki tomatipastat riiulil koos ennustustega 4 tuvastuse kohta: 35.8%, 33.5%, 25.7% ja 16.6%](../../../../../translated_images/et/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) +![4 purki tomatipastat riiulil koos ennustustega 4 tuvastuse kohta: 35.8%, 33.5%, 25.7% ja 16.6%](../../../../../translated_images/et/custom-vision-stock-prediction.942266ab1bcca341.webp) Ülaltoodud pildil tuvastati 4 purki tomatipastat. Tulemuste osas on iga tuvastatud objekti jaoks pildile lisatud punane ruut, mis näitab pildi piiravat kasti. @@ -103,7 +103,7 @@ Ennustuse tulemused **Predictions** vahekaardil Custom Visionis näitavad piirav Piiravad kastid määratletakse 4 väärtusega - top, left, height ja width. Need väärtused on skaalal 0-1, mis esindavad positsioone pildi suuruse protsendina. Alguspunkt (0,0 positsioon) on pildi vasak ülemine nurk, seega top väärtus on kaugus ülevalt ja piirava kasti põhi on top pluss height. -![Piirav kast tomatipasta purgi ümber](../../../../../translated_images/et/bounding-box.1420a7ea0d3d15f71e1ffb5cf4b2271d184fac051f990abc541975168d163684.png) +![Piirav kast tomatipasta purgi ümber](../../../../../translated_images/et/bounding-box.1420a7ea0d3d15f7.webp) Ülaltoodud pilt on 600 pikslit lai ja 800 pikslit kõrge. Piirav kast algab 320 pikslit allpool, andes top koordinaadiks 0.4 (800 x 0.4 = 320). Vasakult algab piirav kast 240 pikslit üle, andes left koordinaadiks 0.4 (600 x 0.4 = 240). Piirava kasti kõrgus on 240 pikslit, andes height väärtuseks 0.3 (800 x 0.3 = 240). Piirava kasti laius on 120 pikslit, andes width väärtuseks 0.2 (600 x 0.2 = 120). @@ -118,7 +118,7 @@ Protsendiväärtuste kasutamine skaalal 0-1 tähendab, et olenemata pildi suurus Piiravaid kaste saab kasutada koos tõenäosustega, et hinnata, kui täpne tuvastus on. Näiteks võib objektidetektor tuvastada mitu objekti, mis kattuvad, näiteks tuvastades ühe purgi teise sees. Teie kood võiks vaadata piiravaid kaste, mõista, et see on võimatu, ja ignoreerida kõiki objekte, millel on märkimisväärne kattumine teiste objektidega. -![Kaks piiravat kasti kattuvad tomatipasta purgiga](../../../../../translated_images/et/overlap-object-detection.d431e03cae75072a2760430eca7f2c5fdd43045bfd72dadcbf12711f7cd6c2ae.png) +![Kaks piiravat kasti kattuvad tomatipasta purgiga](../../../../../translated_images/et/overlap-object-detection.d431e03cae75072a.webp) Ülaltoodud näites näitab üks piirav kast ennustatud tomatipasta purki tõenäosusega 78.3%. Teine piirav kast on veidi väiksem ja asub esimese piirava kasti sees tõenäosusega 64.3%. Teie kood võib kontrollida piiravaid kaste, näha, et need kattuvad täielikult, ja ignoreerida madalama tõenäosusega tuvastust, kuna pole võimalik, et üks purk on teise sees. diff --git a/translations/et/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md b/translations/et/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md index effaf07e8..dbbe31891 100644 --- a/translations/et/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md +++ b/translations/et/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md @@ -67,7 +67,7 @@ Kood, mida kasutasid piltide klassifitseerimiseks, on väga sarnane koodile, mid Saad vaadata tehtud pilti ja neid väärtusi **Predictions** vahekaardil Custom Visionis. - ![4 tomatipasta purki riiulil koos ennustustega 35.8%, 33.5%, 25.7% ja 16.6%](../../../../../translated_images/et/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![4 tomatipasta purki riiulil koos ennustustega 35.8%, 33.5%, 25.7% ja 16.6%](../../../../../translated_images/et/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 Selle koodi leiad [code-detect/pi](../../../../../5-retail/lessons/2-check-stock-device/code-detect/pi) või [code-detect/virtual-iot-device](../../../../../5-retail/lessons/2-check-stock-device/code-detect/virtual-iot-device) kaustast. diff --git a/translations/et/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md b/translations/et/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md index bb0191500..bf50251fe 100644 --- a/translations/et/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md +++ b/translations/et/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md @@ -95,7 +95,7 @@ Kood, mida kasutasid piltide klassifitseerimiseks, on väga sarnane koodile, mis Näed tehtud pilti ja neid väärtusi **Predictions** vahekaardil Custom Visionis. - ![4 tomatipasta purki riiulil koos ennustustega 35.8%, 33.5%, 25.7% ja 16.6%](../../../../../translated_images/et/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![4 tomatipasta purki riiulil koos ennustustega 35.8%, 33.5%, 25.7% ja 16.6%](../../../../../translated_images/et/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 Selle koodi leiad [code-detect/wio-terminal](../../../../../5-retail/lessons/2-check-stock-device/code-detect/wio-terminal) kaustast. diff --git a/translations/et/6-consumer/lessons/1-speech-recognition/README.md b/translations/et/6-consumer/lessons/1-speech-recognition/README.md index dadb38e95..d8246dd42 100644 --- a/translations/et/6-consumer/lessons/1-speech-recognition/README.md +++ b/translations/et/6-consumer/lessons/1-speech-recognition/README.md @@ -1,6 +1,6 @@ # Tuvasta kõne IoT-seadmega -![Selle õppetunni visuaalne ülevaade](../../../../../translated_images/et/lesson-21.e34de51354d6606fb5ee08d8c89d0222eea0a2a7aaf744a8805ae847c4f69dc4.jpg) +![Selle õppetunni visuaalne ülevaade](../../../../../translated_images/et/lesson-21.e34de51354d6606f.webp) > Visuaal autorilt [Nitya Narasimhan](https://github.com/nitya). Klõpsa pildil, et näha suuremat versiooni. @@ -51,7 +51,7 @@ Mikrofonid on saadaval mitmesugustes tüüpides: Dünaamilised mikrofonid ei vaja töötamiseks voolu, elektrisignaal tekib täielikult mikrofonist. - ![Patti Smith laulmas Shure SM58 (dünaamiline kardioid-tüüp) mikrofoni](../../../../../translated_images/et/dynamic-mic.8babac890a2d80dfb0874b5bf37d4b851fe2aeb9da6fd72945746176978bf3bb.jpg) + ![Patti Smith laulmas Shure SM58 (dünaamiline kardioid-tüüp) mikrofoni](../../../../../translated_images/et/dynamic-mic.8babac890a2d80df.webp) * Lintmikrofonid - Lintmikrofonid on sarnased dünaamiliste mikrofonidega, kuid neil on membraani asemel metalllint. See lint liigub magnetväljas, tekitades elektrivoolu. Nagu dünaamilised mikrofonid, ei vaja lintmikrofonid töötamiseks voolu. @@ -59,11 +59,11 @@ Mikrofonid on saadaval mitmesugustes tüüpides: * Kondensaator - Kondensaator mikrofonidel on õhuke metallmembraan ja fikseeritud metallist tagaplaat. Elektrit rakendatakse mõlemale ja kui membraan vibreerib, muutub plaatide vaheline staatiline laeng, tekitades signaali. Kondensaator mikrofonid vajavad töötamiseks voolu – seda nimetatakse *fantoomtoiteks*. - ![C451B väikese membraaniga kondensaator mikrofon AKG Acousticsilt](../../../../../translated_images/et/condenser-mic.6f6ed5b76ca19e0ec3fd0c544601542d4479a6cb7565db336de49fbbf69f623e.jpg) + ![C451B väikese membraaniga kondensaator mikrofon AKG Acousticsilt](../../../../../translated_images/et/condenser-mic.6f6ed5b76ca19e0e.webp) * MEMS - Mikroelektromehaanilised süsteemid mikrofonid ehk MEMS mikrofonid on mikrofonid kiibil. Neil on rõhutundlik membraan, mis on söövitatud räni kiibile, ja need töötavad sarnaselt kondensaator mikrofoniga. Need mikrofonid võivad olla väga väikesed ja integreeritud vooluringidesse. - ![MEMS mikrofon vooluringi plaadil](../../../../../translated_images/et/mems-microphone.80574019e1f5e4d9ee72fed720ecd25a39fc2969c91355d17ebb24ba4159e4c4.png) + ![MEMS mikrofon vooluringi plaadil](../../../../../translated_images/et/mems-microphone.80574019e1f5e4d9.webp) Ülaloleval pildil on kiip, millel on märgistus **LEFT**, MEMS mikrofon, mille membraan on vähem kui millimeeter lai. @@ -160,7 +160,7 @@ Et vältida äratussõna mudeli treenimise ja kasutamise keerukust, kasutab nuti ## Kõne tekstiks konverteerimine -![Kõneteenuste logo](../../../../../translated_images/et/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![Kõneteenuste logo](../../../../../translated_images/et/azure-speech-logo.a1f08c4befb0159f.webp) Sarnaselt varasemas projektis tehtud pildiklassifikatsioonile on olemas eelnevalt loodud AI-teenused, mis suudavad võtta kõne helifailina ja konverteerida selle tekstiks. Üks selline teenus on Kõneteenus, mis on osa Cognitive Services'ist – eelnevalt loodud AI-teenustest, mida saad oma rakendustes kasutada. diff --git a/translations/et/6-consumer/lessons/1-speech-recognition/pi-audio.md b/translations/et/6-consumer/lessons/1-speech-recognition/pi-audio.md index 2f8f1089b..6caebb412 100644 --- a/translations/et/6-consumer/lessons/1-speech-recognition/pi-audio.md +++ b/translations/et/6-consumer/lessons/1-speech-recognition/pi-audio.md @@ -16,13 +16,13 @@ Nuppu saab ühendada Grove base hat-iga. #### Ülesanne - ühendage nupp -![Grove nupp](../../../../../translated_images/et/grove-button.a70cfbb809a8563681003250cf5b06d68cdcc68624f9e2f493d5a534ae2da1e5.png) +![Grove nupp](../../../../../translated_images/et/grove-button.a70cfbb809a85636.webp) 1. Sisestage Grove kaabli üks ots nupumooduli pistikusse. See läheb sisse ainult ühel viisil. 1. Kui Raspberry Pi on välja lülitatud, ühendage Grove kaabli teine ots Grove Base hat-i digitaalse pistikuga, mis on märgitud **D5**. See pistik on GPIO pin-ide kõrval olevate pistikute reas vasakult teine. -![Grove nupp ühendatud pistikuga D5](../../../../../translated_images/et/pi-button.c7a1a4f55943341ce1baf1057658e9a205804d4131d258e820c93f951df0abf3.png) +![Grove nupp ühendatud pistikuga D5](../../../../../translated_images/et/pi-button.c7a1a4f55943341c.webp) ## Helisalvestus diff --git a/translations/et/6-consumer/lessons/1-speech-recognition/pi-microphone.md b/translations/et/6-consumer/lessons/1-speech-recognition/pi-microphone.md index f943132a7..347220bd9 100644 --- a/translations/et/6-consumer/lessons/1-speech-recognition/pi-microphone.md +++ b/translations/et/6-consumer/lessons/1-speech-recognition/pi-microphone.md @@ -34,7 +34,7 @@ Mikrofon ja kõlarid tuleb ühendada ja konfigureerida. 1. Kui kasutad ReSpeaker 2-Mics Pi HAT-i, võid eemaldada Grove baashati ja paigaldada ReSpeaker hatti selle asemele. - ![Raspberry Pi koos ReSpeaker hatiga](../../../../../translated_images/et/pi-respeaker-hat.f00fabe7dd039a93e2e0aa0fc946c9af0c6a9eb17c32fa1ca097fb4e384f69f0.png) + ![Raspberry Pi koos ReSpeaker hatiga](../../../../../translated_images/et/pi-respeaker-hat.f00fabe7dd039a93.webp) Sul on hiljem õppetunnis vaja Grove nuppu, kuid see on selle hatti sisse ehitatud, seega Grove baashatti ei ole vaja. diff --git a/translations/et/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md b/translations/et/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md index 9aa2877e4..2d1faff7f 100644 --- a/translations/et/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md +++ b/translations/et/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md @@ -10,7 +10,7 @@ Sisseehitatud mikrofon salvestab analoogsignaali, mis muundatakse digitaalseks s ✅ Loe rohkem DMA kohta [Wikipedia otsemälujuurdepääsu lehelt](https://wikipedia.org/wiki/Direct_memory_access). -![Heli mikrofonist läheb ADC-sse ja seejärel DMAC-i. See kirjutab ühte puhvrit. Kui see puhver on täis, töödeldakse seda ja DMAC kirjutab teise puhvri](../../../../../translated_images/et/dmac-adc-buffers.4509aee49145c90bc2e1be472b8ed2ddfcb2b6a81ad3e559114aca55f5fff759.png) +![Heli mikrofonist läheb ADC-sse ja seejärel DMAC-i. See kirjutab ühte puhvrit. Kui see puhver on täis, töödeldakse seda ja DMAC kirjutab teise puhvri](../../../../../translated_images/et/dmac-adc-buffers.4509aee49145c90b.webp) DMAC suudab salvestada heli ADC-st kindlate intervallidega, näiteks 16 000 korda sekundis 16 kHz heli jaoks. See saab kirjutada need salvestatud andmed eelnevalt eraldatud mälupuhvrisse ja kui see on täis, teeb see andmed koodile kättesaadavaks töötlemiseks. Selle mälu kasutamine võib heli salvestamist edasi lükata, kuid saad seadistada mitu puhvrit. DMAC kirjutab puhvrit 1, siis kui see on täis, teavitab see sinu koodi puhvri 1 töötlemiseks, samal ajal kui DMAC kirjutab puhvrit 2. Kui puhver 2 on täis, teavitab see sinu koodi ja läheb tagasi puhvri 1 kirjutamisele. Nii kaua, kui töötled iga puhvrit kiiremini, kui kulub ühe täitmiseks, ei kaota sa andmeid. diff --git a/translations/et/6-consumer/lessons/2-language-understanding/README.md b/translations/et/6-consumer/lessons/2-language-understanding/README.md index f9a24dae8..46f52dc5e 100644 --- a/translations/et/6-consumer/lessons/2-language-understanding/README.md +++ b/translations/et/6-consumer/lessons/2-language-understanding/README.md @@ -1,6 +1,6 @@ # Mõista keelt -![Selle õppetunni visuaalne ülevaade](../../../../../translated_images/et/lesson-22.6148ea28500d9e00c396aaa2649935fb6641362c8f03d8e5e90a676977ab01dd.jpg) +![Selle õppetunni visuaalne ülevaade](../../../../../translated_images/et/lesson-22.6148ea28500d9e00.webp) > Visuaalne märkmik: [Nitya Narasimhan](https://github.com/nitya). Klõpsa pildil, et näha suuremat versiooni. @@ -46,7 +46,7 @@ Keele mõistmise mudelid on AI-mudelid, mis on treenitud teatud detailide välja ## Keele mõistmise mudeli loomine -![LUIS logo](../../../../../translated_images/et/luis-logo.5cb4f3e88c020ee6df4f614e8831f4a4b6809a7247bf52085fb48d629ef9be52.png) +![LUIS logo](../../../../../translated_images/et/luis-logo.5cb4f3e88c020ee6.webp) Saad luua keele mõistmise mudeleid, kasutades LUIS-i, Microsofti keele mõistmise teenust, mis on osa Cognitive Services'ist. @@ -169,7 +169,7 @@ LUIS portaali kasutamise juhised leiad [Microsofti dokumentatsioonist: Quickstar 1. Kui sisestate iga näite, hakkab LUIS tuvastama entiteete ja allajoonima ning märgistama kõik, mida ta leiab. - ![Näited, kus LUIS on allajooninud numbrid ja ajaühikud](../../../../../translated_images/et/luis-intent-examples.25716580b2d2723cf1bafdf277d015c7f046d8cfa20f27bddf3a0873ec45fab7.png) + ![Näited, kus LUIS on allajooninud numbrid ja ajaühikud](../../../../../translated_images/et/luis-intent-examples.25716580b2d2723c.webp) ### Ülesanne – mudeli treenimine ja testimine diff --git a/translations/et/6-consumer/lessons/3-spoken-feedback/README.md b/translations/et/6-consumer/lessons/3-spoken-feedback/README.md index 01239763e..c4890bb43 100644 --- a/translations/et/6-consumer/lessons/3-spoken-feedback/README.md +++ b/translations/et/6-consumer/lessons/3-spoken-feedback/README.md @@ -1,6 +1,6 @@ # Sea taimer ja anna kõne tagasisidet -![Selle õppetunni visuaalne ülevaade](../../../../../translated_images/et/lesson-23.f38483e1d4df4828990d3f02d60e46c978b075d384ae7cb4f7bab738e107c850.jpg) +![Selle õppetunni visuaalne ülevaade](../../../../../translated_images/et/lesson-23.f38483e1d4df4828.webp) > Visuaal autorilt [Nitya Narasimhan](https://github.com/nitya). Klõpsa pildil, et näha suuremat versiooni. diff --git a/translations/et/6-consumer/lessons/4-multiple-language-support/README.md b/translations/et/6-consumer/lessons/4-multiple-language-support/README.md index d14e07a93..e7f1facb9 100644 --- a/translations/et/6-consumer/lessons/4-multiple-language-support/README.md +++ b/translations/et/6-consumer/lessons/4-multiple-language-support/README.md @@ -1,6 +1,6 @@ # Toeta mitut keelt -![Selle õppetunni visandmärkmete ülevaade](../../../../../translated_images/et/lesson-24.4246968ed058510ab275052e87ef9aa89c7b2f938915d103c605c04dc6cd5bb7.jpg) +![Selle õppetunni visandmärkmete ülevaade](../../../../../translated_images/et/lesson-24.4246968ed058510a.webp) > Visandmärkmed: [Nitya Narasimhan](https://github.com/nitya). Klõpsa pildil, et näha suuremat versiooni. @@ -74,7 +74,7 @@ On mitmeid AI-teenuseid, mida saab kasutada rakendustes kõne ja teksti tõlkimi ### Cognitive services kõneteenus -![Kõneteenuse logo](../../../../../translated_images/et/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![Kõneteenuse logo](../../../../../translated_images/et/azure-speech-logo.a1f08c4befb0159f.webp) Kõneteenus, mida olete kasutanud viimastes õppetundides, sisaldab tõlkimisvõimalusi kõnetuvastuseks. Kui tuvastate kõnet, saate taotleda mitte ainult kõne teksti samas keeles, vaid ka teistes keeltes. @@ -82,7 +82,7 @@ Kõneteenus, mida olete kasutanud viimastes õppetundides, sisaldab tõlkimisvõ ### Cognitive services Translator teenus -![Tõlketeenuse logo](../../../../../translated_images/et/azure-translator-logo.c6ed3a4a433edfd2f11577eca105412c50b8396b194cbbd730723dd1d0793bcd.png) +![Tõlketeenuse logo](../../../../../translated_images/et/azure-translator-logo.c6ed3a4a433edfd2.webp) Translator teenus on spetsiaalne tõlketeenus, mis suudab tõlkida teksti ühest keelest ühte või mitmesse sihtkeelde. Lisaks tõlkimisele toetab see laia valikut lisafunktsioone, sealhulgas roppuste maskeerimist. Samuti võimaldab see pakkuda konkreetset tõlget teatud sõna või lause jaoks, et töötada terminitega, mida ei soovita tõlkida, või millel on konkreetne tuntud tõlge. diff --git a/translations/et/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md b/translations/et/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md index f436fb3f4..5f53bc304 100644 --- a/translations/et/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md +++ b/translations/et/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md @@ -25,7 +25,7 @@ Kõneteenuse REST API ei toeta otseseid tõlkeid, selle asemel saad kasutada Tra > > Näiteks, kui treenid LUIS-i inglise keeles, kuid soovid kasutada prantsuse keelt kasutaja keelena, saad tõlkida lauseid nagu "set a 2 minute and 27 second timer" inglise keelest prantsuse keelde Bing Translate'i abil, seejärel kasutada **Kuula tõlget** nuppu, et rääkida tõlge oma mikrofonisse. > - > ![Kuula tõlget nupp Bing Translate'is](../../../../../translated_images/et/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Kuula tõlget nupp Bing Translate'is](../../../../../translated_images/et/bing-translate.348aa796d6efe2a9.webp) 1. Lisa tõlketeenuse API võti `speech_api_key` alla: diff --git a/translations/et/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md b/translations/et/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md index 6c0e7b439..ae37c60b7 100644 --- a/translations/et/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md +++ b/translations/et/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md @@ -37,7 +37,7 @@ Kõneteenus suudab mitte ainult teisendada kõne tekstiks samas keeles, vaid ka > > Näiteks, kui treenid LUIS-i inglise keeles, kuid soovid kasutada prantsuse keelt kasutaja keelena, võid tõlkida lauseid nagu "set a 2 minute and 27 second timer" inglise keelest prantsuse keelde kasutades Bing Translate'i, seejärel kasutada **Kuula tõlget** nuppu, et rääkida tõlge mikrofoni. > - > ![Kuula tõlget nupp Bing Translate'is](../../../../../translated_images/et/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Kuula tõlget nupp Bing Translate'is](../../../../../translated_images/et/bing-translate.348aa796d6efe2a9.webp) 1. Asenda `recognizer_config` ja `recognizer` deklaratsioonid järgmisega: diff --git a/translations/et/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md b/translations/et/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md index 4ad82c206..595341d21 100644 --- a/translations/et/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md +++ b/translations/et/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md @@ -105,7 +105,7 @@ Kõneteenuse REST API ei toeta otseseid tõlkeid, kuid saad kasutada Translator > > Näiteks, kui treenid LUIS-i inglise keeles, kuid soovid kasutada prantsuse keelt kasutaja keeleks, saad tõlkida lauseid nagu "set a 2 minute and 27 second timer" inglise keelest prantsuse keelde Bing Translate'i abil ja seejärel kasutada **Kuula tõlget** nuppu, et rääkida tõlge mikrofoni. > - > ![Kuula tõlget nupp Bing Translate'is](../../../../../translated_images/et/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Kuula tõlget nupp Bing Translate'is](../../../../../translated_images/et/bing-translate.348aa796d6efe2a9.webp) 1. Lisa tõlketeenuse API võti ja asukoht `SPEECH_LOCATION` alla: diff --git a/translations/et/README.md b/translations/et/README.md index ebfb7593d..908e7df38 100644 --- a/translations/et/README.md +++ b/translations/et/README.md @@ -8,53 +8,63 @@ [![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/) -### Liitu Azure AI Foundry kogukonnaga +### Liitu Azure AI Foundry kogukonnaga -Kui jähmuma jääd või sul on küsimusi AI-rakenduste ehitamise kohta. Liitu teiste õppurite ja kogenud arendajatega aruteludes MCP kohta. See on toetav kogukond, kus küsimused on teretulnud ja teadmisi jagatakse vabalt. +Kui sa jääd kuhugi kinni või sul on küsimusi AI rakenduste loomise kohta, liitu teiste õppijate ja kogenud arendajatega MCP teemalistes aruteludes. See on toetav kogukond, kus küsimused on oodatud ja teadmised jagatakse vabalt. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Kui sul on toote tagasisidet või ehitamise käigus vigu, külasta: +Kui sul on toodete kohta tagasisidet või ehitamisel esineb vigu, külasta: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -Järgi neid samme, et alustada nende ressursside kasutamist: -1. **Tee repositoriumist fork**: Klõpsa [![GitHub forks](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) -2. **Kopeeri repositorium**: `git clone https://github.com/microsoft/IoT-For-Beginners.git` -3. [**Liitu Microsoft Foundry Discordiga ning kohtudes ekspertide ja teiste arendajatega**](https://discord.com/invite/ByRwuEEgH4) +Alusta nende sammude järgimisel selle materjalide kasutamist: +1. **Tee hoidlast fork**: Kliki [![GitHub forks](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) +2. **Klooni hoidla**: `git clone https://github.com/microsoft/IoT-For-Beginners.git` +3. [**Liitu Microsoft Foundry Discordiga ja kohtuda ekspertide ning kaasaarendajatega**](https://discord.com/invite/ByRwuEEgH4) ### 🌐 Mitmekeelne tugi -#### Toetatud GitHub Actioni kaudu (Automatiseeritud ja alati ajakohane) +#### Tugi GitHub Actioni kaudu (automaatne ja alati ajakohane) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](./README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](./README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) -> **Eelistad kohalikku kloonimist?** - -> See hoidla sisaldab üle 50 keele tõlkeid, mis suurendab märkimisväärselt allalaadimise suurust. Kõrvaldada tõlked, kasuta hõredat checkout'i: +> **Eelistad kloonida kohapeal?** +> +> See hoidla sisaldab üle 50 keele tõlget, mis suurendab allalaadimise suurust märkimisväärselt. Kui soovid kloonida ilma tõlgeteta, kasuta sparse checkout'i: +> +> **Bash / macOS / Linux:** > ```bash > git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git > cd IoT-For-Beginners > git sparse-checkout set --no-cone '/*' '!translations' '!translated_images' > ``` -> See annab sulle kõik vajaliku kursuse läbimiseks palju kiiremaks allalaadimiseks. +> +> **CMD (Windows):** +> ```cmd +> git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git +> cd IoT-For-Beginners +> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" +> ``` +> +> See annab sulle kõik vajaliku kursuse lõpetamiseks palju kiirema allalaadimisega. -# IoT algajatele - Õppekava +# IoT algajatele - õppekava -Microsofti Azure pilveteenuste eestvedajad pakuvad 12-nädalast, 24-õppetunnist koosnevat IoT põhialuste õppekava. Igas õppetunnis on sisse- ja väljaprüfingud, kirjalikud juhised õppetunni läbimiseks, lahendus, ülesanne ja palju muud. Meie projektipõhine õpetusmeetod võimaldab sul õppida ehitamise käigus, mis on tõestatud viis uute oskuste omandamiseks. +Microsofti Azure Cloud Advocates pakuvad 12-nädalast, 24-õppetunnist koosnevat õppekava, mis käsitleb IoT põhialuseid. Iga õppetunni juurde kuuluvad enne ja pärast tundi tehtavad viktoriinid, kirjalikud juhised õppetunni lõpuleviimiseks, lahendused, ülesanded ja palju muud. Meie projektipõhine pedagoogika võimaldab sul õppida ehitades, mis on tõestatud viis uute oskuste kinnistamiseks. -Projektid käsitlevad toidu teekonda farmist lauale. See hõlmab põllumajandust, logistikat, tootmist, jaekaubandust ja tarbijat - kõik populaarsed tööstusharud IoT-seadmete jaoks. +Projektid hõlmavad toidu teekonda talust lauale. See hõlmab põllumajandust, logistikat, tootmist, jaemüüki ning tarbijat – kõik populaarsed IoT seadmete tööstusharud. -![Kursuse kaardiplaan, mis katab 24 õppetundi, tutvust, põllumajandust, transporti, töötlemist, jaemüüki ja kokandust](../../translated_images/et/Roadmap.bb1dec285dda0eda.webp) +![Õppekava kaart, mis näitab 24 õppetundi, mis hõlmavad sissejuhatust, põllumajandust, transporti, töötlemist, jaemüüki ja kokkamist](../../translated_images/et/Roadmap.bb1dec285dda0eda.webp) -> Sketš märkmete autoriks on [Nitya Narasimhan](https://github.com/nitya). Pildi suurema versiooni vaatamiseks klõpsa pildil. +> Sketchnote’i autor on [Nitya Narasimhan](https://github.com/nitya). Klikka pildil suurema versiooni vaatamiseks. -**Suur tänu meie autoritele [Jen Fox](https://github.com/jenfoxbot), [Jen Looper](https://github.com/jlooper), [Jim Bennett](https://github.com/jimbobbennett), ja meie sketš kunstnikule [Nitya Narasimhan](https://github.com/nitya).** +**Südamlikud tänud meie autoritele [Jen Fox](https://github.com/jenfoxbot), [Jen Looper](https://github.com/jlooper), [Jim Bennett](https://github.com/jimbobbennett) ja meie sketchnote kunstnikule [Nitya Narasimhan](https://github.com/nitya).** -**Täname ka meie [Microsoft Learn Student Ambassadors](https://studentambassadors.microsoft.com?WT.mc_id=academic-17441-jabenn) tiimi, kes on seda õppekava üle vaadanud ja tõlkinud - [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), ja [Zina Kamel](https://www.linkedin.com/in/zina-kamel/).** +**Täname ka meie [Microsoft Learn Student Ambassadors](https://studentambassadors.microsoft.com?WT.mc_id=academic-17441-jabenn) meeskonda, kes on seda õppekava läbi vaadanud ja tõlkinud – [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) ja [Zina Kamel](https://www.linkedin.com/in/zina-kamel/).** Tutvu meeskonnaga! @@ -62,116 +72,115 @@ Tutvu meeskonnaga! **Gif autor:** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Klõpsa pildil ülal, et näha videosalvestust projektist! +> 🎥 Klikka ülaltoodud pilti, et vaadata videot projektist! -> **Õpetajad**, oleme lisanud [soovitusi](for-teachers.md), kuidas seda õppekava kasutada. Kui soovite luua oma õppetunde, on meil olemas ka [õppetunni mall](lesson-template/README.md). +> **Õpetajad**, oleme lisanud mõned soovitused ([for-teachers.md]) selle õppekava kasutamiseks. Kui soovid luua oma õppetunde, on meil olemas ka [õppetunni mall](lesson-template/README.md). -> **Õpilased** ([vaata siia](https://aka.ms/student-page)), et seda õppekava iseseisvalt kasutada, tee kogu hoidlast koopia ja soorita harjutused ise, alustades sissejuhatusega testiga, seejärel loe loeng ja järgi ülejäänud ülesandeid. Püüa projekte luua arusaades tunde ning mitte kopeerides lahenduste koodi; siiski on see kood kättesaadav /solutions kaustades iga projektipõhise õppetunni juures. Teine idee võiks olla õppimisrühma loomine sõpradega ja sisu koos läbimine. Süvendatud õppimiseks soovitame [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn). +> **Õpilased** ([https://aka.ms/student-page](https://aka.ms/student-page)), selle õppekava iseseisvaks kasutamiseks tee kogu hoidlast fork ja lõpeta harjutused iseseisvalt, alustades sissejuhatava viktoriiniga, seejärel loe loeng ja järgi ülejäänud tegevusi. Püüa projektid luua õppetunde mõistes, mitte ainult lahenduskoodi kopeerides; lahenduskood on loodud iga projektipõhise õppetunni /solutions kaustas. Teine võimalus on moodustada sõpradega õpperühm ja läbida sisu koos. Süvendavaks õppeks soovitame [Microsoft Learni](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn). Selle kursuse videoülevaate leiad siit: [![Promo video](https://img.youtube.com/vi/bccEMm8gRuc/0.jpg)](https://youtube.com/watch?v=bccEMm8gRuc "Promo video") -> 🎥 Klõpsa pildi ülal, et näha videosalvestust projektist! +> 🎥 Klikka ülaltoodud pilti, et vaadata videot projektist! ## Pedagoogika -Oleme selle õppekava loomisel valinud kaks pedagoogilist põhimõtet: tagada, et see põhineb projektidel ja sisaldab sagedasi teste. Selle seeria lõpuks on õpilased loonud taime jälgimise ja kastmissüsteemi, sõiduki jälgimise süsteemi, nutika tehase seadistuse toidu jälgimiseks ja kontrollimiseks, häält juhtiva toiduvalmistamise taimeri ning on õppinud asjade interneti (IoT) põhialuseid, sealhulgas seadme koodi kirjutamist, pilveühenduse loomist, telemeetriate analüüsi ja tehisintellekti käitamist ääres. +Selle õppekava loomisel oleme valinud kaks pedagoogilist printsiipi: tagada, et see põhineb projektidel ja sisaldab sagedasi viktoriine. Selle sarja lõpus on õppijad loonud taimejälgimis- ja kastmissüsteemi, sõiduki asukoha jälgija, nutika tehaselahenduse toidu jälgimiseks ning hääljuhtimisega köögitimeri ning omandanud asjaolud, mis puudutavad asjade internetti, sealhulgas seadmete programmeerimist, pilveühendust, telemeetria analüüsi ja tehisintellekti töötamist ääres. -Sisu seostamine projektidega muudab protsessi õpilastele kaasahaaravamaks ja aitab kontseptsioonide paremini meelde jätta. +Kui õppeaine on projekte toetav, on protsess õpilaste jaoks haaravam ja kontseptsioonide meeldejätmine parem. -Lisaks seab madala panusega test enne loengut õpilase eesmärgi õppida teemat, samas kui teine test pärast loengut tagab teadmiste parema kinnistumise. See õppekava on loodud olema paindlik ja lõbus ning sobib nii tervikuna kui ka osadena läbimiseks. Projektid algavad väikestena ja muutuvad järjest keerukamaks 12-nädalase tsükli lõpuks. +Lisaks seab madala panusega viktoriin enne tundi õppija seadistatud eesmärgi uue teema õppimiseks ning teine viktoriin pärast tundi aitab paremaks meeldejätmiseks. See õppekava on paindlik ja lõbus ning seda saab võtta tervikuna või osaliselt. Projektid algavad väikeste ülesannetega ja muutuvad 12-nädalase tsükli lõpus järjest keerukamaks. -Iga projekt põhineb reaalsel riistvaral, mis on kättesaadav õpilastele ja harrastajatele. Iga projekt uurib spetsiaalset valdkonda, pakkudes asjakohast taustateadmiste kogumit. Edukas arendaja jaoks on kasulik mõista valdkonda, kus probleeme lahendatakse, pakkudes see taustateave võimaldab õpilastel mõelda oma IoT lahenduste ja õppimise üle nende probleemide kontekstis, mida nad võivad tulevikus IoT arendajatena lahendada. Õpilased mõistavad, miks nad lahendusi loovad, ning hindavad lõppkasutajat. +Iga projekt põhineb reaalsel riistvaral, mis on õppijatele ja harrastajatele kättesaadav. Iga projekt vaatleb spetsiifilist domeeni ja annab asjakohase taustateadmise. Edukas arendaja mõistab lahendatavat domeeni ning see taustateadmine aitab õppijatel mõelda oma IoT lahenduste ja õpitavate teemade kontekstis sellise reaalse probleemi suhtes, mille lahendamist nad võivad IoT arendajana ette võtta. Õpilased mõistavad, miks nad lahendusi ehitavad ja hindavad lõppkasutajat. ## Riistvara +Meil on kaks IoT-riistvara valikut, mida kasutada projektide jaoks sõltuvalt isiklikest eelistustest, programmeerimiskeele teadmistest või eelistustest, õppimise eesmärkidest ja saadavusest. Oleme pakkunud ka „virtuaalse riistvara“ versiooni neile, kellel riistvarale juurdepääsu pole või kes soovivad enne ostu sooritamist rohkem õppida. Rohkem infot ja „ostunimekirja“ leiate [riistvara lehelt](./hardware.md), sealhulgas lingid meie sõpradelt Seeed Studio'st komplektide ostmiseks. -Projektides saab kasutada kahte IoT riistvara valikut, sõltuvalt isiklikest eelistustest, programmeerimiskeelte teadmistest või eesmärkidest ning saadavusest. Oleme loonud ka 'virtuaalse riistvara' versiooni neile, kellel riistvara ei ole või kes soovivad enne ostmist rohkem õppida. Rohkem infot ja 'ostunimekirja' leiad [riistvara lehelt](./hardware.md), kaasa arvatud lingid, kust osta komplekseid komplekte meie sõpradelt Seeed Studio. -> 💁 Leia meie [käitumisreeglid](CODE_OF_CONDUCT.md), [panustamise juhised](CONTRIBUTING.md) ja [tõlke juhised](TRANSLATIONS.md). Ootame sinu konstruktiivset tagasisidet! +> 💁 Leidke meie [käitumisjuhend](CODE_OF_CONDUCT.md), [panustamise juhised](CONTRIBUTING.md) ja [tõlke juhised](TRANSLATIONS.md). Ootame teie konstruktiivset tagasisidet! > -> 🔧 Probleemid? Vaata meie [Veaotsingu juhendit](TROUBLESHOOTING.md) tavaliste probleemide lahendamiseks. +> 🔧 Probleeme? Vaadake meie [probleemide lahendamise juhendit](TROUBLESHOOTING.md) sagedaste probleemide lahendamiseks. -## Iga õppetund sisaldab: +## Iga õppetükk sisaldab: -- visandit -- valikulist täiendavat videot -- ettevalmistavat soojendusküsimustikku +- sketchnote’i +- valikulist lisavideot +- enne õppetundi soojenduslikku viktoriini - kirjalikku õppetükki -- projektipõhiste õppetundide puhul samm-sammult juhendeid projekti ülesehitamiseks +- projektipõhiste õppetükkide puhul samm-sammulisi juhiseid projekti ehitamiseks - teadmiste kontrolli - väljakutset -- täiendavat lugemist +- lisalugemist - ülesannet -- [pärast õppetundi küsimustikku](https://ff-quizzes.netlify.app/en/) - -> **Märkus testide kohta**: Kõik küsimustikud asuvad kaustas quiz-app ning seal on kokku 48 küsimustikku, milles on kolm küsimust igaühes. Need on lingitud õppetundide juures, kuid küsimustiku rakendus saab töötada lokaalselt või paigaldada Azure'i; järgi juhiseid kaustas `quiz-app`. Need lokaliseeritakse järk-järgult. - -## Õppetunnid - -| | Projekti nimi | Õpitud mõisted | Õpieesmärgid | Lingitud õppetund | -| :---: | :------------------------------------: | :---------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------: | -| 01 | [Alustamine](./1-getting-started/README.md) | IoT sissejuhatus | Õpi IoT põhimõtteid ja IoT lahenduste põhikomponente nagu andurid ja pilveteenused, samal ajal kui seadistad esimest IoT seadet | [IoT sissejuhatus](./1-getting-started/lessons/1-introduction-to-iot/README.md) | -| 02 | [Alustamine](./1-getting-started/README.md) | Sügavam IoT ülevaade | Õpi rohkem IoT süsteemi komponentide, mikrokontrollerite ja üheplaadiliste arvutite kohta | [Sügavam IoT ülevaade](./1-getting-started/lessons/2-deeper-dive/README.md) | -| 03 | [Alustamine](./1-getting-started/README.md) | Suhtle füüsilise maailmaga andurite ja täituritega | Õpi tundma andureid andmete kogumiseks füüsilisest maailmast ning täitureid tagasiside andmiseks, ehitades samal ajal öölampi | [Suhtle füüsilise maailmaga andurite ja täituritega](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | -| 04 | [Alustamine](./1-getting-started/README.md) | Ühenda oma seade internetiga | Õpi, kuidas ühendada IoT seade internetti sõnumite saatmiseks ja vastuvõtmiseks, ühendada oma öölamp MQTT serveriga | [Ühenda oma seade internetiga](./1-getting-started/lessons/4-connect-internet/README.md) | -| 05 | [Farm](./2-farm/README.md) | Ennusta taimede kasvu | Õpi taimede kasvu ennustama IoT seadme kogutud temperatuuriandmete põhjal | [Ennusta taimede kasvu](./2-farm/lessons/1-predict-plant-growth/README.md) | -| 06 | [Farm](./2-farm/README.md) | Tuvasta mulla niiskus | Õpi mulla niiskust tuvastama ja mulla niiskusandurit kalibreerima | [Tuvasta mulla niiskus](./2-farm/lessons/2-detect-soil-moisture/README.md) | -| 07 | [Farm](./2-farm/README.md) | Automatiseeritud taimede kastmine | Õpi automaatselt ja õigel ajal vett andma relee ja MQTT abil | [Automatiseeritud taimede kastmine](./2-farm/lessons/3-automated-plant-watering/README.md) | -| 08 | [Farm](./2-farm/README.md) | Migreeri taimed pilve | Õpi pilve ja pilvepõhiste IoT teenuste kohta ning kuidas ühendada oma taim avaliku MQTT serveri asemel mõne sellisega | [Migreeri taimed pilve](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | -| 09 | [Farm](./2-farm/README.md) | Migreeri oma rakendusloogika pilve | Õpi, kuidas kirjutada pilves rakendusloogikat, mis reageerib IoT sõnumitele | [Migreeri oma rakendusloogika pilve](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | -| 10 | [Farm](./2-farm/README.md) | Hoia oma taim turvalisena | Õpi IoT turvalisuse kohta ja kuidas hoida oma taim turvaliselt võtmete ja sertifikaatide abil | [Hoia oma taim turvalisena](./2-farm/lessons/6-keep-your-plant-secure/README.md) | -| 11 | [Transport](./3-transport/README.md) | Asukoha jälgimine | Õpi IoT seadmete GPS asukoha jälgimist | [Asukoha jälgimine](./3-transport/lessons/1-location-tracking/README.md) | -| 12 | [Transport](./3-transport/README.md) | Salvestage asukohaandmed | Õpi IoT andmeid salvestama hilisemaks visualiseerimiseks või analüüsimiseks | [Salvesta asukohaandmed](./3-transport/lessons/2-store-location-data/README.md) | -| 13 | [Transport](./3-transport/README.md) | Visualiseeri asukohaandmeid | Õpi asukohaandmete visualiseerimist kaardil ning kuidas kaardid esitavad reaalse 3D maailma 2 mõõtmes | [Visualiseeri asukohaandmeid](./3-transport/lessons/3-visualize-location-data/README.md) | -| 14 | [Transport](./3-transport/README.md) | Geofence'id | Õpi geofence'ide kohta ja kuidas neid kasutada hoiatusena, kui tarneahela sõidukid lähevad oma sihtkoha lähedale | [Geofence'id](./3-transport/lessons/4-geofences/README.md) | -| 15 | [Tootmine](./4-manufacturing/README.md) | Treeni puuvilja kvaliteedi tuvastajat | Õpi pildiklassifikaatori koolitamist pilves puuviljakvaliteedi tuvastamiseks | [Treeni puuvilja kvaliteedi tuvastajat](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | -| 16 | [Tootmine](./4-manufacturing/README.md) | Kontrolli puuvilja kvaliteeti IoT seadmega | Õpi oma puuviljakvaliteedi tuvastajat kasutama IoT seadmes | [Kontrolli puuvilja kvaliteeti IoT seadmega](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | -| 17 | [Tootmine](./4-manufacturing/README.md) | Käivita oma puuviljatuvastaja servas | Õpi oma puuviljatuvastaja käivitamist IoT seadmes servasisu tasemel | [Käivita oma puuviljatuvastaja servas](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | -| 18 | [Tootmine](./4-manufacturing/README.md) | Käivita puuviljakvaliteedi tuvastus andurilt | Õpi puuviljakvaliteedi tuvastuse käivitamist andurilt | [Käivita puuviljakvaliteedi tuvastus andurilt](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | -| 19 | [Jaemüük](./5-retail/README.md) | Treeni kaubavarude tuvastajat | Õpi objektituvastuse kasutamist varude loendamiseks poes | [Treeni kaubavarude tuvastajat](./5-retail/lessons/1-train-stock-detector/README.md) | -| 20 | [Jaemüük](./5-retail/README.md) | Kontrolli varusid IoT seadmega | Õpi objektituvastuse mudeli abil varude kontrollimist IoT seadmes | [Kontrolli varusid IoT seadmega](./5-retail/lessons/2-check-stock-device/README.md) | -| 21 | [Tarbijal](./6-consumer/README.md) | Tuvasta kõnet IoT seadmega | Õpi kõnetuvastust IoT seadme abil nutika taimeri ehitamiseks | [Tuvasta kõnet IoT seadmega](./6-consumer/lessons/1-speech-recognition/README.md) | -| 22 | [Tarbijal](./6-consumer/README.md) | Mõista keelt | Õpi IoT seadmele räägitud lauseid mõistma | [Mõista keelt](./6-consumer/lessons/2-language-understanding/README.md) | -| 23 | [Tarbijal](./6-consumer/README.md) | Sea taimer ja anna suuline tagasiside | Õpi IoT seadmes taimerit seadistama ja andma suulist tagasisidet selle seadistamise ja lõppemise kohta | [Sea taimer ja anna suuline tagasiside](./6-consumer/lessons/3-spoken-feedback/README.md) | -| 24 | [Tarbijal](./6-consumer/README.md) | Toeta mitut keelt | Õpi toetama mitut keelt nii rääkimisel kui ka teie nutika taimeri vastustes | [Toeta mitut keelt](./6-consumer/lessons/4-multiple-language-support/README.md) | - -## Võrgust eemal juurdepääs - -Seda dokumentatsiooni saab kasutada võrguühenduseta, kasutades [Docsify](https://docsify.js.org/#/). Hargne see repo, [paigalda Docsify](https://docsify.js.org/#/quickstart) oma kohalikule arvutile ja seejärel tippige selle repo juurkaustas `docsify serve`. Veebisait on saadaval pordil 3000 teie localhostis: `localhost:3000`. - -## Test - -Tänu kogukonnale interaktiivse testi majutamise eest, mis kontrollib teie teadmisi iga peatüki kohta. Saate testida oma teadmisi [siin](https://ff-quizzes.netlify.app/en/) +- [pärastundi viktoriini](https://ff-quizzes.netlify.app/en/) + +> **Märkme viktoriinide kohta**: Kõik viktoriinid asuvad quiz-app kaustas, kokku on 48 viktoriini, igas kolm küsimust. Neile viidatakse õppetükkide sees, kuid viktoriini rakendust saab käivitada lokaalselt või juurutada Azure’i; järgige juhiseid `quiz-app` kaustas. Neid lokaliseeritakse järk-järgult. + +## Õppetükid + +| | Projekti nimi | Õppekavad | Õpieesmärgid | Seotud õppetükk | +| :---: | :------------------------------------: | :----------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :-----------------------------------------------------------------------------------------------------------------------------: | +| 01 | [Alustamine](./1-getting-started/README.md) | Sissejuhatus IoT-sse | Õppige IoT põhimõtteid ja IoT lahenduste põhikomponente nagu andurid ja pilveteenused oma esimese IoT seadme seadistamise ajal | [Sissejuhatus IoT-sse](./1-getting-started/lessons/1-introduction-to-iot/README.md) | +| 02 | [Alustamine](./1-getting-started/README.md) | Süvitsi IoT-sse | Õppige rohkem IoT süsteemi komponentide, mikrojuhtimiste ja üheraudarvutite kohta | [Sügavuti IoT-sse](./1-getting-started/lessons/2-deeper-dive/README.md) | +| 03 | [Alustamine](./1-getting-started/README.md) | Suhtlus füüsilise maailmaga andurite ja täituritega | Õppige tundma andureid füüsilise maailma andmete kogumiseks ja täitureid tagasiside edastamiseks, ehitades öölambi | [Suhtlus füüsilise maailmaga andurite ja täituritega](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | +| 04 | [Alustamine](./1-getting-started/README.md) | Ühendage seade internetiga | Õppige, kuidas IoT seadet internetti ühendada sõnumite saatmiseks ja vastuvõtmiseks, ühendades öölambi MQTT vahendajaga | [Ühendage seade internetiga](./1-getting-started/lessons/4-connect-internet/README.md) | +| 05 | [Farm](./2-farm/README.md) | Ennusta taimede kasvu | Õppige taimede kasvu ennustamist temperatuurandmete põhjal, mida IoT seade kogub | [Ennusta taimede kasvu](./2-farm/lessons/1-predict-plant-growth/README.md) | +| 06 | [Farm](./2-farm/README.md) | Tuva mulla niiskust | Õppige mulla niiskuse tuvastamist ja mulla niiskuse anduri kalibreerimist | [Tuva mulla niiskust](./2-farm/lessons/2-detect-soil-moisture/README.md) | +| 07 | [Farm](./2-farm/README.md) | Automatiseeritud taimede kastmine | Õppige kastmise automatiseerimist ja ajastamist relee ja MQTT abil | [Automatiseeritud taimede kastmine](./2-farm/lessons/3-automated-plant-watering/README.md) | +| 08 | [Farm](./2-farm/README.md) | Migreeri oma taim pilve | Õppige pilve ja pilvepõhiste IoT teenuste kohta ning kuidas ühendada oma taim mõnele neist avaliku MQTT vahendaja asemel | [Migreeri oma taim pilve](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | +| 09 | [Farm](./2-farm/README.md) | Migreeri oma rakendusloogika pilve | Õppige, kuidas saab pilves kirjutada rakendusloogikat, mis reageerib IoT sõnumitele | [Migreeri oma rakendusloogika pilve](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | +| 10 | [Farm](./2-farm/README.md) | Hoia oma taime turvalisena | Õppige IoT turvalisusest ja kuidas hoida taim turvaliselt võtmete ja sertifikaatide abil | [Hoia oma taime turvalisena](./2-farm/lessons/6-keep-your-plant-secure/README.md) | +| 11 | [Transport](./3-transport/README.md) | Asukoha jälgimine | Õppige GPS asukoha jälgimist IoT seadmete jaoks | [Asukoha jälgimine](./3-transport/lessons/1-location-tracking/README.md) | +| 12 | [Transport](./3-transport/README.md) | Asukohaandmete salvestamine | Õppige, kuidas salvestada IoT andmeid hilisemaks visualiseerimiseks või analüüsiks | [Asukohaandmete salvestamine](./3-transport/lessons/2-store-location-data/README.md) | +| 13 | [Transport](./3-transport/README.md) | Asukohaandmete visualiseerimine | Õppige asukohaandmete kuvamist kaardil ja kuidas kaardid esindavad tegelikku 3D maailma 2 mõõtmes | [Asukohaandmete visualiseerimine](./3-transport/lessons/3-visualize-location-data/README.md) | +| 14 | [Transport](./3-transport/README.md) | Geopiirid | Õppige geopiiride kohta ja kuidas neid kasutada seda teada saamiseks, kui tarneahela sõidukid on oma sihtkoha lähedal | [Geopiirid](./3-transport/lessons/4-geofences/README.md) | +| 15 | [Tööstus](./4-manufacturing/README.md) | Treeni puuviljakvaliteedi tuvastajat | Õppige pilves pildiklassifikaatori koolitamist puuviljakvaliteedi tuvastamiseks | [Treeni puuviljakvaliteedi tuvastajat](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | +| 16 | [Tööstus](./4-manufacturing/README.md) | Kontrolli puuviljakvaliteeti IoT seadmega | Õppige oma puuviljakvaliteedi tuvastaja kasutamist IoT seadmel | [Kontrolli puuviljakvaliteeti IoT seadmega](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | +| 17 | [Tööstus](./4-manufacturing/README.md) | Käivita puuviljatuvastaja ääres | Õppige puuviljatuvastaja käivitamist IoT seadmel ääres | [Käivita puuviljatuvastaja ääres](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | +| 18 | [Tööstus](./4-manufacturing/README.md) | Käivita puuviljakvaliteedi tuvastus andurist | Õppige puuviljakvaliteedi tuvastuse käivitamist andurist | [Käivita puuviljakvaliteedi tuvastus andurist](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | +| 19 | [Jaemüük](./5-retail/README.md) | Treeni laoseisu tuvastajat | Õppige objekti tuvastuse abil laoseisu tuvastaja koolitamist poe laoseisu loendamiseks | [Treeni laoseisu tuvastajat](./5-retail/lessons/1-train-stock-detector/README.md) | +| 20 | [Jaemüük](./5-retail/README.md) | Kontrolli laoseisu IoT seadmega | Õppige laoseisu kontrollimist IoT seadme kaudu, kasutades objekti tuvastuse mudelit | [Kontrolli laoseisu IoT seadmega](./5-retail/lessons/2-check-stock-device/README.md) | +| 21 | [Tarbijale](./6-consumer/README.md) | Kõnetuvastus IoT seadmega | Õppige kõne tuvastamist IoT seadmega ja nutika taimeri ehitamist | [Kõnetuvastus IoT seadmega](./6-consumer/lessons/1-speech-recognition/README.md) | +| 22 | [Tarbijale](./6-consumer/README.md) | Keelte mõistmine | Õppige IoT seadmele suuliste lausete mõistmist | [Keelte mõistmine](./6-consumer/lessons/2-language-understanding/README.md) | +| 23 | [Tarbijale](./6-consumer/README.md) | Sea taimer ja anna suuline tagasiside | Õppige IoT seadmel taimeri seadistamist ja suulise tagasiside andmist taimeri käivitumise ja lõppemise kohta | [Sea taimer ja anna suuline tagasiside](./6-consumer/lessons/3-spoken-feedback/README.md) | +| 24 | [Tarbijale](./6-consumer/README.md) | Toeta mitut keelt | Õppige mitme keele toetust nii suulises suhtluses kui ka nutika taimeri vastustes | [Toeta mitut keelt](./6-consumer/lessons/4-multiple-language-support/README.md) | + +## Võimalus töötada võrguühenduseta + +Seda dokumentatsiooni saab kasutada võrguühenduseta, kasutades [Docsify](https://docsify.js.org/#/). Looge selle repositori koopia, [installige Docsify](https://docsify.js.org/#/quickstart) oma kohalikule arvutile ja seejärel reposti juurkaustas käivitage käsk `docsify serve`. Veebilehte teenindatakse teie lokaalse arvuti pordil 3000 aadressil: `localhost:3000`. + +## Viktoriin + +Tänu kogukonnale, kes majutab interaktiivset viktoriini, mis testib teie teadmisi iga peatüki kohta. Võite oma teadmisi testida [siin](https://ff-quizzes.netlify.app/en/) ### PDF -Seda sisu saab võrguühenduseta kasutamiseks PDF-ina genereerida, kui vaja. Selleks veendu, et sul on [npm paigaldatud](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) ja käivita järgnev käsud selle repo juurkaustas: +Soovi korral saate selle sisu jaoks luua võrguühenduseta juurdepääsuks PDF-faili. Selleks veenduge, et teil oleks [npm paigaldatud](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) ja käivitage järgmised käsud selle repositori juurkaustas: ```sh npm i npm run convert ``` -### Esitlused - -Mõnede õppetundide jaoks on slaidiesitlused kaustas [slides](../../slides). +### Slaidid +Mõne õppetüki kohta on slaidiesitlused kaustas [slides](../../slides). ## Muud õppekavad -Meie meeskond loob ka teisi õppekavu! Vaata: +Meie meeskond toodab ka muid õppekavu! Vaadake: ### LangChain [![LangChain4j algajatele](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) [![LangChain.js algajatele](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) - +[![LangChain algajatele](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- -### Azure / Edge / MCP / Agendid +### Azure / Edge / MCP / Agentid [![AZD algajatele](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Edge AI algajatele](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP algajatele](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) [![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- @@ -184,7 +193,7 @@ Meie meeskond loob ka teisi õppekavu! Vaata: --- -### Põhiteadmised +### Põhilised õppetunnid [![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) [![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) [![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) @@ -195,19 +204,19 @@ Meie meeskond loob ka teisi õppekavu! Vaata: --- -### Copiloti sari +### CoPiloti sari [![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) [![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) [![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## Piltide viited +## Kujutiste autorlus -Kõik selle õppekava kasutatavate piltide viited leiate vajadusel siit: [Attributions](./attributions.md). +Kõiki selles õppekavas kasutatud kujutiste autorlusi leiate vajadusel lehelt [Attributions](./attributions.md). --- -**Vastutusest loobumine**: -See dokument on tõlgitud AI tõlketeenuse [Co-op Translator](https://github.com/Azure/co-op-translator) abil. Kuigi püüame täpsust, palun arvestage, et automaatsed tõlked võivad sisaldada vigu või ebatäpsusi. Originaaldokument selle emakeeles tuleks pidada autoriteetseks allikaks. Olulise info korral soovitatakse kasutada professionaalset inimtõlget. Me ei vastuta ühegi arusaamatuse või valesti mõistmise eest, mis võib sellest tõlkest tuleneda. +**Lahtiütlus**: +See dokument on tõlgitud kasutades tehisintellekti tõlketeenust [Co-op Translator](https://github.com/Azure/co-op-translator). Kuigi me püüdleme täpsuse poole, palun arvestage, et automatiseeritud tõlgetes võib esineda vigu või ebatäpsusi. Originaaldokument selle emakeeles tuleks lugeda autoriteetseks allikaks. Kriitilise teabe puhul on soovitatav kasutada professionaalset inimtõlget. Me ei vastuta selle tõlke kasutamisest tulenevate valesti mõistmiste või valesti tõlgenduste eest. \ No newline at end of file diff --git a/translations/et/hardware.md b/translations/et/hardware.md index 481762bf3..791f1af89 100644 --- a/translations/et/hardware.md +++ b/translations/et/hardware.md @@ -26,7 +26,7 @@ Seeed Studios on lahkelt teinud kogu riistvara kättesaadavaks lihtsasti ostetav **[IoT algajatele koos Seeediga ja Microsoftiga - Raspberry Pi 4 Starter Kit](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html)** -[![Raspberry Pi Terminal riistvarakomplekt](../../translated_images/et/pi-hardware-kit.26dbadaedb7dd44c73b0131d5d68ea29472ed0a9744f90d5866c6d82f2d16380.png)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) +[![Raspberry Pi Terminal riistvarakomplekt](../../translated_images/et/pi-hardware-kit.26dbadaedb7dd44c.webp)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) ## Arduino diff --git a/translations/fa/.co-op-translator.json b/translations/fa/.co-op-translator.json index 81296accc..fc60d3ee1 100644 --- a/translations/fa/.co-op-translator.json +++ b/translations/fa/.co-op-translator.json @@ -738,8 +738,8 @@ "language_code": "fa" }, "README.md": { - "original_hash": "3fcc056cd3837e33d2bdf79f9c359fcf", - "translation_date": "2026-01-30T01:13:04+00:00", + "original_hash": "accf69391fa4450eadbf492ca024cccf", + "translation_date": "2026-04-06T15:58:34+00:00", "source_file": "README.md", "language_code": "fa" }, diff --git a/translations/fa/1-getting-started/lessons/1-introduction-to-iot/README.md b/translations/fa/1-getting-started/lessons/1-introduction-to-iot/README.md index 9440b740a..38c727e89 100644 --- a/translations/fa/1-getting-started/lessons/1-introduction-to-iot/README.md +++ b/translations/fa/1-getting-started/lessons/1-introduction-to-iot/README.md @@ -1,6 +1,6 @@ # مقدمه‌ای بر اینترنت اشیا -![تصویری از خلاصه درس](../../../../../translated_images/fa/lesson-1.2606670fa61ee904687da5d6fa4e726639d524d064c895117da1b95b9ff6251d.jpg) +![تصویری از خلاصه درس](../../../../../translated_images/fa/lesson-1.2606670fa61ee904.webp) > طراحی توسط [نیتیا ناراسیمهان](https://github.com/nitya). برای مشاهده نسخه بزرگ‌تر روی تصویر کلیک کنید. diff --git a/translations/fa/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md b/translations/fa/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md index 50591f8d1..1509ab137 100644 --- a/translations/fa/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md +++ b/translations/fa/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md @@ -203,7 +203,7 @@ اپلیکیشن شروع به اجرا می‌کند و در مرورگر وب شما باز می‌شود: - ![The Counter Fit app running in a browser](../../../../../translated_images/fa/counterfit-first-run.433326358b669b31d0e99c3513cb01bfbb13724d162c99cdcc8f51ecf5f9c779.png) + ![The Counter Fit app running in a browser](../../../../../translated_images/fa/counterfit-first-run.433326358b669b31.webp) این اپلیکیشن به عنوان *Disconnected* علامت‌گذاری شده است و LED در گوشه بالا-راست خاموش است. @@ -224,7 +224,7 @@ 1. در این ترمینال جدید، فایل `app.py` را همانند قبل اجرا کنید. وضعیت CounterFit به **Connected** تغییر خواهد کرد و LED روشن خواهد شد. - ![Counter Fit showing as connected](../../../../../translated_images/fa/counterfit-connected.ed30b46d8f79b0921f3fc70be10366e596a89dca3f80c2224a9d9fc98fccf884.png) + ![Counter Fit showing as connected](../../../../../translated_images/fa/counterfit-connected.ed30b46d8f79b092.webp) > 💁 می‌توانید این کد را در پوشه [code/virtual-device](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/virtual-device) پیدا کنید. diff --git a/translations/fa/1-getting-started/lessons/2-deeper-dive/README.md b/translations/fa/1-getting-started/lessons/2-deeper-dive/README.md index e1b5c26d8..fce2eb678 100644 --- a/translations/fa/1-getting-started/lessons/2-deeper-dive/README.md +++ b/translations/fa/1-getting-started/lessons/2-deeper-dive/README.md @@ -1,6 +1,6 @@ # بررسی عمیق‌تر اینترنت اشیا (IoT) -![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-2.324b0580d620c25e0a24fb7fddfc0b29a846dd4b82c08e7a9466d580ee78ce51.jpg) +![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-2.324b0580d620c25e.webp) > اسکچ‌نوت توسط [نیتیا ناراسیمهان](https://github.com/nitya). برای مشاهده نسخه بزرگ‌تر روی تصویر کلیک کنید. @@ -38,7 +38,7 @@ این دستگاه‌ها با دنیای فیزیکی تعامل دارند، یا با استفاده از حسگرها برای جمع‌آوری داده از محیط اطراف خود، یا با کنترل خروجی‌ها یا عملگرها برای ایجاد تغییرات فیزیکی. مثال معمول این موضوع یک ترموستات هوشمند است - دستگاهی که دارای حسگر دما، وسیله‌ای برای تنظیم دمای مطلوب مانند یک صفحه لمسی یا دکمه، و یک اتصال به سیستم گرمایش یا سرمایش است که می‌تواند زمانی که دمای تشخیص داده شده خارج از محدوده مطلوب است، روشن شود. حسگر دما تشخیص می‌دهد که اتاق خیلی سرد است و یک عملگر گرمایش را روشن می‌کند. -![یک نمودار که دما و یک دکمه را به عنوان ورودی‌های یک دستگاه اینترنت اشیا و کنترل یک بخاری را به عنوان خروجی نشان می‌دهد](../../../../../translated_images/fa/basic-thermostat.a923217fd1f37e5a6f3390396a65c22a387419ea2dd17e518ec24315ba6ae9a8.png) +![یک نمودار که دما و یک دکمه را به عنوان ورودی‌های یک دستگاه اینترنت اشیا و کنترل یک بخاری را به عنوان خروجی نشان می‌دهد](../../../../../translated_images/fa/basic-thermostat.a923217fd1f37e5a.webp) انواع بسیار متنوعی از دستگاه‌ها می‌توانند به عنوان دستگاه‌های اینترنت اشیا عمل کنند، از سخت‌افزارهای اختصاصی که یک چیز خاص را حس می‌کنند، تا دستگاه‌های چندمنظوره، حتی گوشی هوشمند شما! یک گوشی هوشمند می‌تواند از حسگرها برای تشخیص دنیای اطراف خود استفاده کند و از عملگرها برای تعامل با دنیا - برای مثال، استفاده از حسگر GPS برای تشخیص موقعیت مکانی شما و یک بلندگو برای ارائه دستورالعمل‌های مسیریابی به مقصد. @@ -54,7 +54,7 @@ در مثال یک ترموستات هوشمند، ترموستات از طریق WiFi خانگی به یک سرویس ابری متصل می‌شود. این دستگاه داده‌های دما را به این سرویس ابری ارسال می‌کند و از آنجا به یک پایگاه داده نوشته می‌شود که به صاحب خانه اجازه می‌دهد دماهای فعلی و گذشته را با استفاده از یک اپلیکیشن تلفن همراه بررسی کند. یک سرویس دیگر در ابر می‌داند که صاحب خانه چه دمایی را می‌خواهد و پیام‌هایی را از طریق سرویس ابری به دستگاه اینترنت اشیا ارسال می‌کند تا سیستم گرمایش را روشن یا خاموش کند. -![یک نمودار که دما و یک دکمه را به عنوان ورودی‌های یک دستگاه اینترنت اشیا، دستگاه اینترنت اشیا با ارتباط دوطرفه با ابر، که به نوبه خود ارتباط دوطرفه با یک تلفن دارد، و کنترل یک بخاری را به عنوان خروجی از دستگاه اینترنت اشیا نشان می‌دهد](../../../../../translated_images/fa/mobile-controlled-thermostat.4a994010473d8d6a52ba68c67e5f02dc8928c717e93ca4b9bc55525aa75bbb60.png) +![یک نمودار که دما و یک دکمه را به عنوان ورودی‌های یک دستگاه اینترنت اشیا، دستگاه اینترنت اشیا با ارتباط دوطرفه با ابر، که به نوبه خود ارتباط دوطرفه با یک تلفن دارد، و کنترل یک بخاری را به عنوان خروجی از دستگاه اینترنت اشیا نشان می‌دهد](../../../../../translated_images/fa/mobile-controlled-thermostat.4a994010473d8d6a.webp) نسخه‌ای حتی هوشمندتر می‌تواند از هوش مصنوعی در ابر با داده‌های حسگرهای دیگر متصل به دستگاه‌های اینترنت اشیا مانند حسگرهای اشغال که تشخیص می‌دهند کدام اتاق‌ها استفاده می‌شوند، و همچنین داده‌هایی مانند وضعیت آب و هوا و حتی تقویم شما استفاده کند تا تصمیماتی در مورد تنظیم دما به صورت هوشمندانه بگیرد. برای مثال، می‌تواند گرمایش شما را خاموش کند اگر از تقویم شما بخواند که در تعطیلات هستید، یا گرمایش را به صورت اتاق به اتاق خاموش کند بسته به اینکه از کدام اتاق‌ها استفاده می‌کنید، و با یادگیری از داده‌ها به مرور زمان دقیق‌تر شود. @@ -94,7 +94,7 @@ > 💁 پردازنده‌ها برنامه‌ها را با استفاده از [چرخه واکشی-رمزگشایی-اجرا](https://wikipedia.org/wiki/Instruction_cycle) اجرا می‌کنند. برای هر تیک ساعت، پردازنده دستورالعمل بعدی را از حافظه واکشی می‌کند، آن را رمزگشایی می‌کند و سپس اجرا می‌کند، مانند استفاده از واحد منطق حسابی (ALU) برای جمع دو عدد. برخی اجراها ممکن است چندین تیک طول بکشند، بنابراین چرخه بعدی در تیک بعدی پس از تکمیل دستورالعمل اجرا می‌شود. -![چرخه واکشی-رمزگشایی-اجرا که واکشی دستورالعمل از برنامه ذخیره‌شده در RAM، سپس رمزگشایی و اجرای آن روی پردازنده را نشان می‌دهد](../../../../../translated_images/fa/fetch-decode-execute.2fd6f150f6280392807f4475382319abd0cee0b90058e1735444d6baa6f2078c.png) +![چرخه واکشی-رمزگشایی-اجرا که واکشی دستورالعمل از برنامه ذخیره‌شده در RAM، سپس رمزگشایی و اجرای آن روی پردازنده را نشان می‌دهد](../../../../../translated_images/fa/fetch-decode-execute.2fd6f150f6280392.webp) میکروکنترلرها سرعت ساعت بسیار کمتری نسبت به کامپیوترهای رومیزی یا لپ‌تاپ‌ها، یا حتی اکثر گوشی‌های هوشمند دارند. برای مثال، Wio Terminal دارای پردازنده‌ای است که با سرعت ۱۲۰ مگاهرتز یا ۱۲۰,۰۰۰,۰۰۰ چرخه در ثانیه کار می‌کند. @@ -182,7 +182,7 @@ RAM حافظه‌ای است که برنامه برای اجرا از آن اس شما کد تنظیمات خود را در تابع `setup` می‌نویسید، مانند اتصال به WiFi و خدمات ابری یا مقداردهی اولیه پین‌ها برای ورودی و خروجی. کد حلقه شما سپس شامل کد پردازش می‌شود، مانند خواندن از یک حسگر و ارسال مقدار به ابر. معمولاً در هر حلقه یک تأخیر اضافه می‌کنید، برای مثال، اگر فقط می‌خواهید داده‌های حسگر هر ۱۰ ثانیه ارسال شود، در انتهای حلقه یک تأخیر ۱۰ ثانیه‌ای اضافه می‌کنید تا میکروکنترلر بخوابد، انرژی ذخیره کند، و سپس حلقه را دوباره اجرا کند. -![یک اسکچ آردوینو که ابتدا setup را اجرا می‌کند و سپس loop را به‌طور مکرر اجرا می‌کند](../../../../../translated_images/fa/arduino-sketch.79590cb837ff7a7c6a68d1afda6cab83fd53d3bb1bd9a8bf2eaf8d693a4d3ea6.png) +![یک اسکچ آردوینو که ابتدا setup را اجرا می‌کند و سپس loop را به‌طور مکرر اجرا می‌کند](../../../../../translated_images/fa/arduino-sketch.79590cb837ff7a7c.webp) ✅ این معماری برنامه به‌عنوان یک *حلقه رویداد* یا *حلقه پیام* شناخته می‌شود. بسیاری از برنامه‌ها در پشت صحنه از این معماری استفاده می‌کنند و این استاندارد برای اکثر برنامه‌های دسکتاپی است که روی سیستم‌عامل‌هایی مانند ویندوز، macOS یا لینوکس اجرا می‌شوند. حلقه `loop` پیام‌ها را از اجزای رابط کاربری مانند دکمه‌ها یا دستگاه‌هایی مانند صفحه‌کلید گوش می‌دهد و به آن‌ها پاسخ می‌دهد. می‌توانید در این [مقاله درباره حلقه رویداد](https://wikipedia.org/wiki/Event_loop) بیشتر بخوانید. diff --git a/translations/fa/1-getting-started/lessons/3-sensors-and-actuators/README.md b/translations/fa/1-getting-started/lessons/3-sensors-and-actuators/README.md index a2d1a4a4b..2757e6335 100644 --- a/translations/fa/1-getting-started/lessons/3-sensors-and-actuators/README.md +++ b/translations/fa/1-getting-started/lessons/3-sensors-and-actuators/README.md @@ -1,6 +1,6 @@ # تعامل با دنیای فیزیکی با حسگرها و عملگرها -![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-3.cc3b7b4cd646de598698cce043c0393fd62ef42bac2eaf60e61272cd844250f4.jpg) +![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-3.cc3b7b4cd646de59.webp) > اسکچ‌نوت توسط [نیتیا ناراسیمهان](https://github.com/nitya). برای مشاهده نسخه بزرگ‌تر روی تصویر کلیک کنید. @@ -92,7 +92,7 @@ ساده‌ترین حسگر دیجیتال یک دکمه یا سوئیچ است. این یک حسگر با دو حالت است، روشن یا خاموش. -![یک دکمه ۵ ولت ارسال می‌کند. وقتی فشار داده نمی‌شود ۰ ولت بازمی‌گرداند، وقتی فشار داده می‌شود ۵ ولت بازمی‌گرداند](../../../../../translated_images/fa/button.eadb560b77ac45e56f523d9d8876e40444f63b419e33eb820082d461fa79490b.png) +![یک دکمه ۵ ولت ارسال می‌کند. وقتی فشار داده نمی‌شود ۰ ولت بازمی‌گرداند، وقتی فشار داده می‌شود ۵ ولت بازمی‌گرداند](../../../../../translated_images/fa/button.eadb560b77ac45e5.webp) پین‌های دستگاه‌های IoT مانند پین‌های GPIO می‌توانند این سیگنال را مستقیماً به عنوان ۰ یا ۱ اندازه‌گیری کنند. اگر ولتاژ ارسال شده همان ولتاژ بازگشتی باشد، مقدار خوانده شده ۱ است، در غیر این صورت مقدار خوانده شده ۰ است. نیازی به تبدیل سیگنال نیست، فقط می‌تواند ۱ یا ۰ باشد. @@ -125,7 +125,7 @@ راهنمای مربوطه را دنبال کنید تا یک عملگر به دستگاه IoT خود اضافه کنید که توسط حسگر کنترل شود تا یک چراغ شب IoT بسازید. این چراغ سطح نور را از حسگر نور جمع‌آوری کرده و از یک عملگر به شکل LED برای انتشار نور زمانی که سطح نور تشخیص داده شده خیلی کم است استفاده می‌کند. -![یک نمودار جریان از تکلیف که نشان می‌دهد سطح نور خوانده و بررسی می‌شود و LED کنترل می‌شود](../../../../../translated_images/fa/assignment-1-flow.7552a51acb1a5ec858dca6e855cdbb44206434006df8ba3799a25afcdab1665d.png) +![یک نمودار جریان از تکلیف که نشان می‌دهد سطح نور خوانده و بررسی می‌شود و LED کنترل می‌شود](../../../../../translated_images/fa/assignment-1-flow.7552a51acb1a5ec8.webp) * [Arduino - Wio Terminal](wio-terminal-actuator.md) * [کامپیوتر تک‌برد - Raspberry Pi](pi-actuator.md) @@ -140,7 +140,7 @@ عملگرهای آنالوگ یک سیگنال آنالوگ را گرفته و آن را به نوعی تعامل تبدیل می‌کنند، جایی که تعامل بر اساس ولتاژ ارائه شده تغییر می‌کند. یک مثال چراغ قابل تنظیم است، مانند چراغ‌هایی که ممکن است در خانه خود داشته باشید. مقدار ولتاژ ارائه شده به چراغ تعیین می‌کند که چقدر روشن باشد. -![یک چراغ که با ولتاژ پایین کم‌نور و با ولتاژ بالا روشن‌تر است](../../../../../translated_images/fa/dimmable-light.9ceffeb195dec1a849da718b2d71b32c35171ff7dfea9c07bbf82646a67acf6b.png) +![یک چراغ که با ولتاژ پایین کم‌نور و با ولتاژ بالا روشن‌تر است](../../../../../translated_images/fa/dimmable-light.9ceffeb195dec1a8.webp) مانند حسگرها، دستگاه‌های واقعی اینترنت اشیا (IoT) با سیگنال‌های دیجیتال کار می‌کنند، نه آنالوگ. این بدان معناست که برای ارسال یک سیگنال آنالوگ، دستگاه اینترنت اشیا نیاز به یک مبدل دیجیتال به آنالوگ (DAC) دارد، یا به‌صورت مستقیم روی دستگاه اینترنت اشیا یا روی یک برد اتصال. این مبدل، 0 و 1‌های دستگاه اینترنت اشیا را به ولتاژ آنالوگ تبدیل می‌کند که عملگر بتواند از آن استفاده کند. @@ -187,7 +187,7 @@ یک عملگر دیجیتال ساده، LED است. وقتی یک دستگاه سیگنال دیجیتال 1 ارسال می‌کند، یک ولتاژ بالا ارسال می‌شود که LED را روشن می‌کند. وقتی یک سیگنال دیجیتال 0 ارسال می‌شود، ولتاژ به 0 ولت کاهش می‌یابد و LED خاموش می‌شود. -![یک LED در 0 ولت خاموش و در 5 ولت روشن است](../../../../../translated_images/fa/led.ec6d94f66676a174ad06d9fa9ea49c2ee89beb18b312d5c6476467c66375b07f.png) +![یک LED در 0 ولت خاموش و در 5 ولت روشن است](../../../../../translated_images/fa/led.ec6d94f66676a174.webp) ✅ چه عملگرهای ساده دو حالته دیگری می‌توانید تصور کنید؟ یک مثال، سلونوئید است که یک آهنربای الکتریکی است که می‌تواند فعال شود تا کارهایی مانند حرکت دادن یک قفل درب برای قفل کردن یا باز کردن درب انجام دهد. diff --git a/translations/fa/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md b/translations/fa/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md index 76ed1a85b..d13b573f6 100644 --- a/translations/fa/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md +++ b/translations/fa/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md @@ -26,7 +26,7 @@ LED Grove به صورت یک ماژول با مجموعه‌ای از LED‌ها LED را وصل کنید. -![یک LED Grove](../../../../../translated_images/fa/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![یک LED Grove](../../../../../translated_images/fa/grove-led.6c853be93f473cf2.webp) 1. LED مورد علاقه خود را انتخاب کنید و پایه‌های آن را در دو سوراخ روی ماژول LED قرار دهید. @@ -40,7 +40,7 @@ LED را وصل کنید. 1. با خاموش بودن رزبری پای، سر دیگر کابل Grove را به سوکت دیجیتال علامت‌گذاری شده **D5** روی Grove Base hat متصل به پای وصل کنید. این سوکت دومین سوکت از سمت چپ در ردیف سوکت‌های کنار پین‌های GPIO است. -![LED Grove متصل به سوکت D5](../../../../../translated_images/fa/pi-led.97f1d474981dc35d1c7996c7b17de355d3d0a6bc9606d79fa5f89df933415122.png) +![LED Grove متصل به سوکت D5](../../../../../translated_images/fa/pi-led.97f1d474981dc35d.webp) ## برنامه‌نویسی چراغ خواب diff --git a/translations/fa/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md b/translations/fa/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md index d12359482..888c17e4f 100644 --- a/translations/fa/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md +++ b/translations/fa/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md @@ -16,13 +16,13 @@ حسگر نور را متصل کنید. -![یک حسگر نور Grove](../../../../../translated_images/fa/grove-light-sensor.b8127b7c434e632d6bcdb57587a14e9ef69a268a22df95d08628f62b8fa5505c.png) +![یک حسگر نور Grove](../../../../../translated_images/fa/grove-light-sensor.b8127b7c434e632d.webp) 1. یک سر کابل Grove را به سوکت روی ماژول حسگر نور وارد کنید. این کابل فقط از یک جهت وارد می‌شود. 1. با خاموش بودن رزبری پای، سر دیگر کابل Grove را به سوکت آنالوگ با علامت **A0** روی کلاهک پایه Grove که به رزبری پای متصل است، وصل کنید. این سوکت دومین سوکت از سمت راست در ردیف سوکت‌های کنار پین‌های GPIO است. -![حسگر نور Grove متصل به سوکت A0](../../../../../translated_images/fa/pi-light-sensor.66cc1e31fa48cd7d5f23400d4b2119aa41508275cb7c778053a7923b4e972d7e.png) +![حسگر نور Grove متصل به سوکت A0](../../../../../translated_images/fa/pi-light-sensor.66cc1e31fa48cd7d.webp) ## برنامه‌نویسی حسگر نور diff --git a/translations/fa/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md b/translations/fa/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md index 4dccbd326..898812ad9 100644 --- a/translations/fa/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md +++ b/translations/fa/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md @@ -36,11 +36,11 @@ LED را به برنامه CounterFit اضافه کنید. 1. دکمه **Add** را انتخاب کنید تا LED روی پین 5 ایجاد شود. - ![تنظیمات LED](../../../../../translated_images/fa/counterfit-create-led.ba9db1c9b8c622a635d6dfae5cdc4e70c2b250635bd4f0601c6cf0bd22b7ba46.png) + ![تنظیمات LED](../../../../../translated_images/fa/counterfit-create-led.ba9db1c9b8c622a6.webp) LED ایجاد شده و در لیست عملگرها ظاهر می‌شود. - ![LED ایجاد شده](../../../../../translated_images/fa/counterfit-led.c0ab02de6d256ad84d9bad4d67a7faa709f0ea83e410cfe9b5561ef0cef30b1c.png) + ![LED ایجاد شده](../../../../../translated_images/fa/counterfit-led.c0ab02de6d256ad8.webp) پس از ایجاد LED، می‌توانید رنگ آن را با استفاده از انتخابگر *Color* تغییر دهید. دکمه **Set** را انتخاب کنید تا پس از انتخاب رنگ، آن را تغییر دهید. diff --git a/translations/fa/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md b/translations/fa/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md index f08dc927d..fd3ddae88 100644 --- a/translations/fa/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md +++ b/translations/fa/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md @@ -28,11 +28,11 @@ 1. دکمه **Add** را انتخاب کنید تا حسگر نور روی پین 0 ایجاد شود. - ![تنظیمات حسگر نور](../../../../../translated_images/fa/counterfit-create-light-sensor.9f36a5e0d4458d8d554d54b34d2c806d56093d6e49fddcda2d20f6fef7f5cce1.png) + ![تنظیمات حسگر نور](../../../../../translated_images/fa/counterfit-create-light-sensor.9f36a5e0d4458d8d.webp) حسگر نور ایجاد خواهد شد و در لیست حسگرها ظاهر می‌شود. - ![حسگر نور ایجاد شده](../../../../../translated_images/fa/counterfit-light-sensor.5d0f5584df56b90f6b2561910d9cb20dfbd73eeff2177c238d38f4de54aefae1.png) + ![حسگر نور ایجاد شده](../../../../../translated_images/fa/counterfit-light-sensor.5d0f5584df56b90f.webp) ## برنامه‌نویسی حسگر نور diff --git a/translations/fa/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md b/translations/fa/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md index fc463979a..c4ff11c1a 100644 --- a/translations/fa/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md +++ b/translations/fa/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md @@ -26,7 +26,7 @@ LED Grove به صورت یک ماژول با مجموعه‌ای از LEDها ا LED را متصل کنید. -![یک LED Grove](../../../../../translated_images/fa/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![یک LED Grove](../../../../../translated_images/fa/grove-led.6c853be93f473cf2.webp) 1. LED مورد علاقه خود را انتخاب کرده و پایه‌های آن را در دو سوراخ روی ماژول LED قرار دهید. diff --git a/translations/fa/1-getting-started/lessons/4-connect-internet/README.md b/translations/fa/1-getting-started/lessons/4-connect-internet/README.md index b555e14f5..cde0e85d7 100644 --- a/translations/fa/1-getting-started/lessons/4-connect-internet/README.md +++ b/translations/fa/1-getting-started/lessons/4-connect-internet/README.md @@ -1,6 +1,6 @@ # اتصال دستگاه شما به اینترنت -![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-4.7344e074ea68fa545fd320b12dce36d72dd62d28c3b4596cb26cf315f434b98f.jpg) +![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-4.7344e074ea68fa54.webp) > اسکچ‌نوت توسط [نیتیا ناراسیمهان](https://github.com/nitya). برای مشاهده نسخه بزرگ‌تر روی تصویر کلیک کنید. @@ -47,7 +47,7 @@ MQTT محبوب‌ترین پروتکل ارتباطی برای دستگاه‌ MQTT دارای یک بروکر و چندین کلاینت است. تمام کلاینت‌ها به بروکر متصل می‌شوند و بروکر پیام‌ها را به کلاینت‌های مربوطه هدایت می‌کند. پیام‌ها با استفاده از موضوعات نام‌گذاری شده هدایت می‌شوند، نه اینکه مستقیماً به یک کلاینت خاص ارسال شوند. یک کلاینت می‌تواند به یک موضوع پیام ارسال کند و هر کلاینتی که به آن موضوع اشتراک کرده باشد پیام را دریافت خواهد کرد. -![دستگاه IoT تله‌متری را در موضوع /telemetry منتشر می‌کند و سرویس ابری به آن موضوع اشتراک می‌کند](../../../../../translated_images/fa/mqtt.cbf7f21d9adc3e17548b359444cc11bb4bf2010543e32ece9a47becf54438c23.png) +![دستگاه IoT تله‌متری را در موضوع /telemetry منتشر می‌کند و سرویس ابری به آن موضوع اشتراک می‌کند](../../../../../translated_images/fa/mqtt.cbf7f21d9adc3e17.webp) ✅ تحقیق کنید. اگر تعداد زیادی دستگاه IoT داشته باشید، چگونه می‌توانید اطمینان حاصل کنید که بروکر MQTT شما قادر به مدیریت تمام پیام‌ها است؟ @@ -69,7 +69,7 @@ MQTT دارای یک بروکر و چندین کلاینت است. تمام کل > 💁 این بروکر آزمایشی عمومی و غیرامن است. هر کسی می‌تواند به آنچه شما منتشر می‌کنید گوش دهد، بنابراین نباید با داده‌هایی که نیاز به حفظ حریم خصوصی دارند استفاده شود. -![یک نمودار جریان از تکلیف که نشان‌دهنده خواندن و بررسی سطح نور و کنترل LED است](../../../../../translated_images/fa/assignment-1-internet-flow.3256feab5f052fd273bf4e331157c574c2c3fa42e479836fc9c3586f41db35a5.png) +![یک نمودار جریان از تکلیف که نشان‌دهنده خواندن و بررسی سطح نور و کنترل LED است](../../../../../translated_images/fa/assignment-1-internet-flow.3256feab5f052fd2.webp) مراحل مربوطه زیر را دنبال کنید تا دستگاه خود را به بروکر MQTT متصل کنید: @@ -350,7 +350,7 @@ MQTT همچنین از یک عملکرد نگهداری اتصال پشتیبا طراحان دستگاه‌های IoT همچنین باید در نظر بگیرند که آیا دستگاه IoT می‌تواند در طول قطعی اینترنت یا از دست دادن سیگنال ناشی از مکان استفاده شود یا خیر. یک ترموستات هوشمند باید بتواند برخی تصمیمات محدود برای کنترل گرمایش بگیرد اگر نتواند تله‌متری را به ابر ارسال کند به دلیل قطعی. -[![این فراری خراب شد چون کسی سعی کرد آن را زیر زمین که هیچ سیگنال موبایلی وجود ندارد ارتقا دهد](../../../../../translated_images/fa/bricked-car.dc38f8efadc6c59d76211f981a521efb300939283dee468f79503aae3ec67615.png)](https://twitter.com/internetofshit/status/1315736960082808832) +[![این فراری خراب شد چون کسی سعی کرد آن را زیر زمین که هیچ سیگنال موبایلی وجود ندارد ارتقا دهد](../../../../../translated_images/fa/bricked-car.dc38f8efadc6c59d.webp)](https://twitter.com/internetofshit/status/1315736960082808832) برای اینکه MQTT بتواند از دست دادن اتصال را مدیریت کند، کد دستگاه و سرور باید مسئول اطمینان از تحویل پیام‌ها در صورت نیاز باشند، به عنوان مثال با الزام اینکه تمام پیام‌های ارسال شده توسط پیام‌های اضافی در یک موضوع پاسخ پاسخ داده شوند، و اگر نه، آن‌ها به صورت دستی صف‌بندی شوند تا بعداً بازپخش شوند. @@ -358,7 +358,7 @@ MQTT همچنین از یک عملکرد نگهداری اتصال پشتیبا دستورات پیام‌هایی هستند که از ابر به یک دستگاه ارسال می‌شوند و به آن دستور می‌دهند کاری انجام دهد. بیشتر اوقات این شامل دادن نوعی خروجی از طریق یک عملگر است، اما می‌تواند یک دستور برای خود دستگاه باشد، مانند راه‌اندازی مجدد یا جمع‌آوری تله‌متری اضافی و بازگرداندن آن به عنوان پاسخ به دستور. -![یک ترموستات متصل به اینترنت که دستوری برای روشن کردن گرمایش دریافت می‌کند](../../../../../translated_images/fa/commands.d6c06bbbb3a02cce95f2831a1c331daf6dedd4e470c4aa2b0ae54f332016e504.png) +![یک ترموستات متصل به اینترنت که دستوری برای روشن کردن گرمایش دریافت می‌کند](../../../../../translated_images/fa/commands.d6c06bbbb3a02cce.webp) یک ترموستات می‌تواند دستوری از ابر دریافت کند تا گرمایش را روشن کند. بر اساس داده‌های تله‌متری از تمام حسگرها، اگر سرویس ابری تصمیم گرفته باشد که گرمایش باید روشن شود، دستور مربوطه را ارسال می‌کند. diff --git a/translations/fa/2-farm/lessons/1-predict-plant-growth/README.md b/translations/fa/2-farm/lessons/1-predict-plant-growth/README.md index 25e9d2a80..8b0d59e57 100644 --- a/translations/fa/2-farm/lessons/1-predict-plant-growth/README.md +++ b/translations/fa/2-farm/lessons/1-predict-plant-growth/README.md @@ -1,6 +1,6 @@ # پیش‌بینی رشد گیاه با IoT -![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-5.42b234299279d263143148b88ab4583861a32ddb03110c6c1120e41bb88b2592.jpg) +![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-5.42b234299279d263.webp) > اسکچ‌نوت توسط [نیتیا ناراسیمهان](https://github.com/nitya). برای مشاهده نسخه بزرگ‌تر روی تصویر کلیک کنید. @@ -90,7 +90,7 @@ فرمول کامل برای GDD کمی پیچیده است، اما یک معادله ساده‌تر وجود دارد که اغلب به عنوان یک تقریب خوب استفاده می‌شود: -![GDD = T max + T min تقسیم بر 2، همه منهای T base](../../../../../translated_images/fa/gdd-calculation.79b3660f9c5757aa92dc2dd2cdde75344e2d2c1565c4b3151640f7887edc0275.png) +![GDD = T max + T min تقسیم بر 2، همه منهای T base](../../../../../translated_images/fa/gdd-calculation.79b3660f9c5757aa.webp) * **GDD** - این تعداد روزهای درجه رشد است * **T max** - این دمای حداکثر روزانه به درجه سانتی‌گراد است @@ -118,7 +118,7 @@ این محاسبه به صورت زیر است: -![GDD = 16 + 12 تقسیم بر 2، همه منهای 10، نتیجه 4](../../../../../translated_images/fa/gdd-calculation-corn.64a58b7a7afcd0dfd46ff733996d939f17f4f3feac9f0d1c632be3523e51ebd9.png) +![GDD = 16 + 12 تقسیم بر 2، همه منهای 10، نتیجه 4](../../../../../translated_images/fa/gdd-calculation-corn.64a58b7a7afcd0df.webp) ذرت در آن روز 4 GDD دریافت کرد. با فرض اینکه نوعی از ذرت به 800 GDD برای بلوغ نیاز دارد، هنوز به 796 GDD دیگر نیاز دارد تا به بلوغ برسد. @@ -239,7 +239,7 @@ برای مثال، اگر بالاترین دمای روز ۲۵ درجه سانتی‌گراد و پایین‌ترین دما ۱۲ درجه سانتی‌گراد باشد: -![GDD = 25 + 12 تقسیم بر 2، سپس 10 را از نتیجه کم کنید که برابر با 8.5 می‌شود](../../../../../translated_images/fa/gdd-calculation-strawberries.59f57db94b22adb8ff6efb951ace33af104a1c6ccca3ffb0f8169c14cb160c90.png) +![GDD = 25 + 12 تقسیم بر 2، سپس 10 را از نتیجه کم کنید که برابر با 8.5 می‌شود](../../../../../translated_images/fa/gdd-calculation-strawberries.59f57db94b22adb8.webp) * ۲۵ + ۱۲ = ۳۷ * ۳۷ / ۲ = ۱۸.۵ diff --git a/translations/fa/2-farm/lessons/1-predict-plant-growth/assignment.md b/translations/fa/2-farm/lessons/1-predict-plant-growth/assignment.md index 454466b28..725336dc0 100644 --- a/translations/fa/2-farm/lessons/1-predict-plant-growth/assignment.md +++ b/translations/fa/2-farm/lessons/1-predict-plant-growth/assignment.md @@ -33,7 +33,7 @@ Jupyter شروع به کار می‌کند و دفترچه را در مرورگر شما باز می‌کند. دستورالعمل‌های موجود در دفترچه را دنبال کنید تا دماهای اندازه‌گیری شده را نمایش دهید و روزهای درجه رشد را محاسبه کنید. - ![دفترچه Jupyter](../../../../../translated_images/fa/gdd-jupyter-notebook.c5b52cf21094f158a61f47f455490fd95f1729777ff90861a4521820bf354cdc.png) + ![دفترچه Jupyter](../../../../../translated_images/fa/gdd-jupyter-notebook.c5b52cf21094f158.webp) ## معیارها diff --git a/translations/fa/2-farm/lessons/1-predict-plant-growth/pi-temp.md b/translations/fa/2-farm/lessons/1-predict-plant-growth/pi-temp.md index b8ac8aa6c..91a961bdd 100644 --- a/translations/fa/2-farm/lessons/1-predict-plant-growth/pi-temp.md +++ b/translations/fa/2-farm/lessons/1-predict-plant-growth/pi-temp.md @@ -16,13 +16,13 @@ حسگر دما را وصل کنید. -![یک حسگر دمای Grove](../../../../../translated_images/fa/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![یک حسگر دمای Grove](../../../../../translated_images/fa/grove-dht11.07f8eafceee17004.webp) 1. یک سر کابل Grove را به سوکت روی حسگر رطوبت و دما وارد کنید. این کابل فقط به یک جهت وارد می‌شود. 1. با خاموش بودن رزبری پای، سر دیگر کابل Grove را به سوکت دیجیتال با علامت **D5** روی کلاهک پایه Grove که به پای متصل است، وصل کنید. این سوکت دومین سوکت از سمت چپ در ردیف سوکت‌های کنار پین‌های GPIO است. -![حسگر دمای Grove متصل به سوکت A0](../../../../../translated_images/fa/pi-temperature-sensor.3ff82fff672c8e565ef25a39d26d111de006b825a7e0867227ef4e7fbff8553c.png) +![حسگر دمای Grove متصل به سوکت A0](../../../../../translated_images/fa/pi-temperature-sensor.3ff82fff672c8e56.webp) ## برنامه‌نویسی حسگر دما diff --git a/translations/fa/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md b/translations/fa/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md index ad701b5f1..22f47bb5c 100644 --- a/translations/fa/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md +++ b/translations/fa/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md @@ -38,11 +38,11 @@ 1. دکمه **Add** را انتخاب کنید تا حسگر رطوبت روی پین 5 ایجاد شود. - ![تنظیمات حسگر رطوبت](../../../../../translated_images/fa/counterfit-create-humidity-sensor.2750e27b6f30e09cf4e22101defd5252710717620816ab41ba688f91f757c49a.png) + ![تنظیمات حسگر رطوبت](../../../../../translated_images/fa/counterfit-create-humidity-sensor.2750e27b6f30e09c.webp) حسگر رطوبت ایجاد شده و در لیست حسگرها ظاهر خواهد شد. - ![حسگر رطوبت ایجاد شده](../../../../../translated_images/fa/counterfit-humidity-sensor.7b12f7f339e430cb26c8211d2dba4ef75261b353a01da0932698b5bebd693f27.png) + ![حسگر رطوبت ایجاد شده](../../../../../translated_images/fa/counterfit-humidity-sensor.7b12f7f339e430cb.webp) 1. یک حسگر دما ایجاد کنید: @@ -54,11 +54,11 @@ 1. دکمه **Add** را انتخاب کنید تا حسگر دما روی پین 6 ایجاد شود. - ![تنظیمات حسگر دما](../../../../../translated_images/fa/counterfit-create-temperature-sensor.199350ed34f7343d79dccbe95eaf6c11d2121f03d1c35ab9613b330c23f39b29.png) + ![تنظیمات حسگر دما](../../../../../translated_images/fa/counterfit-create-temperature-sensor.199350ed34f7343d.webp) حسگر دما ایجاد شده و در لیست حسگرها ظاهر خواهد شد. - ![حسگر دما ایجاد شده](../../../../../translated_images/fa/counterfit-temperature-sensor.f0560236c96a9016bafce7f6f792476fe3367bc6941a1f7d5811d144d4bcbfff.png) + ![حسگر دما ایجاد شده](../../../../../translated_images/fa/counterfit-temperature-sensor.f0560236c96a9016.webp) ## برنامه‌نویسی برنامه حسگر دما diff --git a/translations/fa/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md b/translations/fa/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md index e04e8a73e..0ddd2dc29 100644 --- a/translations/fa/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md +++ b/translations/fa/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md @@ -18,7 +18,7 @@ Wio Terminal به یک حسگر دما نیاز دارد. حسگر دما را متصل کنید. -![یک حسگر دمای Grove](../../../../../translated_images/fa/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![یک حسگر دمای Grove](../../../../../translated_images/fa/grove-dht11.07f8eafceee17004.webp) 1. یک سر کابل Grove را به سوکت روی حسگر رطوبت و دما وارد کنید. این کابل فقط از یک جهت وارد می‌شود. diff --git a/translations/fa/2-farm/lessons/2-detect-soil-moisture/README.md b/translations/fa/2-farm/lessons/2-detect-soil-moisture/README.md index 8988c4c3e..593eb93af 100644 --- a/translations/fa/2-farm/lessons/2-detect-soil-moisture/README.md +++ b/translations/fa/2-farm/lessons/2-detect-soil-moisture/README.md @@ -13,7 +13,7 @@ I²C دارای گذرگاهی است که از 2 سیم اصلی، همراه | VCC | جمع‌کننده ولتاژ مشترک | منبع تغذیه برای دستگاه‌ها. این سیم به سیم‌های SDA و SCL متصل است تا از طریق مقاومت کششی، توان آن‌ها را تأمین کند و سیگنال را زمانی که هیچ دستگاهی کنترل‌کننده نیست خاموش کند. | | GND | زمین | این سیم زمین مشترک برای مدار الکتریکی فراهم می‌کند. | -![گذرگاه I2C با 3 دستگاه متصل به سیم‌های SDA و SCL که یک سیم زمین مشترک را به اشتراک می‌گذارند](../../../../../translated_images/fa/i2c.83da845dde02256bdd462dbe0d5145461416b74930571b89d1ae142841eeb584.png) +![گذرگاه I2C با 3 دستگاه متصل به سیم‌های SDA و SCL که یک سیم زمین مشترک را به اشتراک می‌گذارند](../../../../../translated_images/fa/i2c.83da845dde02256b.webp) برای ارسال داده، یک دستگاه شرایط شروع را صادر می‌کند تا نشان دهد آماده ارسال داده است. سپس به کنترل‌کننده تبدیل می‌شود. کنترل‌کننده سپس آدرس دستگاهی را که می‌خواهد با آن ارتباط برقرار کند، همراه با اینکه آیا می‌خواهد داده بخواند یا بنویسد، ارسال می‌کند. پس از انتقال داده‌ها، کنترل‌کننده شرایط توقف را ارسال می‌کند تا نشان دهد که کارش تمام شده است. پس از این، دستگاه دیگری می‌تواند به کنترل‌کننده تبدیل شود و داده‌ها را ارسال یا دریافت کند. diff --git a/translations/fa/2-farm/lessons/2-detect-soil-moisture/assignment.md b/translations/fa/2-farm/lessons/2-detect-soil-moisture/assignment.md index fb57ca0a0..2dc49bba0 100644 --- a/translations/fa/2-farm/lessons/2-detect-soil-moisture/assignment.md +++ b/translations/fa/2-farm/lessons/2-detect-soil-moisture/assignment.md @@ -20,7 +20,7 @@ رطوبت خاک به روش وزنی به صورت زیر محاسبه می‌شود: -![درصد رطوبت خاک برابر است با وزن خاک مرطوب منهای وزن خاک خشک، تقسیم بر وزن خاک خشک، ضربدر 100](../../../../../translated_images/fa/gsm-calculation.6da38c6201eec14e7573bb2647aa18892883193553d23c9d77e5dc681522dfb2.png) +![درصد رطوبت خاک برابر است با وزن خاک مرطوب منهای وزن خاک خشک، تقسیم بر وزن خاک خشک، ضربدر 100](../../../../../translated_images/fa/gsm-calculation.6da38c6201eec14e.webp) * W - وزن خاک مرطوب @@ -29,7 +29,7 @@ برای مثال، فرض کنید یک نمونه خاک دارید که وزن آن در حالت مرطوب 212 گرم و در حالت خشک 197 گرم است. -![محاسبه تکمیل شده](../../../../../translated_images/fa/gsm-calculation-example.99f9803b4f29e97668e7c15412136c0c399ab12dbba0b89596fdae9d8aedb6fb.png) +![محاسبه تکمیل شده](../../../../../translated_images/fa/gsm-calculation-example.99f9803b4f29e976.webp) * W = 212g * W = 197g diff --git a/translations/fa/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md b/translations/fa/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md index cc7c95928..6657b5cb1 100644 --- a/translations/fa/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md +++ b/translations/fa/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md @@ -18,13 +18,13 @@ حسگر رطوبت خاک را وصل کنید. -![یک حسگر رطوبت خاک Grove](../../../../../translated_images/fa/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![یک حسگر رطوبت خاک Grove](../../../../../translated_images/fa/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. یک سر کابل Grove را به سوکت روی حسگر رطوبت خاک وارد کنید. این کابل فقط به یک شکل وارد می‌شود. 1. با خاموش بودن رزبری پای، سر دیگر کابل Grove را به سوکت آنالوگ با علامت **A0** روی Grove Base Hat متصل به رزبری پای وصل کنید. این سوکت دومین سوکت از سمت راست در ردیف سوکت‌های کنار پین‌های GPIO است. -![حسگر رطوبت خاک Grove متصل به سوکت A0](../../../../../translated_images/fa/pi-soil-moisture-sensor.fdd7eb2393792cf6739cacf1985d9f55beda16d372f30d0b5a51d586f978a870.png) +![حسگر رطوبت خاک Grove متصل به سوکت A0](../../../../../translated_images/fa/pi-soil-moisture-sensor.fdd7eb2393792cf6.webp) 1. حسگر رطوبت خاک را در خاک قرار دهید. این حسگر دارای یک "خط بالاترین موقعیت" است - یک خط سفید روی حسگر. حسگر را تا این خط وارد کنید اما از آن عبور نکنید. diff --git a/translations/fa/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md b/translations/fa/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md index 9351dcfdd..cd8c415c2 100644 --- a/translations/fa/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md +++ b/translations/fa/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md @@ -34,11 +34,11 @@ 1. دکمه **Add** را انتخاب کنید تا حسگر *Soil Moisture* روی پین ۰ ایجاد شود. - ![تنظیمات حسگر رطوبت خاک](../../../../../translated_images/fa/counterfit-create-soil-moisture-sensor.35266135a5e0ae68b29a684d7db0d2933a8098b2307d197f7c71577b724603aa.png) + ![تنظیمات حسگر رطوبت خاک](../../../../../translated_images/fa/counterfit-create-soil-moisture-sensor.35266135a5e0ae68.webp) حسگر رطوبت خاک ایجاد شده و در لیست حسگرها ظاهر می‌شود. - ![حسگر رطوبت خاک ایجاد شده](../../../../../translated_images/fa/counterfit-soil-moisture-sensor.81742b2de0e9de60a3b3b9a2ff8ecc686d428eb6d71820f27a693be26e5aceee.png) + ![حسگر رطوبت خاک ایجاد شده](../../../../../translated_images/fa/counterfit-soil-moisture-sensor.81742b2de0e9de60.webp) ## برنامه‌نویسی برنامه حسگر رطوبت خاک diff --git a/translations/fa/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md b/translations/fa/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md index 8fffa4dc3..8adf002d2 100644 --- a/translations/fa/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md +++ b/translations/fa/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md @@ -18,7 +18,7 @@ حسگر رطوبت خاک را متصل کنید. -![یک حسگر رطوبت خاک Grove](../../../../../translated_images/fa/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![یک حسگر رطوبت خاک Grove](../../../../../translated_images/fa/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. یک سر کابل Grove را به سوکت روی حسگر رطوبت خاک وارد کنید. کابل فقط از یک جهت وارد می‌شود. diff --git a/translations/fa/2-farm/lessons/3-automated-plant-watering/README.md b/translations/fa/2-farm/lessons/3-automated-plant-watering/README.md index 266fd6e25..a3663b2db 100644 --- a/translations/fa/2-farm/lessons/3-automated-plant-watering/README.md +++ b/translations/fa/2-farm/lessons/3-automated-plant-watering/README.md @@ -1,6 +1,6 @@ # آبیاری خودکار گیاهان -![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-7.30b5f577d3cb8e031238751475cb519c7d6dbaea261b5df4643d086ffb2a03bb.jpg) +![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-7.30b5f577d3cb8e03.webp) > اسکچ‌نوت توسط [نیتیا ناراسیمهان](https://github.com/nitya). برای مشاهده نسخه بزرگ‌تر روی تصویر کلیک کنید. @@ -32,7 +32,7 @@ راه‌حل این است که پمپ به یک منبع تغذیه خارجی متصل شود و از یک عملگر برای روشن کردن پمپ استفاده شود، مشابه اینکه چگونه یک چراغ را روشن می‌کنید. مقدار کمی انرژی (به شکل انرژی در بدن شما) برای انگشت شما کافی است تا یک کلید را فشار دهد، و این کلید چراغ را به برق اصلی متصل می‌کند که با ولتاژ 110v/240v کار می‌کند. -![یک کلید چراغ برق را به چراغ وصل می‌کند](../../../../../translated_images/fa/light-switch.760317ad6ab8bd6d611da5352dfe9c73a94a0822ccec7df3c8bae35da18e1658.png) +![یک کلید چراغ برق را به چراغ وصل می‌کند](../../../../../translated_images/fa/light-switch.760317ad6ab8bd6d.webp) > 🎓 [برق اصلی](https://wikipedia.org/wiki/Mains_electricity) به برق تحویلی به خانه‌ها و کسب‌وکارها از طریق زیرساخت ملی در بسیاری از نقاط جهان اشاره دارد. @@ -72,7 +72,7 @@ الکترومغناطیس برای فعال شدن و کشیدن اهرم به مقدار زیادی برق نیاز ندارد، می‌توان آن را با خروجی 3.3V یا 5V از یک کیت توسعه IoT کنترل کرد. مدار خروجی می‌تواند برق بیشتری حمل کند، بسته به رله، از جمله ولتاژ اصلی یا حتی سطوح توان بالاتر برای استفاده صنعتی. به این ترتیب یک کیت توسعه IoT می‌تواند یک سیستم آبیاری را کنترل کند، از یک پمپ کوچک برای یک گیاه واحد تا یک سیستم صنعتی عظیم برای یک مزرعه تجاری کامل. -![یک رله Grove با مدار کنترل، مدار خروجی و رله برچسب‌گذاری شده](../../../../../translated_images/fa/grove-relay-labelled.293e068f5c3c2a199bd7892f2661fdc9e10c920b535cfed317fbd6d1d4ae1168.png) +![یک رله Grove با مدار کنترل، مدار خروجی و رله برچسب‌گذاری شده](../../../../../translated_images/fa/grove-relay-labelled.293e068f5c3c2a19.webp) تصویر بالا یک رله Grove را نشان می‌دهد. مدار کنترل به یک دستگاه IoT متصل می‌شود و رله را با استفاده از 3.3V یا 5V روشن یا خاموش می‌کند. مدار خروجی دارای دو ترمینال است، هر کدام می‌توانند برق یا زمین باشند. مدار خروجی می‌تواند تا 250V با 10A را تحمل کند، که برای طیف وسیعی از دستگاه‌های تغذیه‌شده با برق اصلی کافی است. شما می‌توانید رله‌هایی تهیه کنید که حتی سطوح توان بالاتری را تحمل کنند. diff --git a/translations/fa/2-farm/lessons/3-automated-plant-watering/pi-relay.md b/translations/fa/2-farm/lessons/3-automated-plant-watering/pi-relay.md index efafa7ad3..bee5aa806 100644 --- a/translations/fa/2-farm/lessons/3-automated-plant-watering/pi-relay.md +++ b/translations/fa/2-farm/lessons/3-automated-plant-watering/pi-relay.md @@ -18,13 +18,13 @@ رله را وصل کنید. -![یک رله Grove](../../../../../translated_images/fa/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) +![یک رله Grove](../../../../../translated_images/fa/grove-relay.d426958ca210fbd0.webp) 1. یک سر کابل Grove را به سوکت روی رله وارد کنید. کابل فقط از یک جهت وارد می‌شود. 1. با خاموش بودن رزبری پای، سر دیگر کابل Grove را به سوکت دیجیتال با علامت **D5** روی Grove Base Hat که به پای متصل است وصل کنید. این سوکت دومین سوکت از سمت چپ در ردیف سوکت‌های کنار پین‌های GPIO است. سنسور رطوبت خاک را به سوکت **A0** متصل نگه دارید. -![رله Grove متصل به سوکت D5 و سنسور رطوبت خاک متصل به سوکت A0](../../../../../translated_images/fa/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e69ec716cd2719ce117700bd1fc933eaf93476c103c57939b.png) +![رله Grove متصل به سوکت D5 و سنسور رطوبت خاک متصل به سوکت A0](../../../../../translated_images/fa/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e.webp) 1. سنسور رطوبت خاک را در خاک قرار دهید، اگر قبلاً از درس قبلی در خاک قرار داده نشده است. diff --git a/translations/fa/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md b/translations/fa/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md index a85f51fd9..3845f99a4 100644 --- a/translations/fa/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md +++ b/translations/fa/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md @@ -28,11 +28,11 @@ 1. دکمه **Add** را انتخاب کنید تا رله روی پین 5 ایجاد شود. - ![تنظیمات رله](../../../../../translated_images/fa/counterfit-create-relay.fa7c40fd0f2f6afc33b35ea94fcb235085be4861e14e3fe6b9b7bcfc82d1c888.png) + ![تنظیمات رله](../../../../../translated_images/fa/counterfit-create-relay.fa7c40fd0f2f6afc.webp) رله ایجاد خواهد شد و در لیست محرک‌ها ظاهر می‌شود. - ![رله ایجاد شده](../../../../../translated_images/fa/counterfit-relay.bbf74c1dbdc8b9acd983367fcbd06703a402aefef6af54ddb28e11307ba8a12c.png) + ![رله ایجاد شده](../../../../../translated_images/fa/counterfit-relay.bbf74c1dbdc8b9ac.webp) ## برنامه‌نویسی رله diff --git a/translations/fa/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md b/translations/fa/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md index 371c25a1d..73ff60d98 100644 --- a/translations/fa/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md +++ b/translations/fa/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md @@ -18,7 +18,7 @@ Wio Terminal به یک رله نیاز دارد. رله را متصل کنید. -![یک رله Grove](../../../../../translated_images/fa/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) +![یک رله Grove](../../../../../translated_images/fa/grove-relay.d426958ca210fbd0.webp) 1. یک سر کابل Grove را به سوکت روی رله وارد کنید. این کابل فقط از یک جهت وارد می‌شود. diff --git a/translations/fa/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md b/translations/fa/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md index b16bf753b..f7a1fd488 100644 --- a/translations/fa/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md +++ b/translations/fa/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md @@ -1,6 +1,6 @@ # انتقال گیاه شما به فضای ابری -![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-8.3f21f3c11159e6a0a376351973ea5724d5de68fa23b4288853a174bed9ac48c3.jpg) +![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-8.3f21f3c11159e6a0.webp) > اسکچ‌نوت توسط [نیتیا ناراسیمهان](https://github.com/nitya). برای مشاهده نسخه بزرگ‌تر روی تصویر کلیک کنید. @@ -46,8 +46,8 @@ فضای ابری اغلب به شوخی به عنوان "کامپیوتر شخص دیگری" نامیده می‌شود. ایده اولیه ساده بود - به جای خرید کامپیوتر، شما کامپیوتر شخص دیگری را اجاره می‌کنید. شخص دیگری، یک ارائه‌دهنده خدمات فضای ابری، مراکز داده عظیمی را مدیریت می‌کند. آن‌ها مسئول خرید و نصب سخت‌افزار، مدیریت برق و خنک‌کننده، شبکه‌سازی، امنیت ساختمان، به‌روزرسانی سخت‌افزار و نرم‌افزار و همه چیز هستند. به عنوان مشتری، شما کامپیوترهایی را که نیاز دارید اجاره می‌کنید، در زمان افزایش تقاضا بیشتر اجاره می‌کنید و در زمان کاهش تقاضا تعداد اجاره‌ها را کاهش می‌دهید. این مراکز داده ابری در سراسر جهان قرار دارند. -![یک مرکز داده ابری مایکروسافت](../../../../../translated_images/fa/azure-region-existing.73f704604f2aa6cb9b5a49ed40e93d4fd81ae3f4e6af4a8ca504023902832f56.png) -![برنامه توسعه یک مرکز داده ابری مایکروسافت](../../../../../translated_images/fa/azure-region-planned-expansion.a5074a1e8af74f156a73552d502429e5b126ea5019274d767ecb4b9afdad442b.png) +![یک مرکز داده ابری مایکروسافت](../../../../../translated_images/fa/azure-region-existing.73f704604f2aa6cb.webp) +![برنامه توسعه یک مرکز داده ابری مایکروسافت](../../../../../translated_images/fa/azure-region-planned-expansion.a5074a1e8af74f15.webp) این مراکز داده می‌توانند چندین کیلومتر مربع وسعت داشته باشند. تصاویر بالا چند سال پیش در یک مرکز داده ابری مایکروسافت گرفته شده‌اند و اندازه اولیه و برنامه توسعه را نشان می‌دهند. منطقه‌ای که برای توسعه پاکسازی شده است بیش از ۵ کیلومتر مربع وسعت دارد. @@ -108,11 +108,11 @@ Azure ابر توسعه‌دهندگان مایکروسافت است و این دستگاه‌های IoT به یک سرویس ابری یا از طریق یک SDK دستگاه (کتابخانه‌ای که کدی برای کار با ویژگی‌های سرویس ارائه می‌دهد) یا مستقیماً از طریق یک پروتکل ارتباطی مانند MQTT یا HTTP متصل می‌شوند. SDK دستگاه معمولاً ساده‌ترین مسیر است زیرا همه چیز را برای شما مدیریت می‌کند، مانند دانستن اینکه چه موضوعاتی باید منتشر یا مشترک شوند و چگونه امنیت را مدیریت کند. -![دستگاه‌ها با استفاده از SDK دستگاه به سرویس متصل می‌شوند. کد سرور نیز از طریق SDK به سرویس متصل می‌شود](../../../../../translated_images/fa/iot-service-connectivity.7e873847921a5d6fd60d0ba3a943210194518cee0d4e362476624316443275c3.png) +![دستگاه‌ها با استفاده از SDK دستگاه به سرویس متصل می‌شوند. کد سرور نیز از طریق SDK به سرویس متصل می‌شود](../../../../../translated_images/fa/iot-service-connectivity.7e873847921a5d6f.webp) دستگاه شما سپس از طریق این سرویس با سایر بخش‌های برنامه شما ارتباط برقرار می‌کند - مشابه نحوه ارسال داده‌های تله‌متری و دریافت دستورات از طریق MQTT. این معمولاً با استفاده از یک SDK سرویس یا کتابخانه مشابه انجام می‌شود. پیام‌ها از دستگاه شما به سرویس ارسال می‌شوند، جایی که سایر اجزای برنامه شما می‌توانند آن‌ها را بخوانند، و پیام‌ها می‌توانند به دستگاه شما ارسال شوند. -![دستگاه‌هایی که کلید مخفی معتبر ندارند نمی‌توانند به سرویس IoT متصل شوند](../../../../../translated_images/fa/iot-service-allowed-denied-connection.818b0063ac213fb84204a7229303764d9b467ca430fb822b4ac2fca267d56726.png) +![دستگاه‌هایی که کلید مخفی معتبر ندارند نمی‌توانند به سرویس IoT متصل شوند](../../../../../translated_images/fa/iot-service-allowed-denied-connection.818b0063ac213fb8.webp) این خدمات امنیت را با دانستن همه دستگاه‌هایی که می‌توانند متصل شوند و داده ارسال کنند، اجرا می‌کنند، یا با ثبت‌نام قبلی دستگاه‌ها در سرویس یا با دادن کلیدهای مخفی یا گواهی‌نامه‌هایی به دستگاه‌ها که می‌توانند هنگام اولین اتصال خود را در سرویس ثبت کنند. دستگاه‌های ناشناخته نمی‌توانند متصل شوند، اگر تلاش کنند سرویس اتصال را رد می‌کند و پیام‌های ارسال‌شده توسط آن‌ها را نادیده می‌گیرد. @@ -124,7 +124,7 @@ Azure ابر توسعه‌دهندگان مایکروسافت است و این حالا که اشتراک Azure دارید، می‌توانید برای یک سرویس IoT ثبت‌نام کنید. سرویس IoT مایکروسافت به نام Azure IoT Hub شناخته می‌شود. -![لوگوی Azure IoT Hub](../../../../../translated_images/fa/azure-iot-hub-logo.28a19de76d0a1932464d858f7558712bcdace3e5ec69c434d482ed7ce41c3a26.png) +![لوگوی Azure IoT Hub](../../../../../translated_images/fa/azure-iot-hub-logo.28a19de76d0a1932.webp) ویدئوی زیر یک مرور کوتاه از Azure IoT Hub ارائه می‌دهد: diff --git a/translations/fa/2-farm/lessons/5-migrate-application-to-the-cloud/README.md b/translations/fa/2-farm/lessons/5-migrate-application-to-the-cloud/README.md index 7086634ec..ed6f49d3b 100644 --- a/translations/fa/2-farm/lessons/5-migrate-application-to-the-cloud/README.md +++ b/translations/fa/2-farm/lessons/5-migrate-application-to-the-cloud/README.md @@ -1,6 +1,6 @@ # انتقال منطق برنامه به فضای ابری -![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-9.dfe99c8e891f48e179724520da9f5794392cf9a625079281ccdcbf09bd85e1b6.jpg) +![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-9.dfe99c8e891f48e1.webp) > اسکچ‌نوت توسط [نیتیا ناراسیمهان](https://github.com/nitya). برای مشاهده نسخه بزرگ‌تر روی تصویر کلیک کنید. @@ -28,7 +28,7 @@ بدون سرور، یا محاسبات بدون سرور، شامل ایجاد بلوک‌های کوچک کدی است که در پاسخ به انواع مختلف رویدادها در فضای ابری اجرا می‌شوند. وقتی رویدادی رخ می‌دهد، کد شما اجرا شده و داده‌های مربوط به رویداد به آن ارسال می‌شود. این رویدادها می‌توانند از منابع مختلفی باشند، از جمله درخواست‌های وب، پیام‌های قرار داده شده در صف، تغییرات داده در یک پایگاه داده، یا پیام‌های ارسال شده به یک سرویس IoT توسط دستگاه‌های IoT. -![رویدادهایی که از یک سرویس IoT به یک سرویس بدون سرور ارسال می‌شوند و همگی به طور همزمان توسط چندین تابع پردازش می‌شوند](../../../../../translated_images/fa/iot-messages-to-serverless.0194da1cc0732bb7d0f823aed3fce54735c6b1ad3bf36089804d8aaefc0a774f.png) +![رویدادهایی که از یک سرویس IoT به یک سرویس بدون سرور ارسال می‌شوند و همگی به طور همزمان توسط چندین تابع پردازش می‌شوند](../../../../../translated_images/fa/iot-messages-to-serverless.0194da1cc0732bb7.webp) > 💁 اگر قبلاً از تریگرهای پایگاه داده استفاده کرده‌اید، می‌توانید این را مشابه همان بدانید، کدی که با یک رویداد مانند درج یک ردیف فعال می‌شود. @@ -54,7 +54,7 @@ سرویس محاسبات بدون سرور مایکروسافت به نام Azure Functions شناخته می‌شود. -![لوگوی Azure Functions](../../../../../translated_images/fa/azure-functions-logo.1cfc8e3204c9c44aaf80fcf406fc8544d80d7f00f8d3e8ed6fed764563e17564.png) +![لوگوی Azure Functions](../../../../../translated_images/fa/azure-functions-logo.1cfc8e3204c9c44a.webp) ویدئوی کوتاه زیر نمای کلی از Azure Functions ارائه می‌دهد: diff --git a/translations/fa/2-farm/lessons/6-keep-your-plant-secure/README.md b/translations/fa/2-farm/lessons/6-keep-your-plant-secure/README.md index 759e5e6dc..614c252bb 100644 --- a/translations/fa/2-farm/lessons/6-keep-your-plant-secure/README.md +++ b/translations/fa/2-farm/lessons/6-keep-your-plant-secure/README.md @@ -1,6 +1,6 @@ # گیاه خود را ایمن نگه دارید -![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-10.829c86b80b9403bb770929ee553a1d293afe50dc23121aaf9be144673ae012cc.jpg) +![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-10.829c86b80b9403bb.webp) > اسکچ‌نوت توسط [نیتیا ناراسیمهان](https://github.com/nitya). برای مشاهده نسخه بزرگ‌تر روی تصویر کلیک کنید. @@ -52,11 +52,11 @@ وقتی یک دستگاه به یک سرویس اینترنت اشیا متصل می‌شود، از یک شناسه برای شناسایی خود استفاده می‌کند. مشکل این است که این شناسه می‌تواند کپی شود - یک هکر می‌تواند یک دستگاه مخرب راه‌اندازی کند که از همان شناسه یک دستگاه واقعی استفاده می‌کند اما داده‌های جعلی ارسال می‌کند. -![هم دستگاه معتبر و هم دستگاه مخرب می‌توانند از یک شناسه برای ارسال تله‌متری استفاده کنند](../../../../../translated_images/fa/iot-device-and-hacked-device-connecting.e0671675df74d6d99eb1dedb5a670e606f698efa6202b1ad4c8ae548db299cc6.png) +![هم دستگاه معتبر و هم دستگاه مخرب می‌توانند از یک شناسه برای ارسال تله‌متری استفاده کنند](../../../../../translated_images/fa/iot-device-and-hacked-device-connecting.e0671675df74d6d9.webp) راه‌حل این مشکل تبدیل داده‌های ارسالی به یک فرمت رمزگذاری‌شده است، با استفاده از مقداری که فقط دستگاه و ابر آن را می‌دانند. این فرآیند *رمزگذاری* نامیده می‌شود و مقداری که برای رمزگذاری داده‌ها استفاده می‌شود *کلید رمزگذاری* نام دارد. -![اگر از رمزگذاری استفاده شود، فقط پیام‌های رمزگذاری‌شده پذیرفته می‌شوند و سایر پیام‌ها رد می‌شوند](../../../../../translated_images/fa/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f979e46f2849b573564eeb4a4dc5b52f669f62745397492fb.png) +![اگر از رمزگذاری استفاده شود، فقط پیام‌های رمزگذاری‌شده پذیرفته می‌شوند و سایر پیام‌ها رد می‌شوند](../../../../../translated_images/fa/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f.webp) سرویس ابری سپس می‌تواند داده‌ها را به یک فرمت قابل خواندن تبدیل کند، با استفاده از فرآیندی به نام *رمزگشایی*، با استفاده از همان کلید رمزگذاری یا یک *کلید رمزگشایی*. اگر پیام رمزگذاری‌شده توسط کلید رمزگشایی نشود، دستگاه هک شده و پیام رد می‌شود. diff --git a/translations/fa/3-transport/lessons/1-location-tracking/README.md b/translations/fa/3-transport/lessons/1-location-tracking/README.md index 7046df8a7..ff697cf7d 100644 --- a/translations/fa/3-transport/lessons/1-location-tracking/README.md +++ b/translations/fa/3-transport/lessons/1-location-tracking/README.md @@ -1,6 +1,6 @@ # ردیابی موقعیت -![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-11.9fddbac4b664c6d50ab7ac9bb32f1fc3f945f03760e72f7f43938073762fb017.jpg) +![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-11.9fddbac4b664c6d5.webp) > اسکچ‌نوت توسط [نیتیا ناراسیمهان](https://github.com/nitya). برای مشاهده نسخه بزرگ‌تر روی تصویر کلیک کنید. @@ -63,13 +63,13 @@ IoT در حال تغییر نحوه حمل‌ونقل کالاها با ایجا > 💁 هیچ‌کس واقعاً دلیل اصلی تقسیم دایره‌ها به 360 درجه را نمی‌داند. صفحه [درجه (زاویه) در ویکی‌پدیا](https://wikipedia.org/wiki/Degree_(angle)) برخی از دلایل احتمالی را پوشش می‌دهد. -![خطوط عرض جغرافیایی از 90° در قطب شمال، 45° در نیمه‌راه بین قطب شمال و استوا، 0° در استوا، -45° در نیمه‌راه بین استوا و قطب جنوب، و -90° در قطب جنوب](../../../../../translated_images/fa/latitude-lines.11d8d91dfb2014a57437272d7db7fd6607243098e8685f06e0c5f1ec984cb7eb.png) +![خطوط عرض جغرافیایی از 90° در قطب شمال، 45° در نیمه‌راه بین قطب شمال و استوا، 0° در استوا، -45° در نیمه‌راه بین استوا و قطب جنوب، و -90° در قطب جنوب](../../../../../translated_images/fa/latitude-lines.11d8d91dfb2014a5.webp) عرض جغرافیایی با خطوطی اندازه‌گیری می‌شود که زمین را دور می‌زنند و موازی با استوا هستند، نیمکره‌های شمالی و جنوبی را به 90° تقسیم می‌کنند. استوا در 0° قرار دارد، قطب شمال در 90°، که به عنوان 90° شمال نیز شناخته می‌شود، و قطب جنوب در -90°، یا 90° جنوب قرار دارد. طول جغرافیایی به عنوان تعداد درجه‌های اندازه‌گیری شده شرق و غرب اندازه‌گیری می‌شود. مبدأ 0° طول جغرافیایی *نصف‌النهار مبدأ* نامیده می‌شود و در سال 1884 به عنوان خطی از قطب شمال به قطب جنوب که از [رصدخانه سلطنتی بریتانیا در گرینویچ، انگلستان](https://wikipedia.org/wiki/Royal_Observatory,_Greenwich) عبور می‌کند، تعریف شد. -![خطوط طول جغرافیایی که از -180° به غرب نصف‌النهار مبدأ، تا 0° روی نصف‌النهار مبدأ، تا 180° شرق نصف‌النهار مبدأ می‌روند](../../../../../translated_images/fa/longitude-meridians.ab4ef1c91c064586b0185a3c8d39e585903696c6a7d28c098a93a629cddb5d20.png) +![خطوط طول جغرافیایی که از -180° به غرب نصف‌النهار مبدأ، تا 0° روی نصف‌النهار مبدأ، تا 180° شرق نصف‌النهار مبدأ می‌روند](../../../../../translated_images/fa/longitude-meridians.ab4ef1c91c064586.webp) > 🎓 نصف‌النهار یک خط مستقیم خیالی است که از قطب شمال به قطب جنوب می‌رود و یک نیم‌دایره تشکیل می‌دهد. @@ -100,7 +100,7 @@ IoT در حال تغییر نحوه حمل‌ونقل کالاها با ایجا * عرض جغرافیایی 47.6423109 (47.6423109 درجه شمال استوا) * طول جغرافیایی -122.1390293 (122.1390293 درجه غرب نصف‌النهار مبدأ). -![پردیس مایکروسافت در 47.6423109,-122.117198](../../../../../translated_images/fa/microsoft-gps-location-world.a321d481b010f6adfcca139b2ba0adc53b79f58a540495b8e2ce7f779ea64bfe.png) +![پردیس مایکروسافت در 47.6423109,-122.117198](../../../../../translated_images/fa/microsoft-gps-location-world.a321d481b010f6ad.webp) ## سیستم‌های موقعیت‌یابی جهانی (GPS) @@ -112,7 +112,7 @@ IoT در حال تغییر نحوه حمل‌ونقل کالاها با ایجا > 💁 حسگرهای GPS به آنتن‌هایی برای شناسایی امواج رادیویی نیاز دارند. آنتن‌های تعبیه شده در کامیون‌ها و ماشین‌ها با GPS داخلی به گونه‌ای قرار داده شده‌اند که سیگنال خوبی دریافت کنند، معمولاً روی شیشه جلو یا سقف. اگر از یک سیستم GPS جداگانه، مانند گوشی هوشمند یا دستگاه IoT استفاده می‌کنید، باید اطمینان حاصل کنید که آنتن تعبیه شده در سیستم GPS یا گوشی دید واضحی از آسمان دارد، مانند نصب شدن روی شیشه جلو. -![با دانستن فاصله از حسگر تا چندین ماهواره، موقعیت قابل محاسبه است](../../../../../translated_images/fa/gps-satellites.04acf1148fe25fbf1586bc2e8ba698e8d79b79a50c36824b38417dd13372b90f.png) +![با دانستن فاصله از حسگر تا چندین ماهواره، موقعیت قابل محاسبه است](../../../../../translated_images/fa/gps-satellites.04acf1148fe25fbf.webp) ماهواره‌های GPS در حال چرخش به دور زمین هستند، نه در یک نقطه ثابت بالای حسگر، بنابراین داده‌های موقعیت شامل ارتفاع از سطح دریا علاوه بر عرض جغرافیایی و طول جغرافیایی است. diff --git a/translations/fa/3-transport/lessons/1-location-tracking/pi-gps-sensor.md b/translations/fa/3-transport/lessons/1-location-tracking/pi-gps-sensor.md index 0bb09cc67..d465f1dee 100644 --- a/translations/fa/3-transport/lessons/1-location-tracking/pi-gps-sensor.md +++ b/translations/fa/3-transport/lessons/1-location-tracking/pi-gps-sensor.md @@ -18,13 +18,13 @@ حسگر GPS را متصل کنید. -![حسگر Grove GPS](../../../../../translated_images/fa/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![حسگر Grove GPS](../../../../../translated_images/fa/grove-gps-sensor.247943bf69b03f0d.webp) 1. یک سر کابل Grove را به سوکت حسگر GPS وارد کنید. کابل فقط از یک جهت وارد می‌شود. 1. با خاموش بودن رزبری پای، سر دیگر کابل Grove را به سوکت UART که با **UART** روی Grove Base hat متصل به رزبری پای مشخص شده است، وصل کنید. این سوکت در ردیف وسط، در سمت نزدیک به شیار کارت SD قرار دارد، در طرف مقابل پورت‌های USB و سوکت اترنت. - ![حسگر Grove GPS متصل به سوکت UART](../../../../../translated_images/fa/pi-gps-sensor.1f99ee2b2f6528915047ec78967bd362e0e4ee0ed594368a3837b9cf9cdaca64.png) + ![حسگر Grove GPS متصل به سوکت UART](../../../../../translated_images/fa/pi-gps-sensor.1f99ee2b2f652891.webp) 1. حسگر GPS را در موقعیتی قرار دهید که آنتن متصل به آن دید به آسمان داشته باشد - ترجیحاً کنار یک پنجره باز یا در فضای باز. دریافت سیگنال واضح‌تر زمانی آسان‌تر است که چیزی جلوی آنتن نباشد. diff --git a/translations/fa/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md b/translations/fa/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md index 1646f99ed..4f5eb0731 100644 --- a/translations/fa/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md +++ b/translations/fa/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md @@ -38,11 +38,11 @@ 1. دکمه **Add** را انتخاب کنید تا حسگر GPS در پورت `/dev/ttyAMA0` ایجاد شود. - ![تنظیمات حسگر GPS](../../../../../translated_images/fa/counterfit-create-gps-sensor.6385dc9357d85ad1d47b4abb2525e7651fd498917d25eefc5a72feab09eedc70.png) + ![تنظیمات حسگر GPS](../../../../../translated_images/fa/counterfit-create-gps-sensor.6385dc9357d85ad1.webp) حسگر GPS ایجاد شده و در لیست حسگرها ظاهر می‌شود. - ![حسگر GPS ایجاد شده](../../../../../translated_images/fa/counterfit-gps-sensor.3fbb15af0a5367566f2f11324ef5a6f30861cdf2b497071a5e002b7aa473550e.png) + ![حسگر GPS ایجاد شده](../../../../../translated_images/fa/counterfit-gps-sensor.3fbb15af0a536756.webp) ## برنامه‌نویسی حسگر GPS @@ -102,17 +102,17 @@ * مقدار **Source** را روی `Lat/Lon` تنظیم کنید و یک عرض جغرافیایی، طول جغرافیایی و تعداد ماهواره‌های استفاده‌شده برای دریافت موقعیت GPS مشخص کنید. این مقدار فقط یک بار ارسال می‌شود، بنابراین گزینه **Repeat** را علامت بزنید تا داده‌ها هر ثانیه تکرار شوند. - ![حسگر GPS با Lat/Lon تنظیم شده](../../../../../translated_images/fa/counterfit-gps-sensor-latlon.008c867d75464fbe7f84107cc57040df565ac07cb57d2f21db37d087d470197d.png) + ![حسگر GPS با Lat/Lon تنظیم شده](../../../../../translated_images/fa/counterfit-gps-sensor-latlon.008c867d75464fbe.webp) * مقدار **Source** را روی `NMEA` تنظیم کنید و چند جمله NMEA در کادر متن وارد کنید. تمام این مقادیر ارسال می‌شوند، با تأخیری ۱ ثانیه‌ای قبل از هر جمله GGA (موقعیت‌یابی). - ![حسگر GPS با جملات NMEA تنظیم شده](../../../../../translated_images/fa/counterfit-gps-sensor-nmea.c62eea442171e17e19528b051b104cfcecdc9cd18db7bc72920f29821ae63f73.png) + ![حسگر GPS با جملات NMEA تنظیم شده](../../../../../translated_images/fa/counterfit-gps-sensor-nmea.c62eea442171e17e.webp) می‌توانید از ابزاری مانند [nmeagen.org](https://www.nmeagen.org) برای تولید این جملات با کشیدن روی نقشه استفاده کنید. این مقادیر فقط یک بار ارسال می‌شوند، بنابراین گزینه **Repeat** را علامت بزنید تا داده‌ها یک ثانیه پس از ارسال کامل تکرار شوند. * مقدار **Source** را روی فایل GPX تنظیم کنید و یک فایل GPX با موقعیت‌های مسیر بارگذاری کنید. می‌توانید فایل‌های GPX را از سایت‌های محبوب نقشه‌برداری و کوهنوردی مانند [AllTrails](https://www.alltrails.com/) دانلود کنید. این فایل‌ها شامل چندین موقعیت GPS به صورت یک مسیر هستند و حسگر GPS هر موقعیت جدید را با فاصله ۱ ثانیه بازمی‌گرداند. - ![حسگر GPS با فایل GPX تنظیم شده](../../../../../translated_images/fa/counterfit-gps-sensor-gpxfile.8310b063ce8a425ccc8ebeec8306aeac5e8e55207f007d52c6e1194432a70cd9.png) + ![حسگر GPS با فایل GPX تنظیم شده](../../../../../translated_images/fa/counterfit-gps-sensor-gpxfile.8310b063ce8a425c.webp) این مقادیر فقط یک بار ارسال می‌شوند، بنابراین گزینه **Repeat** را علامت بزنید تا داده‌ها یک ثانیه پس از ارسال کامل تکرار شوند. diff --git a/translations/fa/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md b/translations/fa/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md index 8c10e4fcf..dae5e85eb 100644 --- a/translations/fa/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md +++ b/translations/fa/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md @@ -18,7 +18,7 @@ Wio Terminal به یک حسگر GPS نیاز دارد. حسگر GPS را متصل کنید. -![یک حسگر Grove GPS](../../../../../translated_images/fa/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![یک حسگر Grove GPS](../../../../../translated_images/fa/grove-gps-sensor.247943bf69b03f0d.webp) 1. یک سر کابل Grove را به سوکت روی حسگر GPS وارد کنید. کابل فقط از یک جهت وارد سوکت می‌شود. diff --git a/translations/fa/3-transport/lessons/2-store-location-data/README.md b/translations/fa/3-transport/lessons/2-store-location-data/README.md index 1cc3e9df0..a38b33fae 100644 --- a/translations/fa/3-transport/lessons/2-store-location-data/README.md +++ b/translations/fa/3-transport/lessons/2-store-location-data/README.md @@ -1,6 +1,6 @@ # ذخیره داده‌های موقعیت مکانی -![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-12.ca7f53039712a3ec14ad6474d8445361c84adab643edc53fa6269b77895606bb.jpg) +![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-12.ca7f53039712a3ec.webp) > اسکچ‌نوت توسط [نیتیا ناراسیمهان](https://github.com/nitya). برای مشاهده نسخه بزرگ‌تر روی تصویر کلیک کنید. @@ -75,7 +75,7 @@ > 💁 با وجود نامشان، برخی از پایگاه‌های داده NoSQL به شما اجازه می‌دهند از SQL برای جستجوی داده‌ها استفاده کنید. -![اسناد در پوشه‌ها در یک پایگاه داده NoSQL](../../../../../translated_images/fa/noqsl-database.62d24ccf5b73f60d35c245a8533f1c7147c0928e955b82cb290b2e184bb434df.png) +![اسناد در پوشه‌ها در یک پایگاه داده NoSQL](../../../../../translated_images/fa/noqsl-database.62d24ccf5b73f60d.webp) پایگاه‌های داده NoSQL طرح‌واره از پیش تعریف‌شده‌ای ندارند که نحوه ذخیره داده‌ها را محدود کند، بلکه می‌توانید هر داده غیرساختاریافته‌ای را وارد کنید، معمولاً با استفاده از اسناد JSON. این اسناد می‌توانند در پوشه‌ها سازماندهی شوند، مشابه فایل‌ها در رایانه شما. هر سند می‌تواند فیلدهای متفاوتی از سایر اسناد داشته باشد - برای مثال، اگر داده‌های IoT از وسایل نقلیه مزرعه خود را ذخیره کنید، برخی ممکن است فیلدهایی برای داده‌های شتاب‌سنج و سرعت داشته باشند، در حالی که برخی دیگر ممکن است فیلدهایی برای دمای داخل تریلر داشته باشند. اگر بخواهید نوع جدیدی از کامیون، مانند کامیونی با ترازوهای داخلی برای ردیابی وزن محصولات حمل‌شده، اضافه کنید، دستگاه IoT شما می‌تواند این فیلد جدید را اضافه کند و بدون هیچ تغییری در پایگاه داده ذخیره شود. @@ -89,7 +89,7 @@ در درس قبلی، داده‌های GPS را از یک حسگر GPS متصل به دستگاه IoT خود ثبت کردید. برای ذخیره این داده‌های IoT در فضای ابری، باید آن‌ها را به یک سرویس IoT ارسال کنید. بار دیگر از Azure IoT Hub، همان سرویس IoT ابری که در پروژه قبلی استفاده کردید، استفاده خواهید کرد. -![ارسال داده‌های تله‌متری GPS از یک دستگاه IoT به IoT Hub](../../../../../translated_images/fa/gps-telemetry-iot-hub.8115335d51cd2c1285d20e9d1b18cf685e59a8e093e7797291ef173445af6f3d.png) +![ارسال داده‌های تله‌متری GPS از یک دستگاه IoT به IoT Hub](../../../../../translated_images/fa/gps-telemetry-iot-hub.8115335d51cd2c12.webp) ### وظیفه - ارسال داده‌های GPS به یک IoT Hub @@ -171,7 +171,7 @@ message = Message(json.dumps(message_json)) پس از جریان یافتن داده‌ها به IoT Hub، می‌توانید کدی بدون سرور بنویسید تا به رویدادهایی که به نقطه پایانی سازگار با Event Hub منتشر می‌شوند گوش دهد. این مسیر گرم است - این داده‌ها ذخیره می‌شوند و در درس بعدی برای گزارش‌گیری از مسیر استفاده خواهند شد. -![ارسال داده‌های تله‌متری GPS از یک دستگاه IoT به IoT Hub، سپس به Azure Functions از طریق یک تریگر Event Hub](../../../../../translated_images/fa/gps-telemetry-iot-hub-functions.24d3fa5592455e9f4e2fe73856b40c3915a292b90263c31d652acfd976cfedd8.png) +![ارسال داده‌های تله‌متری GPS از یک دستگاه IoT به IoT Hub، سپس به Azure Functions از طریق یک تریگر Event Hub](../../../../../translated_images/fa/gps-telemetry-iot-hub-functions.24d3fa5592455e9f.webp) ### وظیفه - مدیریت رویدادهای GPS با استفاده از کد بدون سرور @@ -193,7 +193,7 @@ message = Message(json.dumps(message_json)) ## حساب‌های ذخیره‌سازی Azure -![لوگوی Azure Storage](../../../../../translated_images/fa/azure-storage-logo.605c0f602c640d482a80f1b35a2629a32d595711b7ab1d7ceea843250615ff32.png) +![لوگوی Azure Storage](../../../../../translated_images/fa/azure-storage-logo.605c0f602c640d48.webp) حساب‌های ذخیره‌سازی Azure یک سرویس ذخیره‌سازی چندمنظوره است که می‌تواند داده‌ها را به روش‌های مختلف ذخیره کند. شما می‌توانید داده‌ها را به صورت blob، در صف‌ها، در جداول یا به صورت فایل ذخیره کنید و همه این‌ها به طور همزمان امکان‌پذیر است. diff --git a/translations/fa/3-transport/lessons/3-visualize-location-data/README.md b/translations/fa/3-transport/lessons/3-visualize-location-data/README.md index 82d0fef66..1d2499cfa 100644 --- a/translations/fa/3-transport/lessons/3-visualize-location-data/README.md +++ b/translations/fa/3-transport/lessons/3-visualize-location-data/README.md @@ -1,6 +1,6 @@ # نمایش داده‌های مکانی -![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-13.a259db1485021be7d7c72e90842fbe0ab977529e8684c179b5fb1ea75e92b3ef.jpg) +![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-13.a259db1485021be7.webp) > اسکچ‌نوت توسط [نیتیا ناراسیمهان](https://github.com/nitya). برای مشاهده نسخه بزرگ‌تر روی تصویر کلیک کنید. @@ -64,11 +64,11 @@ درک این داده‌ها به عنوان یک انسان می‌تواند دشوار باشد. این فقط یک دیوار از اعداد است که معنای خاصی ندارد. به عنوان اولین قدم برای بصری‌سازی این داده‌ها، می‌توان آن را روی یک نمودار خطی رسم کرد: -![یک نمودار خطی از داده‌های بالا](../../../../../translated_images/fa/chart-soil-moisture.fd6d9d0cdc0b5f75e78038ecb8945dfc84b38851359de99d84b16e3336d6d7c2.png) +![یک نمودار خطی از داده‌های بالا](../../../../../translated_images/fa/chart-soil-moisture.fd6d9d0cdc0b5f75.webp) این نمودار می‌تواند با اضافه کردن یک خط برای نشان دادن زمانی که سیستم آبیاری خودکار در خوانش رطوبت خاک ۴۵۰ روشن شده است، بهبود یابد: -![یک نمودار خطی از رطوبت خاک با یک خط در ۴۵۰](../../../../../translated_images/fa/chart-soil-moisture-relay.fbb391236d34a64d0abf1df396e9197e0a24df14150620b9cc820a64a55c9326.png) +![یک نمودار خطی از رطوبت خاک با یک خط در ۴۵۰](../../../../../translated_images/fa/chart-soil-moisture-relay.fbb391236d34a64d.webp) این نمودار به سرعت نشان می‌دهد که سطح رطوبت خاک چه بوده و نقاطی که سیستم آبیاری روشن شده است. @@ -84,7 +84,7 @@ کار با نقشه‌ها یک تمرین جالب است و گزینه‌های زیادی برای انتخاب وجود دارد، مانند Bing Maps، Leaflet، Open Street Maps، و Google Maps. در این درس، شما با [Azure Maps](https://azure.microsoft.com/services/azure-maps/?WT.mc_id=academic-17441-jabenn) آشنا خواهید شد و یاد خواهید گرفت که چگونه داده‌های GPS خود را نمایش دهید. -![لوگوی Azure Maps](../../../../../translated_images/fa/azure-maps-logo.35d01dcfbd81fe6140e94257aaa1538f785a58c91576d14e0ebe7a2f6c694b99.png) +![لوگوی Azure Maps](../../../../../translated_images/fa/azure-maps-logo.35d01dcfbd81fe61.webp) Azure Maps مجموعه‌ای از خدمات جغرافیایی و SDKهایی است که از داده‌های نقشه‌برداری تازه برای ارائه زمینه جغرافیایی به برنامه‌های وب و موبایل استفاده می‌کند. توسعه‌دهندگان ابزارهایی برای ایجاد نقشه‌های زیبا و تعاملی دریافت می‌کنند که می‌توانند کارهایی مانند ارائه مسیرهای ترافیکی پیشنهادی، اطلاعات درباره حوادث ترافیکی، ناوبری داخلی، قابلیت‌های جستجو، اطلاعات ارتفاع، خدمات آب و هوا و موارد دیگر انجام دهند. @@ -185,7 +185,7 @@ Azure Maps مجموعه‌ای از خدمات جغرافیایی و SDKهایی اگر صفحه `index.html` خود را در یک مرورگر وب باز کنید، باید یک نقشه بارگذاری شده و متمرکز بر منطقه سیاتل را ببینید. - ![یک نقشه که سیاتل، شهری در ایالت واشنگتن، ایالات متحده را نشان می‌دهد](../../../../../translated_images/fa/map-image.8fb2c53eb23ef39c1c0a4410a5282e879b3b452b707eb066ff04c5488d3d72b7.png) + ![یک نقشه که سیاتل، شهری در ایالت واشنگتن، ایالات متحده را نشان می‌دهد](../../../../../translated_images/fa/map-image.8fb2c53eb23ef39c.webp) ✅ با پارامترهای زوم و مرکز آزمایش کنید تا نمایش نقشه خود را تغییر دهید. می‌توانید مختصات مختلف مربوط به عرض و طول جغرافیایی داده‌های خود را اضافه کنید تا نقشه را دوباره متمرکز کنید. @@ -319,7 +319,7 @@ Azure Maps مجموعه‌ای از خدمات جغرافیایی و SDKهایی 1. صفحه HTML را در مرورگر خود بارگذاری کنید. نقشه بارگذاری می‌شود، سپس تمام داده‌های GPS از ذخیره‌سازی بارگذاری شده و روی نقشه نمایش داده می‌شود. - ![نقشه‌ای از پارک ایالتی Saint Edward در نزدیکی سیاتل، با دایره‌هایی که مسیری در اطراف لبه پارک را نشان می‌دهند](../../../../../translated_images/fa/map-path.896832e72dc696ffe20650e4051027d4855442d955f93fdbb80bb417ca8a406f.png) + ![نقشه‌ای از پارک ایالتی Saint Edward در نزدیکی سیاتل، با دایره‌هایی که مسیری در اطراف لبه پارک را نشان می‌دهند](../../../../../translated_images/fa/map-path.896832e72dc696ff.webp) > 💁 شما می‌توانید این کد را در [پوشه کد](../../../../../3-transport/lessons/3-visualize-location-data/code) پیدا کنید. diff --git a/translations/fa/3-transport/lessons/4-geofences/README.md b/translations/fa/3-transport/lessons/4-geofences/README.md index 1d2ed304b..d873ae07e 100644 --- a/translations/fa/3-transport/lessons/4-geofences/README.md +++ b/translations/fa/3-transport/lessons/4-geofences/README.md @@ -1,6 +1,6 @@ # حصارهای جغرافیایی -![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-14.63980c5150ae3c153e770fb71d044c1845dce79248d86bed9fc525adf3ede73c.jpg) +![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-14.63980c5150ae3c15.webp) > اسکچ‌نوت توسط [نیتیا ناراسیمهان](https://github.com/nitya). برای مشاهده نسخه بزرگ‌تر روی تصویر کلیک کنید. @@ -35,7 +35,7 @@ حصار جغرافیایی یک محیط مجازی برای یک منطقه جغرافیایی واقعی است. حصارهای جغرافیایی می‌توانند دایره‌هایی باشند که به عنوان یک نقطه و شعاع تعریف شده‌اند (برای مثال یک دایره به عرض ۱۰۰ متر اطراف یک ساختمان)، یا یک چندضلعی که منطقه‌ای مانند محدوده مدرسه، مرزهای شهری، یا پردیس دانشگاه یا دفتر را پوشش می‌دهد. -![نمونه‌هایی از حصارهای جغرافیایی که یک حصار دایره‌ای اطراف فروشگاه شرکت مایکروسافت و یک حصار چندضلعی اطراف پردیس غربی مایکروسافت را نشان می‌دهند](../../../../../translated_images/fa/geofence-examples.172fbc534665769f6e1a1ddcf75e3b25183cd10354c80cc603ba44b635390e1a.png) +![نمونه‌هایی از حصارهای جغرافیایی که یک حصار دایره‌ای اطراف فروشگاه شرکت مایکروسافت و یک حصار چندضلعی اطراف پردیس غربی مایکروسافت را نشان می‌دهند](../../../../../translated_images/fa/geofence-examples.172fbc534665769f.webp) > 💁 ممکن است قبلاً بدون اینکه بدانید از حصارهای جغرافیایی استفاده کرده باشید. اگر با استفاده از اپلیکیشن یادآوری iOS یا Google Keep بر اساس یک مکان یادآوری تنظیم کرده‌اید، از حصار جغرافیایی استفاده کرده‌اید. این اپلیکیشن‌ها بر اساس مکان داده‌شده یک حصار جغرافیایی تنظیم می‌کنند و هنگامی که تلفن شما وارد حصار جغرافیایی می‌شود، به شما هشدار می‌دهند. @@ -212,7 +212,7 @@ Azure Maps، سرویسی که در درس قبلی برای نمایش داده برای مثال، تصور کنید قرائت‌های GPS نشان می‌دهند که یک وسیله نقلیه در حال رانندگی در امتداد جاده‌ای است که در نهایت در کنار یک حصار جغرافیایی قرار دارد. اگر یک مقدار GPS منفرد نادرست باشد و وسیله نقلیه را داخل حصار جغرافیایی قرار دهد، با وجود اینکه دسترسی وسایل نقلیه وجود ندارد، می‌توان آن را نادیده گرفت. -![یک مسیر GPS که نشان می‌دهد وسیله نقلیه از کنار پردیس مایکروسافت در جاده ۵۲۰ عبور می‌کند، با قرائت‌های GPS در امتداد جاده به جز یکی در پردیس، داخل یک حصار جغرافیایی](../../../../../translated_images/fa/geofence-crossing-inaccurate-gps.6a3ed911202ad9cabb66d3964888cec03a42c61d5b8f536ad5bdc99716b370f5.png) +![یک مسیر GPS که نشان می‌دهد وسیله نقلیه از کنار پردیس مایکروسافت در جاده ۵۲۰ عبور می‌کند، با قرائت‌های GPS در امتداد جاده به جز یکی در پردیس، داخل یک حصار جغرافیایی](../../../../../translated_images/fa/geofence-crossing-inaccurate-gps.6a3ed911202ad9ca.webp) در تصویر بالا، یک محدوده جغرافیایی (Geofence) بر روی بخشی از پردیس مایکروسافت قرار دارد. خط قرمز نشان‌دهنده حرکت یک کامیون در امتداد بزرگراه 520 است، و دایره‌ها نشان‌دهنده داده‌های GPS هستند. بیشتر این داده‌ها دقیق بوده و در امتداد بزرگراه 520 قرار دارند، اما یک داده نادرست در داخل محدوده جغرافیایی ثبت شده است. این داده نمی‌تواند درست باشد - هیچ جاده‌ای وجود ندارد که کامیون بتواند ناگهان از بزرگراه 520 به داخل پردیس منحرف شود و سپس دوباره به بزرگراه 520 بازگردد. کدی که این محدوده جغرافیایی را بررسی می‌کند، باید داده‌های قبلی را در نظر بگیرد قبل از اینکه بر اساس نتایج آزمایش محدوده جغرافیایی عمل کند. ✅ چه داده‌های اضافی نیاز دارید تا بررسی کنید که آیا یک داده GPS می‌تواند صحیح در نظر گرفته شود؟ @@ -284,7 +284,7 @@ Azure Maps، سرویسی که در درس قبلی برای نمایش داده پاسخ این است که نمی‌تواند! در عوض، می‌توانید چندین اتصال جداگانه برای خواندن رویدادها تعریف کنید و هر کدام می‌توانند مدیریت بازپخش پیام‌های خوانده‌نشده را انجام دهند. این‌ها به عنوان *گروه‌های مصرف‌کننده* شناخته می‌شوند. وقتی به نقطه پایانی متصل می‌شوید، می‌توانید مشخص کنید که به کدام گروه مصرف‌کننده می‌خواهید متصل شوید. هر جزء از برنامه شما به یک گروه مصرف‌کننده متفاوت متصل خواهد شد. -![یک IoT Hub با 3 گروه مصرف‌کننده که همان پیام‌ها را به 3 برنامه مختلف Functions توزیع می‌کنند](../../../../../translated_images/fa/consumer-groups.a3262e26fc27ba2092863678ad57af15c7223416e388a23f330c058cf4358630.png) +![یک IoT Hub با 3 گروه مصرف‌کننده که همان پیام‌ها را به 3 برنامه مختلف Functions توزیع می‌کنند](../../../../../translated_images/fa/consumer-groups.a3262e26fc27ba20.webp) در تئوری، حداکثر 5 برنامه می‌توانند به هر گروه مصرف‌کننده متصل شوند و همه آن‌ها پیام‌ها را هنگام رسیدن دریافت خواهند کرد. بهترین روش این است که فقط یک برنامه به هر گروه مصرف‌کننده دسترسی داشته باشد تا از پردازش تکراری پیام‌ها جلوگیری شود و اطمینان حاصل شود که هنگام راه‌اندازی مجدد، همه پیام‌های صف‌شده به درستی پردازش می‌شوند. برای مثال، اگر برنامه Functions خود را به صورت محلی اجرا کنید و همچنین آن را در فضای ابری اجرا کنید، هر دو پیام‌ها را پردازش می‌کنند که منجر به ذخیره‌سازی تکراری در حساب ذخیره‌سازی می‌شود. diff --git a/translations/fa/4-manufacturing/lessons/1-train-fruit-detector/README.md b/translations/fa/4-manufacturing/lessons/1-train-fruit-detector/README.md index 4595de32b..9e1aaef68 100644 --- a/translations/fa/4-manufacturing/lessons/1-train-fruit-detector/README.md +++ b/translations/fa/4-manufacturing/lessons/1-train-fruit-detector/README.md @@ -1,6 +1,6 @@ # آموزش ساخت یک تشخیص‌دهنده کیفیت میوه -![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-15.843d21afdc6fb2bba70cd9db7b7d2f91598859fafda2078b0bdc44954194b6c0.jpg) +![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-15.843d21afdc6fb2bb.webp) > اسکچ‌نوت توسط [نیتیا ناراسیمهان](https://github.com/nitya). برای مشاهده نسخه بزرگ‌تر روی تصویر کلیک کنید. @@ -38,7 +38,7 @@ افزایش برداشت خودکار، دسته‌بندی محصولات را از زمان برداشت به کارخانه منتقل کرد. مواد غذایی روی نوارهای نقاله طولانی حرکت می‌کردند و تیم‌هایی از افراد محصولات را بررسی کرده و هر چیزی که کیفیت لازم را نداشت حذف می‌کردند. برداشت به لطف ماشین‌آلات ارزان‌تر شد، اما هنوز هزینه‌ای برای دسته‌بندی دستی مواد غذایی وجود داشت. -![اگر یک گوجه‌فرنگی قرمز شناسایی شود، بدون وقفه به مسیر خود ادامه می‌دهد. اگر یک گوجه‌فرنگی سبز شناسایی شود، با یک اهرم به داخل سطل زباله پرتاب می‌شود](../../../../../translated_images/fa/optical-tomato-sorting.61aa134bdda4e5b1bfb16a212c1e35a6ef0c426cbb8b1c975f79d7bfbf48d068.png) +![اگر یک گوجه‌فرنگی قرمز شناسایی شود، بدون وقفه به مسیر خود ادامه می‌دهد. اگر یک گوجه‌فرنگی سبز شناسایی شود، با یک اهرم به داخل سطل زباله پرتاب می‌شود](../../../../../translated_images/fa/optical-tomato-sorting.61aa134bdda4e5b1.webp) تکامل بعدی استفاده از ماشین‌ها برای دسته‌بندی بود، چه در داخل دستگاه برداشت یا در کارخانه‌های فرآوری. نسل اول این ماشین‌ها از حسگرهای نوری برای تشخیص رنگ‌ها استفاده می‌کردند و با کنترل عملگرها، گوجه‌فرنگی‌های سبز را با اهرم‌ها یا پف‌های هوا به داخل سطل زباله پرتاب می‌کردند و گوجه‌فرنگی‌های قرمز را به مسیر نوار نقاله ادامه می‌دادند. @@ -62,7 +62,7 @@ > 🎓 نتایج مدل‌های یادگیری ماشین *پیش‌بینی* نامیده می‌شوند. -![2 موز، یکی رسیده با پیش‌بینی 99.7% رسیده، 0.3% نارس، و دیگری نارس با پیش‌بینی 1.4% رسیده، 98.6% نارس](../../../../../translated_images/fa/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50ece4e4589e724b142da0681f35470fe3db3f7d51240f69c85.png) +![2 موز، یکی رسیده با پیش‌بینی 99.7% رسیده، 0.3% نارس، و دیگری نارس با پیش‌بینی 1.4% رسیده، 98.6% نارس](../../../../../translated_images/fa/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50e.webp) مدل‌های یادگیری ماشین پاسخ‌های دودویی نمی‌دهند، بلکه احتمال‌ها را ارائه می‌دهند. به عنوان مثال، یک مدل ممکن است یک تصویر از موز دریافت کند و پیش‌بینی کند `رسیده` با 99.7% و `نارس` با 0.3%. کد شما سپس بهترین پیش‌بینی را انتخاب کرده و تصمیم می‌گیرد که موز رسیده است. @@ -90,7 +90,7 @@ Custom Vision یک ابزار مبتنی بر ابر برای آموزش طبقه‌بندهای تصویر است. این ابزار به شما امکان می‌دهد با استفاده از تعداد کمی تصویر یک طبقه‌بند را آموزش دهید. شما می‌توانید تصاویر را از طریق یک پورتال وب، API وب یا SDK آپلود کنید و به هر تصویر یک *برچسب* بدهید که طبقه‌بندی آن تصویر را مشخص می‌کند. سپس مدل را آموزش می‌دهید و آن را آزمایش می‌کنید تا ببینید چقدر خوب عمل می‌کند. وقتی از مدل راضی شدید، می‌توانید نسخه‌هایی از آن را منتشر کنید که از طریق API وب یا SDK قابل دسترسی باشند. -![لوگوی Azure Custom Vision](../../../../../translated_images/fa/custom-vision-logo.d3d4e7c8a87ec9daf825e72e210576c3cbf60312577be7a139e22dd97ab7f1e6.png) +![لوگوی Azure Custom Vision](../../../../../translated_images/fa/custom-vision-logo.d3d4e7c8a87ec9da.webp) > 💁 شما می‌توانید یک مدل Custom Vision را با حداقل 5 تصویر برای هر طبقه‌بندی آموزش دهید، اما تعداد بیشتر بهتر است. با حداقل 30 تصویر می‌توانید نتایج بهتری بگیرید. @@ -146,7 +146,7 @@ Custom Vision بخشی از مجموعه ابزارهای AI مایکروساف هنگام ایجاد پروژه، مطمئن شوید که از منبع `fruit-quality-detector-training` که قبلاً ایجاد کرده‌اید استفاده می‌کنید. از نوع پروژه *Classification*، نوع طبقه‌بندی *Multiclass* و دامنه *Food* استفاده کنید. - ![تنظیمات پروژه Custom Vision با نام تنظیم‌شده به fruit-quality-detector، بدون توضیحات، منبع تنظیم‌شده به fruit-quality-detector-training، نوع پروژه تنظیم‌شده به classification، نوع طبقه‌بندی تنظیم‌شده به multi class و دامنه تنظیم‌شده به food](../../../../../translated_images/fa/custom-vision-create-project.cf46325b92d8b131089f6647cf5e07b664cb77850e106d66e3c057b6b69756c6.png) + ![تنظیمات پروژه Custom Vision با نام تنظیم‌شده به fruit-quality-detector، بدون توضیحات، منبع تنظیم‌شده به fruit-quality-detector-training، نوع پروژه تنظیم‌شده به classification، نوع طبقه‌بندی تنظیم‌شده به multi class و دامنه تنظیم‌شده به food](../../../../../translated_images/fa/custom-vision-create-project.cf46325b92d8b131.webp) ✅ زمانی را برای بررسی رابط کاربری Custom Vision برای طبقه‌بند تصویر خود اختصاص دهید. @@ -164,7 +164,7 @@ Custom Vision بخشی از مجموعه ابزارهای AI مایکروساف * با استفاده از ۲ موز رسیده، از هر کدام چند عکس از زوایای مختلف بگیرید، حداقل ۷ عکس (۵ برای آموزش، ۲ برای آزمایش)، اما ترجیحاً بیشتر. - ![تصاویر ۲ موز مختلف](../../../../../translated_images/fa/banana-training-images.530eb203346d73bc23b8b990fb4609470bf4ff7c942ccc13d4cfffeed9be1ad4.png) + ![تصاویر ۲ موز مختلف](../../../../../translated_images/fa/banana-training-images.530eb203346d73bc.webp) * همین فرآیند را برای ۲ موز نارس تکرار کنید. @@ -174,7 +174,7 @@ Custom Vision بخشی از مجموعه ابزارهای AI مایکروساف 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` برچسب‌گذاری کنید. - ![دیالوگ‌های آپلود تصاویر موزهای رسیده و نارس](../../../../../translated_images/fa/image-upload-bananas.0751639f3815e0ec42bdbc6254d1e4357a185834d1ae10c9948a0e7d6d336695.png) + ![دیالوگ‌های آپلود تصاویر موزهای رسیده و نارس](../../../../../translated_images/fa/image-upload-bananas.0751639f3815e0ec.webp) 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) را دنبال کنید تا دسته‌بند تصویر را بر اساس تصاویر آپلود شده خود آموزش دهید. @@ -192,7 +192,7 @@ Custom Vision بخشی از مجموعه ابزارهای AI مایکروساف 1. بخش [آزمایش مدل خود در مستندات مایکروسافت](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/test-your-model?WT.mc_id=academic-17441-jabenn#test-your-model) را دنبال کنید تا دسته‌بند تصویر خود را آزمایش کنید. از تصاویر آزمایشی که قبلاً ایجاد کرده‌اید استفاده کنید، نه هیچ‌یک از تصاویر مورد استفاده برای آموزش. - ![یک موز نارس که با احتمال ۹۸.۹٪ به عنوان نارس و با احتمال ۱.۱٪ به عنوان رسیده پیش‌بینی شده است](../../../../../translated_images/fa/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64886422438850ea14f0be6ac918c217ea3b255c685abfabe7.png) + ![یک موز نارس که با احتمال ۹۸.۹٪ به عنوان نارس و با احتمال ۱.۱٪ به عنوان رسیده پیش‌بینی شده است](../../../../../translated_images/fa/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64.webp) 1. تمام تصاویر آزمایشی که در دسترس دارید را امتحان کنید و احتمالات را مشاهده کنید. diff --git a/translations/fa/4-manufacturing/lessons/2-check-fruit-from-device/README.md b/translations/fa/4-manufacturing/lessons/2-check-fruit-from-device/README.md index 3abae2838..11f92f41e 100644 --- a/translations/fa/4-manufacturing/lessons/2-check-fruit-from-device/README.md +++ b/translations/fa/4-manufacturing/lessons/2-check-fruit-from-device/README.md @@ -1,6 +1,6 @@ # بررسی کیفیت میوه با استفاده از دستگاه IoT -![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-16.215daf18b00631fbdfd64c6fc2dc6044dff5d544288825d8076f9fb83d964c23.jpg) +![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-16.215daf18b00631fb.webp) > اسکچ‌نوت توسط [نیتیا ناراسیمهان](https://github.com/nitya). برای مشاهده نسخه بزرگ‌تر روی تصویر کلیک کنید. @@ -26,7 +26,7 @@ حسگرهای دوربین، همان‌طور که از نامشان پیداست، دوربین‌هایی هستند که می‌توانید به دستگاه IoT خود متصل کنید. این دوربین‌ها می‌توانند تصاویر ثابت بگیرند یا ویدئوهای استریم ضبط کنند. برخی از آن‌ها داده‌های خام تصویر را ارائه می‌دهند، در حالی که برخی دیگر داده‌های تصویر را به فایل‌هایی مانند JPEG یا PNG فشرده می‌کنند. معمولاً دوربین‌هایی که با دستگاه‌های IoT کار می‌کنند، بسیار کوچک‌تر و با وضوح پایین‌تر از آنچه که ممکن است به آن عادت داشته باشید هستند، اما می‌توانید دوربین‌های با وضوح بالا تهیه کنید که با گوشی‌های پیشرفته رقابت می‌کنند. همچنین می‌توانید لنزهای قابل تعویض، تنظیمات چند دوربینه، دوربین‌های حرارتی مادون قرمز یا دوربین‌های UV تهیه کنید. -![نور از یک صحنه از لنز عبور کرده و روی حسگر CMOS متمرکز می‌شود](../../../../../translated_images/fa/cmos-sensor.75f9cd74decb137149a4c9ea825251a4549497d67c0ae2776159e6102bb53aa9.png) +![نور از یک صحنه از لنز عبور کرده و روی حسگر CMOS متمرکز می‌شود](../../../../../translated_images/fa/cmos-sensor.75f9cd74decb1371.webp) بیشتر حسگرهای دوربین از حسگرهای تصویری استفاده می‌کنند که در آن هر پیکسل یک فوتودیود است. لنز تصویر را روی حسگر تصویر متمرکز می‌کند و هزاران یا میلیون‌ها فوتودیود نور را که به هر یک می‌تابد تشخیص داده و آن را به عنوان داده پیکسل ثبت می‌کنند. @@ -74,7 +74,7 @@ 1. دکمه **Publish** را برای تکرار انتخاب کنید. - ![دکمه انتشار](../../../../../translated_images/fa/custom-vision-publish-button.b7174e1977b0c33b8b72d4e5b1326c779e0af196f3849d09985ee2d7d5493a39.png) + ![دکمه انتشار](../../../../../translated_images/fa/custom-vision-publish-button.b7174e1977b0c33b.webp) 1. در دیالوگ *Publish Model*، منبع *Prediction resource* را به منبع `fruit-quality-detector-prediction` که در درس قبلی ایجاد کردید تنظیم کنید. نام را به صورت `Iteration2` بگذارید و دکمه **Publish** را انتخاب کنید. @@ -88,7 +88,7 @@ همچنین مقدار *Prediction-Key* را کپی کنید. این یک کلید امن است که باید هنگام فراخوانی مدل ارسال شود. فقط برنامه‌هایی که این کلید را ارسال می‌کنند اجازه استفاده از مدل را دارند و سایر برنامه‌ها رد می‌شوند. - ![دیالوگ API پیش‌بینی که URL و کلید را نشان می‌دهد](../../../../../translated_images/fa/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![دیالوگ API پیش‌بینی که URL و کلید را نشان می‌دهد](../../../../../translated_images/fa/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ وقتی یک تکرار جدید منتشر می‌شود، نام متفاوتی خواهد داشت. چگونه فکر می‌کنید می‌توانید تکرار مورد استفاده دستگاه IoT را تغییر دهید؟ @@ -109,7 +109,7 @@ برای دریافت بهترین نتایج از یک دسته‌بندی‌کننده تصویر، باید مدل را با تصاویری که تا حد ممکن مشابه تصاویر مورد استفاده برای پیش‌بینی هستند آموزش دهید. اگر از دوربین گوشی خود برای ثبت تصاویر برای آموزش استفاده کرده‌اید، به عنوان مثال، کیفیت تصویر، وضوح و رنگ با دوربین متصل به دستگاه IoT متفاوت خواهد بود. -![دو تصویر موز، یکی با وضوح پایین و نور ضعیف از دستگاه IoT و دیگری با وضوح بالا و نور خوب از گوشی](../../../../../translated_images/fa/banana-picture-compare.174df164dc326a42cf7fb051a7497e6113c620e91552d92ca914220305d47d9a.png) +![دو تصویر موز، یکی با وضوح پایین و نور ضعیف از دستگاه IoT و دیگری با وضوح بالا و نور خوب از گوشی](../../../../../translated_images/fa/banana-picture-compare.174df164dc326a42.webp) در تصویر بالا، تصویر موز سمت چپ با استفاده از دوربین Raspberry Pi گرفته شده است، و تصویر سمت راست از همان موز در همان مکان با استفاده از آیفون گرفته شده است. تفاوت کیفیت قابل توجه است - تصویر آیفون واضح‌تر، با رنگ‌های روشن‌تر و کنتراست بیشتر است. diff --git a/translations/fa/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md b/translations/fa/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md index be050602c..9fccffe79 100644 --- a/translations/fa/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md +++ b/translations/fa/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md @@ -16,7 +16,7 @@ ### وظیفه - اتصال دوربین -![یک دوربین رزبری پای](../../../../../translated_images/fa/pi-camera-module.4278753c31bd6e757aa2b858be97d72049f71616278cefe4fb5abb485b40a078.png) +![یک دوربین رزبری پای](../../../../../translated_images/fa/pi-camera-module.4278753c31bd6e75.webp) 1. رزبری پای را خاموش کنید. @@ -24,17 +24,17 @@ می‌توانید یک انیمیشن که نحوه باز کردن گیره و قرار دادن کابل را نشان می‌دهد در [مستندات شروع کار با ماژول دوربین رزبری پای](https://projects.raspberrypi.org/en/projects/getting-started-with-picamera/2) پیدا کنید. - ![کابل نواری وارد شده به ماژول دوربین](../../../../../translated_images/fa/pi-camera-ribbon-cable.0bf82acd251611c21ac616f082849413e2b322a261d0e4f8fec344248083b07e.png) + ![کابل نواری وارد شده به ماژول دوربین](../../../../../translated_images/fa/pi-camera-ribbon-cable.0bf82acd251611c2.webp) 1. کلاهک Grove Base را از رزبری پای جدا کنید. 1. کابل نواری را از شکاف دوربین در کلاهک Grove Base عبور دهید. مطمئن شوید که سمت آبی کابل به سمت پورت‌های آنالوگ با برچسب **A0**، **A1** و غیره باشد. - ![کابل نواری عبور کرده از کلاهک Grove Base](../../../../../translated_images/fa/grove-base-hat-ribbon-cable.501fed202fcf73b11b2b68f6d246189f7d15d3e4423c572ddee79d77b4632b47.png) + ![کابل نواری عبور کرده از کلاهک Grove Base](../../../../../translated_images/fa/grove-base-hat-ribbon-cable.501fed202fcf73b1.webp) 1. کابل نواری را در پورت دوربین روی رزبری پای قرار دهید. دوباره، گیره پلاستیکی مشکی را بالا بکشید، کابل را وارد کنید، سپس گیره را به جای خود فشار دهید. سمت آبی کابل باید به سمت پورت‌های USB و اترنت باشد. - ![کابل نواری متصل به سوکت دوربین روی رزبری پای](../../../../../translated_images/fa/pi-camera-socket-ribbon-cable.a18309920b11800911082ed7aa6fb28e6d9be3a022e4079ff990016cae3fca10.png) + ![کابل نواری متصل به سوکت دوربین روی رزبری پای](../../../../../translated_images/fa/pi-camera-socket-ribbon-cable.a18309920b118009.webp) 1. کلاهک Grove Base را دوباره نصب کنید. @@ -101,7 +101,7 @@ خط `camera.rotation = 0` چرخش تصویر را تنظیم می‌کند. کابل نواری از پایین دوربین وارد می‌شود، اما اگر دوربین شما برای راحت‌تر نشانه‌گیری به سمت شیء مورد نظر چرخانده شده باشد، می‌توانید این خط را به تعداد درجه‌های چرخش تغییر دهید. - ![دوربین آویزان شده بر روی یک قوطی نوشیدنی](../../../../../translated_images/fa/pi-camera-upside-down.5376961ba31459883362124152ad6b823d5ac5fc14e85f317e22903bd681c2b6.png) + ![دوربین آویزان شده بر روی یک قوطی نوشیدنی](../../../../../translated_images/fa/pi-camera-upside-down.5376961ba3145988.webp) برای مثال، اگر کابل نواری را از بالای چیزی آویزان کنید تا در بالای دوربین قرار گیرد، چرخش را به 180 تنظیم کنید: diff --git a/translations/fa/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md b/translations/fa/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md index 1120cf8c3..24c688a5d 100644 --- a/translations/fa/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md +++ b/translations/fa/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md @@ -84,7 +84,7 @@ شما می‌توانید تصویری که گرفته شده است را ببینید و این مقادیر را در تب **Predictions** در Custom Vision مشاهده کنید. - ![یک موز در Custom Vision که با احتمال 56.8% رسیده و با احتمال 43.1% نارس پیش‌بینی شده است](../../../../../translated_images/fa/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![یک موز در Custom Vision که با احتمال 56.8% رسیده و با احتمال 43.1% نارس پیش‌بینی شده است](../../../../../translated_images/fa/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 می‌توانید این کد را در پوشه [code-classify/pi](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/pi) یا [code-classify/virtual-iot-device](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/virtual-iot-device) پیدا کنید. diff --git a/translations/fa/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md b/translations/fa/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md index ef63831ee..1e24ad039 100644 --- a/translations/fa/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md +++ b/translations/fa/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md @@ -34,11 +34,11 @@ 1. دکمه **Add** را برای ایجاد دوربین انتخاب کنید. - ![تنظیمات دوربین](../../../../../translated_images/fa/counterfit-create-camera.a5de97f59c0bd3cbe0416d7e89a3cfe86d19fbae05c641c53a91286412af0a34.png) + ![تنظیمات دوربین](../../../../../translated_images/fa/counterfit-create-camera.a5de97f59c0bd3cb.webp) دوربین ایجاد شده و در لیست حسگرها ظاهر می‌شود. - ![دوربین ایجاد شده](../../../../../translated_images/fa/counterfit-camera.001ec52194c8ee5d3f617173da2c79e1df903d10882adc625cbfc493525125d4.png) + ![دوربین ایجاد شده](../../../../../translated_images/fa/counterfit-camera.001ec52194c8ee5d.webp) ## برنامه‌نویسی دوربین @@ -103,7 +103,7 @@ 1. تصویری که دوربین در CounterFit می‌گیرد را پیکربندی کنید. می‌توانید *Source* را به *File* تنظیم کنید، سپس یک فایل تصویر آپلود کنید، یا *Source* را به *WebCam* تنظیم کنید و تصاویر از وب‌کم شما گرفته شوند. مطمئن شوید که پس از انتخاب تصویر یا وب‌کم، دکمه **Set** را انتخاب کنید. - ![CounterFit با یک فایل به‌عنوان منبع تصویر تنظیم شده و یک وب‌کم که شخصی را در حال نگه داشتن یک موز نشان می‌دهد](../../../../../translated_images/fa/counterfit-camera-options.eb3bd5150a8e7dffbf24bc5bcaba0cf2cdef95fbe6bbe393695d173817d6b8df.png) + ![CounterFit با یک فایل به‌عنوان منبع تصویر تنظیم شده و یک وب‌کم که شخصی را در حال نگه داشتن یک موز نشان می‌دهد](../../../../../translated_images/fa/counterfit-camera-options.eb3bd5150a8e7dff.webp) 1. یک تصویر گرفته شده و به‌عنوان `image.jpg` در پوشه فعلی ذخیره می‌شود. این فایل را در کاوشگر VS Code خواهید دید. فایل را انتخاب کنید تا تصویر را مشاهده کنید. اگر نیاز به چرخش دارد، خط `camera.rotation = 0` را به‌طور مناسب به‌روزرسانی کنید و دوباره عکس بگیرید. diff --git a/translations/fa/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md b/translations/fa/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md index acd1ce8f8..71c1e2d35 100644 --- a/translations/fa/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md +++ b/translations/fa/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md @@ -16,7 +16,7 @@ ArduCam سوکت Grove ندارد و به جای آن از طریق پین‌ه دوربین را متصل کنید. -![یک حسگر ArduCam](../../../../../translated_images/fa/arducam.20e4e4cbb268296570b5914e20d6c349fc42ddac9ed4e1b9deba2188204eebae.png) +![یک حسگر ArduCam](../../../../../translated_images/fa/arducam.20e4e4cbb2682965.webp) 1. پین‌های پایه ArduCam باید به پین‌های GPIO روی Wio Terminal متصل شوند. برای راحت‌تر پیدا کردن پین‌های درست، برچسب پین GPIO که همراه Wio Terminal است را دور پین‌ها بچسبانید: @@ -35,7 +35,7 @@ ArduCam سوکت Grove ندارد و به جای آن از طریق پین‌ه | SDA | 3 (I2C1_SDA) | داده سریال I2C | | SCL | 5 (I2C1_SCL) | ساعت سریال I2C | - ![Wio Terminal متصل به ArduCam با سیم‌های جامپر](../../../../../translated_images/fa/arducam-wio-terminal-connections.a4d5a4049bdb5ab800a2877389fc6ecf5e4ff307e6451ff56c517e6786467d0a.png) + ![Wio Terminal متصل به ArduCam با سیم‌های جامپر](../../../../../translated_images/fa/arducam-wio-terminal-connections.a4d5a4049bdb5ab8.webp) اتصالات GND و VCC منبع تغذیه ۵ ولت را به ArduCam ارائه می‌دهند. این دوربین با ۵ ولت کار می‌کند، برخلاف حسگرهای Grove که با ۳ ولت کار می‌کنند. این توان مستقیماً از اتصال USB-C که دستگاه را تغذیه می‌کند تأمین می‌شود. @@ -456,7 +456,7 @@ Wio Terminal فقط از کارت‌های microSD با حداکثر ظرفیت 1. کارت microSD را خاموش کرده و با فشار دادن کمی و رها کردن آن را خارج کنید، و کارت بیرون می‌آید. ممکن است نیاز باشد از یک ابزار نازک برای این کار استفاده کنید. کارت microSD را به کامپیوتر خود متصل کنید تا تصاویر را مشاهده کنید. - ![تصویری از یک موز که با استفاده از ArduCam ثبت شده است](../../../../../translated_images/fa/banana-arducam.be1b32d4267a8194b0fd042362e56faa431da9cd4af172051b37243ea9be0256.jpg) + ![تصویری از یک موز که با استفاده از ArduCam ثبت شده است](../../../../../translated_images/fa/banana-arducam.be1b32d4267a8194.webp) 💁 ممکن است چند تصویر طول بکشد تا تراز سفیدی دوربین تنظیم شود. شما این را بر اساس رنگ تصاویر گرفته شده متوجه خواهید شد، چند تصویر اول ممکن است رنگ غیرعادی داشته باشند. شما همیشه می‌توانید با تغییر کد برای گرفتن چند تصویر که در تابع `setup` نادیده گرفته می‌شوند، این مشکل را حل کنید. diff --git a/translations/fa/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md b/translations/fa/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md index 86204ba33..21a536712 100644 --- a/translations/fa/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md +++ b/translations/fa/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md @@ -208,7 +208,7 @@ شما می‌توانید تصویری که گرفته شده و این مقادیر را در تب **Predictions** در Custom Vision مشاهده کنید. - ![یک موز در Custom Vision پیش‌بینی شده به‌عنوان رسیده با 56.8% و نارس با 43.1%](../../../../../translated_images/fa/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![یک موز در Custom Vision پیش‌بینی شده به‌عنوان رسیده با 56.8% و نارس با 43.1%](../../../../../translated_images/fa/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 می‌توانید این کد را در پوشه [code-classify/wio-terminal](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/wio-terminal) پیدا کنید. diff --git a/translations/fa/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md b/translations/fa/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md index f75f48165..539514cd7 100644 --- a/translations/fa/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md +++ b/translations/fa/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md @@ -1,6 +1,6 @@ # اجرای آشکارساز میوه در لبه -![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-17.bc333c3c35ba8e42cce666cfffa82b915f787f455bd94e006aea2b6f2722421a.jpg) +![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-17.bc333c3c35ba8e42.webp) > اسکچ‌نوت توسط [نیتیا ناراسیمهان](https://github.com/nitya). برای مشاهده نسخه بزرگ‌تر روی تصویر کلیک کنید. @@ -33,11 +33,11 @@ محاسبات لبه شامل داشتن کامپیوترهایی است که داده‌های IoT را تا حد ممکن نزدیک به جایی که داده‌ها تولید می‌شوند پردازش می‌کنند. به جای اینکه این پردازش در فضای ابری انجام شود، به لبه فضای ابری - شبکه داخلی شما - منتقل می‌شود. -![یک نمودار معماری که خدمات اینترنتی در فضای ابری و دستگاه‌های IoT در یک شبکه محلی را نشان می‌دهد](../../../../../translated_images/fa/cloud-without-edge.b4da641f6022c95ed6b91fde8b5323abd2f94e0d52073ad54172ae8f5dac90e9.png) +![یک نمودار معماری که خدمات اینترنتی در فضای ابری و دستگاه‌های IoT در یک شبکه محلی را نشان می‌دهد](../../../../../translated_images/fa/cloud-without-edge.b4da641f6022c95e.webp) در درس‌های قبلی، شما دستگاه‌هایی داشتید که داده‌ها را جمع‌آوری کرده و برای تجزیه و تحلیل به فضای ابری ارسال می‌کردند، و در آنجا توابع بدون سرور یا مدل‌های هوش مصنوعی اجرا می‌شدند. -![یک نمودار معماری که دستگاه‌های IoT در یک شبکه محلی را نشان می‌دهد که به دستگاه‌های لبه متصل می‌شوند، و این دستگاه‌های لبه به فضای ابری متصل می‌شوند](../../../../../translated_images/fa/cloud-with-edge.1e26462c62c126fe150bd15a5714ddf0be599f09bacbad08b85be02b76ea1ae1.png) +![یک نمودار معماری که دستگاه‌های IoT در یک شبکه محلی را نشان می‌دهد که به دستگاه‌های لبه متصل می‌شوند، و این دستگاه‌های لبه به فضای ابری متصل می‌شوند](../../../../../translated_images/fa/cloud-with-edge.1e26462c62c126fe.webp) محاسبات لبه شامل انتقال برخی از خدمات ابری به کامپیوترهایی است که در همان شبکه دستگاه‌های IoT اجرا می‌شوند و فقط در صورت نیاز با فضای ابری ارتباط برقرار می‌کنند. به عنوان مثال، می‌توانید مدل‌های هوش مصنوعی را بر روی دستگاه‌های لبه اجرا کنید تا میوه‌ها را از نظر رسیده بودن تحلیل کنید و فقط تحلیل‌ها را به فضای ابری ارسال کنید، مانند تعداد میوه‌های رسیده در مقابل نارس. @@ -85,7 +85,7 @@ ## Azure IoT Edge -![لوگوی Azure IoT Edge](../../../../../translated_images/fa/azure-iot-edge-logo.c1c076749b5cba2e8755262fadc2f19ca1146b948d76990b1229199ac2292d79.png) +![لوگوی Azure IoT Edge](../../../../../translated_images/fa/azure-iot-edge-logo.c1c076749b5cba2e.webp) Azure IoT Edge یک سرویس است که می‌تواند به شما کمک کند تا بارهای کاری را از فضای ابری به لبه منتقل کنید. شما یک دستگاه را به عنوان دستگاه لبه تنظیم می‌کنید و از فضای ابری می‌توانید کد را به آن دستگاه لبه مستقر کنید. این امکان را به شما می‌دهد تا قابلیت‌های فضای ابری و لبه را ترکیب کنید. @@ -99,7 +99,7 @@ IoT Edge در IoT Hub ساخته شده است، بنابراین می‌توا IoT Edge کد را از *کانتینرها* اجرا می‌کند - برنامه‌های خودکفایی که به صورت جداگانه از سایر برنامه‌های کامپیوتر شما اجرا می‌شوند. هنگامی که یک کانتینر اجرا می‌شود، مانند یک کامپیوتر جداگانه است که در داخل کامپیوتر شما اجرا می‌شود، با نرم‌افزار، خدمات و برنامه‌های خاص خود. بیشتر اوقات کانتینرها نمی‌توانند به چیزی در کامپیوتر شما دسترسی داشته باشند مگر اینکه انتخاب کنید چیزی مانند یک پوشه را با کانتینر به اشتراک بگذارید. کانتینر سپس خدمات را از طریق یک پورت باز ارائه می‌دهد که می‌توانید به آن متصل شوید یا آن را به شبکه خود ارائه دهید. -![یک درخواست وب که به یک کانتینر هدایت شده است](../../../../../translated_images/fa/container-web-browser.4ee81dd4f0d8838ce622b2a0d600b6a4322b5d4fe43159facd87b7b34f84d66a.png) +![یک درخواست وب که به یک کانتینر هدایت شده است](../../../../../translated_images/fa/container-web-browser.4ee81dd4f0d8838c.webp) به عنوان مثال، می‌توانید یک کانتینر با یک وب‌سایت که بر روی پورت 80 اجرا می‌شود، پورت پیش‌فرض HTTP، داشته باشید و سپس آن را از کامپیوتر خود نیز بر روی پورت 80 ارائه دهید. @@ -195,11 +195,11 @@ IoT Edge کد را از *کانتینرها* اجرا می‌کند - برنام ## آماده‌سازی کانتینر برای استقرار -![کانتینرها ساخته شده و سپس به یک رجیستری کانتینر ارسال می‌شوند و از رجیستری کانتینر به دستگاه edge با استفاده از IoT Edge مستقر می‌شوند](../../../../../translated_images/fa/container-edge-flow.c246050dd60ceefdb6ace026a4ce5c6aa4112bb5898ae23fbb2ab4be29ae3e1b.png) +![کانتینرها ساخته شده و سپس به یک رجیستری کانتینر ارسال می‌شوند و از رجیستری کانتینر به دستگاه edge با استفاده از IoT Edge مستقر می‌شوند](../../../../../translated_images/fa/container-edge-flow.c246050dd60ceefd.webp) پس از دانلود مدل، باید آن را به یک کانتینر تبدیل کنید و سپس به یک رجیستری کانتینر ارسال کنید - مکانی آنلاین که می‌توانید کانتینرها را ذخیره کنید. IoT Edge سپس کانتینر را از رجیستری دانلود کرده و به دستگاه شما ارسال می‌کند. -![لوگوی Azure Container Registry](../../../../../translated_images/fa/azure-container-registry-logo.09494206991d4b295025ebff7d4e2900325e527a59184ffbc8464b6ab59654be.png) +![لوگوی Azure Container Registry](../../../../../translated_images/fa/azure-container-registry-logo.09494206991d4b29.webp) رجیستری کانتینری که در این درس استفاده خواهید کرد Azure Container Registry است. این سرویس رایگان نیست، بنابراین برای صرفه‌جویی در هزینه مطمئن شوید که پس از اتمام کار [پروژه خود را پاک کنید](../../../clean-up.md). diff --git a/translations/fa/4-manufacturing/lessons/4-trigger-fruit-detector/README.md b/translations/fa/4-manufacturing/lessons/4-trigger-fruit-detector/README.md index dad803753..d268a7159 100644 --- a/translations/fa/4-manufacturing/lessons/4-trigger-fruit-detector/README.md +++ b/translations/fa/4-manufacturing/lessons/4-trigger-fruit-detector/README.md @@ -1,6 +1,6 @@ # تشخیص کیفیت میوه با استفاده از حسگر -![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-18.92c32ed1d354caa5a54baa4032cf0b172d4655e8e326ad5d46c558a0def15365.jpg) +![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-18.92c32ed1d354caa5.webp) > اسکچ‌نوت توسط [نیتیا ناراسیمهان](https://github.com/nitya). برای مشاهده نسخه بزرگ‌تر روی تصویر کلیک کنید. @@ -39,7 +39,7 @@ ### معماری مرجع IoT -![یک معماری مرجع IoT](../../../../../translated_images/fa/iot-reference-architecture.2278b98b55c6d4e89bde18eada3688d893861d43507641804dd2f9d3079cfaa0.png) +![یک معماری مرجع IoT](../../../../../translated_images/fa/iot-reference-architecture.2278b98b55c6d4e8.webp) نمودار بالا یک معماری مرجع IoT را نشان می‌دهد. @@ -49,7 +49,7 @@ * **بینش‌ها** از برنامه‌های بدون سرور یا تحلیل‌هایی که روی داده‌های ذخیره‌شده اجرا می‌شوند به دست می‌آیند. * **اقدامات** می‌توانند دستورات ارسال‌شده به دستگاه‌ها یا نمایش داده‌ها برای تصمیم‌گیری انسان باشند. -![یک معماری مرجع IoT](../../../../../translated_images/fa/iot-reference-architecture-azure.0b8d2161af924cb18ae48a8558a19541cca47f27264851b5b7e56d7b8bb372ac.png) +![یک معماری مرجع IoT](../../../../../translated_images/fa/iot-reference-architecture-azure.0b8d2161af924cb1.webp) نمودار بالا برخی از اجزا و خدماتی که تاکنون در این درس‌ها پوشش داده شده‌اند و نحوه ارتباط آن‌ها در یک معماری مرجع IoT را نشان می‌دهد. @@ -89,7 +89,7 @@ ### نمونه‌سازی برنامه شما -![یک معماری مرجع IoT برای بررسی کیفیت میوه](../../../../../translated_images/fa/iot-reference-architecture-fruit-quality.cc705f121c3b6fa71c800d9630935ac34bc08223a04601e35f41d5e9b5dd5207.png) +![یک معماری مرجع IoT برای بررسی کیفیت میوه](../../../../../translated_images/fa/iot-reference-architecture-fruit-quality.cc705f121c3b6fa7.webp) نمودار بالا یک معماری مرجع برای این برنامه نمونه اولیه را نشان می‌دهد. @@ -124,7 +124,7 @@ نمونه اولیه تشخیص میوه شامل چندین مؤلفه است که با یکدیگر ارتباط برقرار می‌کنند. -![مؤلفه‌هایی که با یکدیگر ارتباط برقرار می‌کنند](../../../../../translated_images/fa/fruit-quality-detector-message-flow.adf2a65da8fd8741ac7af11361574de89adc126785d67606bb4d2ec00467e380.png) +![مؤلفه‌هایی که با یکدیگر ارتباط برقرار می‌کنند](../../../../../translated_images/fa/fruit-quality-detector-message-flow.adf2a65da8fd8741.webp) * یک حسگر مجاورت که فاصله تا یک میوه را اندازه‌گیری کرده و آن را به IoT Hub ارسال می‌کند * فرمان کنترل دوربین که از IoT Hub به دستگاه دوربین ارسال می‌شود diff --git a/translations/fa/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md b/translations/fa/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md index 2f80b6342..5210883b9 100644 --- a/translations/fa/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md +++ b/translations/fa/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md @@ -20,7 +20,7 @@ حسگر Time of Flight را متصل کنید. -![یک حسگر Time of Flight Grove](../../../../../translated_images/fa/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![یک حسگر Time of Flight Grove](../../../../../translated_images/fa/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. یک سر کابل Grove را به سوکت روی حسگر Time of Flight وارد کنید. این کابل فقط به یک جهت وارد می‌شود. diff --git a/translations/fa/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md b/translations/fa/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md index 87ca7d79e..0ca2afdcf 100644 --- a/translations/fa/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md +++ b/translations/fa/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md @@ -36,11 +36,11 @@ 1. دکمه **Add** را انتخاب کنید تا حسگر فاصله ایجاد شود. - ![تنظیمات حسگر فاصله](../../../../../translated_images/fa/counterfit-create-distance-sensor.967c9fb98f27888d95920c9784d004c972490eb71f70397fe13bd70a79a879a3.png) + ![تنظیمات حسگر فاصله](../../../../../translated_images/fa/counterfit-create-distance-sensor.967c9fb98f27888d.webp) حسگر فاصله ایجاد خواهد شد و در لیست حسگرها ظاهر می‌شود. - ![حسگر فاصله ایجاد شده](../../../../../translated_images/fa/counterfit-distance-sensor.079eefeeea0b68afc36431ce8fcbe2f09a7e4916ed1cd5cb30e696db53bc18fa.png) + ![حسگر فاصله ایجاد شده](../../../../../translated_images/fa/counterfit-distance-sensor.079eefeeea0b68af.webp) ## برنامه‌نویسی حسگر فاصله diff --git a/translations/fa/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md b/translations/fa/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md index 80d54b0ec..47b000bdd 100644 --- a/translations/fa/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md +++ b/translations/fa/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md @@ -21,7 +21,7 @@ C است. حسگر Time of Flight را متصل کنید. -![یک حسگر Grove Time of Flight](../../../../../translated_images/fa/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![یک حسگر Grove Time of Flight](../../../../../translated_images/fa/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. یک سر کابل Grove را به سوکت روی حسگر Time of Flight وارد کنید. این کابل فقط از یک جهت وارد می‌شود. diff --git a/translations/fa/5-retail/lessons/1-train-stock-detector/README.md b/translations/fa/5-retail/lessons/1-train-stock-detector/README.md index 92e66ca0d..e58ebb93f 100644 --- a/translations/fa/5-retail/lessons/1-train-stock-detector/README.md +++ b/translations/fa/5-retail/lessons/1-train-stock-detector/README.md @@ -1,6 +1,6 @@ # آموزش ساخت یک تشخیص‌دهنده موجودی -![نمای کلی از این درس](../../../../../translated_images/fa/lesson-19.cf6973cecadf080c4b526310620dc4d6f5994c80fb0139c6f378cc9ca2d435cd.jpg) +![نمای کلی از این درس](../../../../../translated_images/fa/lesson-19.cf6973cecadf080c.webp) > طراحی توسط [نیتیا ناراسیمهان](https://github.com/nitya). برای مشاهده نسخه بزرگ‌تر روی تصویر کلیک کنید. @@ -36,7 +36,7 @@ طبقه‌بندی تصویر به معنای طبقه‌بندی کل تصویر است - اینکه احتمال تطابق کل تصویر با هر برچسب چقدر است. شما احتمال‌ها را برای هر برچسبی که مدل با آن آموزش دیده است دریافت می‌کنید. -![طبقه‌بندی تصویر برای بادام هندی و رب گوجه‌فرنگی](../../../../../translated_images/fa/image-classifier-cashews-tomato.bc2e16ab8f05cf9ac0f59f73e32efc4227f9a5b601b90b2c60f436694547a965.png) +![طبقه‌بندی تصویر برای بادام هندی و رب گوجه‌فرنگی](../../../../../translated_images/fa/image-classifier-cashews-tomato.bc2e16ab8f05cf9a.webp) در مثال بالا، دو تصویر با استفاده از مدلی که برای طبقه‌بندی قوطی‌های بادام هندی یا رب گوجه‌فرنگی آموزش دیده است، طبقه‌بندی شده‌اند. تصویر اول یک قوطی بادام هندی است و نتایج زیر را از طبقه‌بندی تصویر دارد: @@ -60,7 +60,7 @@ > 🎓 *جعبه‌های محدودکننده* جعبه‌هایی هستند که دور یک شیء کشیده می‌شوند. -![تشخیص اشیا برای بادام هندی و رب گوجه‌فرنگی](../../../../../translated_images/fa/object-detector-cashews-tomato.1af7c26686b4db0e709754aeb196f4e73271f54e2085db3bcccb70d4a0d84d97.png) +![تشخیص اشیا برای بادام هندی و رب گوجه‌فرنگی](../../../../../translated_images/fa/object-detector-cashews-tomato.1af7c26686b4db0e.webp) تصویر بالا شامل یک قوطی بادام هندی و سه قوطی رب گوجه‌فرنگی است. تشخیص‌دهنده اشیا بادام هندی را شناسایی کرده و جعبه محدودکننده‌ای که شامل بادام هندی است را با احتمال 97.6% ارائه داده است. همچنین سه قوطی رب گوجه‌فرنگی شناسایی شده‌اند و سه جعبه محدودکننده جداگانه برای هر قوطی ارائه شده است، هر کدام با احتمال تطابق با قوطی رب گوجه‌فرنگی. @@ -111,7 +111,7 @@ هنگام ایجاد پروژه، مطمئن شوید که از منبع `stock-detector-training` که قبلاً ایجاد کرده‌اید استفاده می‌کنید. نوع پروژه را *تشخیص اشیا* و دامنه را *محصولات روی قفسه‌ها* انتخاب کنید. - ![تنظیمات پروژه Custom Vision با نام fruit-quality-detector، بدون توضیحات، منبع تنظیم‌شده به fruit-quality-detector-training، نوع پروژه تنظیم‌شده به طبقه‌بندی، نوع طبقه‌بندی تنظیم‌شده به چندکلاسه و دامنه‌ها تنظیم‌شده به غذا](../../../../../translated_images/fa/custom-vision-create-object-detector-project.32d4fb9aa8e7e7375f8a799bfce517aca970f2cb65e42d4245c5e635c734ab29.png) + ![تنظیمات پروژه Custom Vision با نام fruit-quality-detector، بدون توضیحات، منبع تنظیم‌شده به fruit-quality-detector-training، نوع پروژه تنظیم‌شده به طبقه‌بندی، نوع طبقه‌بندی تنظیم‌شده به چندکلاسه و دامنه‌ها تنظیم‌شده به غذا](../../../../../translated_images/fa/custom-vision-create-object-detector-project.32d4fb9aa8e7e737.webp) ✅ دامنه محصولات روی قفسه‌ها به‌طور خاص برای شناسایی موجودی روی قفسه‌های فروشگاه طراحی شده است. درباره دامنه‌های مختلف در [مستندات انتخاب دامنه در Microsoft Docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/select-domain?WT.mc_id=academic-17441-jabenn#object-detection) بیشتر بخوانید. @@ -133,11 +133,11 @@ 1. بخش [آپلود و برچسب‌گذاری تصاویر در مستندات Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/get-started-build-detector?WT.mc_id=academic-17441-jabenn#upload-and-tag-images) را دنبال کنید تا تصاویر آموزشی خود را آپلود کنید. برچسب‌های مرتبط را بسته به نوع اشیایی که می‌خواهید شناسایی کنید ایجاد کنید. - ![دیالوگ‌های آپلود که آپلود تصاویر موز رسیده و نارس را نشان می‌دهند](../../../../../translated_images/fa/image-upload-object-detector.77c7892c3093cb59b79018edecd678749a75d71a099bc8a2d2f2f76320f88a5b.png) + ![دیالوگ‌های آپلود که آپلود تصاویر موز رسیده و نارس را نشان می‌دهند](../../../../../translated_images/fa/image-upload-object-detector.77c7892c3093cb59.webp) هنگام کشیدن جعبه‌های محدودکننده برای اشیا، آن‌ها را دقیقاً دور شیء بکشید. ممکن است کشیدن جعبه‌ها برای همه تصاویر زمان‌بر باشد، اما ابزار تشخیص می‌دهد که جعبه‌های محدودکننده کجا باید باشند، که این کار را سریع‌تر می‌کند. - ![برچسب‌گذاری رب گوجه‌فرنگی](../../../../../translated_images/fa/object-detector-tag-tomato-paste.f47c362fb0f0eb582f3bc68cf3855fb43a805106395358d41896a269c210b7b4.png) + ![برچسب‌گذاری رب گوجه‌فرنگی](../../../../../translated_images/fa/object-detector-tag-tomato-paste.f47c362fb0f0eb58.webp) > 💁 اگر بیش از 15 تصویر برای هر شیء دارید، می‌توانید پس از 15 تصویر آموزش دهید و از ویژگی **برچسب‌های پیشنهادی** استفاده کنید. این ویژگی از مدل آموزش‌دیده برای شناسایی اشیا در تصاویر بدون برچسب استفاده می‌کند. سپس می‌توانید اشیای شناسایی‌شده را تأیید یا رد کنید و جعبه‌های محدودکننده را دوباره بکشید. این کار می‌تواند زمان زیادی را صرفه‌جویی کند. @@ -155,7 +155,7 @@ 1. از دکمه **آزمایش سریع** برای آپلود تصاویر آزمایشی و تأیید شناسایی اشیا استفاده کنید. از تصاویری که قبلاً برای آموزش استفاده کرده‌اید استفاده نکنید. - ![3 قوطی رب گوجه‌فرنگی شناسایی‌شده با احتمال‌های 38%، 35.5% و 34.6%](../../../../../translated_images/fa/object-detector-detected-tomato-paste.52656fe87af4c37b4ee540526d63e73ed075da2e54a9a060aa528e0c562fb1b6.png) + ![3 قوطی رب گوجه‌فرنگی شناسایی‌شده با احتمال‌های 38%، 35.5% و 34.6%](../../../../../translated_images/fa/object-detector-detected-tomato-paste.52656fe87af4c37b.webp) 1. همه تصاویر آزمایشی که در دسترس دارید را امتحان کنید و احتمال‌ها را مشاهده کنید. diff --git a/translations/fa/5-retail/lessons/2-check-stock-device/README.md b/translations/fa/5-retail/lessons/2-check-stock-device/README.md index 14400b95f..e6624106d 100644 --- a/translations/fa/5-retail/lessons/2-check-stock-device/README.md +++ b/translations/fa/5-retail/lessons/2-check-stock-device/README.md @@ -1,6 +1,6 @@ # بررسی موجودی کالا با استفاده از دستگاه IoT -![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-20.0211df9551a8abb300fc8fcf7dc2789468dea2eabe9202273ac077b0ba37f15e.jpg) +![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-20.0211df9551a8abb3.webp) > اسکچ‌نوت توسط [نیتیا ناراسیمهان](https://github.com/nitya). برای مشاهده نسخه بزرگ‌تر روی تصویر کلیک کنید. @@ -62,7 +62,7 @@ 1. دکمه **Publish** را برای نسخه انتخاب کنید. - ![دکمه انتشار](../../../../../translated_images/fa/custom-vision-object-detector-publish-button.34ee379fc650ccb9856c3868d0003f413b9529f102fc73c37168c98d721cc293.png) + ![دکمه انتشار](../../../../../translated_images/fa/custom-vision-object-detector-publish-button.34ee379fc650ccb9.webp) 1. در دیالوگ *Publish Model*، منبع *Prediction resource* را به منبع `stock-detector-prediction` که در درس قبلی ایجاد کرده‌اید تنظیم کنید. نام را به صورت `Iteration2` باقی بگذارید و دکمه **Publish** را انتخاب کنید. @@ -76,7 +76,7 @@ همچنین مقدار *Prediction-Key* را کپی کنید. این یک کلید امن است که باید هنگام فراخوانی مدل ارسال شود. فقط برنامه‌هایی که این کلید را ارسال کنند اجازه استفاده از مدل را دارند و سایر برنامه‌ها رد می‌شوند. - ![دیالوگ API پیش‌بینی که URL و کلید را نشان می‌دهد](../../../../../translated_images/fa/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![دیالوگ API پیش‌بینی که URL و کلید را نشان می‌دهد](../../../../../translated_images/fa/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ وقتی یک نسخه جدید منتشر می‌شود، نام متفاوتی خواهد داشت. فکر می‌کنید چگونه می‌توانید نسخه‌ای که دستگاه IoT استفاده می‌کند را تغییر دهید؟ @@ -95,7 +95,7 @@ نتایج پیش‌بینی در تب **Predictions** در Custom Vision دارای جعبه‌های محدودکننده‌ای هستند که روی تصویر ارسال شده برای پیش‌بینی ترسیم شده‌اند. -![۴ قوطی رب گوجه‌فرنگی روی قفسه با پیش‌بینی‌های ۳۵.۸٪، ۳۳.۵٪، ۲۵.۷٪ و ۱۶.۶٪](../../../../../translated_images/fa/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) +![۴ قوطی رب گوجه‌فرنگی روی قفسه با پیش‌بینی‌های ۳۵.۸٪، ۳۳.۵٪، ۲۵.۷٪ و ۱۶.۶٪](../../../../../translated_images/fa/custom-vision-stock-prediction.942266ab1bcca341.webp) در تصویر بالا، ۴ قوطی رب گوجه‌فرنگی شناسایی شده‌اند. در نتایج، یک مربع قرمز برای هر شیء شناسایی شده در تصویر ترسیم شده است که جعبه محدودکننده برای تصویر را نشان می‌دهد. @@ -103,7 +103,7 @@ جعبه‌های محدودکننده با ۴ مقدار تعریف می‌شوند - بالا، چپ، ارتفاع و عرض. این مقادیر در مقیاس ۰-۱ هستند و موقعیت‌ها را به عنوان درصدی از اندازه تصویر نشان می‌دهند. مبدا (موقعیت ۰,۰) گوشه بالا سمت چپ تصویر است، بنابراین مقدار بالا فاصله از بالا است و پایین جعبه محدودکننده برابر با بالا به علاوه ارتفاع است. -![یک جعبه محدودکننده دور یک قوطی رب گوجه‌فرنگی](../../../../../translated_images/fa/bounding-box.1420a7ea0d3d15f71e1ffb5cf4b2271d184fac051f990abc541975168d163684.png) +![یک جعبه محدودکننده دور یک قوطی رب گوجه‌فرنگی](../../../../../translated_images/fa/bounding-box.1420a7ea0d3d15f7.webp) تصویر بالا ۶۰۰ پیکسل عرض و ۸۰۰ پیکسل ارتفاع دارد. جعبه محدودکننده از ۳۲۰ پیکسل پایین شروع می‌شود، که مقدار بالا برابر با ۰.۴ است (۸۰۰ x 0.4 = 320). از سمت چپ، جعبه محدودکننده از ۲۴۰ پیکسل عرض شروع می‌شود، که مقدار چپ برابر با ۰.۴ است (۶۰۰ x 0.4 = 240). ارتفاع جعبه محدودکننده ۲۴۰ پیکسل است، که مقدار ارتفاع برابر با ۰.۳ است (۸۰۰ x 0.3 = 240). عرض جعبه محدودکننده ۱۲۰ پیکسل است، که مقدار عرض برابر با ۰.۲ است (۶۰۰ x 0.2 = 120). @@ -118,7 +118,7 @@ می‌توانید از جعبه‌های محدودکننده همراه با احتمالات برای ارزیابی دقت شناسایی استفاده کنید. برای مثال، یک مدل تشخیص اشیا می‌تواند چندین شیء را که با هم همپوشانی دارند شناسایی کند، مانند شناسایی یک قوطی داخل دیگری. کد شما می‌تواند جعبه‌های محدودکننده را بررسی کند، بفهمد که این غیرممکن است و هر شیء که همپوشانی قابل توجهی با سایر اشیا دارد را نادیده بگیرد. -![دو جعبه محدودکننده که یک قوطی رب گوجه‌فرنگی را همپوشانی کرده‌اند](../../../../../translated_images/fa/overlap-object-detection.d431e03cae75072a2760430eca7f2c5fdd43045bfd72dadcbf12711f7cd6c2ae.png) +![دو جعبه محدودکننده که یک قوطی رب گوجه‌فرنگی را همپوشانی کرده‌اند](../../../../../translated_images/fa/overlap-object-detection.d431e03cae75072a.webp) در مثال بالا، یک جعبه محدودکننده یک قوطی رب گوجه‌فرنگی را با احتمال ۷۸.۳٪ شناسایی کرده است. یک جعبه محدودکننده دوم کمی کوچک‌تر است و داخل جعبه اول با احتمال ۶۴.۳٪ قرار دارد. کد شما می‌تواند جعبه‌های محدودکننده را بررسی کند، ببیند که کاملاً همپوشانی دارند و احتمال پایین‌تر را نادیده بگیرد زیرا امکان ندارد یک قوطی داخل دیگری باشد. diff --git a/translations/fa/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md b/translations/fa/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md index 2e0086994..b9f21200c 100644 --- a/translations/fa/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md +++ b/translations/fa/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md @@ -67,7 +67,7 @@ شما می‌توانید تصویری که گرفته شده و این مقادیر را در تب **Predictions** در Custom Vision مشاهده کنید. - ![چهار قوطی رب گوجه‌فرنگی روی یک قفسه با پیش‌بینی‌هایی برای چهار شناسایی با مقادیر ۳۵.۸٪، ۳۳.۵٪، ۲۵.۷٪ و ۱۶.۶٪](../../../../../translated_images/fa/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![چهار قوطی رب گوجه‌فرنگی روی یک قفسه با پیش‌بینی‌هایی برای چهار شناسایی با مقادیر ۳۵.۸٪، ۳۳.۵٪، ۲۵.۷٪ و ۱۶.۶٪](../../../../../translated_images/fa/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 می‌توانید این کد را در پوشه [code-detect/pi](../../../../../5-retail/lessons/2-check-stock-device/code-detect/pi) یا [code-detect/virtual-iot-device](../../../../../5-retail/lessons/2-check-stock-device/code-detect/virtual-iot-device) پیدا کنید. diff --git a/translations/fa/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md b/translations/fa/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md index a578e9ab3..f7a91484f 100644 --- a/translations/fa/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md +++ b/translations/fa/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md @@ -95,7 +95,7 @@ شما قادر خواهید بود تصویری که گرفته شده و این مقادیر را در تب **Predictions** در Custom Vision مشاهده کنید. - ![4 قوطی رب گوجه‌فرنگی روی یک قفسه با پیش‌بینی‌هایی برای 4 آشکارسازی با درصدهای 35.8%، 33.5%، 25.7% و 16.6%](../../../../../translated_images/fa/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![4 قوطی رب گوجه‌فرنگی روی یک قفسه با پیش‌بینی‌هایی برای 4 آشکارسازی با درصدهای 35.8%، 33.5%، 25.7% و 16.6%](../../../../../translated_images/fa/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 می‌توانید این کد را در پوشه [code-detect/wio-terminal](../../../../../5-retail/lessons/2-check-stock-device/code-detect/wio-terminal) پیدا کنید. diff --git a/translations/fa/6-consumer/lessons/1-speech-recognition/README.md b/translations/fa/6-consumer/lessons/1-speech-recognition/README.md index 9c4ba752b..5ad6c4770 100644 --- a/translations/fa/6-consumer/lessons/1-speech-recognition/README.md +++ b/translations/fa/6-consumer/lessons/1-speech-recognition/README.md @@ -1,6 +1,6 @@ # تشخیص گفتار با یک دستگاه IoT -![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-21.e34de51354d6606fb5ee08d8c89d0222eea0a2a7aaf744a8805ae847c4f69dc4.jpg) +![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-21.e34de51354d6606f.webp) > اسکچ‌نوت توسط [نیتیا ناراسیمهان](https://github.com/nitya). برای مشاهده نسخه بزرگ‌تر روی تصویر کلیک کنید. @@ -51,7 +51,7 @@ میکروفون‌های داینامیک برای کار کردن به برق نیاز ندارند، سیگنال الکتریکی کاملاً توسط میکروفون ایجاد می‌شود. - ![پتی اسمیت در حال خواندن به یک میکروفون نوع داینامیک کاردیوید Shure SM58](../../../../../translated_images/fa/dynamic-mic.8babac890a2d80dfb0874b5bf37d4b851fe2aeb9da6fd72945746176978bf3bb.jpg) + ![پتی اسمیت در حال خواندن به یک میکروفون نوع داینامیک کاردیوید Shure SM58](../../../../../translated_images/fa/dynamic-mic.8babac890a2d80df.webp) * ریبون - میکروفون‌های ریبون مشابه میکروفون‌های داینامیک هستند، با این تفاوت که به جای دیافراگم یک نوار فلزی دارند. این نوار در یک میدان مغناطیسی حرکت می‌کند و جریان الکتریکی ایجاد می‌کند. مانند میکروفون‌های داینامیک، میکروفون‌های ریبون برای کار کردن به برق نیاز ندارند. @@ -59,11 +59,11 @@ * کندانسور - میکروفون‌های کندانسور دارای یک دیافراگم فلزی نازک و یک صفحه پشتی فلزی ثابت هستند. برق به هر دوی این‌ها اعمال می‌شود و با ارتعاش دیافراگم، بار استاتیک بین صفحات تغییر می‌کند و سیگنال تولید می‌شود. میکروفون‌های کندانسور برای کار کردن به برق نیاز دارند - که به آن *Phantom power* گفته می‌شود. - ![میکروفون کندانسور کوچک دیافراگم C451B توسط AKG Acoustics](../../../../../translated_images/fa/condenser-mic.6f6ed5b76ca19e0ec3fd0c544601542d4479a6cb7565db336de49fbbf69f623e.jpg) + ![میکروفون کندانسور کوچک دیافراگم C451B توسط AKG Acoustics](../../../../../translated_images/fa/condenser-mic.6f6ed5b76ca19e0e.webp) * MEMS - میکروفون‌های سیستم‌های میکروالکترومکانیکی، یا MEMS، میکروفون‌هایی روی یک تراشه هستند. آن‌ها دارای یک دیافراگم حساس به فشار هستند که روی یک تراشه سیلیکونی حک شده و مشابه یک میکروفون کندانسور کار می‌کنند. این میکروفون‌ها می‌توانند بسیار کوچک باشند و در مدارها ادغام شوند. - ![یک میکروفون MEMS روی یک برد مدار](../../../../../translated_images/fa/mems-microphone.80574019e1f5e4d9ee72fed720ecd25a39fc2969c91355d17ebb24ba4159e4c4.png) + ![یک میکروفون MEMS روی یک برد مدار](../../../../../translated_images/fa/mems-microphone.80574019e1f5e4d9.webp) در تصویر بالا، تراشه‌ای که با **LEFT** برچسب‌گذاری شده است یک میکروفون MEMS است، با یک دیافراگم کوچک که کمتر از یک میلی‌متر عرض دارد. @@ -159,7 +159,7 @@ ## تبدیل گفتار به متن -![لوگوی خدمات گفتار](../../../../../translated_images/fa/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![لوگوی خدمات گفتار](../../../../../translated_images/fa/azure-speech-logo.a1f08c4befb0159f.webp) مانند طبقه‌بندی تصویر در پروژه قبلی، خدمات هوش مصنوعی از پیش ساخته‌ای وجود دارند که می‌توانند گفتار را به عنوان یک فایل صوتی دریافت کرده و به متن تبدیل کنند. یکی از این خدمات، سرویس گفتار است که بخشی از خدمات شناختی، خدمات هوش مصنوعی از پیش ساخته‌ای است که می‌توانید در برنامه‌های خود استفاده کنید. diff --git a/translations/fa/6-consumer/lessons/1-speech-recognition/pi-audio.md b/translations/fa/6-consumer/lessons/1-speech-recognition/pi-audio.md index 15c131c5f..b2e9c53f7 100644 --- a/translations/fa/6-consumer/lessons/1-speech-recognition/pi-audio.md +++ b/translations/fa/6-consumer/lessons/1-speech-recognition/pi-audio.md @@ -16,13 +16,13 @@ #### وظیفه - اتصال دکمه -![یک دکمه Grove](../../../../../translated_images/fa/grove-button.a70cfbb809a8563681003250cf5b06d68cdcc68624f9e2f493d5a534ae2da1e5.png) +![یک دکمه Grove](../../../../../translated_images/fa/grove-button.a70cfbb809a85636.webp) 1. یک سر کابل Grove را به سوکت روی ماژول دکمه وارد کنید. کابل فقط به یک جهت وارد می‌شود. 1. با خاموش بودن رزبری پای، سر دیگر کابل Grove را به سوکت دیجیتال با علامت **D5** روی هت پایه Grove که به پای متصل است وصل کنید. این سوکت دومین سوکت از سمت چپ در ردیف سوکت‌های کنار پین‌های GPIO است. -![دکمه Grove متصل به سوکت D5](../../../../../translated_images/fa/pi-button.c7a1a4f55943341ce1baf1057658e9a205804d4131d258e820c93f951df0abf3.png) +![دکمه Grove متصل به سوکت D5](../../../../../translated_images/fa/pi-button.c7a1a4f55943341c.webp) ## ضبط صدا diff --git a/translations/fa/6-consumer/lessons/1-speech-recognition/pi-microphone.md b/translations/fa/6-consumer/lessons/1-speech-recognition/pi-microphone.md index 0a4be9cb7..4122be364 100644 --- a/translations/fa/6-consumer/lessons/1-speech-recognition/pi-microphone.md +++ b/translations/fa/6-consumer/lessons/1-speech-recognition/pi-microphone.md @@ -34,7 +34,7 @@ 1. اگر از ReSpeaker 2-Mics Pi HAT استفاده می‌کنید، می‌توانید پایه Grove را بردارید و سپس HAT ReSpeaker را جایگزین کنید. - ![یک رزبری پای با HAT ReSpeaker](../../../../../translated_images/fa/pi-respeaker-hat.f00fabe7dd039a93e2e0aa0fc946c9af0c6a9eb17c32fa1ca097fb4e384f69f0.png) + ![یک رزبری پای با HAT ReSpeaker](../../../../../translated_images/fa/pi-respeaker-hat.f00fabe7dd039a93.webp) شما در ادامه این درس به یک دکمه Grove نیاز خواهید داشت، اما یکی از این دکمه‌ها در این HAT تعبیه شده است، بنابراین پایه Grove لازم نیست. diff --git a/translations/fa/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md b/translations/fa/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md index ae9e6f8ac..79e04e549 100644 --- a/translations/fa/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md +++ b/translations/fa/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md @@ -10,7 +10,7 @@ ✅ اطلاعات بیشتر درباره DMA را در [صفحه دسترسی مستقیم به حافظه در ویکی‌پدیا](https://wikipedia.org/wiki/Direct_memory_access) بخوانید. -![صدا از میکروفون به ADC می‌رود و سپس به DMAC. این داده‌ها را به یک بافر می‌نویسد. وقتی این بافر پر شد، پردازش می‌شود و DMAC به بافر دوم می‌نویسد](../../../../../translated_images/fa/dmac-adc-buffers.4509aee49145c90bc2e1be472b8ed2ddfcb2b6a81ad3e559114aca55f5fff759.png) +![صدا از میکروفون به ADC می‌رود و سپس به DMAC. این داده‌ها را به یک بافر می‌نویسد. وقتی این بافر پر شد، پردازش می‌شود و DMAC به بافر دوم می‌نویسد](../../../../../translated_images/fa/dmac-adc-buffers.4509aee49145c90b.webp) DMAC می‌تواند صدا را از ADC در فواصل ثابت ضبط کند، مانند 16,000 بار در ثانیه برای صدای 16KHz. این داده‌های ضبط‌شده را می‌تواند به یک بافر حافظه از پیش تخصیص‌یافته بنویسد، و وقتی این بافر پر شد، آن را برای پردازش در اختیار کد شما قرار دهد. استفاده از این حافظه ممکن است ضبط صدا را به تأخیر بیندازد، اما می‌توانید چندین بافر تنظیم کنید. DMAC به بافر 1 می‌نویسد، سپس وقتی پر شد، کد شما را برای پردازش بافر 1 مطلع می‌کند، در حالی که DMAC به بافر 2 می‌نویسد. وقتی بافر 2 پر شد، کد شما را مطلع می‌کند و دوباره به نوشتن در بافر 1 بازمی‌گردد. به این ترتیب، تا زمانی که هر بافر را در زمانی کمتر از زمان پر شدن آن پردازش کنید، هیچ داده‌ای از دست نخواهد رفت. diff --git a/translations/fa/6-consumer/lessons/2-language-understanding/README.md b/translations/fa/6-consumer/lessons/2-language-understanding/README.md index ee3769e10..4340fd431 100644 --- a/translations/fa/6-consumer/lessons/2-language-understanding/README.md +++ b/translations/fa/6-consumer/lessons/2-language-understanding/README.md @@ -1,6 +1,6 @@ # درک زبان -![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-22.6148ea28500d9e00c396aaa2649935fb6641362c8f03d8e5e90a676977ab01dd.jpg) +![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-22.6148ea28500d9e00.webp) > اسکچ‌نوت توسط [نیتیا ناراسیمهان](https://github.com/nitya). برای مشاهده نسخه بزرگ‌تر روی تصویر کلیک کنید. @@ -46,7 +46,7 @@ ## ایجاد یک مدل درک زبان -![لوگوی LUIS](../../../../../translated_images/fa/luis-logo.5cb4f3e88c020ee6df4f614e8831f4a4b6809a7247bf52085fb48d629ef9be52.png) +![لوگوی LUIS](../../../../../translated_images/fa/luis-logo.5cb4f3e88c020ee6.webp) شما می‌توانید مدل‌های درک زبان را با استفاده از LUIS، یک سرویس درک زبان از مایکروسافت که بخشی از خدمات شناختی است، ایجاد کنید. @@ -169,7 +169,7 @@ 1. همانطور که هر مثال را وارد می‌کنید، LUIS شروع به شناسایی موجودیت‌ها می‌کند و هر موجودیتی که پیدا کند را زیرخط و برچسب‌گذاری می‌کند. - ![مثال‌ها با اعداد و واحدهای زمانی که توسط LUIS زیرخط شده‌اند](../../../../../translated_images/fa/luis-intent-examples.25716580b2d2723cf1bafdf277d015c7f046d8cfa20f27bddf3a0873ec45fab7.png) + ![مثال‌ها با اعداد و واحدهای زمانی که توسط LUIS زیرخط شده‌اند](../../../../../translated_images/fa/luis-intent-examples.25716580b2d2723c.webp) ### وظیفه - آموزش و آزمایش مدل diff --git a/translations/fa/6-consumer/lessons/3-spoken-feedback/README.md b/translations/fa/6-consumer/lessons/3-spoken-feedback/README.md index b08b9efbf..cdb7a8f93 100644 --- a/translations/fa/6-consumer/lessons/3-spoken-feedback/README.md +++ b/translations/fa/6-consumer/lessons/3-spoken-feedback/README.md @@ -1,6 +1,6 @@ # تنظیم تایمر و ارائه بازخورد صوتی -![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-23.f38483e1d4df4828990d3f02d60e46c978b075d384ae7cb4f7bab738e107c850.jpg) +![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-23.f38483e1d4df4828.webp) > اسکچ‌نوت توسط [نیتیا ناراسیمهان](https://github.com/nitya). برای مشاهده نسخه بزرگ‌تر روی تصویر کلیک کنید. diff --git a/translations/fa/6-consumer/lessons/4-multiple-language-support/README.md b/translations/fa/6-consumer/lessons/4-multiple-language-support/README.md index ae2e3c8ca..6c30be230 100644 --- a/translations/fa/6-consumer/lessons/4-multiple-language-support/README.md +++ b/translations/fa/6-consumer/lessons/4-multiple-language-support/README.md @@ -1,6 +1,6 @@ # پشتیبانی از چند زبان -![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-24.4246968ed058510ab275052e87ef9aa89c7b2f938915d103c605c04dc6cd5bb7.jpg) +![نمای کلی درس به صورت اسکچ‌نوت](../../../../../translated_images/fa/lesson-24.4246968ed058510a.webp) > اسکچ‌نوت توسط [نیتیا ناراسیمهان](https://github.com/nitya). برای مشاهده نسخه بزرگ‌تر روی تصویر کلیک کنید. @@ -74,7 +74,7 @@ ### خدمات شناختی سرویس گفتار -![لوگوی سرویس گفتار](../../../../../translated_images/fa/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![لوگوی سرویس گفتار](../../../../../translated_images/fa/azure-speech-logo.a1f08c4befb0159f.webp) سرویس گفتاری که در درس‌های گذشته استفاده کرده‌اید، قابلیت‌های ترجمه برای تشخیص گفتار دارد. هنگامی که گفتار را تشخیص می‌دهید، می‌توانید نه تنها متن گفتار را به همان زبان درخواست کنید، بلکه به زبان‌های دیگر نیز. @@ -82,7 +82,7 @@ ### خدمات شناختی سرویس مترجم -![لوگوی سرویس مترجم](../../../../../translated_images/fa/azure-translator-logo.c6ed3a4a433edfd2f11577eca105412c50b8396b194cbbd730723dd1d0793bcd.png) +![لوگوی سرویس مترجم](../../../../../translated_images/fa/azure-translator-logo.c6ed3a4a433edfd2.webp) سرویس مترجم یک سرویس ترجمه اختصاصی است که می‌تواند متن را از یک زبان به یک یا چند زبان هدف ترجمه کند. علاوه بر ترجمه، از طیف گسترده‌ای از ویژگی‌های اضافی مانند ماسک کردن کلمات نامناسب پشتیبانی می‌کند. همچنین به شما اجازه می‌دهد ترجمه خاصی برای یک کلمه یا جمله خاص ارائه دهید، برای کار با اصطلاحاتی که نمی‌خواهید ترجمه شوند یا ترجمه شناخته‌شده خاصی دارند. diff --git a/translations/fa/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md b/translations/fa/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md index e286bdc11..8885f9a17 100644 --- a/translations/fa/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md +++ b/translations/fa/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md @@ -25,7 +25,7 @@ > > برای مثال، اگر LUIS را به زبان انگلیسی آموزش داده‌اید اما می‌خواهید از زبان فرانسوی به‌عنوان زبان کاربر استفاده کنید، می‌توانید جملاتی مانند "set a 2 minute and 27 second timer" را از انگلیسی به فرانسوی با استفاده از Bing Translate ترجمه کنید، سپس از دکمه **Listen translation** برای گفتن ترجمه به میکروفون خود استفاده کنید. > - > ![دکمه Listen translation در Bing Translate](../../../../../translated_images/fa/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![دکمه Listen translation در Bing Translate](../../../../../translated_images/fa/bing-translate.348aa796d6efe2a9.webp) 1. کلید API مترجم را زیر `speech_api_key` اضافه کنید: diff --git a/translations/fa/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md b/translations/fa/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md index 60f2a1ec1..d37cff9b3 100644 --- a/translations/fa/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md +++ b/translations/fa/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md @@ -37,7 +37,7 @@ > > برای مثال، اگر LUIS را به زبان انگلیسی آموزش داده‌اید اما می‌خواهید از زبان فرانسوی به‌عنوان زبان کاربر استفاده کنید، می‌توانید جملاتی مانند "set a 2 minute and 27 second timer" را از انگلیسی به فرانسوی با استفاده از Bing Translate ترجمه کنید، سپس از دکمه **Listen translation** برای گفتن ترجمه به میکروفون خود استفاده کنید. > - > ![دکمه Listen translation در Bing Translate](../../../../../translated_images/fa/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![دکمه Listen translation در Bing Translate](../../../../../translated_images/fa/bing-translate.348aa796d6efe2a9.webp) 1. اعلان‌های `recognizer_config` و `recognizer` را با موارد زیر جایگزین کنید: diff --git a/translations/fa/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md b/translations/fa/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md index e179842bf..9673708fb 100644 --- a/translations/fa/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md +++ b/translations/fa/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md @@ -105,7 +105,7 @@ > > برای مثال، اگر LUIS را به زبان انگلیسی آموزش داده‌اید اما می‌خواهید از زبان فرانسوی به‌عنوان زبان کاربر استفاده کنید، می‌توانید جملاتی مانند "set a 2 minute and 27 second timer" را از انگلیسی به فرانسوی با استفاده از Bing Translate ترجمه کنید، سپس از دکمه **Listen translation** برای گفتن ترجمه به میکروفون خود استفاده کنید. > - > ![دکمه Listen translation در Bing Translate](../../../../../translated_images/fa/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![دکمه Listen translation در Bing Translate](../../../../../translated_images/fa/bing-translate.348aa796d6efe2a9.webp) 1. کلید API مترجم و مکان آن را زیر `SPEECH_LOCATION` اضافه کنید: diff --git a/translations/fa/README.md b/translations/fa/README.md index 37fa07a3e..33f6343ca 100644 --- a/translations/fa/README.md +++ b/translations/fa/README.md @@ -1,27 +1,27 @@ -[![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](https://img.shields.io/github/license/microsoft/IoT-For-Beginners.svg)](https://github.com/microsoft/IoT-For-Beginners/blob/master/LICENSE) +[![مشارکت‌کنندگان GitHub](https://img.shields.io/github/contributors/microsoft/IoT-For-Beginners.svg)](https://GitHub.com/microsoft/IoT-For-Beginners/graphs/contributors/) +[![مشکلات GitHub](https://img.shields.io/github/issues/microsoft/IoT-For-Beginners.svg)](https://GitHub.com/microsoft/IoT-For-Beginners/issues/) +[![درخواست‌های کشش GitHub](https://img.shields.io/github/issues-pr/microsoft/IoT-For-Beginners.svg)](https://GitHub.com/microsoft/IoT-For-Beginners/pulls/) +[![خوش‌آمدگویی درخواست‌های کشش](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/) +[![ناظرین GitHub](https://img.shields.io/github/watchers/microsoft/IoT-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/IoT-For-Beginners/watchers/) +[![شاخه‌های GitHub](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/network/) +[![ستاره‌های GitHub](https://img.shields.io/github/stars/microsoft/IoT-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/IoT-For-Beginners/stargazers/) ### به جامعه Azure AI Foundry بپیوندید -اگر در ساخت برنامه‌های هوش مصنوعی گیر کرده‌اید یا سوالی دارید، به جمع یادگیرندگان و توسعه‌دهندگان با تجربه در بحث‌های مربوط به MCP بپیوندید. این یک جامعه حمایتی است که در آن سوالات پذیرفته می‌شوند و دانش به صورت آزادانه به اشتراک گذاشته می‌شود. +اگر گیر کرده‌اید یا سوالی درباره ساخت برنامه‌های هوش مصنوعی دارید، به همراه یادگیرندگان و توسعه‌دهندگان باتجربه در بحث‌های پیرامون MCP بپیوندید. این یک جامعه حمایتی است که در آن پرسش‌ها استقبال می‌شوند و دانش به صورت آزادانه به اشتراک گذاشته می‌شود. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -اگر بازخورد محصول دارید یا در هنگام ساخت با اشکال مواجه شدید، به آدرس زیر مراجعه کنید: +اگر بازخورد محصول دارید یا هنگام ساخت با خطا مواجه شدید، به اینجا مراجعه کنید: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -برای شروع استفاده از این منابع، مراحل زیر را دنبال کنید: -1. **کتابخانه را فورک کنید**: روی [![GitHub forks](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) کلیک کنید -2. **کتابخانه را کلون کنید**: `git clone https://github.com/microsoft/IoT-For-Beginners.git` -3. [**به Discord Microsoft Foundry بپیوندید و با کارشناسان و توسعه‌دهندگان همفکر ملاقات کنید**](https://discord.com/invite/ByRwuEEgH4) +برای شروع استفاده از این منابع مراحل زیر را دنبال کنید: +1. **شاخه‌ای از مخزن بسازید**: کلیک کنید [![شاخه‌های GitHub](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) +2. **مخزن را کلون کنید**: `git clone https://github.com/microsoft/IoT-For-Beginners.git` +3. [**به Discord مایکروسافت فاندری بپیوندید و با کارشناسان و توسعه‌دهندگان هم‌سطح خود ملاقات کنید**](https://discord.com/invite/ByRwuEEgH4) ### 🌐 پشتیبانی چندزبانه @@ -29,123 +29,133 @@ #### پشتیبانی شده از طریق GitHub Action (خودکار و همیشه به‌روز) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](./README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[عربی](../ar/README.md) | [بنگالی](../bn/README.md) | [بلغاری](../bg/README.md) | [برمه‌ای (میانمار)](../my/README.md) | [چینی (ساده شده)](../zh-CN/README.md) | [چینی (سنتی، هنگ‌کنگ)](../zh-HK/README.md) | [چینی (سنتی، ماکائو)](../zh-MO/README.md) | [چینی (سنتی، تایوان)](../zh-TW/README.md) | [کرواسی](../hr/README.md) | [چک](../cs/README.md) | [دانمارکی](../da/README.md) | [هلندی](../nl/README.md) | [استونیایی](../et/README.md) | [فنلاندی](../fi/README.md) | [فرانسوی](../fr/README.md) | [آلمانی](../de/README.md) | [یونانی](../el/README.md) | [عبری](../he/README.md) | [هندی](../hi/README.md) | [مجارستانی](../hu/README.md) | [اندونزیایی](../id/README.md) | [ایتالیایی](../it/README.md) | [ژاپنی](../ja/README.md) | [کانادا](../kn/README.md) | [خمری](../km/README.md) | [کره‌ای](../ko/README.md) | [لیتوانیایی](../lt/README.md) | [مالایایی](../ms/README.md) | [مالایالام](../ml/README.md) | [مراتی](../mr/README.md) | [نپالی](../ne/README.md) | [پیدگین نیجریه‌ای](../pcm/README.md) | [نروژی](../no/README.md) | [فارسی (Farsi)](./README.md) | [لهستانی](../pl/README.md) | [پرتغالی (برزیل)](../pt-BR/README.md) | [پرتغالی (پرتغال)](../pt-PT/README.md) | [پنجابی (گورموقی)](../pa/README.md) | [رومانیایی](../ro/README.md) | [روسی](../ru/README.md) | [صربی (سیریلیک)](../sr/README.md) | [اسلواکی](../sk/README.md) | [اسلوونیایی](../sl/README.md) | [اسپانیایی](../es/README.md) | [سواحلی](../sw/README.md) | [سوئدی](../sv/README.md) | [تاگالوگ (فیلیپینی)](../tl/README.md) | [تامیلی](../ta/README.md) | [تلگو](../te/README.md) | [تایلندی](../th/README.md) | [ترکی](../tr/README.md) | [اوکراینی](../uk/README.md) | [اردو](../ur/README.md) | [ویتنامی](../vi/README.md) -> **ترجیح می‌دهید به صورت محلی کلون کنید؟** - -> این مخزن شامل بیش از ۵۰ ترجمه زبان است که اندازه دانلود را به طور قابل توجهی افزایش می‌دهد. برای کلون کردن بدون ترجمه‌ها، از sparse checkout استفاده کنید: +> **ترجیح می‌دهید محلی کلون کنید؟** +> +> این مخزن شامل بیش از ۵۰ ترجمه زبان است که حجم دانلود را به‌شدت افزایش می‌دهد. برای کلون کردن بدون ترجمه‌ها، از sparse checkout استفاده کنید: +> +> **Bash / macOS / لینوکس:** > ```bash > git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git > cd IoT-For-Beginners > git sparse-checkout set --no-cone '/*' '!translations' '!translated_images' > ``` -> این به شما همه چیز لازم برای تکمیل دوره با دانلودی بسیار سریع‌تر را می‌دهد. +> +> **CMD (ویندوز):** +> ```cmd +> git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git +> cd IoT-For-Beginners +> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" +> ``` +> +> این به شما همه چیز مورد نیاز برای انجام دوره را با دانلودی بسیار سریع‌تر می‌دهد. -# اینترنت اشیاء برای مبتدیان - یک برنامه درسی +# IoT برای مبتدیان - یک برنامه آموزشی -مدافعان ابر Azure در مایکروسافت خوشحالند که یک برنامه درسی 12 هفته‌ای و 24 درس را درباره اصول اینترنت اشیاء ارائه دهند. هر درس شامل کوییزهای قبل و بعد از درس، دستورالعمل‌های مکتوب برای تکمیل درس، یک راه‌حل، یک تکلیف و موارد بیشتر است. روش آموزشی مبتنی بر پروژه ما به شما اجازه می‌دهد همزمان با ساختن یاد بگیرید، که روشی اثبات شده برای تثبیت مهارت‌های جدید است. +مدافعان ابری آزور در مایکروسافت خوشحالند یک دوره آموزشی ۱۲ هفته‌ای شامل ۲۴ درس درباره مبانی اینترنت اشیاء ارائه دهند. هر درس شامل آزمون‌های قبل و بعد از درس، دستورالعمل‌های نوشتاری برای تکمیل درس، یک راه‌حل، یک تمرین و موارد دیگر است. روش آموزش مبتنی بر پروژه ما به شما امکان می‌دهد در حین ساخت یاد بگیرید، روشی اثبات شده برای «پایدار شدن» مهارت‌های جدید. -پروژه‌ها سفر غذا را از مزرعه تا میز پوشش می‌دهند. این شامل کشاورزی، لجستیک، تولید، خرده‌فروشی و مصرف‌کننده - همه حوزه‌های محبوب صنعت برای دستگاه‌های اینترنت اشیاء است. +پروژه‌ها جریان غذا را از مزرعه تا میز بررسی می‌کنند. این شامل کشاورزی، لجستیک، تولید، فروش و مصرف‌کننده است - همه حوزه‌های محبوب صنعتی برای دستگاه‌های IoT. -![نقشه راه دوره شامل 24 درس که معرفی، کشاورزی، حمل و نقل، پردازش، خرده‌فروشی و آشپزی را پوشش می‌دهد](../../translated_images/fa/Roadmap.bb1dec285dda0eda.webp) +![نقشه راه دوره که ۲۴ درس را پوشش می‌دهد شامل معرفی، کشاورزی، حمل و نقل، پردازش، فروش و آشپزی](../../translated_images/fa/Roadmap.bb1dec285dda0eda.webp) -> یادداشت تصویری توسط [Nitya Narasimhan](https://github.com/nitya). برای نسخه بزرگ‌تر روی تصویر کلیک کنید. +> یادداشت طرح توسط [Nitya Narasimhan](https://github.com/nitya). برای نسخه بزرگ‌تر روی تصویر کلیک کنید. -**از نویسندگان ما، [Jen Fox](https://github.com/jenfoxbot)، [Jen Looper](https://github.com/jlooper)، [Jim Bennett](https://github.com/jimbobbennett)، و هنرمند یادداشت تصویری ما [Nitya Narasimhan](https://github.com/nitya) صمیمانه سپاسگزاریم.** +**از نویسندگان ما، [Jen Fox](https://github.com/jenfoxbot)، [Jen Looper](https://github.com/jlooper)، [Jim Bennett](https://github.com/jimbobbennett)، و هنرمند یادداشت طرح ما [Nitya Narasimhan](https://github.com/nitya) صمیمانه تشکر می‌کنیم.** -**همچنین از تیم ما از [دانشجویان سفیر مایکروسافت](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/).** +**همچنین از تیم ما از [سفیران دانشجویی مایکروسافت](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/).** با تیم آشنا شوید! -[![ویدئوی تبلیغاتی](../../images/IOT.gif)](https://youtu.be/-wippUJRi5k) +[![ویدئوی معرفی](../../images/IOT.gif)](https://youtu.be/-wippUJRi5k) **گیف توسط** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 روی تصویر بالا برای دیدن یک ویدئو درباره پروژه کلیک کنید! +> 🎥 برای دیدن ویدئو درباره پروژه روی تصویر بالا کلیک کنید! -> **معلمان**، ما [پیشنهاداتی ارائه داده‌ایم](for-teachers.md) در مورد نحوه استفاده از این برنامه درسی. اگر می‌خواهید درس‌های خود را ایجاد کنید، قالب درسی نیز اضافه کرده‌ایم [lesson template](lesson-template/README.md). +> **معلمان**، ما [برخی پیشنهادات](for-teachers.md) را درباره نحوه استفاده از این دوره ارائه داده‌ایم. اگر می‌خواهید درس‌های خود را ایجاد کنید، ما همچنین یک [قالب درس](lesson-template/README.md) را وارد کرده‌ایم. -> **[دانش‌آموزان](https://aka.ms/student-page)**، برای استفاده از این برنامه درسی به تنهایی، کل مخزن را فورک کنید و تمرین‌ها را خودتان انجام دهید، ابتدا با یک کوییز قبل از درس شروع کنید، سپس درس را بخوانید و بقیه فعالیت‌ها را کامل کنید. سعی کنید پروژه‌ها را با درک درس‌ها بسازید، نه کپی کردن کد راه‌حل؛ با این حال کد راه‌حل در پوشه‌های /solutions هر درس پروژه‌محور موجود است. ایده دیگر این است که یک گروه مطالعه با دوستان تشکیل دهید و با هم محتوا را مرور کنید. برای مطالعه بیشتر، مایکروسافت لرن را توصیه می‌کنیم [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn). +> **[دانش‌آموزان](https://aka.ms/student-page)**، برای استفاده مستقل از این دوره، کل مخزن را شاخه گرفته و تمرین‌ها را به تنهایی انجام دهید، شروع با یک آزمون پیش از درس، سپس مطالعه درس و انجام سایر فعالیت‌ها. سعی کنید پروژه‌ها را با درک درس‌ها بسازید نه صرفا کپی کردن کد راه‌حل؛ هر چند آن کد در پوشه‌های /solutions در هر درس متمرکز بر پروژه موجود است. ایده دیگر تشکیل یک گروه مطالعه با دوستان و مرور محتوا به‌صورت گروهی است. برای مطالعه بیشتر، ما [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn) را توصیه می‌کنیم. -برای دریافت نمای کلی ویدیویی این دوره، این ویدئو را ببینید: +برای مرور ویدیویی این دوره، این ویدئو را ببینید: -[![ویدئوی تبلیغاتی](https://img.youtube.com/vi/bccEMm8gRuc/0.jpg)](https://youtube.com/watch?v=bccEMm8gRuc "Promo video") +[![ویدئوی معرفی](https://img.youtube.com/vi/bccEMm8gRuc/0.jpg)](https://youtube.com/watch?v=bccEMm8gRuc "ویدئوی معرفی") -> 🎥 روی تصویر بالا برای دیدن یک ویدئو درباره پروژه کلیک کنید! +> 🎥 برای دیدن ویدئو درباره پروژه روی تصویر بالا کلیک کنید! -## روش آموزشی +## روش آموزش -ما دو اصل آموزشی را در ساخت این برنامه درسی انتخاب کرده‌ایم: اطمینان از مبتنی بودن آن بر پروژه و اینکه شامل کوییزهای مکرر باشد. تا پایان این سری، دانش‌آموزان یک سیستم مانیتورینگ و آبیاری گیاه، ردیاب وسیله نقلیه، یک سیستم کارخانه هوشمند برای پیگیری و بررسی غذا، و تایمر آشپزی کنترل‌شده با صدا ساخته‌اند و اصول اولیه اینترنت اشیاء از جمله نحوه نوشتن کد دستگاه، اتصال به ابر، تحلیل تلمتری و اجرای هوش مصنوعی در لبه را یاد گرفته‌اند. +در ساخت این دوره، دو اصل آموزشی را انتخاب کرده‌ایم: اطمینان از اینکه مبتنی بر پروژه است و شامل آزمون‌های مکرر می‌باشد. در پایان این سری، دانش‌آموزان سیستمی برای مانیتورینگ و آبیاری گیاه، ردیاب وسیله نقلیه، تنظیم هوشمند کارخانه برای بررسی و ردگیری غذا، و تایمر آشپزی با کنترل صوتی ساخته‌اند و اصول اولیه اینترنت اشیاء از جمله نحوه نوشتن کد دستگاه، اتصال به ابر، تحلیل تلماتری و اجرای هوش مصنوعی در لبه را یاد گرفته‌اند. -با اطمینان از هماهنگی محتوا با پروژه‌ها، فرایند یادگیری برای دانش‌آموزان جذاب‌تر شده و حفظ مفاهیم افزایش می‌یابد. +اطمینان از هماهنگی محتوا با پروژه‌ها، فرآیند یادگیری را برای دانش‌آموزان جذاب‌تر می‌کند و حفظ مفاهیم را افزایش می‌دهد. -علاوه بر این، یک کوییز کم‌فشار قبل از کلاس نیت دانش‌آموز برای یادگیری موضوع را تنظیم می‌کند، در حالی که کوییز دوم بعد از کلاس به حفظ بیشتر کمک می‌کند. این برنامه درسی طوری طراحی شده که انعطاف‌پذیر و سرگرم‌کننده باشد و می‌توان آن را کامل یا بخش به بخش طی کرد. پروژه‌ها کوچک شروع شده و تا پایان دوره ۱۲ هفته‌ای به طور فزاینده‌ای پیچیده می‌شوند. +علاوه بر این، یک آزمون کم‌استرس پیش از کلاس نیت دانش‌آموز را برای یادگیری موضوع تنظیم می‌کند، در حالی که آزمون دوم پس از کلاس موجب حفظ بیشتر می‌شود. این دوره به گونه‌ای طراحی شده که منعطف و سرگرم‌کننده باشد و بتوان آن را به‌طور کامل یا بخشی از آن را گذراند. پروژه‌ها از کوچک شروع شده و تا پایان چرخه ۱۲ هفته‌ای به تدریج پیچیده‌تر می‌شوند. -هر پروژه مبتنی بر سخت‌افزار واقعی در دسترس دانش‌آموزان و علاقمندان است. هر پروژه به حوزه مخصوص خودش نگاه می‌کند و دانش زمینه‌ای مرتبط ارائه می‌دهد. برای موفقیت به عنوان توسعه‌دهنده، درک حوزه‌ای که در آن مشکل حل می‌کنید مفید است، ارائه این دانش زمینه‌ای به دانش‌آموزان اجازه می‌دهد درباره راه‌حل‌ها و یادگیری‌های اینترنت اشیاء خود در زمینه نوع واقعی از مشکلی که ممکن است به عنوان توسعه‌دهنده اینترنت اشیاء از آنها خواسته شود فکر کنند. دانش‌آموزان دلیل «چرا»ی راه‌حل‌هایی را که می‌سازند می‌آموزند و به کاربر نهایی نیز احترام می‌گذارند. +هر پروژه بر اساس سخت‌افزار واقعی در دسترس دانش‌آموزان و علاقه‌مندان استوار است. هر پروژه به حوزه خاص پروژه می‌پردازد و دانش پس‌زمینه مرتبط را فراهم می‌کند. برای موفقیت در توسعه، درک حوزه‌ای که در آن مشکلات حل می‌کنید کمک‌کننده است؛ فراهم کردن این دانش پس‌زمینه به دانش‌آموزان اجازه می‌دهد تا درباره راه‌حل‌های IoT و یادگیری خود در زمینه نوع مشکلات واقعی که ممکن است از آن‌ها خواسته شود به عنوان توسعه‌دهنده IoT حل کنند، فکر کنند. دانش‌آموزان «چرایی» راه‌حل‌هایی که می‌سازند را می‌آموزند و قدرشناسی نسبت به کاربر نهایی پیدا می‌کنند. ## سخت‌افزار +ما دو انتخاب سخت‌افزاری اینترنت اشیا برای استفاده در پروژه‌ها داریم که بسته به ترجیح شخصی، دانش زبان برنامه‌نویسی یا علایق، اهداف یادگیری و دسترسی متفاوت هستند. همچنین نسخه‌ای به نام «سخت‌افزار مجازی» را برای کسانی که به سخت‌افزار دسترسی ندارند یا می‌خواهند قبل از خرید، بیشتر یاد بگیرند ارائه داده‌ایم. شما می‌توانید اطلاعات بیشتر را در صفحه [hardware](./hardware.md) بخوانید، که شامل فهرست خرید و لینک‌هایی برای خرید کیت‌های کامل از دوستان ما در Seeed Studio است. -ما دو انتخاب سخت‌افزاری اینترنت اشیاء برای استفاده در پروژه‌ها داریم که بستگی به ترجیحات شخصی، دانش زبان برنامه‌نویسی، اهداف یادگیری و دسترسی دارد. نسخه‌ای از سخت‌افزار «مجازی» نیز برای کسانی که به سخت‌افزار دسترسی ندارند یا می‌خواهند قبل از خرید بیشتر یاد بگیرند ارائه شده است. شما می‌توانید بیشتر بخوانید و فهرست خرید را در [صفحه سخت‌افزار](./hardware.md) پیدا کنید، شامل لینک‌هایی برای خرید کیت‌های کامل از دوستان ما در Seeed Studio. -> 💁 راهنمای [رفتار](CODE_OF_CONDUCT.md)، [مشارکت](CONTRIBUTING.md)، و [ترجمه](TRANSLATIONS.md) ما را بیابید. ما از بازخورد سازنده شما استقبال می‌کنیم! +> 💁 دستورالعمل‌های [قوانین رفتاری](CODE_OF_CONDUCT.md)، [مشارکت](CONTRIBUTING.md) و [ترجمه](TRANSLATIONS.md) ما را بیابید. ما از بازخورد سازنده شما استقبال می‌کنیم! > -> 🔧 مشکلی دارید؟ راهنمای [عیب‌یابی](TROUBLESHOOTING.md) ما را برای راه‌حل‌های مشکلات رایج بررسی کنید. +> 🔧 مشکلی دارید؟ راهنمای [عیب‌یابی](TROUBLESHOOTING.md) ما را برای حل مشکلات رایج بررسی کنید. -## هر درس شامل: +## هر درس شامل موارد زیر است: -- اسکچ‌نوت -- ویدئوی تکمیلی اختیاری -- آزمون گرم‌کردن پیش از درس -- درس کتبی -- برای درس‌های مبتنی بر پروژه، راهنمای گام به گام ساخت پروژه -- بررسی دانش +- نکات کلیدی بصورت طرح یادداشت +- ویدیوی تکمیلی اختیاری +- آزمون گرم‌کننده قبل از درس +- درس مکتوب +- برای درس‌های پروژه‌محور، راهنمای گام‌به‌گام ساخت پروژه +- ارزیابی‌های دانش - یک چالش -- مطالعه تکمیلی +- مطالعات تکمیلی - تمرین - [آزمون پس از درس](https://ff-quizzes.netlify.app/en/) -> **نکته‌ای درباره آزمون‌ها**: تمامی آزمون‌ها در پوشه quiz-app قرار دارند، با مجموع ۴۸ آزمون که هر کدام شامل سه سؤال است. این آزمون‌ها از درس‌ها پیوند داده شده‌اند اما می‌توان اپلیکیشن آزمون را به صورت محلی اجرا کرد یا در Azure مستقر نمود؛ دستورالعمل‌ها در پوشه `quiz-app` آمده است. این آزمون‌ها به تدریج بومی‌سازی می‌شوند. +> **تذکری درباره آزمون‌ها**: تمام آزمون‌ها در پوشه quiz-app قرار دارند، که شامل ۴۸ آزمون هر کدام با سه سوال هستند. آنها از داخل درس‌ها لینک شده‌اند، اما اپلیکیشن آزمون می‌تواند به صورت محلی اجرا یا روی Azure مستقر شود؛ دستورالعمل را در پوشه `quiz-app` دنبال کنید. این آزمون‌ها به تدریج محلی‌سازی می‌شوند. ## دروس -| | نام پروژه | مفاهیم تدریس شده | اهداف یادگیری | درس مرتبط | -| :---: | :------------------------------------: | :---------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------: | -| ۰۱ | [شروع به کار](./1-getting-started/README.md) | مقدمه‌ای بر اینترنت اشیا | اصول پایه اینترنت اشیا و اجزای اصلی راه‌حل‌های اینترنت اشیا مانند حسگرها و خدمات ابری را بیاموزید در حالی که دستگاه اینترنت اشیای خود را راه‌اندازی می‌کنید | [مقدمه‌ای بر اینترنت اشیا](./1-getting-started/lessons/1-introduction-to-iot/README.md) | -| ۰۲ | [شروع به کار](./1-getting-started/README.md) | بررسی عمیق‌تر اینترنت اشیا | درباره اجزای یک سیستم اینترنت اشیا، میکروکنترلرها و کامپیوترهای تک برد بیشتر بیاموزید | [بررسی عمیق‌تر اینترنت اشیا](./1-getting-started/lessons/2-deeper-dive/README.md) | -| ۰۳ | [شروع به کار](./1-getting-started/README.md) | تعامل با دنیای فیزیکی با حسگرها و عملگرها | درباره حسگرها برای جمع‌آوری داده‌ها از دنیای فیزیکی و عملگرها برای ارسال بازخورد بیاموزید، در حالی که یک چراغ شب‌تاب می‌سازید | [تعامل با دنیای فیزیکی با حسگرها و عملگرها](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | -| ۰۴ | [شروع به کار](./1-getting-started/README.md) | اتصال دستگاه به اینترنت | درباره نحوه اتصال دستگاه اینترنت اشیا به اینترنت برای ارسال و دریافت پیام‌ها با اتصال چراغ شب‌تاب خود به یک کارگزار MQTT بیاموزید | [اتصال دستگاه به اینترنت](./1-getting-started/lessons/4-connect-internet/README.md) | -| ۰۵ | [مزرعه](./2-farm/README.md) | پیش‌بینی رشد گیاه | یاد بگیرید چگونه رشد گیاه را با استفاده از داده‌های دمایی که توسط دستگاه اینترنت اشیا ثبت شده پیش‌بینی کنید | [پیش‌بینی رشد گیاه](./2-farm/lessons/1-predict-plant-growth/README.md) | -| ۰۶ | [مزرعه](./2-farm/README.md) | تشخیص رطوبت خاک | یاد بگیرید چگونه رطوبت خاک را تشخیص دهید و حسگر رطوبت خاک را کالیبره کنید | [تشخیص رطوبت خاک](./2-farm/lessons/2-detect-soil-moisture/README.md) | -| ۰۷ | [مزرعه](./2-farm/README.md) | آبیاری خودکار گیاه | یاد بگیرید چگونه آبیاری را با استفاده از رله و MQTT زمان‌بندی و خودکار کنید | [آبیاری خودکار گیاه](./2-farm/lessons/3-automated-plant-watering/README.md) | -| ۰۸ | [مزرعه](./2-farm/README.md) | مهاجرت گیاه خود به ابر | درباره ابر و خدمات اینترنت اشیا میزبانی شده در ابر و نحوه اتصال گیاه خود به یکی از این خدمات به جای کارگزار عمومی MQTT بیاموزید | [مهاجرت گیاه خود به ابر](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | -| ۰۹ | [مزرعه](./2-farm/README.md) | مهاجرت منطق برنامه‌نویسی خود به ابر | یاد بگیرید چگونه می‌توانید منطق برنامه‌نویسی در ابر بنویسید که به پیام‌های اینترنت اشیا پاسخ می‌دهد | [مهاجرت منطق برنامه‌نویسی به ابر](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | -| ۱۰ | [مزرعه](./2-farm/README.md) | محافظت از گیاه خود | درباره امنیت در اینترنت اشیا و نحوه محافظت از گیاه خود با کلیدها و گواهینامه‌ها بیاموزید | [محافظت از گیاه خود](./2-farm/lessons/6-keep-your-plant-secure/README.md) | -| ۱۱ | [حمل و نقل](./3-transport/README.md) | ردیابی موقعیت مکانی | درباره ردیابی موقعیت GPS برای دستگاه‌های اینترنت اشیا بیاموزید | [ردیابی موقعیت مکانی](./3-transport/lessons/1-location-tracking/README.md) | -| ۱۲ | [حمل و نقل](./3-transport/README.md) | ذخیره داده‌های موقعیت | یاد بگیرید چگونه داده‌های اینترنت اشیا را ذخیره کنید تا بعداً قابل مشاهده یا تحلیل باشند | [ذخیره داده‌های موقعیت](./3-transport/lessons/2-store-location-data/README.md) | -| ۱۳ | [حمل و نقل](./3-transport/README.md) | تجسم داده‌های موقعیت | درباره تجسم داده‌های موقعیت روی نقشه و چگونگی نمایش نقشه‌ها از دنیای واقعی سه‌بعدی به صورت دو بعدی بیاموزید | [تجسم داده‌های موقعیت](./3-transport/lessons/3-visualize-location-data/README.md) | -| ۱۴ | [حمل و نقل](./3-transport/README.md) | حصارهای جغرافیایی | درباره حصارهای جغرافیایی و اینکه چگونه می‌توانند برای هشدار هنگام نزدیک شدن خودروها در زنجیره تامین به مقصدشان استفاده شوند بیاموزید | [حصارهای جغرافیایی](./3-transport/lessons/4-geofences/README.md) | -| ۱۵ | [تولید](./4-manufacturing/README.md) | آموزش تشخیص کیفیت میوه | درباره آموزش یک طبقه‌بند تصویر در ابر برای تشخیص کیفیت میوه بیاموزید | [آموزش تشخیص کیفیت میوه](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | -| ۱۶ | [تولید](./4-manufacturing/README.md) | بررسی کیفیت میوه از دستگاه اینترنت اشیا | درباره استفاده از دستگاه تشخیص کیفیت میوه خود از دستگاه اینترنت اشیا بیاموزید | [بررسی کیفیت میوه از دستگاه اینترنت اشیا](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | -| ۱۷ | [تولید](./4-manufacturing/README.md) | اجرای دستگاه تشخیص میوه روی لبه شبکه | درباره اجرای دستگاه تشخیص میوه روی یک دستگاه اینترنت اشیا در لبه شبکه بیاموزید | [اجرای دستگاه تشخیص میوه روی لبه شبکه](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | -| ۱۸ | [تولید](./4-manufacturing/README.md) | فعال‌سازی تشخیص کیفیت میوه از حسگر | درباره فعال‌سازی تشخیص کیفیت میوه از طریق حسگر بیاموزید | [فعال‌سازی تشخیص کیفیت میوه از حسگر](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | -| ۱۹ | [خرده‌فروشی](./5-retail/README.md) | آموزش تشخیص موجودی | یاد بگیرید چگونه از تشخیص شیء برای آموزش یک تشخیص‌دهنده موجودی برای شمارش موجودی در فروشگاه استفاده کنید | [آموزش تشخیص موجودی](./5-retail/lessons/1-train-stock-detector/README.md) | -| ۲۰ | [خرده‌فروشی](./5-retail/README.md) | بررسی موجودی از دستگاه اینترنت اشیا | یاد بگیرید چگونه با استفاده از یک مدل تشخیص شیء، موجودی را از دستگاه اینترنت اشیا بررسی کنید | [بررسی موجودی از دستگاه اینترنت اشیا](./5-retail/lessons/2-check-stock-device/README.md) | -| ۲۱ | [مصرف‌کننده](./6-consumer/README.md) | تشخیص گفتار با یک دستگاه اینترنت اشیا | یاد بگیرید چگونه از دستگاه اینترنت اشیا برای تشخیص گفتار به منظور ساخت یک تایمر هوشمند استفاده کنید | [تشخیص گفتار با دستگاه اینترنت اشیا](./6-consumer/lessons/1-speech-recognition/README.md) | -| ۲۲ | [مصرف‌کننده](./6-consumer/README.md) | درک زبان | یاد بگیرید چگونه جملاتی که به دستگاه اینترنت اشیا گفته می‌شود را درک کنید | [درک زبان](./6-consumer/lessons/2-language-understanding/README.md) | -| ۲۳ | [مصرف‌کننده](./6-consumer/README.md) | تنظیم تایمر و ارائه بازخورد گفتاری | یاد بگیرید چگونه تایمر را روی دستگاه اینترنت اشیا تنظیم کنید و بازخورد گفتاری درباره زمان تنظیم و پایان تایمر ارائه دهید | [تنظیم تایمر و ارائه بازخورد گفتاری](./6-consumer/lessons/3-spoken-feedback/README.md) | -| ۲۴ | [مصرف‌کننده](./6-consumer/README.md) | پشتیبانی از چند زبان | یاد بگیرید چگونه از چند زبان پشتیبانی کنید، هم در هنگام صحبت شدن به تایمر هوشمند و هم پاسخ‌هایی که ارائه می‌دهد | [پشتیبانی از چند زبان](./6-consumer/lessons/4-multiple-language-support/README.md) | +| | نام پروژه | مفاهیم تدریس شده | اهداف یادگیری | درس مرتبط | +| :---: | :---------------------------------: | :----------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------: | +| ۰۱ | [شروع کار](./1-getting-started/README.md) | مقدمه‌ای بر اینترنت اشیا | اصول پایه اینترنت اشیا و اجزای اصلی راهکارهای اینترنت اشیا مانند حسگرها و سرویس‌های ابری را یاد بگیرید در حالی که دستگاه اینترنت اشیا اول خود را راه‌اندازی می‌کنید | [مقدمه‌ای بر اینترنت اشیا](./1-getting-started/lessons/1-introduction-to-iot/README.md) | +| ۰۲ | [شروع کار](./1-getting-started/README.md) | بررسی عمیق‌تر اینترنت اشیا | با اجزای یک سیستم اینترنت اشیا و همچنین میکروکنترلرها و کامپیوترهای تک‌بردی بیشتر آشنا شوید | [بررسی عمیق‌تر اینترنت اشیا](./1-getting-started/lessons/2-deeper-dive/README.md) | +| ۰۳ | [شروع کار](./1-getting-started/README.md) | تعامل با دنیای فیزیکی با حسگرها و عملگرها | با حسگرها برای جمع‌آوری داده از دنیای فیزیکی و عملگرها برای ارسال بازخورد آشنا شوید، ضمن ساخت یک چراغ خواب | [تعامل با دنیای فیزیکی با حسگرها و عملگرها](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | +| ۰۴ | [شروع کار](./1-getting-started/README.md) | اتصال دستگاهتان به اینترنت | نحوه اتصال دستگاه اینترنت اشیا به اینترنت برای ارسال و دریافت پیام‌ها را یاد بگیرید؛ در حالی که چراغ خواب خود را به یک کارگزار MQTT متصل می‌کنید | [اتصال دستگاه به اینترنت](./1-getting-started/lessons/4-connect-internet/README.md) | +| ۰۵ | [کشاورزی](./2-farm/README.md) | پیش‌بینی رشد گیاه | نحوه پیش‌بینی رشد گیاه با استفاده از داده دما که توسط دستگاه اینترنت اشیا ضبط شده است را یاد بگیرید | [پیش‌بینی رشد گیاه](./2-farm/lessons/1-predict-plant-growth/README.md) | +| ۰۶ | [کشاورزی](./2-farm/README.md) | تشخیص رطوبت خاک | نحوه تشخیص رطوبت خاک و کالیبراسیون حسگر رطوبت خاک را یاد بگیرید | [تشخیص رطوبت خاک](./2-farm/lessons/2-detect-soil-moisture/README.md) | +| ۰۷ | [کشاورزی](./2-farm/README.md) | آبیاری خودکار گیاه | نحوه خودکارسازی و زمان‌بندی آبیاری با استفاده از رله و MQTT را یاد بگیرید | [آبیاری خودکار گیاه](./2-farm/lessons/3-automated-plant-watering/README.md) | +| ۰۸ | [کشاورزی](./2-farm/README.md) | مهاجرت گیاه خود به فضای ابری | با خدمات ابری و سرویس‌های میزبانی شده اینترنت اشیا در ابر آشنا شوید و یاد بگیرید چگونه به جای کارگزار MQTT عمومی، گیاهتان را به یکی از این سرویس‌ها متصل کنید | [مهاجرت گیاه به فضای ابری](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | +| ۰۹ | [کشاورزی](./2-farm/README.md) | انتقال منطق برنامه به فضای ابری | یاد بگیرید چگونه می‌توانید منطق برنامه را در فضای ابری بنویسید که به پیام‌های اینترنت اشیا پاسخ دهد | [انتقال منطق برنامه به فضای ابری](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | +| ۱۰ | [کشاورزی](./2-farm/README.md) | ایمن نگه داشتن گیاه | با امنیت در اینترنت اشیا آشنا شوید و یاد بگیرید چگونه با کلیدها و گواهی‌ها گیاه خود را ایمن نگه دارید | [ایمن نگه داشتن گیاه](./2-farm/lessons/6-keep-your-plant-secure/README.md) | +| ۱۱ | [حمل‌ونقل](./3-transport/README.md) | ردیابی موقعیت مکانی | درباره ردیابی موقعیت مکانی GPS برای دستگاه‌های اینترنت اشیا بیاموزید | [ردیابی موقعیت مکانی](./3-transport/lessons/1-location-tracking/README.md) | +| ۱۲ | [حمل‌ونقل](./3-transport/README.md) | ذخیره اطلاعات موقعیت | نحوه ذخیره داده‌های اینترنت اشیا برای مشاهده یا تحلیل بعدی را یاد بگیرید | [ذخیره اطلاعات موقعیت](./3-transport/lessons/2-store-location-data/README.md) | +| ۱۳ | [حمل‌ونقل](./3-transport/README.md) | تجسم داده‌های موقعیت | درباره تجسم داده‌های موقعیت روی نقشه و نحوه نمایش دنیای سه‌بعدی واقعی روی نقشه‌های دو بعدی بیاموزید | [تجسم داده‌های موقعیت](./3-transport/lessons/3-visualize-location-data/README.md) | +| ۱۴ | [حمل‌ونقل](./3-transport/README.md) | حصارهای جغرافیایی | درباره حصارهای جغرافیایی و نحوه استفاده از آنها برای هشدار هنگام نزدیک شدن خودروهای زنجیره تأمین به مقصد آشنا شوید | [حصارهای جغرافیایی](./3-transport/lessons/4-geofences/README.md) | +| ۱۵ | [تولید](./4-manufacturing/README.md) | آموزش یک تشخیص‌دهنده کیفیت میوه | درباره آموزش یک طبقه‌بند تصویر در فضای ابری برای تشخیص کیفیت میوه بیاموزید | [آموزش تشخیص‌دهنده کیفیت میوه](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | +| ۱۶ | [تولید](./4-manufacturing/README.md) | بررسی کیفیت میوه از دستگاه اینترنت اشیا | درباره استفاده از دستگاه تشخیص کیفیت میوه تان از یک دستگاه اینترنت اشیا یاد بگیرید | [بررسی کیفیت میوه از دستگاه اینترنت اشیا](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | +| ۱۷ | [تولید](./4-manufacturing/README.md) | اجرای تشخیص‌دهنده میوه روی لبه | درباره اجرای دستگاه تشخیص میوه روی دستگاه اینترنت اشیا روی لبه بیاموزید | [اجرای تشخیص‌دهنده میوه روی لبه](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | +| ۱۸ | [تولید](./4-manufacturing/README.md) | تحریک تشخیص کیفیت میوه از حسگر | درباره تحریک تشخیص کیفیت میوه از یک حسگر آشنا شوید | [تحریک تشخیص کیفیت میوه از حسگر](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | +| ۱۹ | [خرده‌فروشی](./5-retail/README.md) | آموزش تشخیص موجودی | نحوه استفاده از تشخیص اشیاء برای آموزش تشخیص‌دهنده موجودی برای شمارش موجودی در یک فروشگاه یاد بگیرید | [آموزش تشخیص‌دهنده موجودی](./5-retail/lessons/1-train-stock-detector/README.md) | +| ۲۰ | [خرده‌فروشی](./5-retail/README.md) | بررسی موجودی از دستگاه اینترنت اشیا | نحوه بررسی موجودی از دستگاه اینترنت اشیا با استفاده از مدل تشخیص اشیاء را یاد بگیرید | [بررسی موجودی از دستگاه اینترنت اشیا](./5-retail/lessons/2-check-stock-device/README.md) | +| ۲۱ | [مصرف‌کننده](./6-consumer/README.md) | شناخت گفتار با دستگاه اینترنت اشیا | نحوه شناخت گفتار از دستگاه اینترنت اشیا برای ساخت یک تایمر هوشمند را یاد بگیرید | [شناخت گفتار با دستگاه اینترنت اشیا](./6-consumer/lessons/1-speech-recognition/README.md) | +| ۲۲ | [مصرف‌کننده](./6-consumer/README.md) | درک زبان | نحوه درک جملات گفتاری به یک دستگاه اینترنت اشیا را بیاموزید | [درک زبان](./6-consumer/lessons/2-language-understanding/README.md) | +| ۲۳ | [مصرف‌کننده](./6-consumer/README.md) | تنظیم تایمر و ارائه بازخورد گفتاری | نحوه تنظیم تایمر روی دستگاه اینترنت اشیا و ارائه بازخورد گفتاری درباره زمان شروع و پایان تایمر را یاد بگیرید | [تنظیم تایمر و ارائه بازخورد گفتاری](./6-consumer/lessons/3-spoken-feedback/README.md) | +| ۲۴ | [مصرف‌کننده](./6-consumer/README.md) | پشتیبانی از زبان‌های متعدد | نحوه پشتیبانی از زبان‌های متعدد، هم در دریافت و هم در پاسخ‌های تایمر هوشمند خود را یاد بگیرید | [پشتیبانی از زبان‌های متعدد](./6-consumer/lessons/4-multiple-language-support/README.md) | ## دسترسی آفلاین -شما می‌توانید این مستندات را به صورت آفلاین با استفاده از [Docsify](https://docsify.js.org/#/) اجرا کنید. این مخزن را فورک کنید، [Docsify را نصب کنید](https://docsify.js.org/#/quickstart) روی ماشین محلی خود، سپس در پوشه ریشه این مخزن، دستور `docsify serve` را اجرا کنید. وب‌سایت روی پورت ۳۰۰۰ روی لوکال‌هاست شما سرو می‌شود: `localhost:3000`. +می‌توانید این مستندات را به صورت آفلاین با استفاده از [Docsify](https://docsify.js.org/#/) اجرا کنید. این مخزن را فورک کرده، [Docsify را نصب کنید](https://docsify.js.org/#/quickstart) روی سیستم محلی خود و سپس در پوشه ریشه این مخزن دستور `docsify serve` را اجرا کنید. سایت روی پورت ۳۰۰۰ روی لوکال‌هاست شما در دسترس خواهد بود: `localhost:3000`. ## آزمون -از جامعه ممنونیم که آزمون تعاملی را میزبانی می‌کند که دانش شما را در هر فصل می‌سنجد. شما می‌توانید دانش خود را [اینجا](https://ff-quizzes.netlify.app/en/) بسنجید +از جامعه بخاطر میزبانی آزمون تعاملی که دانش شما را در هر فصل می‌سنجد تشکر می‌کنیم. دانش خود را [در اینجا](https://ff-quizzes.netlify.app/en/) امتحان کنید. ### PDF -اگر نیاز دارید، می‌توانید یک فایل PDF از این محتوا برای دسترسی آفلاین ایجاد کنید. برای این کار، مطمئن شوید که [npm را نصب کرده‌اید](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) و دستورات زیر را در پوشه ریشه این مخزن اجرا کنید: +اگر نیاز دارید می‌توانید نسخه PDF این محتوا را برای استفاده آفلاین ایجاد کنید. برای این کار مطمئن شوید [npm نصب شده است](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) و دستورات زیر را در پوشه ریشه این مخزن اجرا کنید: ```sh npm i @@ -154,60 +164,59 @@ npm run convert ### اسلایدها -برای برخی از دروس، مجموعه اسلاید در پوشه [slides](../../slides) موجود است. +برای برخی از دروس مجموعه اسلایدهایی در پوشه [slides](../../slides) وجود دارد. +## دروس دیگر -## برنامه‌های درسی دیگر - -تیم ما برنامه‌های درسی دیگری نیز تولید می‌کند! ببینید: +تیم ما دروس دیگری نیز تولید می‌کند! نگاهی بیندازید به: ### LangChain -[![LangChain4j برای مبتدیان](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) -[![LangChain.js برای مبتدیان](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) - +[![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) +[![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- ### Azure / Edge / MCP / Agents -[![AZD برای مبتدیان](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Edge AI برای مبتدیان](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP برای مبتدیان](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![عامل‌های هوش مصنوعی برای مبتدیان](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) +[![هوش مصنوعی لبه برای مبتدی‌ها](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![MCP برای مبتدی‌ها](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![عامل‌های هوش مصنوعی برای مبتدی‌ها](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### سری هوش مصنوعی مولد -[![هوش مصنوعی مولد برای مبتدیان](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![هوش مصنوعی مولد برای مبتدی‌ها](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) [![هوش مصنوعی مولد (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![هوش مصنوعی مولد (جاوا)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![هوش مصنوعی مولد (جاوااسکریپت)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +[![هوش مصنوعی مولد (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![هوش مصنوعی مولد (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- -### یادگیری پایه -[![یادگیری ماشین برای مبتدیان](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![علم داده برای مبتدیان](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![هوش مصنوعی برای مبتدیان](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![امنیت سایبری برای مبتدیان](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![توسعه وب برای مبتدیان](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![اینترنت اشیاء برای مبتدیان](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![توسعه XR برای مبتدیان](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +### یادگیری پایه‌ای +[![یادگیری ماشین برای مبتدی‌ها](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![علم داده برای مبتدی‌ها](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![هوش مصنوعی برای مبتدی‌ها](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![امنیت سایبری برای مبتدی‌ها](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![توسعه وب برای مبتدی‌ها](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![اینترنت اشیاء برای مبتدی‌ها](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![توسعه XR برای مبتدی‌ها](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### سری کاپایلوت -[![کاپایلوت برای برنامه‌نویسی جفتی هوش مصنوعی](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![کاپایلوت برای C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![ماجراجویی کاپایلوت](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +### سری کمک‌برنامه (کاپیلت) +[![کاپیلت برای برنامه‌نویسی جفتی هوش مصنوعی](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![کاپیلت برای C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![ماجراجویی کاپیلت](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## اعتبار تصاویر +## نسبت دادن تصاویر -شما می‌توانید تمام اعتبارها برای تصاویر استفاده شده در این آموزش را در جای لازم در [اعتبارها](./attributions.md) بیابید. +شما می‌توانید تمام نسبت‌ها برای تصاویر استفاده شده در این برنامه آموزشی را در صورت نیاز در [نسبت‌ها](./attributions.md) پیدا کنید. --- **سلب مسئولیت**: -این سند با استفاده از خدمات ترجمه ماشینی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما در تلاش برای دقت هستیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است حاوی خطاها یا نادرستی‌هایی باشند. سند اصلی در زبان بومی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، توصیه می‌شود از ترجمه حرفه‌ای انسانی استفاده شود. ما مسئول هیچ گونه سوءتفاهم یا برداشت نادرستی که ناشی از استفاده از این ترجمه باشد، نمی‌باشیم. +این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما در تلاش برای دقت هستیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل اشتباهات یا نادقیق‌گی‌هایی باشند. سند اصلی به زبان بومی خود باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، ترجمه حرفه‌ای انسانی توصیه می‌شود. ما مسئول هیچ گونه سو تفاهم یا سوء تعبیر ناشی از استفاده از این ترجمه نیستیم. \ No newline at end of file diff --git a/translations/fa/hardware.md b/translations/fa/hardware.md index 534282793..919471f0c 100644 --- a/translations/fa/hardware.md +++ b/translations/fa/hardware.md @@ -26,7 +26,7 @@ Seeed Studios به‌طور سخاوتمندانه‌ای تمام سخت‌اف **[IoT برای مبتدیان با Seeed و Microsoft - کیت شروع Raspberry Pi 4](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html)** -[![کیت سخت‌افزاری Raspberry Pi Terminal](../../translated_images/fa/pi-hardware-kit.26dbadaedb7dd44c73b0131d5d68ea29472ed0a9744f90d5866c6d82f2d16380.png)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) +[![کیت سخت‌افزاری Raspberry Pi Terminal](../../translated_images/fa/pi-hardware-kit.26dbadaedb7dd44c.webp)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) ## Arduino diff --git a/translations/fi/.co-op-translator.json b/translations/fi/.co-op-translator.json index cadab5c76..daabac29d 100644 --- a/translations/fi/.co-op-translator.json +++ b/translations/fi/.co-op-translator.json @@ -738,8 +738,8 @@ "language_code": "fi" }, "README.md": { - "original_hash": "3fcc056cd3837e33d2bdf79f9c359fcf", - "translation_date": "2026-01-30T02:06:59+00:00", + "original_hash": "accf69391fa4450eadbf492ca024cccf", + "translation_date": "2026-04-06T16:11:26+00:00", "source_file": "README.md", "language_code": "fi" }, diff --git a/translations/fi/1-getting-started/lessons/1-introduction-to-iot/README.md b/translations/fi/1-getting-started/lessons/1-introduction-to-iot/README.md index 9a427a2a3..94fd6f8a7 100644 --- a/translations/fi/1-getting-started/lessons/1-introduction-to-iot/README.md +++ b/translations/fi/1-getting-started/lessons/1-introduction-to-iot/README.md @@ -1,6 +1,6 @@ # Johdanto IoT:hen -![Tämän oppitunnin sketchnote-yhteenveto](../../../../../translated_images/fi/lesson-1.2606670fa61ee904687da5d6fa4e726639d524d064c895117da1b95b9ff6251d.jpg) +![Tämän oppitunnin sketchnote-yhteenveto](../../../../../translated_images/fi/lesson-1.2606670fa61ee904.webp) > Sketchnoten on tehnyt [Nitya Narasimhan](https://github.com/nitya). Klikkaa kuvaa nähdäksesi suuremman version. diff --git a/translations/fi/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md b/translations/fi/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md index 50b853992..92c0d29d3 100644 --- a/translations/fi/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md +++ b/translations/fi/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md @@ -203,7 +203,7 @@ Toisena 'Hello World' -vaiheena käynnistät CounterFit-sovelluksen ja yhdistät Sovellus käynnistyy ja avautuu verkkoselaimessasi: - ![CounterFit-sovellus käynnissä selaimessa](../../../../../translated_images/fi/counterfit-first-run.433326358b669b31d0e99c3513cb01bfbb13724d162c99cdcc8f51ecf5f9c779.png) + ![CounterFit-sovellus käynnissä selaimessa](../../../../../translated_images/fi/counterfit-first-run.433326358b669b31.webp) Sovellus on merkitty *Disconnected*-tilaan, ja oikean yläkulman LED on sammutettu. @@ -224,7 +224,7 @@ Toisena 'Hello World' -vaiheena käynnistät CounterFit-sovelluksen ja yhdistät 1. Aja `app.py`-tiedosto uudessa terminaalissa kuten aiemmin. CounterFitin tila muuttuu **Connected**-tilaan ja LED syttyy. - ![CounterFit näyttää Connected-tilan](../../../../../translated_images/fi/counterfit-connected.ed30b46d8f79b0921f3fc70be10366e596a89dca3f80c2224a9d9fc98fccf884.png) + ![CounterFit näyttää Connected-tilan](../../../../../translated_images/fi/counterfit-connected.ed30b46d8f79b092.webp) > 💁 Löydät tämän koodin [code/virtual-device](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/virtual-device) -kansiosta. diff --git a/translations/fi/1-getting-started/lessons/2-deeper-dive/README.md b/translations/fi/1-getting-started/lessons/2-deeper-dive/README.md index 36954e957..ec676ad74 100644 --- a/translations/fi/1-getting-started/lessons/2-deeper-dive/README.md +++ b/translations/fi/1-getting-started/lessons/2-deeper-dive/README.md @@ -1,6 +1,6 @@ # Syvällisempi katsaus IoT:hen -![Tämän oppitunnin sketchnote](../../../../../translated_images/fi/lesson-2.324b0580d620c25e0a24fb7fddfc0b29a846dd4b82c08e7a9466d580ee78ce51.jpg) +![Tämän oppitunnin sketchnote](../../../../../translated_images/fi/lesson-2.324b0580d620c25e.webp) > Sketchnote: [Nitya Narasimhan](https://github.com/nitya). Klikkaa kuvaa nähdäksesi suuremman version. @@ -38,7 +38,7 @@ IoT:n **laite**-osa viittaa laitteeseen, joka voi olla vuorovaikutuksessa fyysis Nämä laitteet ovat vuorovaikutuksessa fyysisen maailman kanssa joko käyttämällä antureita ympäristönsä tietojen keräämiseen tai ohjaamalla ulostuloja tai toimilaitteita fyysisten muutosten tekemiseksi. Tyypillinen esimerkki on älykäs termostaatti – laite, jossa on lämpötila-anturi, tapa asettaa haluttu lämpötila, kuten säädin tai kosketusnäyttö, ja yhteys lämmitys- tai jäähdytysjärjestelmään, joka voidaan kytkeä päälle, kun havaittu lämpötila on halutun alueen ulkopuolella. Lämpötila-anturi havaitsee, että huone on liian kylmä, ja toimilaite kytkee lämmityksen päälle. -![Kaavio, jossa lämpötila ja säädin ovat IoT-laitteen syötteitä, ja lämmittimen ohjaus on ulostulo](../../../../../translated_images/fi/basic-thermostat.a923217fd1f37e5a6f3390396a65c22a387419ea2dd17e518ec24315ba6ae9a8.png) +![Kaavio, jossa lämpötila ja säädin ovat IoT-laitteen syötteitä, ja lämmittimen ohjaus on ulostulo](../../../../../translated_images/fi/basic-thermostat.a923217fd1f37e5a.webp) IoT-laitteina voi toimia valtava määrä erilaisia laitteita, yksinkertaisista antureista yleiskäyttöisiin laitteisiin, jopa älypuhelimeesi! Älypuhelin voi käyttää antureita ympäristönsä havaitsemiseen ja toimilaitteita vuorovaikutukseen maailman kanssa – esimerkiksi GPS-anturia sijaintisi havaitsemiseen ja kaiutinta navigointiohjeiden antamiseen määränpäähän. @@ -54,7 +54,7 @@ Laitteet eivät myöskään aina yhdistä suoraan Internetiin WiFi- tai langalli Esimerkkinä älykkäästä termostaatista, termostaatti yhdistyy kodin WiFi-verkon kautta pilvipalveluun. Se lähettää lämpötilatiedot tähän pilvipalveluun, josta ne tallennetaan jonkinlaiseen tietokantaan, jolloin kodinomistaja voi tarkistaa nykyiset ja aiemmat lämpötilat puhelinsovelluksella. Toinen pilvipalvelu tietää, mikä lämpötila kodinomistajaa miellyttää, ja lähettää viestejä IoT-laitteelle pilvipalvelun kautta kertoakseen lämmitysjärjestelmälle, milloin se kytketään päälle tai pois päältä. -![Kaavio, jossa lämpötila ja säädin ovat IoT-laitteen syötteitä, IoT-laite on kaksisuuntaisessa yhteydessä pilveen, joka puolestaan on kaksisuuntaisessa yhteydessä puhelimeen, ja lämmittimen ohjaus on ulostulo IoT-laitteesta](../../../../../translated_images/fi/mobile-controlled-thermostat.4a994010473d8d6a52ba68c67e5f02dc8928c717e93ca4b9bc55525aa75bbb60.png) +![Kaavio, jossa lämpötila ja säädin ovat IoT-laitteen syötteitä, IoT-laite on kaksisuuntaisessa yhteydessä pilveen, joka puolestaan on kaksisuuntaisessa yhteydessä puhelimeen, ja lämmittimen ohjaus on ulostulo IoT-laitteesta](../../../../../translated_images/fi/mobile-controlled-thermostat.4a994010473d8d6a.webp) Älykkäämpi versio voisi käyttää pilvessä olevaa tekoälyä ja tietoja muista IoT-laitteisiin liitetyistä antureista, kuten tilan käyttöä havaitsevista antureista, sekä tietoja, kuten säätietoja ja jopa kalenteriasi, tehdäkseen päätöksiä lämpötilan asettamisesta älykkäästi. Esimerkiksi se voisi kytkeä lämmityksen pois päältä, jos kalenterisi mukaan olet lomalla, tai säätää lämmitystä huonekohtaisesti sen mukaan, mitä huoneita käytät, oppien datasta ajan myötä tarkemmaksi. @@ -94,7 +94,7 @@ Mitä nopeampi kellosykli, sitä enemmän käskyjä voidaan käsitellä sekunnis > 💁 Suorittimet suorittavat ohjelmia käyttäen [fetch-decode-execute-sykliä](https://wikipedia.org/wiki/Instruction_cycle). Jokaisella kellotikillä suoritin hakee seuraavan käskyn muistista, dekoodaa sen ja suorittaa sen, esimerkiksi käyttämällä aritmeettis-loogista yksikköä (ALU) kahden luvun yhteenlaskuun. Jotkut suoritukset vievät useita tikkejä, joten seuraava sykli alkaa seuraavalla tikillä, kun käsky on suoritettu. -![Fetch-decode-execute-syklit, joissa fetch hakee käskyn ohjelmasta RAM-muistista, dekoodaa ja suorittaa sen suorittimessa](../../../../../translated_images/fi/fetch-decode-execute.2fd6f150f6280392807f4475382319abd0cee0b90058e1735444d6baa6f2078c.png) +![Fetch-decode-execute-syklit, joissa fetch hakee käskyn ohjelmasta RAM-muistista, dekoodaa ja suorittaa sen suorittimessa](../../../../../translated_images/fi/fetch-decode-execute.2fd6f150f6280392.webp) Mikrokontrollereiden kellonopeudet ovat paljon alhaisempia kuin pöytätietokoneiden, kannettavien tietokoneiden tai useimpien älypuhelimien. Esimerkiksi Wio Terminalin suoritin toimii 120 MHz:n nopeudella eli 120 000 000 sykliä sekunnissa. @@ -182,7 +182,7 @@ Arduino-kortit ohjelmoidaan C- tai C++-kielellä. C/C++:n käyttö mahdollistaa Kirjoittaisit alustuslogiikkasi `setup`-funktioon, kuten WiFi-yhteyden muodostamisen ja pilvipalveluihin yhdistämisen tai pinnejä syötölle ja lähdölle alustettaessa. `loop`-funktioon sisältyisi prosessointikoodi, kuten sensorin lukeminen ja arvon lähettäminen pilveen. Lisäisit yleensä viiveen jokaiseen silmukkaan, esimerkiksi jos haluat sensoridatan lähetettävän vain 10 sekunnin välein, lisäisit 10 sekunnin viiveen silmukan loppuun, jotta mikro-ohjain voi nukkua, säästää virtaa ja suorittaa silmukan uudelleen tarvittaessa 10 sekunnin kuluttua. -![Arduino-sketch, joka suorittaa ensin setupin ja sitten loopin toistuvasti](../../../../../translated_images/fi/arduino-sketch.79590cb837ff7a7c6a68d1afda6cab83fd53d3bb1bd9a8bf2eaf8d693a4d3ea6.png) +![Arduino-sketch, joka suorittaa ensin setupin ja sitten loopin toistuvasti](../../../../../translated_images/fi/arduino-sketch.79590cb837ff7a7c.webp) ✅ Tämä ohjelma-arkkitehtuuri tunnetaan nimellä *tapahtumasilmukka* tai *viestisilmukka*. Monet sovellukset käyttävät tätä taustalla, ja se on standardi useimmille työpöytäsovelluksille, jotka toimivat käyttöjärjestelmissä kuten Windows, macOS tai Linux. `loop` kuuntelee viestejä käyttöliittymäkomponenteilta, kuten painikkeilta, tai laitteilta, kuten näppäimistöltä, ja reagoi niihin. Voit lukea lisää tästä [artikkelista tapahtumasilmukasta](https://wikipedia.org/wiki/Event_loop). diff --git a/translations/fi/1-getting-started/lessons/3-sensors-and-actuators/README.md b/translations/fi/1-getting-started/lessons/3-sensors-and-actuators/README.md index f3a8bb6eb..5c43ca27e 100644 --- a/translations/fi/1-getting-started/lessons/3-sensors-and-actuators/README.md +++ b/translations/fi/1-getting-started/lessons/3-sensors-and-actuators/README.md @@ -1,6 +1,6 @@ # Vuorovaikutus fyysisen maailman kanssa antureiden ja toimilaitteiden avulla -![Tämän oppitunnin sketchnote-yhteenveto](../../../../../translated_images/fi/lesson-3.cc3b7b4cd646de598698cce043c0393fd62ef42bac2eaf60e61272cd844250f4.jpg) +![Tämän oppitunnin sketchnote-yhteenveto](../../../../../translated_images/fi/lesson-3.cc3b7b4cd646de59.webp) > Sketchnote: [Nitya Narasimhan](https://github.com/nitya). Klikkaa kuvaa nähdäksesi suuremman version. @@ -92,7 +92,7 @@ Digitaaliset anturit, kuten analogiset anturit, havaitsevat ympäröivän maailm Yksinkertaisin digitaalinen anturi on painike tai kytkin. Tämä on anturi, jolla on kaksi tilaa: päällä tai pois päältä. -![Painike vastaanottaa 5 volttia. Kun sitä ei paineta, se palauttaa 0 volttia, kun sitä painetaan, se palauttaa 5 volttia](../../../../../translated_images/fi/button.eadb560b77ac45e56f523d9d8876e40444f63b419e33eb820082d461fa79490b.png) +![Painike vastaanottaa 5 volttia. Kun sitä ei paineta, se palauttaa 0 volttia, kun sitä painetaan, se palauttaa 5 volttia](../../../../../translated_images/fi/button.eadb560b77ac45e5.webp) IoT-laitteiden pinnit, kuten GPIO-pinnit, voivat mitata tämän signaalin suoraan 0:na tai 1:nä. Jos lähetetty jännite on sama kuin palautettu jännite, luettu arvo on 1, muuten luettu arvo on 0. Signaalia ei tarvitse muuntaa, sillä se voi olla vain 1 tai 0. @@ -125,7 +125,7 @@ Joidenkin yleisten toimilaitteiden esimerkkejä: Seuraa alla olevia ohjeita lisätäksesi toimilaitteen IoT-laitteeseesi, jota ohjataan anturilla, rakentaaksesi IoT-yövalon. Se kerää valon määrän valoanturista ja käyttää toimilaitetta, kuten LED-valoa, tuottamaan valoa, kun havaittu valon määrä on liian alhainen. -![Tehtävän vuokaavio, joka näyttää valon määrän lukemisen ja tarkistamisen sekä LED-valon ohjaamisen](../../../../../translated_images/fi/assignment-1-flow.7552a51acb1a5ec858dca6e855cdbb44206434006df8ba3799a25afcdab1665d.png) +![Tehtävän vuokaavio, joka näyttää valon määrän lukemisen ja tarkistamisen sekä LED-valon ohjaamisen](../../../../../translated_images/fi/assignment-1-flow.7552a51acb1a5ec8.webp) * [Arduino - Wio Terminal](wio-terminal-actuator.md) * [Yksikorttitietokone - Raspberry Pi](pi-actuator.md) @@ -140,7 +140,7 @@ Kuten anturit, toimilaitteet ovat joko analogisia tai digitaalisia. Analogiset toimilaitteet ottavat analogisen signaalin ja muuntavat sen jonkinlaiseksi vuorovaikutukseksi, jossa vuorovaikutus muuttuu syötetyn jännitteen mukaan. Yksi esimerkki on himmennettävä valo, kuten ne, joita saatat käyttää kotonasi. Valon kirkkaus määräytyy syötetyn jännitteen mukaan. -![Valo himmennetty matalalla jännitteellä ja kirkkaampi korkeammalla jännitteellä](../../../../../translated_images/fi/dimmable-light.9ceffeb195dec1a849da718b2d71b32c35171ff7dfea9c07bbf82646a67acf6b.png) +![Valo himmennetty matalalla jännitteellä ja kirkkaampi korkeammalla jännitteellä](../../../../../translated_images/fi/dimmable-light.9ceffeb195dec1a8.webp) Kuten antureiden kanssa, varsinainen IoT-laite toimii digitaalisilla signaaleilla, ei analogisilla. Tämä tarkoittaa, että analogisen signaalin lähettämiseksi IoT-laitteessa täytyy olla digitaalista analogiseksi muuntava laite (DAC), joko suoraan IoT-laitteessa tai liitäntälevyssä. Tämä muuntaa IoT-laitteen 0:t ja 1:t analogiseksi jännitteeksi, jota toimilaite voi käyttää. @@ -187,7 +187,7 @@ Digitaaliset toimilaitteet, kuten digitaaliset anturit, ovat joko kahdessa tilas Yksi yksinkertainen digitaalinen toimilaite on LED. Kun laite lähettää digitaalisen signaalin 1, lähetetään korkea jännite, joka sytyttää LEDin. Kun lähetetään digitaalinen signaali 0, jännite laskee 0V:iin ja LED sammuu. -![LED on pois päältä 0 voltilla ja päällä 5V:lla](../../../../../translated_images/fi/led.ec6d94f66676a174ad06d9fa9ea49c2ee89beb18b312d5c6476467c66375b07f.png) +![LED on pois päältä 0 voltilla ja päällä 5V:lla](../../../../../translated_images/fi/led.ec6d94f66676a174.webp) ✅ Mitä muita yksinkertaisia kaksitilaisia toimilaitteita keksit? Yksi esimerkki on solenoidi, joka on sähkömagneetti, jota voidaan aktivoida tekemään asioita, kuten siirtämään oven salpaa lukitsemalla/avaamalla oven. diff --git a/translations/fi/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md b/translations/fi/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md index 1b3bd17bd..d2d7347a5 100644 --- a/translations/fi/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md +++ b/translations/fi/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md @@ -26,7 +26,7 @@ Grove LED tulee moduulina, jossa on valikoima LED-valoja, joten voit valita halu Liitä LED. -![Grove LED](../../../../../translated_images/fi/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![Grove LED](../../../../../translated_images/fi/grove-led.6c853be93f473cf2.webp) 1. Valitse suosikkisi LED-valo ja aseta sen jalat LED-moduulin kahteen reikään. @@ -40,7 +40,7 @@ Liitä LED. 1. Kun Raspberry Pi on sammutettu, liitä Grove-kaapelin toinen pää Grove Base -hatun digitaaliseen liittimeen, joka on merkitty **D5**. Tämä liitin on toinen vasemmalta GPIO-pinnien vieressä olevassa liitinrivissä. -![Grove LED liitettynä D5-liittimeen](../../../../../translated_images/fi/pi-led.97f1d474981dc35d1c7996c7b17de355d3d0a6bc9606d79fa5f89df933415122.png) +![Grove LED liitettynä D5-liittimeen](../../../../../translated_images/fi/pi-led.97f1d474981dc35d.webp) ## Ohjelmoi yövalo diff --git a/translations/fi/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md b/translations/fi/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md index c6312175a..a1a93b8c2 100644 --- a/translations/fi/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md +++ b/translations/fi/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md @@ -16,13 +16,13 @@ Grove-valosensori, jota käytetään valotason havaitsemiseen, täytyy liittää Liitä valosensori -![Grove-valosensori](../../../../../translated_images/fi/grove-light-sensor.b8127b7c434e632d6bcdb57587a14e9ef69a268a22df95d08628f62b8fa5505c.png) +![Grove-valosensori](../../../../../translated_images/fi/grove-light-sensor.b8127b7c434e632d.webp) 1. Työnnä Grove-kaapelin toinen pää valosensorimoduulin liittimeen. Se menee sisään vain yhdellä tavalla. 1. Kun Raspberry Pi on sammutettu, liitä Grove-kaapelin toinen pää Grove Base -hatun analogiseen liittimeen, joka on merkitty **A0**. Tämä liitin on toinen oikealta GPIO-pinnien vieressä olevassa liitinrivissä. -![Grove-valosensori liitettynä liittimeen A0](../../../../../translated_images/fi/pi-light-sensor.66cc1e31fa48cd7d5f23400d4b2119aa41508275cb7c778053a7923b4e972d7e.png) +![Grove-valosensori liitettynä liittimeen A0](../../../../../translated_images/fi/pi-light-sensor.66cc1e31fa48cd7d.webp) ## Ohjelmoi valosensori diff --git a/translations/fi/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md b/translations/fi/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md index 4dc058c88..54427906e 100644 --- a/translations/fi/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md +++ b/translations/fi/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md @@ -36,11 +36,11 @@ Lisää LED CounterFit-sovellukseen. 1. Valitse **Add**-painike luodaksesi LED Pin 5:lle. - ![LED-asetukset](../../../../../translated_images/fi/counterfit-create-led.ba9db1c9b8c622a635d6dfae5cdc4e70c2b250635bd4f0601c6cf0bd22b7ba46.png) + ![LED-asetukset](../../../../../translated_images/fi/counterfit-create-led.ba9db1c9b8c622a6.webp) LED luodaan ja se ilmestyy toimilaitteiden listaan. - ![Luotu LED](../../../../../translated_images/fi/counterfit-led.c0ab02de6d256ad84d9bad4d67a7faa709f0ea83e410cfe9b5561ef0cef30b1c.png) + ![Luotu LED](../../../../../translated_images/fi/counterfit-led.c0ab02de6d256ad8.webp) Kun LED on luotu, voit muuttaa sen väriä *Color*-valitsimella. Valitse **Set**-painike muuttaaksesi väriä valinnan jälkeen. diff --git a/translations/fi/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md b/translations/fi/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md index c3dca894f..f8ac56bd5 100644 --- a/translations/fi/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md +++ b/translations/fi/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md @@ -28,11 +28,11 @@ Lisää valosensori CounterFit-sovellukseen. 1. Valitse **Add**-painike luodaksesi valosensorin Pin 0:aan. - ![Valosensorin asetukset](../../../../../translated_images/fi/counterfit-create-light-sensor.9f36a5e0d4458d8d554d54b34d2c806d56093d6e49fddcda2d20f6fef7f5cce1.png) + ![Valosensorin asetukset](../../../../../translated_images/fi/counterfit-create-light-sensor.9f36a5e0d4458d8d.webp) Valosensori luodaan ja se ilmestyy sensorilistaan. - ![Luotu valosensori](../../../../../translated_images/fi/counterfit-light-sensor.5d0f5584df56b90f6b2561910d9cb20dfbd73eeff2177c238d38f4de54aefae1.png) + ![Luotu valosensori](../../../../../translated_images/fi/counterfit-light-sensor.5d0f5584df56b90f.webp) ## Ohjelmoi valosensori diff --git a/translations/fi/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md b/translations/fi/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md index 3a458e864..b8a85f526 100644 --- a/translations/fi/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md +++ b/translations/fi/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md @@ -26,7 +26,7 @@ Grove LED tulee moduulina, jossa on valikoima LED-valoja, joten voit valita halu Liitä LED. -![Grove LED](../../../../../translated_images/fi/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![Grove LED](../../../../../translated_images/fi/grove-led.6c853be93f473cf2.webp) 1. Valitse suosikkisi LED-valo ja aseta sen jalat LED-moduulin kahteen reikään. diff --git a/translations/fi/1-getting-started/lessons/4-connect-internet/README.md b/translations/fi/1-getting-started/lessons/4-connect-internet/README.md index 5babee3c2..12fe44d68 100644 --- a/translations/fi/1-getting-started/lessons/4-connect-internet/README.md +++ b/translations/fi/1-getting-started/lessons/4-connect-internet/README.md @@ -1,6 +1,6 @@ # Yhdistä laitteesi Internetiin -![Tämän oppitunnin sketchnote-yhteenveto](../../../../../translated_images/fi/lesson-4.7344e074ea68fa545fd320b12dce36d72dd62d28c3b4596cb26cf315f434b98f.jpg) +![Tämän oppitunnin sketchnote-yhteenveto](../../../../../translated_images/fi/lesson-4.7344e074ea68fa54.webp) > Sketchnote: [Nitya Narasimhan](https://github.com/nitya). Klikkaa kuvaa nähdäksesi suuremman version. @@ -47,7 +47,7 @@ MQTT on suosituin viestintäprotokolla IoT-laitteille, ja se käsitellään täs MQTT:ssä on yksi välittäjä ja useita asiakkaita. Kaikki asiakkaat yhdistyvät välittäjään, ja välittäjä ohjaa viestit oikeille asiakkaille. Viestit ohjataan nimettyjen aiheiden avulla, eikä niitä lähetetä suoraan yksittäiselle asiakkaalle. Asiakas voi julkaista aiheeseen, ja kaikki asiakkaat, jotka tilaavat kyseisen aiheen, saavat viestin. -![IoT-laite julkaisee telemetriaa /telemetry-aiheessa, ja pilvipalvelu tilaa kyseisen aiheen](../../../../../translated_images/fi/mqtt.cbf7f21d9adc3e17548b359444cc11bb4bf2010543e32ece9a47becf54438c23.png) +![IoT-laite julkaisee telemetriaa /telemetry-aiheessa, ja pilvipalvelu tilaa kyseisen aiheen](../../../../../translated_images/fi/mqtt.cbf7f21d9adc3e17.webp) ✅ Tee tutkimusta. Jos sinulla on paljon IoT-laitteita, miten voit varmistaa, että MQTT-välittäjäsi pystyy käsittelemään kaikki viestit? @@ -69,7 +69,7 @@ Sen sijaan, että käsittelisit MQTT-välittäjän asettamisen monimutkaisuuksia > 💁 Tämä testivälittäjä on julkinen ja ei-suojattu. Kuka tahansa voi kuunnella, mitä julkaiset, joten sitä ei pitäisi käyttää yksityistä dataa sisältävien viestien kanssa. -![Tehtävän vuokaavio, jossa valotasoja luetaan ja tarkistetaan, ja LEDiä ohjataan](../../../../../translated_images/fi/assignment-1-internet-flow.3256feab5f052fd273bf4e331157c574c2c3fa42e479836fc9c3586f41db35a5.png) +![Tehtävän vuokaavio, jossa valotasoja luetaan ja tarkistetaan, ja LEDiä ohjataan](../../../../../translated_images/fi/assignment-1-internet-flow.3256feab5f052fd2.webp) Seuraa alla olevaa ohjetta yhdistääksesi laitteesi MQTT-välittäjään: @@ -350,7 +350,7 @@ Koneille data kannattaa ehkä säilyttää, erityisesti jos sitä käytetään t IoT-laitteiden suunnittelijoiden tulisi myös harkita, voiko IoT-laite toimia Internet-katkoksen tai sijainnin aiheuttaman signaalin menetyksen aikana. Älykäs termostaatti pitäisi pystyä tekemään joitakin rajoitettuja päätöksiä lämmityksen ohjaamiseksi, jos se ei voi lähettää telemetriaa pilveen katkoksen vuoksi. -[![Tämä Ferrari meni käyttökelvottomaksi, koska joku yritti päivittää sitä maan alla, missä ei ole matkapuhelinverkkoa](../../../../../translated_images/fi/bricked-car.dc38f8efadc6c59d76211f981a521efb300939283dee468f79503aae3ec67615.png)](https://twitter.com/internetofshit/status/1315736960082808832) +[![Tämä Ferrari meni käyttökelvottomaksi, koska joku yritti päivittää sitä maan alla, missä ei ole matkapuhelinverkkoa](../../../../../translated_images/fi/bricked-car.dc38f8efadc6c59d.webp)](https://twitter.com/internetofshit/status/1315736960082808832) MQTT:n käsitelläkseen yhteyden katkeamista laitteen ja palvelinkoodin täytyy huolehtia viestien toimituksesta, jos se on tarpeen, esimerkiksi vaatimalla, että kaikki lähetetyt viestit saavat vastauksen lisäviesteillä vastausaiheessa, ja jos eivät, ne jonotetaan manuaalisesti toistettavaksi myöhemmin. @@ -358,7 +358,7 @@ MQTT:n käsitelläkseen yhteyden katkeamista laitteen ja palvelinkoodin täytyy Komennot ovat viestejä, jotka pilvi lähettää laitteelle, ohjeistaen sitä tekemään jotain. Useimmiten tämä tarkoittaa jonkinlaista ulostuloa aktuaattorin kautta, mutta se voi olla ohje laitteelle itselleen, kuten uudelleenkäynnistys tai lisätelemetrian kerääminen ja palauttaminen vastauksena komentoon. -![Internet-yhteydessä oleva termostaatti vastaanottaa komennon lämmityksen kytkemiseksi päälle](../../../../../translated_images/fi/commands.d6c06bbbb3a02cce95f2831a1c331daf6dedd4e470c4aa2b0ae54f332016e504.png) +![Internet-yhteydessä oleva termostaatti vastaanottaa komennon lämmityksen kytkemiseksi päälle](../../../../../translated_images/fi/commands.d6c06bbbb3a02cce.webp) Termostaatti voisi vastaanottaa pilvestä komennon kytkeä lämmitys päälle. Kaikkien antureiden telemetriatietojen perusteella pilvipalvelu on päättänyt, että lämmitys pitäisi olla päällä, joten se lähettää asiaankuuluvan komennon. diff --git a/translations/fi/2-farm/lessons/1-predict-plant-growth/README.md b/translations/fi/2-farm/lessons/1-predict-plant-growth/README.md index ab5eb6104..e9eb4bb80 100644 --- a/translations/fi/2-farm/lessons/1-predict-plant-growth/README.md +++ b/translations/fi/2-farm/lessons/1-predict-plant-growth/README.md @@ -1,6 +1,6 @@ ## Ennusta kasvien kasvua IoT:n avulla -![Yleiskuva tämän oppitunnin sisällöstä](../../../../../translated_images/fi/lesson-5.42b234299279d263143148b88ab4583861a32ddb03110c6c1120e41bb88b2592.jpg) +![Yleiskuva tämän oppitunnin sisällöstä](../../../../../translated_images/fi/lesson-5.42b234299279d263.webp) > Sketchnote: [Nitya Narasimhan](https://github.com/nitya). Klikkaa kuvaa nähdäksesi suuremman version. @@ -90,7 +90,7 @@ Kasvupäivien asteet, eli GDD, lasketaan päivittäin päivän keskilämpötilan Täydellinen GDD-kaava on hieman monimutkainen, mutta yksinkertaistettu yhtälö on usein hyvä arvio: -![GDD = T max + T min jaettuna kahdella, kaikki miinus T base](../../../../../translated_images/fi/gdd-calculation.79b3660f9c5757aa92dc2dd2cdde75344e2d2c1565c4b3151640f7887edc0275.png) +![GDD = T max + T min jaettuna kahdella, kaikki miinus T base](../../../../../translated_images/fi/gdd-calculation.79b3660f9c5757aa.webp) * **GDD** - tämä on kasvupäivien asteiden määrä * **T max** - tämä on päivän maksimilämpötila Celsius-asteina @@ -118,7 +118,7 @@ Kun nämä luvut syötetään laskentaan: Tämä antaa laskennan: -![GDD = 16 + 12 jaettuna kahdella, kaikki miinus 10, tuloksena 4](../../../../../translated_images/fi/gdd-calculation-corn.64a58b7a7afcd0dfd46ff733996d939f17f4f3feac9f0d1c632be3523e51ebd9.png) +![GDD = 16 + 12 jaettuna kahdella, kaikki miinus 10, tuloksena 4](../../../../../translated_images/fi/gdd-calculation-corn.64a58b7a7afcd0df.webp) Maissi sai 4 GDD:tä sinä päivänä. Oletetaan, että maissilajike tarvitsee kypsyäkseen 800 GDD:tä, jolloin se tarvitsee vielä 796 GDD:tä saavuttaakseen kypsyyden. @@ -239,7 +239,7 @@ Manuaaliset vaiheet tähän ovat: Esimerkiksi, jos päivän korkein lämpötila on 25°C ja matalin 12°C: -![GDD = 25 + 12 jaettuna kahdella, vähennä tuloksesta 10, jolloin saadaan 8.5](../../../../../translated_images/fi/gdd-calculation-strawberries.59f57db94b22adb8ff6efb951ace33af104a1c6ccca3ffb0f8169c14cb160c90.png) +![GDD = 25 + 12 jaettuna kahdella, vähennä tuloksesta 10, jolloin saadaan 8.5](../../../../../translated_images/fi/gdd-calculation-strawberries.59f57db94b22adb8.webp) * 25 + 12 = 37 * 37 / 2 = 18.5 diff --git a/translations/fi/2-farm/lessons/1-predict-plant-growth/assignment.md b/translations/fi/2-farm/lessons/1-predict-plant-growth/assignment.md index a99254d63..7e58791f2 100644 --- a/translations/fi/2-farm/lessons/1-predict-plant-growth/assignment.md +++ b/translations/fi/2-farm/lessons/1-predict-plant-growth/assignment.md @@ -33,7 +33,7 @@ Kun sinulla on lämpötiladataa, voit käyttää tämän repositorion Jupyter No Jupyter käynnistyy ja avaa notebookin selaimessasi. Käy läpi notebookin ohjeet visualisoidaksesi mitatut lämpötilat ja laskeaksesi kasvukauden astepäivät (GDD). - ![Jupyter Notebook](../../../../../translated_images/fi/gdd-jupyter-notebook.c5b52cf21094f158a61f47f455490fd95f1729777ff90861a4521820bf354cdc.png) + ![Jupyter Notebook](../../../../../translated_images/fi/gdd-jupyter-notebook.c5b52cf21094f158.webp) ## Arviointikriteerit diff --git a/translations/fi/2-farm/lessons/1-predict-plant-growth/pi-temp.md b/translations/fi/2-farm/lessons/1-predict-plant-growth/pi-temp.md index 5ba6427ce..ebf330708 100644 --- a/translations/fi/2-farm/lessons/1-predict-plant-growth/pi-temp.md +++ b/translations/fi/2-farm/lessons/1-predict-plant-growth/pi-temp.md @@ -16,13 +16,13 @@ Grove-lämpötila-anturi voidaan liittää Raspberry Pi:hin. Yhdistä lämpötila-anturi -![Grove-lämpötila-anturi](../../../../../translated_images/fi/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![Grove-lämpötila-anturi](../../../../../translated_images/fi/grove-dht11.07f8eafceee17004.webp) 1. Työnnä Grove-kaapelin toinen pää kosteus- ja lämpötila-anturin liittimeen. Se menee sisään vain yhdellä tavalla. 1. Kun Raspberry Pi on sammutettu, liitä Grove-kaapelin toinen pää digitaaliseen liittimeen, joka on merkitty **D5** Grove Base hatissa, joka on kiinnitetty Pi:hin. Tämä liitin on toinen vasemmalta rivissä, joka on GPIO-pinnien vieressä. -![Grove-lämpötila-anturi liitettynä liittimeen A0](../../../../../translated_images/fi/pi-temperature-sensor.3ff82fff672c8e565ef25a39d26d111de006b825a7e0867227ef4e7fbff8553c.png) +![Grove-lämpötila-anturi liitettynä liittimeen A0](../../../../../translated_images/fi/pi-temperature-sensor.3ff82fff672c8e56.webp) ## Ohjelmoi lämpötila-anturi diff --git a/translations/fi/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md b/translations/fi/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md index e03f7da6e..67cf53f9e 100644 --- a/translations/fi/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md +++ b/translations/fi/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md @@ -38,11 +38,11 @@ Lisää kosteus- ja lämpötila-anturit CounterFit-sovellukseen. 1. Valitse **Add**-painike luodaksesi kosteusanturin pinniin 5. - ![Kosteusanturin asetukset](../../../../../translated_images/fi/counterfit-create-humidity-sensor.2750e27b6f30e09cf4e22101defd5252710717620816ab41ba688f91f757c49a.png) + ![Kosteusanturin asetukset](../../../../../translated_images/fi/counterfit-create-humidity-sensor.2750e27b6f30e09c.webp) Kosteusanturi luodaan ja se näkyy anturilistassa. - ![Luotu kosteusanturi](../../../../../translated_images/fi/counterfit-humidity-sensor.7b12f7f339e430cb26c8211d2dba4ef75261b353a01da0932698b5bebd693f27.png) + ![Luotu kosteusanturi](../../../../../translated_images/fi/counterfit-humidity-sensor.7b12f7f339e430cb.webp) 1. Luo lämpötila-anturi: @@ -54,11 +54,11 @@ Lisää kosteus- ja lämpötila-anturit CounterFit-sovellukseen. 1. Valitse **Add**-painike luodaksesi lämpötila-anturin pinniin 6. - ![Lämpötila-anturin asetukset](../../../../../translated_images/fi/counterfit-create-temperature-sensor.199350ed34f7343d79dccbe95eaf6c11d2121f03d1c35ab9613b330c23f39b29.png) + ![Lämpötila-anturin asetukset](../../../../../translated_images/fi/counterfit-create-temperature-sensor.199350ed34f7343d.webp) Lämpötila-anturi luodaan ja se näkyy anturilistassa. - ![Luotu lämpötila-anturi](../../../../../translated_images/fi/counterfit-temperature-sensor.f0560236c96a9016bafce7f6f792476fe3367bc6941a1f7d5811d144d4bcbfff.png) + ![Luotu lämpötila-anturi](../../../../../translated_images/fi/counterfit-temperature-sensor.f0560236c96a9016.webp) ## Ohjelmoi lämpötila-anturisovellus diff --git a/translations/fi/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md b/translations/fi/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md index 407ce18b2..63656cc91 100644 --- a/translations/fi/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md +++ b/translations/fi/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md @@ -18,7 +18,7 @@ Grove-lämpötila-anturi voidaan liittää Wio Terminalin digitaaliseen porttiin Yhdistä lämpötila-anturi. -![Grove-lämpötila-anturi](../../../../../translated_images/fi/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![Grove-lämpötila-anturi](../../../../../translated_images/fi/grove-dht11.07f8eafceee17004.webp) 1. Työnnä Grove-kaapelin toinen pää kosteus- ja lämpötila-anturin liittimeen. Se menee sisään vain yhdellä tavalla. diff --git a/translations/fi/2-farm/lessons/2-detect-soil-moisture/README.md b/translations/fi/2-farm/lessons/2-detect-soil-moisture/README.md index 008096bcd..88ec8762e 100644 --- a/translations/fi/2-farm/lessons/2-detect-soil-moisture/README.md +++ b/translations/fi/2-farm/lessons/2-detect-soil-moisture/README.md @@ -13,7 +13,7 @@ I²C-väylä koostuu kahdesta pääjohtimesta sekä kahdesta virtajohdosta: | VCC | Jännite yhteiskerääjä | Laitteiden virtalähde. Tämä on kytketty SDA- ja SCL-johtimiin, jotka saavat virtansa vetovastuksen kautta, joka kytkee signaalin pois päältä, kun mikään laite ei ole ohjaaja. | | GND | Maa | Tarjoaa yhteisen maadoituksen sähköpiirille. | -![I2C-väylä, jossa 3 laitetta on kytketty SDA- ja SCL-johtimiin, jakamassa yhteisen maadoitusjohdon](../../../../../translated_images/fi/i2c.83da845dde02256bdd462dbe0d5145461416b74930571b89d1ae142841eeb584.png) +![I2C-väylä, jossa 3 laitetta on kytketty SDA- ja SCL-johtimiin, jakamassa yhteisen maadoitusjohdon](../../../../../translated_images/fi/i2c.83da845dde02256b.webp) Datan lähettämiseksi yksi laite antaa aloitusehdon osoittaakseen, että se on valmis lähettämään dataa. Se toimii sitten ohjaajana. Ohjaaja lähettää sen laitteen osoitteen, jonka kanssa se haluaa kommunikoida, sekä tiedon siitä, haluaako se lukea vai kirjoittaa dataa. Kun data on lähetetty, ohjaaja lähettää lopetusehdon osoittaakseen, että se on valmis. Tämän jälkeen toinen laite voi ryhtyä ohjaajaksi ja lähettää tai vastaanottaa dataa. diff --git a/translations/fi/2-farm/lessons/2-detect-soil-moisture/assignment.md b/translations/fi/2-farm/lessons/2-detect-soil-moisture/assignment.md index e0d723cfc..dee5ea164 100644 --- a/translations/fi/2-farm/lessons/2-detect-soil-moisture/assignment.md +++ b/translations/fi/2-farm/lessons/2-detect-soil-moisture/assignment.md @@ -20,14 +20,14 @@ Sinun täytyy toistaa nämä vaiheet useita kertoja saadaksesi tarvittavat lukem Gravimetrinen maankosteus lasketaan seuraavasti: -![maankosteus % on märän paino miinus kuivan paino, jaettuna kuivan painolla, kerrottuna 100](../../../../../translated_images/fi/gsm-calculation.6da38c6201eec14e7573bb2647aa18892883193553d23c9d77e5dc681522dfb2.png) +![maankosteus % on märän paino miinus kuivan paino, jaettuna kuivan painolla, kerrottuna 100](../../../../../translated_images/fi/gsm-calculation.6da38c6201eec14e.webp) * W - märän maaperän paino * W - kuivan maaperän paino Esimerkiksi, jos sinulla on maaperänäyte, joka painaa 212 g märkänä ja 197 g kuivana: -![Täytetty laskelma](../../../../../translated_images/fi/gsm-calculation-example.99f9803b4f29e97668e7c15412136c0c399ab12dbba0b89596fdae9d8aedb6fb.png) +![Täytetty laskelma](../../../../../translated_images/fi/gsm-calculation-example.99f9803b4f29e976.webp) * W = 212 g * W = 197 g diff --git a/translations/fi/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md b/translations/fi/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md index c4362d7c0..07fdf5d46 100644 --- a/translations/fi/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md +++ b/translations/fi/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md @@ -34,11 +34,11 @@ Lisää maaperän kosteusanturi CounterFit-sovellukseen. 1. Valitse **Add**-painike luodaksesi *Soil Moisture* -anturin Pin 0:aan. - ![Maaperän kosteusanturin asetukset](../../../../../translated_images/fi/counterfit-create-soil-moisture-sensor.35266135a5e0ae68b29a684d7db0d2933a8098b2307d197f7c71577b724603aa.png) + ![Maaperän kosteusanturin asetukset](../../../../../translated_images/fi/counterfit-create-soil-moisture-sensor.35266135a5e0ae68.webp) Maaperän kosteusanturi luodaan ja se näkyy anturilistassa. - ![Luotu maaperän kosteusanturi](../../../../../translated_images/fi/counterfit-soil-moisture-sensor.81742b2de0e9de60a3b3b9a2ff8ecc686d428eb6d71820f27a693be26e5aceee.png) + ![Luotu maaperän kosteusanturi](../../../../../translated_images/fi/counterfit-soil-moisture-sensor.81742b2de0e9de60.webp) ## Ohjelmoi maaperän kosteusanturisovellus diff --git a/translations/fi/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md b/translations/fi/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md index f81e52e24..7bed8e7b2 100644 --- a/translations/fi/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md +++ b/translations/fi/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md @@ -18,7 +18,7 @@ Grove-maaperän kosteusanturi voidaan liittää Wio Terminalin konfiguroitavaan Liitä maaperän kosteusanturi. -![Grove-maaperän kosteusanturi](../../../../../translated_images/fi/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![Grove-maaperän kosteusanturi](../../../../../translated_images/fi/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. Työnnä Grove-kaapelin toinen pää maaperän kosteusanturin liittimeen. Kaapeli menee sisään vain yhdellä tavalla. diff --git a/translations/fi/2-farm/lessons/3-automated-plant-watering/README.md b/translations/fi/2-farm/lessons/3-automated-plant-watering/README.md index 38d297b74..eb3bcad71 100644 --- a/translations/fi/2-farm/lessons/3-automated-plant-watering/README.md +++ b/translations/fi/2-farm/lessons/3-automated-plant-watering/README.md @@ -1,6 +1,6 @@ # Automaattinen kasvien kastelu -![Yleiskatsaus oppitunnista sketchnotena](../../../../../translated_images/fi/lesson-7.30b5f577d3cb8e031238751475cb519c7d6dbaea261b5df4643d086ffb2a03bb.jpg) +![Yleiskatsaus oppitunnista sketchnotena](../../../../../translated_images/fi/lesson-7.30b5f577d3cb8e03.webp) > Sketchnote: [Nitya Narasimhan](https://github.com/nitya). Klikkaa kuvaa nähdäksesi suuremman version. @@ -32,7 +32,7 @@ IoT-laitteet käyttävät matalaa jännitettä. Vaikka tämä riittää antureil Ratkaisuna on kytkeä pumppu ulkoiseen virtalähteeseen ja käyttää toimilaitetta pumpun käynnistämiseen, aivan kuten valon kytkemisessä päälle. Sormesi tarvitsee vain pienen määrän energiaa kytkimen kääntämiseen, mikä yhdistää valon kotitaloussähköön, joka toimii 110v/240v jännitteellä. -![Valokytkin kytkee valon päälle](../../../../../translated_images/fi/light-switch.760317ad6ab8bd6d611da5352dfe9c73a94a0822ccec7df3c8bae35da18e1658.png) +![Valokytkin kytkee valon päälle](../../../../../translated_images/fi/light-switch.760317ad6ab8bd6d.webp) > 🎓 [Kotitaloussähkö](https://wikipedia.org/wiki/Mains_electricity) viittaa sähköön, joka toimitetaan koteihin ja yrityksiin kansallisen infrastruktuurin kautta monissa maailman osissa. @@ -72,7 +72,7 @@ Kun vipu liikkuu, voit yleensä kuulla sen osuvan sähkömagneettiin selkeällä Sähkömagneetti ei tarvitse paljon virtaa aktivoituakseen ja vetääkseen vivun, ja sitä voidaan ohjata IoT-kehitysalustan 3.3V tai 5V ulostulolla. Ulostulopiiri voi kantaa paljon enemmän virtaa, riippuen releestä, mukaan lukien kotitaloussähkö tai jopa korkeammat tehot teollisuuskäyttöön. Näin IoT-kehitysalusta voi ohjata kastelujärjestelmää, pienestä pumpusta yksittäiselle kasville aina massiiviseen teollisuusjärjestelmään koko kaupalliselle tilalle. -![Grove-rele, jossa ohjauspiiri, ulostulopiiri ja rele on merkitty](../../../../../translated_images/fi/grove-relay-labelled.293e068f5c3c2a199bd7892f2661fdc9e10c920b535cfed317fbd6d1d4ae1168.png) +![Grove-rele, jossa ohjauspiiri, ulostulopiiri ja rele on merkitty](../../../../../translated_images/fi/grove-relay-labelled.293e068f5c3c2a19.webp) Yllä olevassa kuvassa näkyy Grove-rele. Ohjauspiiri yhdistetään IoT-laitteeseen ja kytkee releen päälle tai pois päältä 3.3V tai 5V avulla. Ulostulopiirissä on kaksi liitintä, joista kumpi tahansa voi olla virtalähde tai maa. Ulostulopiiri voi käsitellä jopa 250V ja 10A, mikä riittää monille kotitaloussähköllä toimiville laitteille. Saatavilla on myös releitä, jotka kestävät vielä suurempia tehoja. diff --git a/translations/fi/2-farm/lessons/3-automated-plant-watering/pi-relay.md b/translations/fi/2-farm/lessons/3-automated-plant-watering/pi-relay.md index 0fab07cec..1b5d3717d 100644 --- a/translations/fi/2-farm/lessons/3-automated-plant-watering/pi-relay.md +++ b/translations/fi/2-farm/lessons/3-automated-plant-watering/pi-relay.md @@ -18,13 +18,13 @@ Grove-rele voidaan liittää Raspberry Pi:hin. Liitä rele. -![Grove-rele](../../../../../translated_images/fi/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) +![Grove-rele](../../../../../translated_images/fi/grove-relay.d426958ca210fbd0.webp) 1. Työnnä Grove-kaapelin toinen pää releen liittimeen. Se menee sisään vain yhdellä tavalla. 1. Kun Raspberry Pi on sammutettu, liitä Grove-kaapelin toinen pää Grove Base Hatin digitaaliseen liittimeen, joka on merkitty **D5**. Tämä liitin on toinen vasemmalta GPIO-pinnien vieressä olevassa liitinrivissä. Jätä maankosteusanturi liitetyksi **A0**-liittimeen. -![Grove-rele liitettynä D5-liittimeen ja maankosteusanturi liitettynä A0-liittimeen](../../../../../translated_images/fi/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e69ec716cd2719ce117700bd1fc933eaf93476c103c57939b.png) +![Grove-rele liitettynä D5-liittimeen ja maankosteusanturi liitettynä A0-liittimeen](../../../../../translated_images/fi/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e.webp) 1. Työnnä maankosteusanturi maahan, jos se ei ole jo siellä edellisen oppitunnin jäljiltä. diff --git a/translations/fi/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md b/translations/fi/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md index 0d9760579..fb6fca4fe 100644 --- a/translations/fi/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md +++ b/translations/fi/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md @@ -28,11 +28,11 @@ Lisää rele CounterFit-sovellukseen. 1. Valitse **Add**-painike luodaksesi releen Pin 5:lle. - ![Releen asetukset](../../../../../translated_images/fi/counterfit-create-relay.fa7c40fd0f2f6afc33b35ea94fcb235085be4861e14e3fe6b9b7bcfc82d1c888.png) + ![Releen asetukset](../../../../../translated_images/fi/counterfit-create-relay.fa7c40fd0f2f6afc.webp) Rele luodaan ja se näkyy aktuaattorilistassa. - ![Luotu rele](../../../../../translated_images/fi/counterfit-relay.bbf74c1dbdc8b9acd983367fcbd06703a402aefef6af54ddb28e11307ba8a12c.png) + ![Luotu rele](../../../../../translated_images/fi/counterfit-relay.bbf74c1dbdc8b9ac.webp) ## Ohjelmoi rele diff --git a/translations/fi/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md b/translations/fi/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md index 1bb77979e..8ed2d0bef 100644 --- a/translations/fi/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md +++ b/translations/fi/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md @@ -1,6 +1,6 @@ # Siirrä kasvisi pilveen -![Tämän oppitunnin yhteenveto sketchnotena](../../../../../translated_images/fi/lesson-8.3f21f3c11159e6a0a376351973ea5724d5de68fa23b4288853a174bed9ac48c3.jpg) +![Tämän oppitunnin yhteenveto sketchnotena](../../../../../translated_images/fi/lesson-8.3f21f3c11159e6a0.webp) > Sketchnote: [Nitya Narasimhan](https://github.com/nitya). Klikkaa kuvaa nähdäksesi suuremman version. @@ -46,8 +46,8 @@ Tämä oli usein erittäin kallista, vaati laajaa osaamista ja oli hidasta muutt Pilveä kutsutaan usein vitsikkäästi "jonkun toisen tietokoneeksi". Alkuperäinen idea oli yksinkertainen – tietokoneiden ostamisen sijaan vuokrataan jonkun toisen tietokone. Pilvipalveluntarjoaja hallinnoi valtavia datakeskuksia ja vastaa kaikesta: laitteiston hankinnasta ja asennuksesta, sähkön ja jäähdytyksen hallinnasta, verkkoyhteyksistä, rakennusten turvallisuudesta sekä laitteiston ja ohjelmistojen päivityksistä. Asiakkaana vuokraat tarvitsemasi tietokoneet, lisäät kapasiteettia kysynnän kasvaessa ja vähennät sitä kysynnän laskiessa. Näitä pilvidatakeskuksia on ympäri maailmaa. -![Microsoftin pilvidatakeskus](../../../../../translated_images/fi/azure-region-existing.73f704604f2aa6cb9b5a49ed40e93d4fd81ae3f4e6af4a8ca504023902832f56.png) -![Microsoftin pilvidatakeskuksen suunniteltu laajennus](../../../../../translated_images/fi/azure-region-planned-expansion.a5074a1e8af74f156a73552d502429e5b126ea5019274d767ecb4b9afdad442b.png) +![Microsoftin pilvidatakeskus](../../../../../translated_images/fi/azure-region-existing.73f704604f2aa6cb.webp) +![Microsoftin pilvidatakeskuksen suunniteltu laajennus](../../../../../translated_images/fi/azure-region-planned-expansion.a5074a1e8af74f15.webp) Nämä datakeskukset voivat olla useiden neliökilometrien kokoisia. Yllä olevat kuvat on otettu muutama vuosi sitten Microsoftin pilvidatakeskuksesta, ja ne näyttävät keskuksen alkuperäisen koon sekä suunnitellun laajennuksen. Laajennusta varten raivattu alue on yli 5 neliökilometriä. @@ -108,11 +108,11 @@ Pilven IoT-palvelut ratkaisevat nämä ongelmat. Niitä ylläpitävät suuret pi IoT-laitteet yhdistävät pilvipalveluun joko laite-SDK:n (kirjasto, joka tarjoaa koodia palvelun ominaisuuksien hyödyntämiseen) avulla tai suoraan viestintäprotokollan, kuten MQTT:n tai HTTP:n, kautta. Laite-SDK on yleensä helpoin tapa, koska se hoitaa kaiken puolestasi, kuten tietää, mitä aiheita julkaista tai tilata, ja miten käsitellä turvallisuutta. -![Laitteet yhdistävät palveluun laite-SDK:n avulla. Palvelinkoodi yhdistää palveluun myös SDK:n kautta](../../../../../translated_images/fi/iot-service-connectivity.7e873847921a5d6fd60d0ba3a943210194518cee0d4e362476624316443275c3.png) +![Laitteet yhdistävät palveluun laite-SDK:n avulla. Palvelinkoodi yhdistää palveluun myös SDK:n kautta](../../../../../translated_images/fi/iot-service-connectivity.7e873847921a5d6f.webp) Laitteesi kommunikoi sitten sovelluksesi muiden osien kanssa tämän palvelun kautta – samalla tavalla kuin lähetit telemetriatietoja ja vastaanotit komentoja MQTT:n kautta. Tämä tapahtuu yleensä palvelu-SDK:n tai vastaavan kirjaston avulla. Viestit tulevat laitteeltasi palveluun, jossa sovelluksesi muut osat voivat lukea ne, ja viestit voidaan lähettää takaisin laitteellesi. -![Laitteet, joilla ei ole voimassa olevaa salaisuutta, eivät voi yhdistää IoT-palveluun](../../../../../translated_images/fi/iot-service-allowed-denied-connection.818b0063ac213fb84204a7229303764d9b467ca430fb822b4ac2fca267d56726.png) +![Laitteet, joilla ei ole voimassa olevaa salaisuutta, eivät voi yhdistää IoT-palveluun](../../../../../translated_images/fi/iot-service-allowed-denied-connection.818b0063ac213fb8.webp) Nämä palvelut toteuttavat turvallisuuden tietämällä kaikista laitteista, jotka voivat yhdistää ja lähettää tietoja, joko rekisteröimällä laitteet etukäteen palveluun tai antamalla laitteille salaisia avaimia tai varmenteita, joita ne voivat käyttää rekisteröityessään palveluun ensimmäistä kertaa. Tuntemattomat laitteet eivät voi yhdistää; jos ne yrittävät, palvelu hylkää yhteyden ja jättää niiden lähettämät viestit huomiotta. @@ -124,7 +124,7 @@ Sovelluksesi muut osat voivat yhdistää IoT-palveluun ja saada tietoa kaikista Nyt kun sinulla on Azure-tilaus, voit rekisteröityä IoT-palveluun. Microsoftin IoT-palvelu tunnetaan nimellä Azure IoT Hub. -![Azure IoT Hub -logo](../../../../../translated_images/fi/azure-iot-hub-logo.28a19de76d0a1932464d858f7558712bcdace3e5ec69c434d482ed7ce41c3a26.png) +![Azure IoT Hub -logo](../../../../../translated_images/fi/azure-iot-hub-logo.28a19de76d0a1932.webp) Alla oleva video antaa lyhyen yleiskatsauksen Azure IoT Hubista: diff --git a/translations/fi/2-farm/lessons/5-migrate-application-to-the-cloud/README.md b/translations/fi/2-farm/lessons/5-migrate-application-to-the-cloud/README.md index 114d65d39..caa26872c 100644 --- a/translations/fi/2-farm/lessons/5-migrate-application-to-the-cloud/README.md +++ b/translations/fi/2-farm/lessons/5-migrate-application-to-the-cloud/README.md @@ -1,6 +1,6 @@ # Siirrä sovelluslogiikkasi pilveen -![Tämän oppitunnin luonnoskuva](../../../../../translated_images/fi/lesson-9.dfe99c8e891f48e179724520da9f5794392cf9a625079281ccdcbf09bd85e1b6.jpg) +![Tämän oppitunnin luonnoskuva](../../../../../translated_images/fi/lesson-9.dfe99c8e891f48e1.webp) > Luonnoskuva: [Nitya Narasimhan](https://github.com/nitya). Klikkaa kuvaa nähdäksesi suuremman version. @@ -28,7 +28,7 @@ Tässä oppitunnissa käsitellään: Serveritön, tai serveritön laskenta, tarkoittaa pienten koodilohkojen luomista, jotka suoritetaan pilvessä vastauksena erilaisiin tapahtumiin. Kun tapahtuma tapahtuu, koodisi suoritetaan ja sille välitetään tietoja tapahtumasta. Näitä tapahtumia voi tulla monista eri lähteistä, kuten verkkopyynnöistä, jonoon lisätyistä viesteistä, tietokannan muutoksista tai IoT-laitteiden lähettämistä viesteistä IoT-palveluun. -![Tapahtumia lähetetään IoT-palvelusta serverittömään palveluun, ja niitä käsitellään samanaikaisesti useilla funktioilla](../../../../../translated_images/fi/iot-messages-to-serverless.0194da1cc0732bb7d0f823aed3fce54735c6b1ad3bf36089804d8aaefc0a774f.png) +![Tapahtumia lähetetään IoT-palvelusta serverittömään palveluun, ja niitä käsitellään samanaikaisesti useilla funktioilla](../../../../../translated_images/fi/iot-messages-to-serverless.0194da1cc0732bb7.webp) > 💁 Jos olet käyttänyt tietokantatriggereitä aiemmin, voit ajatella tätä samalla tavalla: koodi käynnistyy tapahtumasta, kuten rivin lisäämisestä. @@ -54,7 +54,7 @@ IoT-kehittäjänä serveritön malli on ihanteellinen. Voit kirjoittaa funktion, Microsoftin serveritön laskentapalvelu tunnetaan nimellä Azure Functions. -![Azure Functions -logo](../../../../../translated_images/fi/azure-functions-logo.1cfc8e3204c9c44aaf80fcf406fc8544d80d7f00f8d3e8ed6fed764563e17564.png) +![Azure Functions -logo](../../../../../translated_images/fi/azure-functions-logo.1cfc8e3204c9c44a.webp) Alla oleva lyhyt video tarjoaa yleiskatsauksen Azure Functionsista. diff --git a/translations/fi/2-farm/lessons/6-keep-your-plant-secure/README.md b/translations/fi/2-farm/lessons/6-keep-your-plant-secure/README.md index 6965f3c58..1cb1edb04 100644 --- a/translations/fi/2-farm/lessons/6-keep-your-plant-secure/README.md +++ b/translations/fi/2-farm/lessons/6-keep-your-plant-secure/README.md @@ -1,6 +1,6 @@ # Pidä kasvisi turvassa -![Tämän oppitunnin luonnoskuva](../../../../../translated_images/fi/lesson-10.829c86b80b9403bb770929ee553a1d293afe50dc23121aaf9be144673ae012cc.jpg) +![Tämän oppitunnin luonnoskuva](../../../../../translated_images/fi/lesson-10.829c86b80b9403bb.webp) > Luonnoskuva: [Nitya Narasimhan](https://github.com/nitya). Klikkaa kuvaa nähdäksesi suuremman version. @@ -52,11 +52,11 @@ Nämä ovat todellisia tilanteita, joita tapahtuu jatkuvasti. Joitakin esimerkke Kun laite yhdistää IoT-palveluun, se käyttää tunnistetta itsensä tunnistamiseen. Ongelma on, että tämä tunniste voidaan kopioida – hakkeri voisi asettaa haitallisen laitteen käyttämään samaa tunnistetta kuin oikea laite, mutta lähettämään vääriä tietoja. -![Sekä oikea että haitallinen laite voivat käyttää samaa tunnistetta telemetrian lähettämiseen](../../../../../translated_images/fi/iot-device-and-hacked-device-connecting.e0671675df74d6d99eb1dedb5a670e606f698efa6202b1ad4c8ae548db299cc6.png) +![Sekä oikea että haitallinen laite voivat käyttää samaa tunnistetta telemetrian lähettämiseen](../../../../../translated_images/fi/iot-device-and-hacked-device-connecting.e0671675df74d6d9.webp) Ratkaisu tähän on muuntaa lähetettävät tiedot salattuun muotoon käyttämällä arvoa, joka tunnetaan vain laitteelle ja pilvelle. Tätä prosessia kutsutaan *salaamiseksi*, ja arvoa, jota käytetään tietojen salaamiseen, kutsutaan *salausavaimeksi*. -![Jos salaus on käytössä, vain salatut viestit hyväksytään, muut hylätään](../../../../../translated_images/fi/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f979e46f2849b573564eeb4a4dc5b52f669f62745397492fb.png) +![Jos salaus on käytössä, vain salatut viestit hyväksytään, muut hylätään](../../../../../translated_images/fi/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f.webp) Pilvipalvelu voi sitten muuntaa tiedot takaisin luettavaan muotoon prosessilla, jota kutsutaan *purkamiseksi*, käyttäen joko samaa salausavainta tai *purkuavainta*. Jos salattua viestiä ei voida purkaa avaimella, laite on hakkeroitu ja viesti hylätään. diff --git a/translations/fi/3-transport/lessons/1-location-tracking/README.md b/translations/fi/3-transport/lessons/1-location-tracking/README.md index 02bc3b368..0a67c3b00 100644 --- a/translations/fi/3-transport/lessons/1-location-tracking/README.md +++ b/translations/fi/3-transport/lessons/1-location-tracking/README.md @@ -1,6 +1,6 @@ # Sijainnin seuranta -![Tämän oppitunnin luonnoskuva](../../../../../translated_images/fi/lesson-11.9fddbac4b664c6d50ab7ac9bb32f1fc3f945f03760e72f7f43938073762fb017.jpg) +![Tämän oppitunnin luonnoskuva](../../../../../translated_images/fi/lesson-11.9fddbac4b664c6d5.webp) > Luonnoskuva: [Nitya Narasimhan](https://github.com/nitya). Klikkaa kuvaa nähdäksesi suuremman version. @@ -63,13 +63,13 @@ Maapallo on pallo – kolmiulotteinen ympyrä. Tämän vuoksi pisteet määritel > 💁 Kukaan ei oikeastaan tiedä alkuperäistä syytä siihen, miksi ympyrät jaetaan 360 asteeseen. [Wikipedia-sivu asteista (kulma)](https://wikipedia.org/wiki/Degree_(angle)) käsittelee joitakin mahdollisia syitä. -![Leveysasteiden linjat: 90° pohjoisnavalla, 45° puolivälissä pohjoisnavan ja päiväntasaajan välillä, 0° päiväntasaajalla, -45° puolivälissä päiväntasaajan ja etelänavan välillä ja -90° etelänavalla](../../../../../translated_images/fi/latitude-lines.11d8d91dfb2014a57437272d7db7fd6607243098e8685f06e0c5f1ec984cb7eb.png) +![Leveysasteiden linjat: 90° pohjoisnavalla, 45° puolivälissä pohjoisnavan ja päiväntasaajan välillä, 0° päiväntasaajalla, -45° puolivälissä päiväntasaajan ja etelänavan välillä ja -90° etelänavalla](../../../../../translated_images/fi/latitude-lines.11d8d91dfb2014a5.webp) Leveysaste mitataan linjoilla, jotka kiertävät maapallon ja kulkevat rinnakkain päiväntasaajan kanssa, jakaen pohjoisen ja eteläisen pallonpuoliskon 90° kumpaankin. Päiväntasaaja on 0°, pohjoisnapa on 90°, joka tunnetaan myös nimellä 90° pohjoista, ja etelänapa on -90°, eli 90° etelää. Pituusaste mitataan astemääränä itään ja länteen. Pituusasteen 0° alkuperä, *päämeridiaani*, määriteltiin vuonna 1884 linjaksi, joka kulkee pohjoisnavalta etelänavalle ja kulkee [Britannian kuninkaallisen observatorion Greenwichissä, Englannissa](https://wikipedia.org/wiki/Royal_Observatory,_Greenwich). -![Pituusasteiden linjat: -180° päämeridiaanin länsipuolella, 0° päämeridiaanilla, 180° päämeridiaanin itäpuolella](../../../../../translated_images/fi/longitude-meridians.ab4ef1c91c064586b0185a3c8d39e585903696c6a7d28c098a93a629cddb5d20.png) +![Pituusasteiden linjat: -180° päämeridiaanin länsipuolella, 0° päämeridiaanilla, 180° päämeridiaanin itäpuolella](../../../../../translated_images/fi/longitude-meridians.ab4ef1c91c064586.webp) > 🎓 Meridiaani on kuvitteellinen suora linja, joka kulkee pohjoisnavalta etelänavalle muodostaen puolikaaren. @@ -100,7 +100,7 @@ Pisteen koordinaatit annetaan aina muodossa `leveysaste, pituusaste`, joten aiem * Leveysasteen 47.6423109 (47.6423109 astetta pohjoiseen päiväntasaajasta) * Pituusasteen -122.1390293 (122.1390293 astetta länteen päämeridiaanista). -![Microsoftin kampus koordinaateissa 47.6423109,-122.117198](../../../../../translated_images/fi/microsoft-gps-location-world.a321d481b010f6adfcca139b2ba0adc53b79f58a540495b8e2ce7f779ea64bfe.png) +![Microsoftin kampus koordinaateissa 47.6423109,-122.117198](../../../../../translated_images/fi/microsoft-gps-location-world.a321d481b010f6ad.webp) ## Global Positioning Systems (GPS) @@ -112,7 +112,7 @@ GPS-järjestelmät toimivat siten, että useat satelliitit lähettävät signaal > 💁 GPS-anturit tarvitsevat antenneja havaitakseen radiotaajuuksia. Kuorma-autoihin ja autoihin sisäänrakennettujen GPS-järjestelmien antennit on sijoitettu hyvän signaalin saamiseksi, yleensä tuulilasiin tai katolle. Jos käytät erillistä GPS-järjestelmää, kuten älypuhelinta tai IoT-laitetta, sinun on varmistettava, että GPS-järjestelmään tai puhelimeen sisäänrakennettu antenni on selkeästi näkyvissä taivaalle, esimerkiksi tuulilasilla. -![Kun anturin etäisyys useista satelliiteista tiedetään, sijainti voidaan laskea](../../../../../translated_images/fi/gps-satellites.04acf1148fe25fbf1586bc2e8ba698e8d79b79a50c36824b38417dd13372b90f.png) +![Kun anturin etäisyys useista satelliiteista tiedetään, sijainti voidaan laskea](../../../../../translated_images/fi/gps-satellites.04acf1148fe25fbf.webp) GPS-satelliitit kiertävät maapalloa, eivät ole kiinteässä pisteessä anturin yläpuolella, joten sijaintitieto sisältää korkeuden merenpinnan yläpuolella sekä leveys- ja pituusasteen. diff --git a/translations/fi/3-transport/lessons/1-location-tracking/pi-gps-sensor.md b/translations/fi/3-transport/lessons/1-location-tracking/pi-gps-sensor.md index 633590825..084b89066 100644 --- a/translations/fi/3-transport/lessons/1-location-tracking/pi-gps-sensor.md +++ b/translations/fi/3-transport/lessons/1-location-tracking/pi-gps-sensor.md @@ -18,13 +18,13 @@ Grove GPS -anturi voidaan yhdistää Raspberry Pi:hin. Yhdistä GPS-anturi. -![Grove GPS -anturi](../../../../../translated_images/fi/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![Grove GPS -anturi](../../../../../translated_images/fi/grove-gps-sensor.247943bf69b03f0d.webp) 1. Työnnä Grove-kaapelin toinen pää GPS-anturin liittimeen. Se menee sisään vain yhdellä tavalla. 1. Kun Raspberry Pi on sammutettu, yhdistä Grove-kaapelin toinen pää UART-liittimeen, joka on merkitty **UART** Grove Base -hatissa, joka on kiinnitetty Pi:hin. Tämä liitin sijaitsee keskimmäisellä rivillä, SD-korttipaikan puolella, USB-porttien ja Ethernet-liittimen vastakkaisella puolella. - ![Grove GPS -anturi yhdistetty UART-liittimeen](../../../../../translated_images/fi/pi-gps-sensor.1f99ee2b2f6528915047ec78967bd362e0e4ee0ed594368a3837b9cf9cdaca64.png) + ![Grove GPS -anturi yhdistetty UART-liittimeen](../../../../../translated_images/fi/pi-gps-sensor.1f99ee2b2f652891.webp) 1. Aseta GPS-anturi niin, että siihen kiinnitetty antenni on näkyvissä taivaalle - mieluiten avoimen ikkunan vieressä tai ulkona. On helpompi saada selkeämpi signaali, kun antennin edessä ei ole esteitä. diff --git a/translations/fi/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md b/translations/fi/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md index 1da3cf0e1..f7a0c69f0 100644 --- a/translations/fi/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md +++ b/translations/fi/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md @@ -38,11 +38,11 @@ Lisää GPS-anturi CounterFit-sovellukseen. 1. Valitse **Add**-painike luodaksesi GPS-anturin porttiin `/dev/ttyAMA0`. - ![GPS-anturin asetukset](../../../../../translated_images/fi/counterfit-create-gps-sensor.6385dc9357d85ad1d47b4abb2525e7651fd498917d25eefc5a72feab09eedc70.png) + ![GPS-anturin asetukset](../../../../../translated_images/fi/counterfit-create-gps-sensor.6385dc9357d85ad1.webp) GPS-anturi luodaan ja se näkyy anturilistassa. - ![Luotu GPS-anturi](../../../../../translated_images/fi/counterfit-gps-sensor.3fbb15af0a5367566f2f11324ef5a6f30861cdf2b497071a5e002b7aa473550e.png) + ![Luotu GPS-anturi](../../../../../translated_images/fi/counterfit-gps-sensor.3fbb15af0a536756.webp) ## Ohjelmoi GPS-anturi @@ -102,17 +102,17 @@ Ohjelmoi GPS-anturisovellus. * Aseta **Source** arvoksi `Lat/Lon` ja määritä tarkka leveyspiiri, pituuspiiri ja satelliittien määrä, joita käytetään GPS-paikannukseen. Tämä arvo lähetetään vain kerran, joten valitse **Repeat**-ruutu, jotta data toistuu joka sekunti. - ![GPS-anturi, jossa lat lon valittuna](../../../../../translated_images/fi/counterfit-gps-sensor-latlon.008c867d75464fbe7f84107cc57040df565ac07cb57d2f21db37d087d470197d.png) + ![GPS-anturi, jossa lat lon valittuna](../../../../../translated_images/fi/counterfit-gps-sensor-latlon.008c867d75464fbe.webp) * Aseta **Source** arvoksi `NMEA` ja lisää NMEA-lauseita tekstikenttään. Kaikki nämä arvot lähetetään, ja uuden GGA (paikannus) -lauseen lukemisen välillä on 1 sekunnin viive. - ![GPS-anturi, jossa NMEA-lauseet asetettu](../../../../../translated_images/fi/counterfit-gps-sensor-nmea.c62eea442171e17e19528b051b104cfcecdc9cd18db7bc72920f29821ae63f73.png) + ![GPS-anturi, jossa NMEA-lauseet asetettu](../../../../../translated_images/fi/counterfit-gps-sensor-nmea.c62eea442171e17e.webp) Voit käyttää työkaluja, kuten [nmeagen.org](https://www.nmeagen.org), näiden lauseiden luomiseen piirtämällä kartalle. Nämä arvot lähetetään vain kerran, joten valitse **Repeat**-ruutu, jotta data toistuu sekunnin kuluttua siitä, kun kaikki on lähetetty. * Aseta **Source** arvoksi GPX-tiedosto ja lataa GPX-tiedosto, jossa on reittisijainteja. Voit ladata GPX-tiedostoja useilta suosituilla kartta- ja retkeilysivustoilta, kuten [AllTrails](https://www.alltrails.com/). Nämä tiedostot sisältävät useita GPS-sijainteja reittinä, ja GPS-anturi palauttaa jokaisen uuden sijainnin 1 sekunnin välein. - ![GPS-anturi, jossa GPX-tiedosto asetettu](../../../../../translated_images/fi/counterfit-gps-sensor-gpxfile.8310b063ce8a425ccc8ebeec8306aeac5e8e55207f007d52c6e1194432a70cd9.png) + ![GPS-anturi, jossa GPX-tiedosto asetettu](../../../../../translated_images/fi/counterfit-gps-sensor-gpxfile.8310b063ce8a425c.webp) Nämä arvot lähetetään vain kerran, joten valitse **Repeat**-ruutu, jotta data toistuu sekunnin kuluttua siitä, kun kaikki on lähetetty. diff --git a/translations/fi/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md b/translations/fi/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md index 1478c2b96..89bb3e6da 100644 --- a/translations/fi/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md +++ b/translations/fi/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md @@ -18,7 +18,7 @@ Grove GPS -anturi voidaan liittää Wio Terminal -laitteeseen. Yhdistä GPS-anturi. -![Grove GPS -anturi](../../../../../translated_images/fi/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![Grove GPS -anturi](../../../../../translated_images/fi/grove-gps-sensor.247943bf69b03f0d.webp) 1. Työnnä Grove-kaapelin toinen pää GPS-anturin liittimeen. Se menee sisään vain yhdellä tavalla. diff --git a/translations/fi/3-transport/lessons/2-store-location-data/README.md b/translations/fi/3-transport/lessons/2-store-location-data/README.md index b160be63a..af8c89b1a 100644 --- a/translations/fi/3-transport/lessons/2-store-location-data/README.md +++ b/translations/fi/3-transport/lessons/2-store-location-data/README.md @@ -1,6 +1,6 @@ # Tallenna sijaintitiedot -![Tämän oppitunnin luonnoskuva](../../../../../translated_images/fi/lesson-12.ca7f53039712a3ec14ad6474d8445361c84adab643edc53fa6269b77895606bb.jpg) +![Tämän oppitunnin luonnoskuva](../../../../../translated_images/fi/lesson-12.ca7f53039712a3ec.webp) > Luonnoskuva: [Nitya Narasimhan](https://github.com/nitya). Klikkaa kuvaa nähdäksesi suuremman version. @@ -75,7 +75,7 @@ NoSQL-tietokannat on nimetty näin, koska niillä ei ole SQL-tietokantojen jäyk > 💁 Nimestään huolimatta jotkut NoSQL-tietokannat mahdollistavat SQL:n käytön datan hakemiseen. -![Dokumentteja kansioissa NoSQL-tietokannassa](../../../../../translated_images/fi/noqsl-database.62d24ccf5b73f60d35c245a8533f1c7147c0928e955b82cb290b2e184bb434df.png) +![Dokumentteja kansioissa NoSQL-tietokannassa](../../../../../translated_images/fi/noqsl-database.62d24ccf5b73f60d.webp) NoSQL-tietokannoilla ei ole ennalta määriteltyä skeemaa, joka rajoittaisi datan tallennustapaa. Sen sijaan voit lisätä mitä tahansa strukturoimatonta dataa, yleensä JSON-dokumentteina. Nämä dokumentit voidaan järjestää kansioihin, kuten tiedostot tietokoneellasi. Jokaisella dokumentilla voi olla eri kenttiä kuin toisilla dokumenteilla – esimerkiksi, jos tallennat IoT-dataa maatilan ajoneuvoista, joillakin dokumenteilla voi olla kiihtyvyys- ja nopeustietokenttiä, kun taas toisilla voi olla perävaunun lämpötilatietokenttiä. Jos lisäisit uuden kuorma-autotyypin, kuten sellaisen, jossa on sisäänrakennetut vaa'at kuorman painon seuraamiseen, IoT-laite voisi lisätä tämän uuden kentän, ja se voitaisiin tallentaa ilman muutoksia tietokantaan. @@ -89,7 +89,7 @@ Tässä oppitunnissa käytät NoSQL-tallennusta IoT-datan tallentamiseen. Edellisessä oppitunnissa tallensit GPS-tietoja GPS-anturista, joka oli yhdistetty IoT-laitteeseesi. Jotta nämä IoT-tiedot voidaan tallentaa pilveen, ne täytyy lähettää IoT-palveluun. Käytät jälleen Azure IoT Hubia, samaa IoT-pilvipalvelua, jota käytit edellisessä projektissa. -![GPS-telemetrian lähettäminen IoT-laitteesta IoT Hubiin](../../../../../translated_images/fi/gps-telemetry-iot-hub.8115335d51cd2c1285d20e9d1b18cf685e59a8e093e7797291ef173445af6f3d.png) +![GPS-telemetrian lähettäminen IoT-laitteesta IoT Hubiin](../../../../../translated_images/fi/gps-telemetry-iot-hub.8115335d51cd2c12.webp) ### Tehtävä – lähetä GPS-tietoja IoT Hubiin @@ -171,7 +171,7 @@ Kylmä polku -data tallennetaan datavarastoihin – tietokantoihin, jotka on suu Kun data virtaa IoT Hubiin, voit kirjoittaa palvelimetonta koodia kuuntelemaan tapahtumia, jotka julkaistaan Event-Hub-yhteensopivaan päätepisteeseen. Tämä on lämmin polku – tämä data tallennetaan ja sitä käytetään seuraavassa oppitunnissa matkan raportointiin. -![GPS-telemetrian lähettäminen IoT-laitteesta IoT Hubiin ja sitten Azure Functions -palveluun tapahtumakäynnistimen kautta](../../../../../translated_images/fi/gps-telemetry-iot-hub-functions.24d3fa5592455e9f4e2fe73856b40c3915a292b90263c31d652acfd976cfedd8.png) +![GPS-telemetrian lähettäminen IoT-laitteesta IoT Hubiin ja sitten Azure Functions -palveluun tapahtumakäynnistimen kautta](../../../../../translated_images/fi/gps-telemetry-iot-hub-functions.24d3fa5592455e9f.webp) ### Tehtävä – käsittele GPS-tapahtumia palvelimettomalla koodilla @@ -193,7 +193,7 @@ Kun data virtaa IoT Hubiin, voit kirjoittaa palvelimetonta koodia kuuntelemaan t ## Azure Storage -tilit -![Azure Storage -logo](../../../../../translated_images/fi/azure-storage-logo.605c0f602c640d482a80f1b35a2629a32d595711b7ab1d7ceea843250615ff32.png) +![Azure Storage -logo](../../../../../translated_images/fi/azure-storage-logo.605c0f602c640d48.webp) Azure Storage -tilit ovat yleiskäyttöinen tallennuspalvelu, joka voi tallentaa dataa monin eri tavoin. Voit tallentaa dataa blobina, jonoissa, taulukoissa tai tiedostoina, ja kaikki nämä samanaikaisesti. diff --git a/translations/fi/3-transport/lessons/3-visualize-location-data/README.md b/translations/fi/3-transport/lessons/3-visualize-location-data/README.md index 1672db918..370c8fd35 100644 --- a/translations/fi/3-transport/lessons/3-visualize-location-data/README.md +++ b/translations/fi/3-transport/lessons/3-visualize-location-data/README.md @@ -1,6 +1,6 @@ # Visualisoi sijaintitiedot -![Tämän oppitunnin yleiskuvaus sketchnotena](../../../../../translated_images/fi/lesson-13.a259db1485021be7d7c72e90842fbe0ab977529e8684c179b5fb1ea75e92b3ef.jpg) +![Tämän oppitunnin yleiskuvaus sketchnotena](../../../../../translated_images/fi/lesson-13.a259db1485021be7.webp) > Sketchnote: [Nitya Narasimhan](https://github.com/nitya). Klikkaa kuvaa nähdäksesi suuremman version. @@ -64,11 +64,11 @@ Yksinkertainen esimerkki: maatilaprojektissa tallensit maaperän kosteustietoja. Ihmisen on vaikea ymmärtää tällaista dataa. Se on pelkkä numeroseinä ilman merkitystä. Ensimmäinen askel datan visualisoinnissa voisi olla sen piirtäminen viivakaavioon: -![Viivakaavio yllä olevasta datasta](../../../../../translated_images/fi/chart-soil-moisture.fd6d9d0cdc0b5f75e78038ecb8945dfc84b38851359de99d84b16e3336d6d7c2.png) +![Viivakaavio yllä olevasta datasta](../../../../../translated_images/fi/chart-soil-moisture.fd6d9d0cdc0b5f75.webp) Tätä voidaan parantaa lisäämällä viiva, joka osoittaa, milloin automaattinen kastelujärjestelmä käynnistyi kosteusarvolla 450: -![Viivakaavio maaperän kosteudesta ja viiva arvolla 450](../../../../../translated_images/fi/chart-soil-moisture-relay.fbb391236d34a64d0abf1df396e9197e0a24df14150620b9cc820a64a55c9326.png) +![Viivakaavio maaperän kosteudesta ja viiva arvolla 450](../../../../../translated_images/fi/chart-soil-moisture-relay.fbb391236d34a64d.webp) Tämä kaavio näyttää nopeasti paitsi maaperän kosteustasot myös kohdat, joissa kastelujärjestelmä käynnistyi. @@ -84,7 +84,7 @@ Kun työskentelet GPS-datan kanssa, selkein tapa visualisoida dataa on piirtää Karttojen kanssa työskentely on mielenkiintoista, ja valittavana on monia vaihtoehtoja, kuten Bing Maps, Leaflet, Open Street Maps ja Google Maps. Tässä oppitunnissa opit [Azure Maps](https://azure.microsoft.com/services/azure-maps/?WT.mc_id=academic-17441-jabenn) -palvelusta ja siitä, kuinka se voi näyttää GPS-datasi. -![Azure Maps -logo](../../../../../translated_images/fi/azure-maps-logo.35d01dcfbd81fe6140e94257aaa1538f785a58c91576d14e0ebe7a2f6c694b99.png) +![Azure Maps -logo](../../../../../translated_images/fi/azure-maps-logo.35d01dcfbd81fe61.webp) Azure Maps on "kokoelma paikkatietopalveluita ja SDK:ita, jotka käyttävät ajankohtaista karttatietoa tarjotakseen maantieteellistä kontekstia verkkosovelluksille ja mobiilisovelluksille." Kehittäjille tarjotaan työkaluja luoda kauniita, interaktiivisia karttoja, jotka voivat esimerkiksi tarjota suositeltuja liikennereittejä, tietoa liikenneonnettomuuksista, sisätilanavigointia, hakutoimintoja, korkeustietoja, säätietopalveluita ja paljon muuta. @@ -185,7 +185,7 @@ Seuraava askel on näyttää kartta verkkosivulla. Käytämme vain yhtä `html`- Jos avaat `index.html`-sivusi verkkoselaimessa, sinun pitäisi nähdä kartta, joka on keskitetty Seattlen alueelle. - ![Kartta, joka näyttää Seattlen, kaupungin Washingtonin osavaltiossa, USA:ssa](../../../../../translated_images/fi/map-image.8fb2c53eb23ef39c1c0a4410a5282e879b3b452b707eb066ff04c5488d3d72b7.png) + ![Kartta, joka näyttää Seattlen, kaupungin Washingtonin osavaltiossa, USA:ssa](../../../../../translated_images/fi/map-image.8fb2c53eb23ef39c.webp) ✅ Kokeile zoomaus- ja keskitysparametreja muuttaaksesi kartan näkymää. Voit lisätä eri koordinaatit, jotka vastaavat datasi leveys- ja pituusasteita, keskittääksesi kartan uudelleen. @@ -318,7 +318,7 @@ Kun teet kutsun tallennustilaasi hakeaksesi dataa, saatat yllättyä, jos selaim 1. Lataa HTML-sivu selaimeesi. Se lataa kartan, hakee kaikki GPS-datat tallennustilasta ja piirtää ne kartalle. - ![Kartta Saint Edward State Parkista Seattlen lähellä, jossa ympyrät näyttävät reitin puiston reunalla](../../../../../translated_images/fi/map-path.896832e72dc696ffe20650e4051027d4855442d955f93fdbb80bb417ca8a406f.png) + ![Kartta Saint Edward State Parkista Seattlen lähellä, jossa ympyrät näyttävät reitin puiston reunalla](../../../../../translated_images/fi/map-path.896832e72dc696ff.webp) > 💁 Löydät tämän koodin [code](../../../../../3-transport/lessons/3-visualize-location-data/code)-kansiosta. diff --git a/translations/fi/3-transport/lessons/4-geofences/README.md b/translations/fi/3-transport/lessons/4-geofences/README.md index 603d8d31a..66c77b850 100644 --- a/translations/fi/3-transport/lessons/4-geofences/README.md +++ b/translations/fi/3-transport/lessons/4-geofences/README.md @@ -1,6 +1,6 @@ # Geoaidat -![Tämän oppitunnin yleiskatsaus sketchnotena](../../../../../translated_images/fi/lesson-14.63980c5150ae3c153e770fb71d044c1845dce79248d86bed9fc525adf3ede73c.jpg) +![Tämän oppitunnin yleiskatsaus sketchnotena](../../../../../translated_images/fi/lesson-14.63980c5150ae3c15.webp) > Sketchnote: [Nitya Narasimhan](https://github.com/nitya). Klikkaa kuvaa nähdäksesi suuremman version. @@ -35,7 +35,7 @@ Tässä oppitunnissa käsitellään: Geoaidat ovat virtuaalisia rajoja todellisille maantieteellisille alueille. Geoaidat voivat olla ympyröitä, jotka määritellään pisteenä ja säteenä (esimerkiksi 100 m leveä ympyrä rakennuksen ympärillä), tai monikulmioita, jotka kattavat alueen, kuten koulun alueen, kaupungin rajat tai yliopiston tai toimiston kampuksen. -![Esimerkkejä geoaidoista: ympyrä Microsoftin yrityskaupan ympärillä ja monikulmio Microsoftin länsikampuksen ympärillä](../../../../../translated_images/fi/geofence-examples.172fbc534665769f6e1a1ddcf75e3b25183cd10354c80cc603ba44b635390e1a.png) +![Esimerkkejä geoaidoista: ympyrä Microsoftin yrityskaupan ympärillä ja monikulmio Microsoftin länsikampuksen ympärillä](../../../../../translated_images/fi/geofence-examples.172fbc534665769f.webp) > 💁 Olet ehkä jo käyttänyt geoaidoja tietämättäsi. Jos olet asettanut muistutuksen iOS-muistutussovelluksessa tai Google Keepissä sijainnin perusteella, olet käyttänyt geoaitaa. Nämä sovellukset luovat geoaidan annetun sijainnin perusteella ja ilmoittavat sinulle, kun puhelimesi saapuu geoaidan sisälle. @@ -212,7 +212,7 @@ On tärkeää tietää etäisyys geoaidan reunaan ja yhdistää tämä tieto mui Esimerkiksi, kuvittele GPS-lukemia, jotka osoittavat ajoneuvon ajavan tietä pitkin, joka kulkee geoaidan vieressä. Jos yksi GPS-arvo on epätarkka ja sijoittaa ajoneuvon geoaidan sisälle, vaikka sinne ei ole ajoneuvoyhteyttä, se voidaan jättää huomiotta. -![GPS-jälki, joka näyttää ajoneuvon kulkevan Microsoftin kampuksen ohi 520-tietä pitkin, GPS-lukemat tien varrella paitsi yksi kampuksella, geoaidan sisällä](../../../../../translated_images/fi/geofence-crossing-inaccurate-gps.6a3ed911202ad9cabb66d3964888cec03a42c61d5b8f536ad5bdc99716b370f5.png) +![GPS-jälki, joka näyttää ajoneuvon kulkevan Microsoftin kampuksen ohi 520-tietä pitkin, GPS-lukemat tien varrella paitsi yksi kampuksella, geoaidan sisällä](../../../../../translated_images/fi/geofence-crossing-inaccurate-gps.6a3ed911202ad9ca.webp) Yllä olevassa kuvassa on geofence Microsoftin kampuksen osan päällä. Punainen viiva näyttää rekan ajavan pitkin 520-tietä, ja ympyrät osoittavat GPS-lukemat. Suurin osa näistä lukemista on tarkkoja ja sijaitsee 520-tien varrella, mutta yksi epätarkka lukema on geofencen sisällä. Tämä lukema ei voi olla oikea – ei ole teitä, joiden kautta rekka voisi yhtäkkiä poiketa 520-tieltä kampukselle ja palata sitten takaisin 520-tielle. Geofencen tarkistava koodi tarvitsee ottaa huomioon aiemmat lukemat ennen kuin se toimii geofencen testitulosten perusteella. ✅ Mitä lisätietoja tarvitsisit tarkistaaksesi, voiko GPS-lukema olla oikea? @@ -284,7 +284,7 @@ Kuten muistat aiemmista oppitunneista, IoT Hub mahdollistaa tapahtumien uudellee Vastaus on, että se ei tiedä! Sen sijaan voit määritellä useita erillisiä yhteyksiä tapahtumien lukemiseen, ja jokainen niistä voi hallita lukemattomien viestien uudelleen toistoa. Näitä kutsutaan *kuluttajaryhmiksi*. Kun yhdistät päätepisteeseen, voit määrittää, mihin kuluttajaryhmään haluat yhdistää. Sovelluksesi jokainen komponentti yhdistyy eri kuluttajaryhmään. -![Yksi IoT Hub, jossa 3 kuluttajaryhmää jakaa samat viestit 3 eri Functions-sovellukseen](../../../../../translated_images/fi/consumer-groups.a3262e26fc27ba2092863678ad57af15c7223416e388a23f330c058cf4358630.png) +![Yksi IoT Hub, jossa 3 kuluttajaryhmää jakaa samat viestit 3 eri Functions-sovellukseen](../../../../../translated_images/fi/consumer-groups.a3262e26fc27ba20.webp) Teoriassa jopa 5 sovellusta voi yhdistyä jokaiseen kuluttajaryhmään, ja ne kaikki vastaanottavat viestejä niiden saapuessa. Paras käytäntö on, että vain yksi sovellus käyttää kutakin kuluttajaryhmää välttääkseen viestien kaksoiskäsittelyn ja varmistaakseen, että kaikki jonossa olevat viestit käsitellään oikein uudelleenkäynnistyksen yhteydessä. Esimerkiksi, jos käynnistäisit Functions-sovelluksesi paikallisesti sekä pilvessä, ne molemmat käsittelisivät viestejä, mikä johtaisi kaksoiskopioihin tallennustilin blob-tallennuksessa. diff --git a/translations/fi/4-manufacturing/lessons/1-train-fruit-detector/README.md b/translations/fi/4-manufacturing/lessons/1-train-fruit-detector/README.md index c64d01af2..8668a7682 100644 --- a/translations/fi/4-manufacturing/lessons/1-train-fruit-detector/README.md +++ b/translations/fi/4-manufacturing/lessons/1-train-fruit-detector/README.md @@ -1,6 +1,6 @@ # Kouluta hedelmien laadun tunnistaja -![Tämän oppitunnin yleiskatsaus sketchnotena](../../../../../translated_images/fi/lesson-15.843d21afdc6fb2bba70cd9db7b7d2f91598859fafda2078b0bdc44954194b6c0.jpg) +![Tämän oppitunnin yleiskatsaus sketchnotena](../../../../../translated_images/fi/lesson-15.843d21afdc6fb2bb.webp) > Sketchnote: [Nitya Narasimhan](https://github.com/nitya). Klikkaa kuvaa nähdäksesi suuremman version. @@ -38,7 +38,7 @@ Kaikki sadot eivät kypsy tasaisesti. Esimerkiksi tomaateissa voi olla vielä vi Automaattisen sadonkorjuun nousu siirsi tuottelajittelun sadonkorjuusta tehtaaseen. Ruoka kulki pitkillä kuljetushihnoilla, joissa tiimit poimivat tuotteita ja poistivat kaiken, mikä ei täyttänyt vaadittua laatustandardia. Sadonkorjuu oli halvempaa koneiden ansiosta, mutta ruoan manuaalinen lajittelu oli edelleen kallista. -![Jos punainen tomaatti havaitaan, se jatkaa matkaansa keskeytyksettä. Jos vihreä tomaatti havaitaan, vipu heittää sen jäteastiaan.](../../../../../translated_images/fi/optical-tomato-sorting.61aa134bdda4e5b1bfb16a212c1e35a6ef0c426cbb8b1c975f79d7bfbf48d068.png) +![Jos punainen tomaatti havaitaan, se jatkaa matkaansa keskeytyksettä. Jos vihreä tomaatti havaitaan, vipu heittää sen jäteastiaan.](../../../../../translated_images/fi/optical-tomato-sorting.61aa134bdda4e5b1.webp) Seuraava kehitysaskel oli käyttää koneita lajitteluun, joko sadonkorjuukoneeseen sisäänrakennettuna tai käsittelylaitoksissa. Näiden koneiden ensimmäinen sukupolvi käytti optisia sensoreita värien havaitsemiseen, ohjaten toimilaitteita työntämään vihreät tomaatit jäteastiaan vipujen tai ilmapuhallusten avulla, jättäen punaiset tomaatit jatkamaan kuljetushihnoilla. @@ -62,7 +62,7 @@ Esimerkiksi voisit antaa mallille miljoonia kuvia raaoista banaaneista syötteen > 🎓 ML-mallien tuloksia kutsutaan *ennusteiksi*. -![2 banaania, kypsä banaani ennustuksella 99,7% kypsä, 0,3% raaka, ja raaka banaani ennustuksella 1,4% kypsä, 98,6% raaka.](../../../../../translated_images/fi/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50ece4e4589e724b142da0681f35470fe3db3f7d51240f69c85.png) +![2 banaania, kypsä banaani ennustuksella 99,7% kypsä, 0,3% raaka, ja raaka banaani ennustuksella 1,4% kypsä, 98,6% raaka.](../../../../../translated_images/fi/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50e.webp) ML-mallit eivät anna binäärivastausta, vaan todennäköisyyksiä. Esimerkiksi malli voi saada kuvan banaanista ja ennustaa `kypsä` 99,7% ja `raaka` 0,3%. Koodisi valitsisi parhaan ennustuksen ja päättäisi, että banaani on kypsä. @@ -90,7 +90,7 @@ On olemassa laaja valikoima työkaluja, jotka voivat auttaa sinua tässä, mukaa Custom Vision on pilvipohjainen työkalu kuvien luokittelijoiden kouluttamiseen. Sen avulla voit kouluttaa luokittelijan käyttämällä vain pientä määrää kuvia. Voit ladata kuvia verkkosivuston, verkkosovellusrajapinnan tai SDK:n kautta, antaen jokaiselle kuvalle *tunnisteen*, joka sisältää kuvan luokituksen. Sen jälkeen voit kouluttaa mallin ja testata sen suorituskykyä. Kun olet tyytyväinen malliin, voit julkaista sen versioita, joita voidaan käyttää verkkosovellusrajapinnan tai SDK:n kautta. -![Azure Custom Vision -logo](../../../../../translated_images/fi/custom-vision-logo.d3d4e7c8a87ec9daf825e72e210576c3cbf60312577be7a139e22dd97ab7f1e6.png) +![Azure Custom Vision -logo](../../../../../translated_images/fi/custom-vision-logo.d3d4e7c8a87ec9da.webp) > 💁 Voit kouluttaa Custom Vision -mallin vain 5 kuvalla per luokitus, mutta enemmän on parempi. Saat parempia tuloksia vähintään 30 kuvalla. @@ -146,7 +146,7 @@ Custom Visionin käyttämiseksi sinun täytyy ensin luoda kaksi Cognitive Servic Kun luot projektisi, varmista, että käytät aiemmin luomaasi `fruit-quality-detector-training` -resurssia. Käytä *Classification*-projektityyppiä, *Multiclass*-luokittelutyyppiä ja *Food*-toimialaa. - ![Custom Vision -projektin asetukset, nimi asetettu fruit-quality-detector, ei kuvausta, resurssi asetettu fruit-quality-detector-training, projektityyppi asetettu classification, luokittelutyypit asetettu multi class ja toimialat asetettu food.](../../../../../translated_images/fi/custom-vision-create-project.cf46325b92d8b131089f6647cf5e07b664cb77850e106d66e3c057b6b69756c6.png) + ![Custom Vision -projektin asetukset, nimi asetettu fruit-quality-detector, ei kuvausta, resurssi asetettu fruit-quality-detector-training, projektityyppi asetettu classification, luokittelutyypit asetettu multi class ja toimialat asetettu food.](../../../../../translated_images/fi/custom-vision-create-project.cf46325b92d8b131.webp) ✅ Käytä aikaa tutustuaksesi Custom Vision -käyttöliittymään kuvien luokittelijallesi. @@ -164,7 +164,7 @@ Kuvien luokittimet toimivat hyvin matalalla resoluutiolla. Esimerkiksi Custom Vi * Käytä 2 kypsää banaania ja ota kuvia kummastakin eri kulmista, vähintään 7 kuvaa (5 koulutukseen, 2 testaukseen), mutta mieluiten enemmän. - ![Kuvia kahdesta eri banaanista](../../../../../translated_images/fi/banana-training-images.530eb203346d73bc23b8b990fb4609470bf4ff7c942ccc13d4cfffeed9be1ad4.png) + ![Kuvia kahdesta eri banaanista](../../../../../translated_images/fi/banana-training-images.530eb203346d73bc.webp) * Toista sama prosessi käyttäen 2 raakaa banaania. @@ -174,7 +174,7 @@ Kuvien luokittimet toimivat hyvin matalalla resoluutiolla. Esimerkiksi Custom Vi 1. Seuraa [Microsoft-dokumentaation luokittimen nopean aloituksen osion kuvat lataaminen ja tunnistaminen](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) ohjeita ladataksesi koulutuskuvasi. Tunnista kypsät hedelmät `ripe`-tunnisteella ja raa'at hedelmät `unripe`-tunnisteella. - ![Latausdialogit, joissa ladataan kypsien ja raakojen banaanien kuvia](../../../../../translated_images/fi/image-upload-bananas.0751639f3815e0ec42bdbc6254d1e4357a185834d1ae10c9948a0e7d6d336695.png) + ![Latausdialogit, joissa ladataan kypsien ja raakojen banaanien kuvia](../../../../../translated_images/fi/image-upload-bananas.0751639f3815e0ec.webp) 1. Seuraa [Microsoft-dokumentaation luokittimen nopean aloituksen osion luokittimen kouluttaminen](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#train-the-classifier) ohjeita kouluttaaksesi kuvien luokittimen ladatuilla kuvillasi. @@ -192,7 +192,7 @@ Kun luokitin on koulutettu, voit testata sitä antamalla sille uuden kuvan luoki 1. Seuraa [Microsoft-dokumentaation testaa mallisi -osio](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/test-your-model?WT.mc_id=academic-17441-jabenn#test-your-model) ohjeita testataksesi kuvien luokitinta. Käytä aiemmin luotuja testauskuvia, älä mitään koulutuksessa käytettyjä kuvia. - ![Raaka banaani ennustettu raa'aksi 98,9 % todennäköisyydellä, kypsäksi 1,1 % todennäköisyydellä](../../../../../translated_images/fi/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64886422438850ea14f0be6ac918c217ea3b255c685abfabe7.png) + ![Raaka banaani ennustettu raa'aksi 98,9 % todennäköisyydellä, kypsäksi 1,1 % todennäköisyydellä](../../../../../translated_images/fi/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64.webp) 1. Kokeile kaikkia testauskuvia, joihin sinulla on pääsy, ja tarkkaile todennäköisyyksiä. diff --git a/translations/fi/4-manufacturing/lessons/2-check-fruit-from-device/README.md b/translations/fi/4-manufacturing/lessons/2-check-fruit-from-device/README.md index 1b655ce87..2e9420512 100644 --- a/translations/fi/4-manufacturing/lessons/2-check-fruit-from-device/README.md +++ b/translations/fi/4-manufacturing/lessons/2-check-fruit-from-device/README.md @@ -1,6 +1,6 @@ # Tarkista hedelmien laatu IoT-laitteella -![Tämän oppitunnin luonnoskuva](../../../../../translated_images/fi/lesson-16.215daf18b00631fbdfd64c6fc2dc6044dff5d544288825d8076f9fb83d964c23.jpg) +![Tämän oppitunnin luonnoskuva](../../../../../translated_images/fi/lesson-16.215daf18b00631fb.webp) > Luonnoskuva: [Nitya Narasimhan](https://github.com/nitya). Klikkaa kuvaa nähdäksesi suuremman version. @@ -26,7 +26,7 @@ Tässä oppitunnissa käsitellään: Kameran sensorit, kuten nimi kertoo, ovat kameroita, jotka voit liittää IoT-laitteeseesi. Ne voivat ottaa still-kuvia tai tallentaa videota. Jotkut sensorit palauttavat raakakuvaa, kun taas toiset pakkaavat kuvan esimerkiksi JPEG- tai PNG-tiedostoksi. Yleensä IoT-laitteiden kanssa käytettävät kamerat ovat paljon pienempiä ja matalamman resoluution kuin mihin olet tottunut, mutta saatavilla on myös korkearesoluutioisia kameroita, jotka kilpailevat huippupuhelimien kanssa. Voit hankkia vaihdettavia linssejä, usean kameran kokoonpanoja, infrapunalämpökameroita tai UV-kameroita. -![Valo kulkee linssin läpi ja tarkentuu CMOS-sensorille](../../../../../translated_images/fi/cmos-sensor.75f9cd74decb137149a4c9ea825251a4549497d67c0ae2776159e6102bb53aa9.png) +![Valo kulkee linssin läpi ja tarkentuu CMOS-sensorille](../../../../../translated_images/fi/cmos-sensor.75f9cd74decb1371.webp) Useimmat kameran sensorit käyttävät kuvakennoja, joissa jokainen pikseli on valodiodi. Linssi tarkentaa kuvan kuvakennolle, ja tuhannet tai miljoonat valodiodit havaitsevat niihin osuvan valon ja tallentavat sen pikselidatana. @@ -74,7 +74,7 @@ Iteroinnit julkaistaan Custom Vision -portaalista. 1. Valitse **Julkaise**-painike kyseiselle iteroinnille. - ![Julkaise-painike](../../../../../translated_images/fi/custom-vision-publish-button.b7174e1977b0c33b8b72d4e5b1326c779e0af196f3849d09985ee2d7d5493a39.png) + ![Julkaise-painike](../../../../../translated_images/fi/custom-vision-publish-button.b7174e1977b0c33b.webp) 1. *Julkaise malli* -valintaikkunassa aseta *Ennusteresurssi* `fruit-quality-detector-prediction`-resurssiksi, jonka loit edellisessä oppitunnissa. Jätä nimi `Iteration2`:ksi ja valitse **Julkaise**-painike. @@ -88,7 +88,7 @@ Iteroinnit julkaistaan Custom Vision -portaalista. Kopioi myös *Ennusteavain*-arvo. Tämä on turvallinen avain, joka täytyy välittää, kun kutsut mallia. Vain sovellukset, jotka välittävät tämän avaimen, voivat käyttää mallia, muut sovellukset hylätään. - ![Ennuste-API-valintaikkuna, joka näyttää URL:n ja avaimen](../../../../../translated_images/fi/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![Ennuste-API-valintaikkuna, joka näyttää URL:n ja avaimen](../../../../../translated_images/fi/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ Kun uusi iterointi julkaistaan, sillä on eri nimi. Miten luulet, että IoT-laitteessa vaihdetaan käytettävä iterointi? @@ -109,7 +109,7 @@ Saatat huomata, että kameran avulla IoT-laitteella otettujen kuvien tulokset ei Parhaiden tulosten saavuttamiseksi kuvien luokittelijassa haluat kouluttaa mallin kuvilla, jotka ovat mahdollisimman samanlaisia kuin ennusteisiin käytetyt kuvat. Jos esimerkiksi käytit puhelimen kameraa koulutuskuvien ottamiseen, kuvan laatu, terävyys ja värit eroavat IoT-laitteeseen liitetyn kameran kuvista. -![2 banaanikuvaa, toinen matalaresoluutioinen ja huonosti valaistu IoT-laitteelta, toinen korkearesoluutioinen ja hyvin valaistu puhelimesta](../../../../../translated_images/fi/banana-picture-compare.174df164dc326a42cf7fb051a7497e6113c620e91552d92ca914220305d47d9a.png) +![2 banaanikuvaa, toinen matalaresoluutioinen ja huonosti valaistu IoT-laitteelta, toinen korkearesoluutioinen ja hyvin valaistu puhelimesta](../../../../../translated_images/fi/banana-picture-compare.174df164dc326a42.webp) Yllä olevassa kuvassa vasemmanpuoleinen banaanikuva otettiin Raspberry Pi -kameralla, oikeanpuoleinen kuva otettiin samasta banaanista samassa paikassa iPhonella. Kuvien laadussa on selkeä ero – iPhonen kuva on terävämpi, värikkäämpi ja kontrastikkaampi. diff --git a/translations/fi/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md b/translations/fi/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md index 49328013a..46c395b10 100644 --- a/translations/fi/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md +++ b/translations/fi/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md @@ -16,7 +16,7 @@ Kamera voidaan liittää Raspberry Pi:hin nauhakaapelilla. ### Tehtävä - liitä kamera -![Raspberry Pi -kamera](../../../../../translated_images/fi/pi-camera-module.4278753c31bd6e757aa2b858be97d72049f71616278cefe4fb5abb485b40a078.png) +![Raspberry Pi -kamera](../../../../../translated_images/fi/pi-camera-module.4278753c31bd6e75.webp) 1. Sammuta Pi. @@ -24,17 +24,17 @@ Kamera voidaan liittää Raspberry Pi:hin nauhakaapelilla. Voit katsoa animaation, joka näyttää, miten klipsi avataan ja kaapeli asetetaan, [Raspberry Pi:n Getting Started with the Camera module -dokumentaatiosta](https://projects.raspberrypi.org/en/projects/getting-started-with-picamera/2). - ![Nauhakaapeli liitetty kameramoduuliin](../../../../../translated_images/fi/pi-camera-ribbon-cable.0bf82acd251611c21ac616f082849413e2b322a261d0e4f8fec344248083b07e.png) + ![Nauhakaapeli liitetty kameramoduuliin](../../../../../translated_images/fi/pi-camera-ribbon-cable.0bf82acd251611c2.webp) 1. Poista Grove Base Hat Pi:stä. 1. Vie nauhakaapeli Grove Base Hatin kameran aukon läpi. Varmista, että kaapelin sininen puoli on kohti analogisia portteja, jotka on merkitty **A0**, **A1** jne. - ![Nauhakaapeli kulkee Grove Base Hatin läpi](../../../../../translated_images/fi/grove-base-hat-ribbon-cable.501fed202fcf73b11b2b68f6d246189f7d15d3e4423c572ddee79d77b4632b47.png) + ![Nauhakaapeli kulkee Grove Base Hatin läpi](../../../../../translated_images/fi/grove-base-hat-ribbon-cable.501fed202fcf73b1.webp) 1. Aseta nauhakaapeli Pi:n kameraliitäntään. Vedä jälleen mustaa muoviklipsiä ylös, aseta kaapeli ja työnnä klipsi takaisin paikalleen. Kaapelin sininen puoli tulisi olla kohti USB- ja Ethernet-portteja. - ![Nauhakaapeli liitetty Pi:n kameraliitäntään](../../../../../translated_images/fi/pi-camera-socket-ribbon-cable.a18309920b11800911082ed7aa6fb28e6d9be3a022e4079ff990016cae3fca10.png) + ![Nauhakaapeli liitetty Pi:n kameraliitäntään](../../../../../translated_images/fi/pi-camera-socket-ribbon-cable.a18309920b118009.webp) 1. Kiinnitä Grove Base Hat takaisin paikalleen. @@ -101,7 +101,7 @@ Ohjelmoi laite. Rivi `camera.rotation = 0` asettaa kuvan kierron. Nauhakaapeli tulee kameran alapuolelta, mutta jos kamera on käännetty helpottamaan kohteen suuntaamista, voit muuttaa tätä riviä kierron asteiden mukaan. - ![Kamera roikkuu juomatölkin yläpuolella](../../../../../translated_images/fi/pi-camera-upside-down.5376961ba31459883362124152ad6b823d5ac5fc14e85f317e22903bd681c2b6.png) + ![Kamera roikkuu juomatölkin yläpuolella](../../../../../translated_images/fi/pi-camera-upside-down.5376961ba3145988.webp) Esimerkiksi, jos ripustat nauhakaapelin kameran yläpuolelle, aseta kierto 180 asteeseen: diff --git a/translations/fi/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md b/translations/fi/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md index b7fe5ae1d..9cf93c8ae 100644 --- a/translations/fi/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md +++ b/translations/fi/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md @@ -84,7 +84,7 @@ Custom Vision -palvelulla on Python SDK, jota voit käyttää kuvien luokitteluu Voit nähdä otetun kuvan ja nämä arvot **Predictions**-välilehdellä Custom Vision -palvelussa. - ![Banaani Custom Vision -palvelussa, ennustettu kypsäksi 56,8 % ja raaksi 43,1 %](../../../../../translated_images/fi/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![Banaani Custom Vision -palvelussa, ennustettu kypsäksi 56,8 % ja raaksi 43,1 %](../../../../../translated_images/fi/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 Löydät tämän koodin [code-classify/pi](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/pi) tai [code-classify/virtual-iot-device](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/virtual-iot-device) -kansiosta. diff --git a/translations/fi/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md b/translations/fi/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md index 450353e07..64167625f 100644 --- a/translations/fi/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md +++ b/translations/fi/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md @@ -34,11 +34,11 @@ Lisää kamera CounterFit-sovellukseen. 1. Valitse **Add**-painike luodaksesi kameran. - ![Kameran asetukset](../../../../../translated_images/fi/counterfit-create-camera.a5de97f59c0bd3cbe0416d7e89a3cfe86d19fbae05c641c53a91286412af0a34.png) + ![Kameran asetukset](../../../../../translated_images/fi/counterfit-create-camera.a5de97f59c0bd3cb.webp) Kamera luodaan ja näkyy sensorilistassa. - ![Luotu kamera](../../../../../translated_images/fi/counterfit-camera.001ec52194c8ee5d3f617173da2c79e1df903d10882adc625cbfc493525125d4.png) + ![Luotu kamera](../../../../../translated_images/fi/counterfit-camera.001ec52194c8ee5d.webp) ## Ohjelmoi kamera @@ -103,7 +103,7 @@ Ohjelmoi laite. 1. Määritä kuva, jonka kamera CounterFitissä tallentaa. Voit joko asettaa *Source*-asetuksen *File*-tilaan ja ladata kuvatiedoston, tai asettaa *Source*-asetuksen *WebCam*-tilaan, jolloin kuvat tallennetaan verkkokamerastasi. Varmista, että valitset **Set**-painikkeen kuvan valitsemisen tai verkkokameran valitsemisen jälkeen. - ![CounterFit, jossa tiedosto on asetettu kuvalähteeksi, ja verkkokamera näyttää henkilön, joka pitää banaania verkkokameran esikatselussa](../../../../../translated_images/fi/counterfit-camera-options.eb3bd5150a8e7dffbf24bc5bcaba0cf2cdef95fbe6bbe393695d173817d6b8df.png) + ![CounterFit, jossa tiedosto on asetettu kuvalähteeksi, ja verkkokamera näyttää henkilön, joka pitää banaania verkkokameran esikatselussa](../../../../../translated_images/fi/counterfit-camera-options.eb3bd5150a8e7dff.webp) 1. Kuva tallennetaan ja tallennetaan nimellä `image.jpg` nykyiseen kansioon. Näet tämän tiedoston VS Code -tiedostonhallinnassa. Valitse tiedosto nähdäksesi kuvan. Jos se tarvitsee kiertoa, päivitä rivi `camera.rotation = 0` tarpeen mukaan ja ota uusi kuva. diff --git a/translations/fi/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md b/translations/fi/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md index cfa115c4f..b8b6df03d 100644 --- a/translations/fi/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md +++ b/translations/fi/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md @@ -16,7 +16,7 @@ ArduCam ei sisällä Grove-liitintä, vaan se yhdistetään sekä SPI- että I2C Yhdistä kamera. -![ArduCam-anturi](../../../../../translated_images/fi/arducam.20e4e4cbb268296570b5914e20d6c349fc42ddac9ed4e1b9deba2188204eebae.png) +![ArduCam-anturi](../../../../../translated_images/fi/arducam.20e4e4cbb2682965.webp) 1. ArduCamin pohjassa olevat pinnit täytyy yhdistää Wio Terminalin GPIO-pinneihin. Jotta oikeat pinnit löytyvät helpommin, kiinnitä Wio Terminalin mukana tuleva GPIO-tarralappu pinneihin: @@ -35,7 +35,7 @@ Yhdistä kamera. | SDA | 3 (I2C1_SDA) | I2C-sarjadata | | SCL | 5 (I2C1_SCL) | I2C-sarjakello | - ![Wio Terminal yhdistetty ArduCamiin hyppylangoilla](../../../../../translated_images/fi/arducam-wio-terminal-connections.a4d5a4049bdb5ab800a2877389fc6ecf5e4ff307e6451ff56c517e6786467d0a.png) + ![Wio Terminal yhdistetty ArduCamiin hyppylangoilla](../../../../../translated_images/fi/arducam-wio-terminal-connections.a4d5a4049bdb5ab8.webp) GND- ja VCC-liitännät tarjoavat 5V virtalähteen ArduCamille. Se toimii 5V:lla, toisin kuin Grove-anturit, jotka toimivat 3V:lla. Tämä virta tulee suoraan USB-C-liitännästä, joka syöttää virtaa laitteelle. @@ -456,7 +456,7 @@ Wio Terminal tukee vain enintään 16GB:n microSD-kortteja. Jos sinulla on suure 1. Sammuta microSD-kortti ja poista se painamalla sitä hieman sisään ja vapauttamalla, jolloin se ponnahtaa ulos. Saatat joutua käyttämään ohutta työkalua tähän. Liitä microSD-kortti tietokoneeseesi nähdäksesi kuvat. - ![Kuva banaanista, otettu ArduCamilla](../../../../../translated_images/fi/banana-arducam.be1b32d4267a8194b0fd042362e56faa431da9cd4af172051b37243ea9be0256.jpg) + ![Kuva banaanista, otettu ArduCamilla](../../../../../translated_images/fi/banana-arducam.be1b32d4267a8194.webp) 💁 Kameran valkotasapainon säätämiseen voi kulua muutama kuva. Huomaat tämän kuvien värin perusteella, ensimmäiset kuvat voivat näyttää väriltään poikkeavilta. Voit aina kiertää tämän muuttamalla koodia siten, että `setup`-funktiossa otetaan muutama kuva, jotka jätetään huomiotta. diff --git a/translations/fi/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md b/translations/fi/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md index bc788f311..9dbf9bec4 100644 --- a/translations/fi/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md +++ b/translations/fi/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md @@ -208,7 +208,7 @@ Varmenteet sisältävät julkisia avaimia, eikä niitä tarvitse pitää salassa Näet otetun kuvan ja nämä arvot **Predictions**-välilehdellä Custom Visionissa. - ![Banaani Custom Visionissa ennustettu kypsäksi 56.8 % ja raaksi 43.1 %](../../../../../translated_images/fi/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![Banaani Custom Visionissa ennustettu kypsäksi 56.8 % ja raaksi 43.1 %](../../../../../translated_images/fi/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 Löydät tämän koodin [code-classify/wio-terminal](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/wio-terminal)-kansiosta. diff --git a/translations/fi/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md b/translations/fi/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md index de604c2ec..68b3b817e 100644 --- a/translations/fi/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md +++ b/translations/fi/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md @@ -1,6 +1,6 @@ # Suorita hedelmätunnistin reunalaitteella -![Tämän oppitunnin yleiskuvaus sketchnotena](../../../../../translated_images/fi/lesson-17.bc333c3c35ba8e42cce666cfffa82b915f787f455bd94e006aea2b6f2722421a.jpg) +![Tämän oppitunnin yleiskuvaus sketchnotena](../../../../../translated_images/fi/lesson-17.bc333c3c35ba8e42.webp) > Sketchnote: [Nitya Narasimhan](https://github.com/nitya). Klikkaa kuvaa nähdäksesi suuremman version. @@ -33,11 +33,11 @@ Tässä oppitunnissa käsitellään: Reunalaskenta tarkoittaa IoT-datan käsittelyä mahdollisimman lähellä sen syntypaikkaa. Sen sijaan, että käsittely tapahtuisi pilvessä, se siirretään pilven reunalle – sisäiseen verkkoosi. -![Arkkitehtuurikaavio, jossa internetpalvelut pilvessä ja IoT-laitteet paikallisessa verkossa](../../../../../translated_images/fi/cloud-without-edge.b4da641f6022c95ed6b91fde8b5323abd2f94e0d52073ad54172ae8f5dac90e9.png) +![Arkkitehtuurikaavio, jossa internetpalvelut pilvessä ja IoT-laitteet paikallisessa verkossa](../../../../../translated_images/fi/cloud-without-edge.b4da641f6022c95e.webp) Tähän mennessä oppitunneilla laitteet ovat keränneet dataa ja lähettäneet sen pilveen analysoitavaksi, suorittaen pilvessä serverittömiä toimintoja tai AI-malleja. -![Arkkitehtuurikaavio, jossa IoT-laitteet paikallisessa verkossa yhdistyvät reunalaitteisiin, ja nämä reunalaitteet yhdistyvät pilveen](../../../../../translated_images/fi/cloud-with-edge.1e26462c62c126fe150bd15a5714ddf0be599f09bacbad08b85be02b76ea1ae1.png) +![Arkkitehtuurikaavio, jossa IoT-laitteet paikallisessa verkossa yhdistyvät reunalaitteisiin, ja nämä reunalaitteet yhdistyvät pilveen](../../../../../translated_images/fi/cloud-with-edge.1e26462c62c126fe.webp) Reunalaskenta siirtää osan pilvipalveluista pois pilvestä ja tietokoneille, jotka toimivat samalla verkolla kuin IoT-laitteet, kommunikoiden pilven kanssa vain tarvittaessa. Esimerkiksi AI-malleja voidaan suorittaa reunalaitteilla hedelmien kypsyyden analysoimiseksi, ja pilveen lähetetään vain analytiikkaa, kuten kypsien ja raakojen hedelmien lukumäärä. @@ -85,7 +85,7 @@ IoT-järjestelmissä haluat usein yhdistää pilvi- ja reunalaskennan, hyödynt ## Azure IoT Edge -![Azure IoT Edge -logo](../../../../../translated_images/fi/azure-iot-edge-logo.c1c076749b5cba2e8755262fadc2f19ca1146b948d76990b1229199ac2292d79.png) +![Azure IoT Edge -logo](../../../../../translated_images/fi/azure-iot-edge-logo.c1c076749b5cba2e.webp) Azure IoT Edge on palvelu, joka voi auttaa siirtämään työkuormia pois pilvestä reunalle. Voit määrittää laitteen reunalaitteeksi ja pilvestä käsin ottaa käyttöön koodia kyseiselle reunalaitteelle. Tämä mahdollistaa pilven ja reunan kyvykkyyksien yhdistämisen. @@ -99,7 +99,7 @@ IoT Edge on sisäänrakennettu IoT Hubiin, joten voit hallita reunalaitteita sam IoT Edge suorittaa koodia *konteista* – itsenäisistä sovelluksista, jotka toimivat erillään muista tietokoneesi sovelluksista. Kun suoritat kontin, se toimii kuin erillinen tietokone tietokoneesi sisällä, omilla ohjelmistoillaan, palveluillaan ja sovelluksillaan. Useimmiten kontit eivät pääse käsiksi mihinkään tietokoneellasi, ellei valitse jakaa esimerkiksi kansiota kontin kanssa. Kontti sitten tarjoaa palveluita avoimen portin kautta, johon voit yhdistää tai altistaa verkollesi. -![Verkkopyyntö ohjataan konttiin](../../../../../translated_images/fi/container-web-browser.4ee81dd4f0d8838ce622b2a0d600b6a4322b5d4fe43159facd87b7b34f84d66a.png) +![Verkkopyyntö ohjataan konttiin](../../../../../translated_images/fi/container-web-browser.4ee81dd4f0d8838c.webp) Esimerkiksi voit olla kontti, jossa verkkosivusto toimii portissa 80, oletus HTTP-portissa, ja voit sitten altistaa sen tietokoneeltasi myös portissa 80. @@ -195,11 +195,11 @@ Kun malli on koulutettu, se täytyy viedä konttina. ## Valmistele kontti käyttöönottoa varten -![Kontit rakennetaan, työnnetään konttirekisteriin ja otetaan käyttöön reunalaitteella IoT Edgen avulla](../../../../../translated_images/fi/container-edge-flow.c246050dd60ceefdb6ace026a4ce5c6aa4112bb5898ae23fbb2ab4be29ae3e1b.png) +![Kontit rakennetaan, työnnetään konttirekisteriin ja otetaan käyttöön reunalaitteella IoT Edgen avulla](../../../../../translated_images/fi/container-edge-flow.c246050dd60ceefd.webp) Kun olet ladannut mallisi, se täytyy rakentaa kontiksi ja työntää konttirekisteriin - verkossa olevaan sijaintiin, jossa voit säilyttää kontteja. IoT Edge voi sitten ladata kontin rekisteristä ja siirtää sen laitteellesi. -![Azure Container Registry -logo](../../../../../translated_images/fi/azure-container-registry-logo.09494206991d4b295025ebff7d4e2900325e527a59184ffbc8464b6ab59654be.png) +![Azure Container Registry -logo](../../../../../translated_images/fi/azure-container-registry-logo.09494206991d4b29.webp) Tässä oppitunnissa käytettävä konttirekisteri on Azure Container Registry. Tämä ei ole ilmainen palvelu, joten säästääksesi rahaa varmista, että [siivoat projektisi](../../../clean-up.md) kun olet valmis. diff --git a/translations/fi/4-manufacturing/lessons/4-trigger-fruit-detector/README.md b/translations/fi/4-manufacturing/lessons/4-trigger-fruit-detector/README.md index ca69fa367..d4d0cd32d 100644 --- a/translations/fi/4-manufacturing/lessons/4-trigger-fruit-detector/README.md +++ b/translations/fi/4-manufacturing/lessons/4-trigger-fruit-detector/README.md @@ -1,6 +1,6 @@ # Käynnistä hedelmien laadunvalvonta sensorista -![Tämän oppitunnin yleiskuvaus sketchnotena](../../../../../translated_images/fi/lesson-18.92c32ed1d354caa5a54baa4032cf0b172d4655e8e326ad5d46c558a0def15365.jpg) +![Tämän oppitunnin yleiskuvaus sketchnotena](../../../../../translated_images/fi/lesson-18.92c32ed1d354caa5.webp) > Sketchnote: [Nitya Narasimhan](https://github.com/nitya). Klikkaa kuvaa nähdäksesi suuremman version. @@ -39,7 +39,7 @@ IoT-sovelluksia voidaan kuvata *asioina* (laitteet), jotka lähettävät dataa, ### Viitearkkitehtuuri IoT-sovelluksille -![Viitearkkitehtuuri IoT-sovelluksille](../../../../../translated_images/fi/iot-reference-architecture.2278b98b55c6d4e89bde18eada3688d893861d43507641804dd2f9d3079cfaa0.png) +![Viitearkkitehtuuri IoT-sovelluksille](../../../../../translated_images/fi/iot-reference-architecture.2278b98b55c6d4e8.webp) Yllä oleva kaavio esittää viitearkkitehtuurin IoT-sovelluksille. @@ -49,7 +49,7 @@ Yllä oleva kaavio esittää viitearkkitehtuurin IoT-sovelluksille. * **Oivallukset** syntyvät palveluttomista sovelluksista tai analytiikasta, joka suoritetaan tallennetulle datalle. * **Toimet** voivat olla komentoja, jotka lähetetään laitteille, tai datan visualisointia, joka mahdollistaa päätöksenteon ihmisille. -![Viitearkkitehtuuri Azure IoT:lle](../../../../../translated_images/fi/iot-reference-architecture-azure.0b8d2161af924cb18ae48a8558a19541cca47f27264851b5b7e56d7b8bb372ac.png) +![Viitearkkitehtuuri Azure IoT:lle](../../../../../translated_images/fi/iot-reference-architecture-azure.0b8d2161af924cb1.webp) Yllä oleva kaavio näyttää joitakin näissä oppitunneissa käsiteltyjä komponentteja ja palveluita sekä niiden yhteydet viitearkkitehtuurissa. @@ -89,7 +89,7 @@ Sinun täytyy rakentaa järjestelmä, jossa hedelmä havaitaan sen saapuessa kul ### Sovelluksen prototyyppi -![Viitearkkitehtuuri hedelmälaadun tarkistukseen](../../../../../translated_images/fi/iot-reference-architecture-fruit-quality.cc705f121c3b6fa71c800d9630935ac34bc08223a04601e35f41d5e9b5dd5207.png) +![Viitearkkitehtuuri hedelmälaadun tarkistukseen](../../../../../translated_images/fi/iot-reference-architecture-fruit-quality.cc705f121c3b6fa7.webp) Yllä oleva kaavio esittää viitearkkitehtuurin tälle prototyyppisovellukselle. @@ -124,7 +124,7 @@ Käy läpi asiaankuuluva opas läheisyysanturin käyttämiseksi IoT-laitteellasi Prototyyppinen hedelmälaadun tarkistin sisältää useita toisiinsa kommunikoivia komponentteja. -![Komponentit kommunikoivat keskenään](../../../../../translated_images/fi/fruit-quality-detector-message-flow.adf2a65da8fd8741ac7af11361574de89adc126785d67606bb4d2ec00467e380.png) +![Komponentit kommunikoivat keskenään](../../../../../translated_images/fi/fruit-quality-detector-message-flow.adf2a65da8fd8741.webp) * Läheisyysanturi mittaa etäisyyttä hedelmään ja lähettää tämän IoT Hubiin. * Kameraa ohjaava komento lähetetään IoT Hubista kameralle. diff --git a/translations/fi/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md b/translations/fi/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md index ef524d18a..2ce35feda 100644 --- a/translations/fi/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md +++ b/translations/fi/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md @@ -20,7 +20,7 @@ Grove Time of Flight -sensori voidaan liittää Raspberry Pi:hin. Yhdistä Time of Flight -sensori. -![Grove Time of Flight -sensori](../../../../../translated_images/fi/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![Grove Time of Flight -sensori](../../../../../translated_images/fi/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. Työnnä Grove-kaapelin toinen pää Time of Flight -sensorin liittimeen. Se menee sisään vain yhdellä tavalla. diff --git a/translations/fi/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md b/translations/fi/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md index c262a1488..e4dbee759 100644 --- a/translations/fi/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md +++ b/translations/fi/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md @@ -36,11 +36,11 @@ Lisää etäisyyssensori CounterFit-sovellukseen. 1. Valitse **Add**-painike luodaksesi etäisyyssensorin. - ![Etäisyyssensorin asetukset](../../../../../translated_images/fi/counterfit-create-distance-sensor.967c9fb98f27888d95920c9784d004c972490eb71f70397fe13bd70a79a879a3.png) + ![Etäisyyssensorin asetukset](../../../../../translated_images/fi/counterfit-create-distance-sensor.967c9fb98f27888d.webp) Etäisyyssensori luodaan ja se näkyy sensorilistassa. - ![Luotu etäisyyssensori](../../../../../translated_images/fi/counterfit-distance-sensor.079eefeeea0b68afc36431ce8fcbe2f09a7e4916ed1cd5cb30e696db53bc18fa.png) + ![Luotu etäisyyssensori](../../../../../translated_images/fi/counterfit-distance-sensor.079eefeeea0b68af.webp) ## Ohjelmoi etäisyyssensori diff --git a/translations/fi/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md b/translations/fi/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md index 12351a64c..983f9d929 100644 --- a/translations/fi/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md +++ b/translations/fi/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md @@ -20,7 +20,7 @@ Grove Time of Flight -sensori voidaan liittää Wio Terminaliin. Yhdistä Time of Flight -sensori. -![Grove Time of Flight -sensori](../../../../../translated_images/fi/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![Grove Time of Flight -sensori](../../../../../translated_images/fi/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. Työnnä Grove-kaapelin toinen pää Time of Flight -sensorin liittimeen. Se menee sisään vain yhdellä tavalla. diff --git a/translations/fi/5-retail/lessons/1-train-stock-detector/README.md b/translations/fi/5-retail/lessons/1-train-stock-detector/README.md index 57bf3bfda..e925eb61a 100644 --- a/translations/fi/5-retail/lessons/1-train-stock-detector/README.md +++ b/translations/fi/5-retail/lessons/1-train-stock-detector/README.md @@ -1,6 +1,6 @@ # Kouluta varastontunnistin -![Tämän oppitunnin yleiskatsaus sketchnotena](../../../../../translated_images/fi/lesson-19.cf6973cecadf080c4b526310620dc4d6f5994c80fb0139c6f378cc9ca2d435cd.jpg) +![Tämän oppitunnin yleiskatsaus sketchnotena](../../../../../translated_images/fi/lesson-19.cf6973cecadf080c.webp) > Sketchnote: [Nitya Narasimhan](https://github.com/nitya). Klikkaa kuvaa nähdäksesi suuremman version. @@ -36,7 +36,7 @@ Objektintunnistus tarkoittaa esineiden havaitsemista kuvista tekoälyn avulla. T Kuvien luokittelu keskittyy koko kuvan luokitteluun - mitkä ovat todennäköisyydet, että koko kuva vastaa kutakin tunnistetta. Saat takaisin todennäköisyydet kaikille mallin koulutuksessa käytetyille tunnisteille. -![Kuvien luokittelu cashewpähkinöistä ja tomaattipyreestä](../../../../../translated_images/fi/image-classifier-cashews-tomato.bc2e16ab8f05cf9ac0f59f73e32efc4227f9a5b601b90b2c60f436694547a965.png) +![Kuvien luokittelu cashewpähkinöistä ja tomaattipyreestä](../../../../../translated_images/fi/image-classifier-cashews-tomato.bc2e16ab8f05cf9a.webp) Yllä olevassa esimerkissä kaksi kuvaa luokitellaan mallilla, joka on koulutettu luokittelemaan cashewpähkinöiden purkkeja tai tomaattipyreen tölkkejä. Ensimmäinen kuva on cashewpähkinöiden purkki, ja kuvien luokittelija antaa seuraavat tulokset: @@ -60,7 +60,7 @@ Kun käytät mallia ennustamiseen, et saa takaisin tunnisteiden ja prosenttien l > 🎓 *Rajauslaatikot* ovat laatikoita esineen ympärillä. -![Objektintunnistus cashewpähkinöistä ja tomaattipyreestä](../../../../../translated_images/fi/object-detector-cashews-tomato.1af7c26686b4db0e709754aeb196f4e73271f54e2085db3bcccb70d4a0d84d97.png) +![Objektintunnistus cashewpähkinöistä ja tomaattipyreestä](../../../../../translated_images/fi/object-detector-cashews-tomato.1af7c26686b4db0e.webp) Yllä olevassa kuvassa on sekä cashewpähkinöiden purkki että kolme tomaattipyreen tölkkiä. Objektintunnistin havaitsi cashewpähkinät ja palautti rajauslaatikon, joka sisältää cashewpähkinät, sekä todennäköisyyden, että rajauslaatikko sisältää esineen, tässä tapauksessa 97.6%. Objektintunnistin havaitsi myös kolme tomaattipyreen tölkkiä ja antoi kolme erillistä rajauslaatikkoa, yhden jokaiselle havaitulle tölkille, ja jokaiselle prosentuaalisen todennäköisyyden, että rajauslaatikko sisältää tomaattipyreen tölkin. @@ -111,7 +111,7 @@ Voit kouluttaa objektintunnistimen Custom Vision -palvelussa samalla tavalla kui Kun luot projektisi, varmista, että käytät aiemmin luomaasi `stock-detector-training`-resurssia. Valitse *Object Detection* -projektityyppi ja *Products on Shelves* -toimialue. - ![Custom Vision -projektin asetukset, joissa nimi on asetettu "fruit-quality-detector", ei kuvausta, resurssi on "fruit-quality-detector-training", projektityyppi on "classification", luokittelutyypit ovat "multi class" ja toimialue on "food"](../../../../../translated_images/fi/custom-vision-create-object-detector-project.32d4fb9aa8e7e7375f8a799bfce517aca970f2cb65e42d4245c5e635c734ab29.png) + ![Custom Vision -projektin asetukset, joissa nimi on asetettu "fruit-quality-detector", ei kuvausta, resurssi on "fruit-quality-detector-training", projektityyppi on "classification", luokittelutyypit ovat "multi class" ja toimialue on "food"](../../../../../translated_images/fi/custom-vision-create-object-detector-project.32d4fb9aa8e7e737.webp) ✅ *Products on Shelves* -toimialue on erityisesti suunniteltu hyllyillä olevien tuotteiden tunnistamiseen. Lue lisää eri toimialueista [Microsoft-dokumentaation toimialueen valinta -osiosta](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/select-domain?WT.mc_id=academic-17441-jabenn#object-detection). @@ -133,11 +133,11 @@ Kouluttaaksesi mallisi tarvitset joukon kuvia, jotka sisältävät tunnistettavi 1. Seuraa [Microsoft-dokumentaation objektintunnistimen luomisen pikaohjeen Lataa ja merkitse kuvat -osaa](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/get-started-build-detector?WT.mc_id=academic-17441-jabenn#upload-and-tag-images) ladataksesi koulutuskuvasi. Luo asiaankuuluvat tunnisteet esineiden tyypin mukaan, joita haluat tunnistaa. - ![Latausikkunat, joissa ladataan kypsien ja raakojen banaanien kuvia](../../../../../translated_images/fi/image-upload-object-detector.77c7892c3093cb59b79018edecd678749a75d71a099bc8a2d2f2f76320f88a5b.png) + ![Latausikkunat, joissa ladataan kypsien ja raakojen banaanien kuvia](../../../../../translated_images/fi/image-upload-object-detector.77c7892c3093cb59.webp) Kun piirrät rajauslaatikoita esineille, pidä ne tiukasti esineen ympärillä. Kuvien merkitseminen voi viedä aikaa, mutta työkalu tunnistaa, mitä se uskoo olevan rajauslaatikot, mikä nopeuttaa prosessia. - ![Tomaattipyreen merkitseminen](../../../../../translated_images/fi/object-detector-tag-tomato-paste.f47c362fb0f0eb582f3bc68cf3855fb43a805106395358d41896a269c210b7b4.png) + ![Tomaattipyreen merkitseminen](../../../../../translated_images/fi/object-detector-tag-tomato-paste.f47c362fb0f0eb58.webp) > 💁 Jos sinulla on yli 15 kuvaa kutakin esinettä varten, voit kouluttaa mallin 15 kuvan jälkeen ja käyttää **Ehdotetut tunnisteet** -ominaisuutta. Tämä käyttää koulutettua mallia tunnistamaan esineet merkitsemättömistä kuvista. Voit sitten vahvistaa havaitut esineet tai hylätä ja piirtää rajauslaatikot uudelleen. Tämä voi säästää *paljon* aikaa. @@ -155,7 +155,7 @@ Kun objektintunnistin on koulutettu, voit testata sitä antamalla sille uusia ku 1. Käytä **Pikatesti**-painiketta ladataksesi testikuvia ja varmistaaksesi, että esineet tunnistetaan. Käytä aiemmin luomiasi testikuvia, älä mitään koulutuksessa käytettyjä kuvia. - ![3 tomaattipyreen tölkkiä havaittu todennäköisyyksillä 38%, 35.5% ja 34.6%](../../../../../translated_images/fi/object-detector-detected-tomato-paste.52656fe87af4c37b4ee540526d63e73ed075da2e54a9a060aa528e0c562fb1b6.png) + ![3 tomaattipyreen tölkkiä havaittu todennäköisyyksillä 38%, 35.5% ja 34.6%](../../../../../translated_images/fi/object-detector-detected-tomato-paste.52656fe87af4c37b.webp) 1. Kokeile kaikkia käytettävissäsi olevia testikuvia ja tarkkaile todennäköisyyksiä. diff --git a/translations/fi/5-retail/lessons/2-check-stock-device/README.md b/translations/fi/5-retail/lessons/2-check-stock-device/README.md index 8e2d2db7a..3ca15c5c2 100644 --- a/translations/fi/5-retail/lessons/2-check-stock-device/README.md +++ b/translations/fi/5-retail/lessons/2-check-stock-device/README.md @@ -1,6 +1,6 @@ # Tarkista varasto IoT-laitteella -![Tämän oppitunnin yleiskuvaus sketchnotena](../../../../../translated_images/fi/lesson-20.0211df9551a8abb300fc8fcf7dc2789468dea2eabe9202273ac077b0ba37f15e.jpg) +![Tämän oppitunnin yleiskuvaus sketchnotena](../../../../../translated_images/fi/lesson-20.0211df9551a8abb3.webp) > Sketchnote: [Nitya Narasimhan](https://github.com/nitya). Klikkaa kuvaa nähdäksesi suuremman version. @@ -62,7 +62,7 @@ Iteroinnit julkaistaan Custom Vision -portaalista. 1. Valitse iteroinnin **Publish**-painike. - ![Julkaisupainike](../../../../../translated_images/fi/custom-vision-object-detector-publish-button.34ee379fc650ccb9856c3868d0003f413b9529f102fc73c37168c98d721cc293.png) + ![Julkaisupainike](../../../../../translated_images/fi/custom-vision-object-detector-publish-button.34ee379fc650ccb9.webp) 1. *Publish Model* -valintaikkunassa aseta *Prediction resource* viime oppitunnissa luomaasi `stock-detector-prediction`-resurssiin. Jätä nimi `Iteration2`:ksi ja valitse **Publish**-painike. @@ -76,7 +76,7 @@ Iteroinnit julkaistaan Custom Vision -portaalista. Kopioi myös *Prediction-Key*-arvo. Tämä on turvallinen avain, joka täytyy välittää mallia kutsuttaessa. Vain sovellukset, jotka välittävät tämän avaimen, voivat käyttää mallia, muut sovellukset hylätään. - ![Ennustuksen API-valintaikkuna, joka näyttää URL:n ja avaimen](../../../../../translated_images/fi/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![Ennustuksen API-valintaikkuna, joka näyttää URL:n ja avaimen](../../../../../translated_images/fi/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ Kun uusi iterointi julkaistaan, sillä on eri nimi. Miten luulet, että IoT-laitteen käyttämä iterointi vaihdetaan? @@ -95,7 +95,7 @@ Kun käytät objektintunnistinta, saat takaisin paitsi havaitut objektit niiden Ennustuksen tulokset **Predictions**-välilehdellä Custom Visionissa sisältävät rajauslaatikot, jotka on piirretty kuvan päälle, joka lähetettiin ennustettavaksi. -![4 tomaattipyreen purkkia hyllyllä, ennustukset 35.8%, 33.5%, 25.7% ja 16.6%](../../../../../translated_images/fi/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) +![4 tomaattipyreen purkkia hyllyllä, ennustukset 35.8%, 33.5%, 25.7% ja 16.6%](../../../../../translated_images/fi/custom-vision-stock-prediction.942266ab1bcca341.webp) Yllä olevassa kuvassa havaittiin 4 tomaattipyreen purkkia. Tuloksissa punainen neliö on lisätty jokaisen havaitun objektin päälle, mikä osoittaa kuvan rajauslaatikon. @@ -103,7 +103,7 @@ Yllä olevassa kuvassa havaittiin 4 tomaattipyreen purkkia. Tuloksissa punainen Rajauslaatikot määritetään neljällä arvolla - yläreuna, vasen reuna, korkeus ja leveys. Nämä arvot ovat asteikolla 0-1, mikä edustaa sijainteja prosentteina kuvan koosta. Alkuperä (0,0-sijainti) on kuvan vasen yläkulma, joten yläreunan arvo on etäisyys yläreunasta, ja rajauslaatikon alareuna on yläreuna plus korkeus. -![Rajauslaatikko tomaattipyreen purkin ympärillä](../../../../../translated_images/fi/bounding-box.1420a7ea0d3d15f71e1ffb5cf4b2271d184fac051f990abc541975168d163684.png) +![Rajauslaatikko tomaattipyreen purkin ympärillä](../../../../../translated_images/fi/bounding-box.1420a7ea0d3d15f7.webp) Yllä oleva kuva on 600 pikseliä leveä ja 800 pikseliä korkea. Rajauslaatikko alkaa 320 pikseliä alaspäin, mikä antaa yläreunan arvoksi 0.4 (800 x 0.4 = 320). Vasemmalta raja alkaa 240 pikseliä sivulle, mikä antaa vasemman reunan arvoksi 0.4 (600 x 0.4 = 240). Rajauslaatikon korkeus on 240 pikseliä, mikä antaa korkeuden arvoksi 0.3 (800 x 0.3 = 240). Rajauslaatikon leveys on 120 pikseliä, mikä antaa leveyden arvoksi 0.2 (600 x 0.2 = 120). @@ -118,7 +118,7 @@ Prosenttiarvojen käyttö asteikolla 0-1 tarkoittaa, että riippumatta kuvan koo Voit käyttää rajauslaatikoita yhdessä todennäköisyyksien kanssa arvioidaksesi, kuinka tarkka havainto on. Esimerkiksi objektintunnistin voi havaita useita objekteja, jotka menevät päällekkäin, esimerkiksi havaitsemalla yhden purkin toisen sisällä. Koodisi voisi tarkistaa rajauslaatikot, ymmärtää, että tämä on mahdotonta, ja jättää huomiotta kaikki objektit, joilla on merkittävä päällekkäisyys muiden objektien kanssa. -![Kaksi rajauslaatikkoa päällekkäin tomaattipyreen purkin ympärillä](../../../../../translated_images/fi/overlap-object-detection.d431e03cae75072a2760430eca7f2c5fdd43045bfd72dadcbf12711f7cd6c2ae.png) +![Kaksi rajauslaatikkoa päällekkäin tomaattipyreen purkin ympärillä](../../../../../translated_images/fi/overlap-object-detection.d431e03cae75072a.webp) Yllä olevassa esimerkissä yksi rajauslaatikko osoittaa ennustetun tomaattipyreen purkin 78.3% todennäköisyydellä. Toinen rajauslaatikko on hieman pienempi ja sisällä ensimmäisessä laatikossa 64.3% todennäköisyydellä. Koodisi voi tarkistaa rajauslaatikot, nähdä niiden olevan täysin päällekkäisiä, ja jättää huomiotta alemman todennäköisyyden, koska ei ole mahdollista, että yksi purkki olisi toisen sisällä. diff --git a/translations/fi/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md b/translations/fi/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md index fb6d4cc95..088d2bbe5 100644 --- a/translations/fi/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md +++ b/translations/fi/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md @@ -67,7 +67,7 @@ Koodi, jota käytit kuvien luokitteluun, on hyvin samanlainen kuin koodi objekti Näet otetun kuvan ja nämä arvot **Predictions**-välilehdellä Custom Visionissa. - ![4 tölkkiä tomaattipyrettä hyllyllä, jossa ennusteet 35,8 %, 33,5 %, 25,7 % ja 16,6 % neljälle tunnistukselle](../../../../../translated_images/fi/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![4 tölkkiä tomaattipyrettä hyllyllä, jossa ennusteet 35,8 %, 33,5 %, 25,7 % ja 16,6 % neljälle tunnistukselle](../../../../../translated_images/fi/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 Löydät tämän koodin [code-detect/pi](../../../../../5-retail/lessons/2-check-stock-device/code-detect/pi) tai [code-detect/virtual-iot-device](../../../../../5-retail/lessons/2-check-stock-device/code-detect/virtual-iot-device) -kansiosta. diff --git a/translations/fi/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md b/translations/fi/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md index cb69b1ba4..f7903c71f 100644 --- a/translations/fi/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md +++ b/translations/fi/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md @@ -95,7 +95,7 @@ Koodi, jota käytit kuvien luokitteluun, on hyvin samanlainen kuin objektien tun Näet otetun kuvan ja nämä arvot **Predictions**-välilehdessä Custom Visionissa. - ![4 tomaattipyreetölkkiä hyllyllä ennusteilla, joissa tunnistusten todennäköisyydet ovat 35.8%, 33.5%, 25.7% ja 16.6%](../../../../../translated_images/fi/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![4 tomaattipyreetölkkiä hyllyllä ennusteilla, joissa tunnistusten todennäköisyydet ovat 35.8%, 33.5%, 25.7% ja 16.6%](../../../../../translated_images/fi/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 Löydät tämän koodin [code-detect/wio-terminal](../../../../../5-retail/lessons/2-check-stock-device/code-detect/wio-terminal) -kansiosta. diff --git a/translations/fi/6-consumer/lessons/1-speech-recognition/README.md b/translations/fi/6-consumer/lessons/1-speech-recognition/README.md index 9721b7915..0beeb2a50 100644 --- a/translations/fi/6-consumer/lessons/1-speech-recognition/README.md +++ b/translations/fi/6-consumer/lessons/1-speech-recognition/README.md @@ -1,6 +1,6 @@ # Tunnista puhe IoT-laitteella -![Tämän oppitunnin yleiskuvaus sketchnotena](../../../../../translated_images/fi/lesson-21.e34de51354d6606fb5ee08d8c89d0222eea0a2a7aaf744a8805ae847c4f69dc4.jpg) +![Tämän oppitunnin yleiskuvaus sketchnotena](../../../../../translated_images/fi/lesson-21.e34de51354d6606f.webp) > Sketchnote: [Nitya Narasimhan](https://github.com/nitya). Klikkaa kuvaa nähdäksesi suuremman version. @@ -51,7 +51,7 @@ Mikrofoneja on monenlaisia: Dynaamiset mikrofonit eivät tarvitse virtaa toimiakseen, sillä sähköinen signaali syntyy täysin mikrofonin toiminnasta. - ![Patti Smith laulamassa Shure SM58 (dynaaminen kardioidimikrofoni) -mikrofoniin](../../../../../translated_images/fi/dynamic-mic.8babac890a2d80dfb0874b5bf37d4b851fe2aeb9da6fd72945746176978bf3bb.jpg) + ![Patti Smith laulamassa Shure SM58 (dynaaminen kardioidimikrofoni) -mikrofoniin](../../../../../translated_images/fi/dynamic-mic.8babac890a2d80df.webp) * Nauhamikrofonit - Nauhamikrofonit ovat samankaltaisia kuin dynaamiset mikrofonit, mutta niissä on metallinauha kalvon sijasta. Tämä nauha liikkuu magneettikentässä ja tuottaa sähkövirran. Kuten dynaamiset mikrofonit, nauhamikrofonit eivät tarvitse virtaa toimiakseen. @@ -59,11 +59,11 @@ Mikrofoneja on monenlaisia: * Kondensaattorimikrofonit - Kondensaattorimikrofoneissa on ohut metallikalvo ja kiinteä metallinen takalevy. Molempiin johdetaan sähköä, ja kun kalvo värähtelee, staattinen varaus levyjen välillä muuttuu ja tuottaa signaalin. Kondensaattorimikrofonit tarvitsevat virtaa toimiakseen – tätä kutsutaan *phantom-virraksi*. - ![C451B pienikalvoinen kondensaattorimikrofoni AKG Acousticsilta](../../../../../translated_images/fi/condenser-mic.6f6ed5b76ca19e0ec3fd0c544601542d4479a6cb7565db336de49fbbf69f623e.jpg) + ![C451B pienikalvoinen kondensaattorimikrofoni AKG Acousticsilta](../../../../../translated_images/fi/condenser-mic.6f6ed5b76ca19e0e.webp) * MEMS - Mikroelektromekaaniset järjestelmät (MEMS) ovat sirulle rakennettuja mikrofoneja. Niissä on paineherkkä kalvo, joka on kaiverrettu piisiruun, ja ne toimivat samankaltaisesti kuin kondensaattorimikrofonit. Nämä mikrofonit voivat olla erittäin pieniä ja integroitavissa piireihin. - ![MEMS-mikrofoni piirilevyllä](../../../../../translated_images/fi/mems-microphone.80574019e1f5e4d9ee72fed720ecd25a39fc2969c91355d17ebb24ba4159e4c4.png) + ![MEMS-mikrofoni piirilevyllä](../../../../../translated_images/fi/mems-microphone.80574019e1f5e4d9.webp) Yllä olevassa kuvassa siru, jossa lukee **LEFT**, on MEMS-mikrofoni, jossa on alle millimetrin levyinen kalvo. @@ -159,7 +159,7 @@ Välttääkseen herätyssanamallin kouluttamisen ja käytön monimutkaisuuden, t ## Muunna puhe tekstiksi -![Puhepalveluiden logo](../../../../../translated_images/fi/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![Puhepalveluiden logo](../../../../../translated_images/fi/azure-speech-logo.a1f08c4befb0159f.webp) Aivan kuten kuvien luokittelussa aiemmassa projektissa, on olemassa valmiita tekoälypalveluita, jotka voivat ottaa puheen äänitiedostona ja muuntaa sen tekstiksi. Yksi tällainen palvelu on Puhepalvelu, joka on osa Cognitive Services -palveluita, valmiita tekoälypalveluita, joita voit käyttää sovelluksissasi. diff --git a/translations/fi/6-consumer/lessons/1-speech-recognition/pi-audio.md b/translations/fi/6-consumer/lessons/1-speech-recognition/pi-audio.md index 165134263..ea6b1274b 100644 --- a/translations/fi/6-consumer/lessons/1-speech-recognition/pi-audio.md +++ b/translations/fi/6-consumer/lessons/1-speech-recognition/pi-audio.md @@ -16,13 +16,13 @@ Painike voidaan liittää Grove Base HAT:iin. #### Tehtävä - liitä painike -![Grove-painike](../../../../../translated_images/fi/grove-button.a70cfbb809a8563681003250cf5b06d68cdcc68624f9e2f493d5a534ae2da1e5.png) +![Grove-painike](../../../../../translated_images/fi/grove-button.a70cfbb809a85636.webp) 1. Työnnä Grove-kaapelin toinen pää painikemoduulin liittimeen. Se menee sisään vain yhdellä tavalla. 1. Kun Raspberry Pi on sammutettu, liitä Grove-kaapelin toinen pää digitaaliseen liittimeen, joka on merkitty **D5** Grove Base HAT:ssa, joka on kiinnitetty Pi:hin. Tämä liitin on toinen vasemmalta GPIO-pinnien vieressä olevassa rivissä. -![Grove-painike liitettynä liittimeen D5](../../../../../translated_images/fi/pi-button.c7a1a4f55943341ce1baf1057658e9a205804d4131d258e820c93f951df0abf3.png) +![Grove-painike liitettynä liittimeen D5](../../../../../translated_images/fi/pi-button.c7a1a4f55943341c.webp) ## Tallenna ääntä diff --git a/translations/fi/6-consumer/lessons/1-speech-recognition/pi-microphone.md b/translations/fi/6-consumer/lessons/1-speech-recognition/pi-microphone.md index 4867ee98c..9a3c47c8f 100644 --- a/translations/fi/6-consumer/lessons/1-speech-recognition/pi-microphone.md +++ b/translations/fi/6-consumer/lessons/1-speech-recognition/pi-microphone.md @@ -34,7 +34,7 @@ Mikrofoni ja kaiuttimet täytyy liittää ja määrittää. 1. Jos käytät ReSpeaker 2-Mics Pi HAT:ia, voit poistaa Grove-pohjahatun ja asentaa ReSpeaker-hatun sen tilalle. - ![Raspberry Pi, jossa on ReSpeaker-hattu](../../../../../translated_images/fi/pi-respeaker-hat.f00fabe7dd039a93e2e0aa0fc946c9af0c6a9eb17c32fa1ca097fb4e384f69f0.png) + ![Raspberry Pi, jossa on ReSpeaker-hattu](../../../../../translated_images/fi/pi-respeaker-hat.f00fabe7dd039a93.webp) Tarvitset Grove-painikkeen myöhemmin tässä oppitunnissa, mutta sellainen on sisäänrakennettuna tässä hatussa, joten Grove-pohjahattua ei tarvita. diff --git a/translations/fi/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md b/translations/fi/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md index d7c78815d..0c6a13eed 100644 --- a/translations/fi/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md +++ b/translations/fi/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md @@ -10,7 +10,7 @@ Sisäänrakennettu mikrofoni tallentaa analogisen signaalin, joka muunnetaan dig ✅ Lue lisää DMA:sta [Wikipedia-artikkelista suorasta muistin pääsystä](https://wikipedia.org/wiki/Direct_memory_access). -![Ääni mikrofonista menee ADC:n kautta DMAC:lle. Tämä kirjoittaa yhteen puskuriin. Kun tämä puskuri on täynnä, se käsitellään ja DMAC kirjoittaa toiseen puskuriin](../../../../../translated_images/fi/dmac-adc-buffers.4509aee49145c90bc2e1be472b8ed2ddfcb2b6a81ad3e559114aca55f5fff759.png) +![Ääni mikrofonista menee ADC:n kautta DMAC:lle. Tämä kirjoittaa yhteen puskuriin. Kun tämä puskuri on täynnä, se käsitellään ja DMAC kirjoittaa toiseen puskuriin](../../../../../translated_images/fi/dmac-adc-buffers.4509aee49145c90b.webp) DMAC voi tallentaa ääntä ADC:ltä kiintein välein, esimerkiksi 16 000 kertaa sekunnissa 16 kHz:n ääntä varten. Se voi kirjoittaa nämä tallennetut tiedot ennalta varattuun muistipuskuriin, ja kun tämä on täynnä, se ilmoittaa koodillesi, että puskuri on valmis käsiteltäväksi. Tämän muistin käyttö voi viivästyttää äänen tallennusta, mutta voit asettaa useita puskureita. DMAC kirjoittaa puskuriin 1, ja kun se on täynnä, se ilmoittaa koodillesi käsitellä puskuri 1, samalla kun DMAC kirjoittaa puskuriin 2. Kun puskuri 2 on täynnä, se ilmoittaa koodillesi ja palaa kirjoittamaan puskuriin 1. Näin kauan kuin käsittelet jokaisen puskurin nopeammin kuin sen täyttymiseen kuluva aika, et menetä mitään tietoja. diff --git a/translations/fi/6-consumer/lessons/2-language-understanding/README.md b/translations/fi/6-consumer/lessons/2-language-understanding/README.md index 67c91ae4a..9e58f7843 100644 --- a/translations/fi/6-consumer/lessons/2-language-understanding/README.md +++ b/translations/fi/6-consumer/lessons/2-language-understanding/README.md @@ -1,6 +1,6 @@ # Ymmärrä kieli -![Tämän oppitunnin yhteenveto sketchnotena](../../../../../translated_images/fi/lesson-22.6148ea28500d9e00c396aaa2649935fb6641362c8f03d8e5e90a676977ab01dd.jpg) +![Tämän oppitunnin yhteenveto sketchnotena](../../../../../translated_images/fi/lesson-22.6148ea28500d9e00.webp) > Sketchnote: [Nitya Narasimhan](https://github.com/nitya). Klikkaa kuvaa nähdäksesi suuremman version. @@ -46,7 +46,7 @@ Kielentunnistusmallit ovat tekoälymalleja, jotka on koulutettu poimimaan tietty ## Kielentunnistusmallin luominen -![LUIS-logo](../../../../../translated_images/fi/luis-logo.5cb4f3e88c020ee6df4f614e8831f4a4b6809a7247bf52085fb48d629ef9be52.png) +![LUIS-logo](../../../../../translated_images/fi/luis-logo.5cb4f3e88c020ee6.webp) Voit luoda kielentunnistusmalleja LUIS-palvelulla, joka on Microsoftin kielentunnistuspalvelu ja osa Cognitive Services -palveluita. @@ -169,7 +169,7 @@ Voit löytää ohjeet LUIS-portaalin käyttämiseen [Microsoft Docsin LUIS-porta 1. Kun syötät jokaisen esimerkin, LUIS alkaa tunnistaa entiteettejä ja alleviivaa ja merkitsee ne. - ![Esimerkit, joissa numerot ja ajan yksiköt alleviivattu LUIS:n toimesta](../../../../../translated_images/fi/luis-intent-examples.25716580b2d2723cf1bafdf277d015c7f046d8cfa20f27bddf3a0873ec45fab7.png) + ![Esimerkit, joissa numerot ja ajan yksiköt alleviivattu LUIS:n toimesta](../../../../../translated_images/fi/luis-intent-examples.25716580b2d2723c.webp) ### Tehtävä - kouluta ja testaa malli diff --git a/translations/fi/6-consumer/lessons/3-spoken-feedback/README.md b/translations/fi/6-consumer/lessons/3-spoken-feedback/README.md index ff39b5c2f..4f084fc18 100644 --- a/translations/fi/6-consumer/lessons/3-spoken-feedback/README.md +++ b/translations/fi/6-consumer/lessons/3-spoken-feedback/README.md @@ -1,6 +1,6 @@ # Aseta ajastin ja anna puhepalautetta -![Tämän oppitunnin luonnoskuva](../../../../../translated_images/fi/lesson-23.f38483e1d4df4828990d3f02d60e46c978b075d384ae7cb4f7bab738e107c850.jpg) +![Tämän oppitunnin luonnoskuva](../../../../../translated_images/fi/lesson-23.f38483e1d4df4828.webp) > Luonnoskuva: [Nitya Narasimhan](https://github.com/nitya). Klikkaa kuvaa nähdäksesi suuremman version. diff --git a/translations/fi/6-consumer/lessons/4-multiple-language-support/README.md b/translations/fi/6-consumer/lessons/4-multiple-language-support/README.md index 20d2d8544..817e44092 100644 --- a/translations/fi/6-consumer/lessons/4-multiple-language-support/README.md +++ b/translations/fi/6-consumer/lessons/4-multiple-language-support/README.md @@ -1,6 +1,6 @@ # Tuen lisääminen useille kielille -![Tämän oppitunnin sketchnote-yhteenveto](../../../../../translated_images/fi/lesson-24.4246968ed058510ab275052e87ef9aa89c7b2f938915d103c605c04dc6cd5bb7.jpg) +![Tämän oppitunnin sketchnote-yhteenveto](../../../../../translated_images/fi/lesson-24.4246968ed058510a.webp) > Sketchnote: [Nitya Narasimhan](https://github.com/nitya). Klikkaa kuvaa nähdäksesi suuremman version. @@ -74,7 +74,7 @@ On olemassa useita tekoälypalveluita, joita voit käyttää sovelluksissasi puh ### Cognitive Services -puhepalvelu -![Puhepalvelun logo](../../../../../translated_images/fi/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![Puhepalvelun logo](../../../../../translated_images/fi/azure-speech-logo.a1f08c4befb0159f.webp) Puhepalvelu, jota olet käyttänyt viimeisissä oppitunneissa, sisältää käännöstoimintoja puheen tunnistamiseen. Kun tunnistat puhetta, voit pyytää puheen tekstiversion paitsi samalla kielellä myös muilla kielillä. @@ -82,7 +82,7 @@ Puhepalvelu, jota olet käyttänyt viimeisissä oppitunneissa, sisältää kää ### Cognitive Services -kääntäjäpalvelu -![Kääntäjäpalvelun logo](../../../../../translated_images/fi/azure-translator-logo.c6ed3a4a433edfd2f11577eca105412c50b8396b194cbbd730723dd1d0793bcd.png) +![Kääntäjäpalvelun logo](../../../../../translated_images/fi/azure-translator-logo.c6ed3a4a433edfd2.webp) Kääntäjäpalvelu on omistettu käännöspalvelu, joka voi kääntää tekstiä yhdeltä kieleltä yhdelle tai useammalle kohdekielelle. Kääntämisen lisäksi se tukee monia lisäominaisuuksia, kuten kirosanojen peittämistä. Se mahdollistaa myös tietyn käännöksen määrittämisen tietylle sanalle tai lauseelle, jotta voit hallita termejä, joita ei haluta kääntää, tai käyttää tiettyä tunnettua käännöstä. diff --git a/translations/fi/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md b/translations/fi/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md index ec8d672fb..93dc88a98 100644 --- a/translations/fi/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md +++ b/translations/fi/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md @@ -25,7 +25,7 @@ Puhepalvelun REST API ei tue suoria käännöksiä, mutta voit käyttää Transl > > Esimerkiksi, jos koulutat LUIS:n englanniksi mutta haluat käyttää ranskaa käyttäjän kielenä, voit kääntää lauseita kuten "set a 2 minute and 27 second timer" englannista ranskaksi Bing Translaten avulla ja käyttää **Kuuntele käännös** -painiketta puhuaksesi käännöksen mikrofoniin. > - > ![Kuuntele käännös -painike Bing Translatessa](../../../../../translated_images/fi/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Kuuntele käännös -painike Bing Translatessa](../../../../../translated_images/fi/bing-translate.348aa796d6efe2a9.webp) 1. Lisää käännöspalvelun API-avain `speech_api_key`-muuttujan alle: diff --git a/translations/fi/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md b/translations/fi/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md index 145d1313d..1c19f6655 100644 --- a/translations/fi/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md +++ b/translations/fi/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md @@ -37,7 +37,7 @@ Puhepalvelu voi ottaa puheen ja muuntaa sen tekstiksi samalla kielellä, mutta m > > Esimerkiksi, jos koulutat LUIS:n englanniksi mutta haluat käyttää ranskaa käyttäjän kielenä, voit kääntää lauseita kuten "set a 2 minute and 27 second timer" englannista ranskaksi Bing Translaten avulla ja käyttää **Kuuntele käännös**-painiketta puhuaksesi käännöksen mikrofoniin. > - > ![Kuuntele käännös -painike Bing Translatessa](../../../../../translated_images/fi/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Kuuntele käännös -painike Bing Translatessa](../../../../../translated_images/fi/bing-translate.348aa796d6efe2a9.webp) 1. Korvaa `recognizer_config` ja `recognizer`-määrittelyt seuraavilla: diff --git a/translations/fi/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md b/translations/fi/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md index f800b8c5c..8aede2e71 100644 --- a/translations/fi/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md +++ b/translations/fi/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md @@ -105,7 +105,7 @@ Puhepalvelun REST API ei tue suoria käännöksiä, mutta voit käyttää Transl > > Esimerkiksi, jos koulutat LUIS:n englanniksi, mutta haluat käyttää ranskaa käyttäjän kielenä, voit kääntää lauseita kuten "set a 2 minute and 27 second timer" englannista ranskaksi Bing Translaten avulla ja käyttää **Kuuntele käännös**-painiketta puhuaksesi käännöksen mikrofoniin. > - > ![Kuuntele käännös -painike Bing Translatessa](../../../../../translated_images/fi/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Kuuntele käännös -painike Bing Translatessa](../../../../../translated_images/fi/bing-translate.348aa796d6efe2a9.webp) 1. Lisää käännöspalvelun API-avain ja sijainti `SPEECH_LOCATION`-kohdan alle: diff --git a/translations/fi/README.md b/translations/fi/README.md index ce862a56f..c359988dd 100644 --- a/translations/fi/README.md +++ b/translations/fi/README.md @@ -8,167 +8,179 @@ [![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/) -### Liity Azure AI Foundry -yhteisöön +### Liity Azure AI Foundry -yhteisöön -Jos jumitut tai sinulla on kysyttävää tekoälysovellusten rakentamisesta. Liity muiden oppijoiden ja kokeneiden kehittäjien keskusteluihin MCP:stä. Se on kannustava yhteisö, jossa kysymykset ovat tervetulleita ja tieto jaetaan vapaasti. +Jos jumitut paikoillesi tai sinulla on kysyttävää tekoälysovellusten rakentamisesta. Liity muiden oppijoiden ja kokeneiden kehittäjien keskusteluihin MCP:stä. Se on kannustava yhteisö, jossa kysymykset ovat tervetulleita ja tieto jaetaan vapaasti. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Jos sinulla on tuotepalautetta tai virheitä rakentamisen aikana, käy: +Jos sinulla on palautetta tuotteesta tai virheitä rakentaessasi, käy: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -Seuraa näitä ohjeita päästäksesi alkuun käyttämällä näitä resursseja: -1. **Forkkaa arkisto**: Klikkaa [![GitHub forks](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) -2. **Kloonaa arkisto**: `git clone https://github.com/microsoft/IoT-For-Beginners.git` +Seuraa näitä ohjeita aloittaaksesi näiden resurssien käytön: +1. **Tee repositoriosta haarukka**: Klikkaa [![GitHub forks](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) +2. **Kloonaa repositorio**: `git clone https://github.com/microsoft/IoT-For-Beginners.git` 3. [**Liity Microsoft Foundry Discordiin ja tapaa asiantuntijoita ja muita kehittäjiä**](https://discord.com/invite/ByRwuEEgH4) ### 🌐 Monikielinen tuki -#### Tuettu GitHub Actionin kautta (automaattinen & aina ajan tasalla) +#### Tuettu GitHub Actionin kautta (Automaattinen ja aina ajan tasalla) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](./README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Arabia](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgaria](../bg/README.md) | [Burma (Myanmar)](../my/README.md) | [Kiinan yksinkertaistettu](../zh-CN/README.md) | [Kiinan perinteinen, Hong Kong](../zh-HK/README.md) | [Kiinan perinteinen, Macao](../zh-MO/README.md) | [Kiinan perinteinen, Taiwan](../zh-TW/README.md) | [Kroatia](../hr/README.md) | [Tšekki](../cs/README.md) | [Tanska](../da/README.md) | [Hollanti](../nl/README.md) | [Viro](../et/README.md) | [Suomi](./README.md) | [Ranska](../fr/README.md) | [Saksa](../de/README.md) | [Kreikka](../el/README.md) | [Heprea](../he/README.md) | [Hindi](../hi/README.md) | [Unkari](../hu/README.md) | [Indonesia](../id/README.md) | [Italia](../it/README.md) | [Japani](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korea](../ko/README.md) | [Liettua](../lt/README.md) | [Malesia](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian pidgin](../pcm/README.md) | [Norja](../no/README.md) | [Persia (Farsi)](../fa/README.md) | [Puola](../pl/README.md) | [Portugali (Brasilia)](../pt-BR/README.md) | [Portugali (Portugali)](../pt-PT/README.md) | [Pendžabi (Gurmukhi)](../pa/README.md) | [Romania](../ro/README.md) | [Venäjä](../ru/README.md) | [Serbia (kyrillinen)](../sr/README.md) | [Slovakki](../sk/README.md) | [Sloveeni](../sl/README.md) | [Espanja](../es/README.md) | [Swahili](../sw/README.md) | [Ruotsi](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamili](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkki](../tr/README.md) | [Ukraina](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnam](../vi/README.md) > **Haluatko mieluummin kloonata paikallisesti?** - -> Tämä arkisto sisältää yli 50 käännöstä, mikä kasvattaa huomattavasti latauskokoa. Kloonaa ilman käännöksiä käyttämällä sparse checkoutia: +> +> Tämä repositorio sisältää yli 50 kielen käännöksiä, mikä kasvattavat merkittävästi latauskokoa. Jos haluat kloonata ilman käännöksiä, käytä sparse checkout -toimintoa: +> +> **Bash / macOS / Linux:** > ```bash > git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git > cd IoT-For-Beginners > git sparse-checkout set --no-cone '/*' '!translations' '!translated_images' > ``` -> Tämä antaa sinulle kaiken tarvittavan kurssin suorittamiseen huomattavasti nopeammalla latauksella. +> +> **CMD (Windows):** +> ```cmd +> git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git +> cd IoT-For-Beginners +> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" +> ``` +> +> Tämä antaa sinulle kaiken tarvittavan kurssin suorittamiseen nopeammalla latauksella. -# IoT aloittelijoille – Oppimateriaali +# IoT aloittelijoille - Opetussuunnitelma -Microsoftin Azure Cloud Advocates tarjoaa 12 viikon, 24 oppitunnin oppimateriaalin, joka käsittelee IoT:n perusteita. Jokainen oppitunti sisältää ennakko- ja jälkitestit, kirjalliset ohjeet oppitunnin suorittamiseen, ratkaisun, tehtävän ja muuta. Projektipohjainen opetusmenetelmämme mahdollistaa oppimisen samalla, kun rakennat, mikä on todistettu tapa saada uudet taidot pysymään. +Microsoftin Azure Cloud Advocates tarjoaa 12 viikon, 24 oppitunnin opetussuunnitelman, joka käsittelee IoT:n perusteita. Jokainen oppitunti sisältää ennen ja jälkeen pidettävät tietokilpailut, kirjalliset ohjeet oppitunnin suorittamiseen, ratkaisun, tehtävän ja muuta. Projektipohjainen opetustapamme mahdollistaa oppimisen käytännössä, mikä on todistettu tapa uuden taidon omaksumiseen. -Projektit kattavat ruoan matkan pellolta pöytään. Tämä sisältää maatalouden, logistiikan, valmistuksen, vähittäiskaupan ja kuluttajan – kaikki suosittuja IoT-laitteiden käyttöalueita. +Projektit kattavat ruoan matkan tilalta pöytään. Tämä sisältää maanviljelyn, logistiikan, valmistuksen, vähittäiskaupan ja kuluttajan vaiheet - kaikki suosittuja IoT-laitteiden teollisuudenaloja. -![Kurssin tiekartta, jossa on 24 oppituntia johdannosta, maataloudesta, kuljetuksesta, prosessoinnista, vähittäiskaupasta ja ruoanlaitosta](../../translated_images/fi/Roadmap.bb1dec285dda0eda.webp) +![Kurssin tiekartta, joka näyttää 24 oppituntia sisältäen johdannon, viljelyn, kuljetuksen, jalostuksen, vähittäiskaupan ja ruoanlaiton](../../translated_images/fi/Roadmap.bb1dec285dda0eda.webp) -> Sketchnote [Nitya Narasimhanilta](https://github.com/nitya). Klikkaa kuvaa nähdäksesi isomman version. +> Kuvapiirros [Nitya Narasimhanilta](https://github.com/nitya). Klikkaa kuvaa saadaksesi isomman version. -**Lämmin kiitos kirjoittajillemme [Jen Fox](https://github.com/jenfoxbot), [Jen Looper](https://github.com/jlooper), [Jim Bennett](https://github.com/jimbobbennett) sekä sketchnote-taiteilijallemme [Nitya Narasimhan](https://github.com/nitya).** +**Lämpimät kiitokset kirjoittajillemme [Jen Fox](https://github.com/jenfoxbot), [Jen Looper](https://github.com/jlooper), [Jim Bennett](https://github.com/jimbobbennett) ja kuvapiirtäjällemme [Nitya Narasimhan](https://github.com/nitya).** -**Kiitokset myös tiimillemme [Microsoft Learn Student Ambassadors](https://studentambassadors.microsoft.com?WT.mc_id=academic-17441-jabenn), jotka ovat tarkistaneet ja kääntäneet tämän oppimateriaalin – [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) ja [Zina Kamel](https://www.linkedin.com/in/zina-kamel/).** +**Kiitokset myös tiimillemme [Microsoft Learn Student Ambassadors](https://studentambassadors.microsoft.com?WT.mc_id=academic-17441-jabenn), jotka ovat tarkistaneet ja kääntäneet tätä opetussuunnitelmaa — [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) ja [Zina Kamel](https://www.linkedin.com/in/zina-kamel/).** -Tapahtukaa tiimi! +Tavataan tiimi! -[![Mainosvideo](../../images/IOT.gif)](https://youtu.be/-wippUJRi5k) +[![Promo video](../../images/IOT.gif)](https://youtu.be/-wippUJRi5k) -**Gif tekijä** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) +**Gif:** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Klikkaa yllä olevaa kuvaa nähdäksesi projektista videon! +> 🎥 Klikkaa yllä olevaa kuvaa nähdäksesi videon projektista! -> **Opettajat**, olemme [sisällyttäneet ehdotuksia](for-teachers.md) tämän oppimateriaalin käyttöön. Jos haluat luoda omia oppituntejasi, olemme myös lisänneet [oppituntipohjan](lesson-template/README.md). +> **Opettajat**, olemme [sisällyttäneet joitakin ehdotuksia](for-teachers.md) siitä, miten käyttää tätä opetussuunnitelmaa. Jos haluat luoda omia oppitunteja, olemme myös lisänneet [oppituntipohjan](lesson-template/README.md). -> **Opiskelijat** (https://aka.ms/student-page), käyttääkseen tätä oppimateriaalia itsenäisesti, tee koko arkistosta fork ja suorita tehtävät itsenäisesti, aloittaen ennakkotestillä, lukemalla luento ja suorittamalla loput aktiviteeteista. Pyri luomaan projektit ymmärtämällä oppitunnit sen sijaan, että kopioisit ratkaisukoodin; kuitenkin koodi on saatavilla kunkin projektisuuntautuneen oppitunnin /solutions-kansiossa. Toinen idea voisi olla muodostaa opiskeluryhmä ystävien kanssa ja käydä sisältö yhdessä läpi. Lisäopiskelua varten suosittelemme [Microsoft Learnia](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn). +> **[Opiskelijat](https://aka.ms/student-page)**, käyttääksesi tätä opetussuunnitelmaa itsenäisesti, haarukoi koko repositorio ja tee harjoitukset itse, aloittaen ennen luentoa pidettävällä tietokilpailulla, sitten lukemalla luento ja tekemällä loput tehtävistä. Yritä luoda projektit ymmärtämällä oppitunnit sen sijaan, että kopioisit ratkaisukoodin; kyseinen koodi on kuitenkin saatavilla /solutions-kansioissa jokaisessa projektilähtöisessä oppitunnissa. Toinen idea olisi muodostaa opiskeluryhmä ystävien kanssa ja käydä sisältö läpi yhdessä. Lisäopiskelua varten suosittelemme [Microsoft Learnia](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn). -Katso tämän kurssin videoesittely: +Katso tämä video saadaksesi yleiskatsauksen kurssiin: -[![Mainosvideo](https://img.youtube.com/vi/bccEMm8gRuc/0.jpg)](https://youtube.com/watch?v=bccEMm8gRuc "Mainosvideo") +[![Promo video](https://img.youtube.com/vi/bccEMm8gRuc/0.jpg)](https://youtube.com/watch?v=bccEMm8gRuc "Promo video") -> 🎥 Klikkaa yllä olevaa kuvaa nähdäksesi projektista videon! +> 🎥 Klikkaa yllä olevaa kuvaa nähdäksesi videon projektista! -## Opetusperiaatteet +## Pedagogiikka -Olemme valinneet kaksi pedagogista periaatetta rakennettaessa tätä oppimateriaalia: varmistaa että se on projektipohjainen ja että siinä on usein testejä. Sarjan lopussa opiskelijat ovat rakentaneet kasvien seuranta- ja kastelujärjestelmän, ajoneuvoseurannan, älytehdas-asetuksen ruoan tarkkailua ja tarkistusta varten sekä ääniohjatun ruoanlaittoajastimen. He oppivat myös esineiden internetin perusteet, mukaan lukien laitekoodin kirjoittamisen, pilveen yhdistämisen, telemetrian analysoinnin ja tekoälyn ajamisen reunassa. +Olemme valinneet kaksi pedagogista periaatetta tämän opetussuunnitelman rakentamisessa: varmistaa, että se on projektipohjainen ja että siinä on usein tietokilpailuja. Sarjan lopussa opiskelijat ovat rakentaneet kasvien seuranta- ja kastelujärjestelmän, ajoneuvon seurannan, älytehtaan elintarvikkeiden seurantaan ja tarkastukseen sekä ääniohjatun ruoanlaittoaikakellon, ja he ovat oppineet esineiden internetin perusteet, mukaan lukien laitteen koodin kirjoittamisen, pilvipalveluun yhdistämisen, telemetrian analysoinnin ja tekoälyn suorittamisen reunalaitteilla. -Varmistamalla että sisältö vastaa projekteja, prosessi tehdään opiskelijoille kiinnostavammaksi ja käsitteiden omaksuminen tehostuu. +Sisällön sovittaminen projekteihin tekee prosessista opiskelijoille kiinnostavamman ja parantaa käsitteiden muistamista. -Lisäksi vähäriskinen koe ennen oppituntia asettaa opiskelijan aikeen oppia aiheesta, ja toinen koe oppitunnin jälkeen varmistaa edistyneemmän omaksumisen. Tämä oppimateriaali on suunniteltu olemaan joustava ja hauska ja sen voi suorittaa kokonaan tai osittain. Projektit alkavat pieninä ja kasvavat monimutkaisuudeltaan loppua kohden 12 viikon aikana. +Lisäksi kevyt tietokilpailu ennen tuntia ohjaa opiskelijan käyttämään aikomuksensa uuden aiheen oppimiseen, ja toinen tietokilpailu tunnin jälkeen varmistaa asian paremman muistamisen. Tämä opetussuunnitelma on suunniteltu joustavaksi ja hauskaksi, sen voi suorittaa kokonaan tai osittain. Projektit alkavat pieninä ja monimutkaistuvat vähitellen 12 viikon jakson lopussa. -Jokainen projekti perustuu opiskelijoiden ja harrastajien käytettävissä olevaan todelliseen laitteistoon. Jokainen projekti käsittelee omaa projektialueensa, tarjoten siihen liittyvää taustatietoa. Onnistuneeksi kehittäjäksi tuleminen auttaa ymmärtämään sitä toimintaympäristöä, jossa ongelmia ratkotaan; tämä taustatieto antaa opiskelijoille mahdollisuuden pohtia IoT-ratkaisujaan ja oppimisiaan siinä kontekstissa, jossa heitä saatetaan pyytää ratkaisemaan aitoja ongelmia IoT-kehittäjinä. Opiskelijat oppivat ratkaisujensa 'miksi'-syyt ja saavat arvostusta loppukäyttäjää kohtaan. +Jokainen projekti perustuu opiskelijoiden ja harrastajien saatavilla olevaan todelliseen laitteistoon. Kukin projekti tutkii tiettyä projektialuetta, tarjoten asiaankuuluvaa taustatietoa. Onnistuneeksi kehittäjäksi auttaa ymmärtää ongelmanratkaisun ala, ja taustatiedon tarjoaminen antaa opiskelijoille mahdollisuuden ajatella IoT-ratkaisujaan ja oppimiaan asioita siinä kontekstissa, millaisia todellisia ongelmia he voisivat saada ratkaistavaksi IoT-kehittäjänä. Opiskelijat oppivat ratkaisujen 'miksi' ja saavat arvostusta loppukäyttäjää kohtaan. ## Laitteisto +Meillä on kaksi IoT-laitteistovaihtoehtoa projektien käyttöön henkilökohtaisen mieltymyksen, ohjelmointikielen tuntemuksen tai preferenssien, oppimistavoitteiden ja saatavuuden mukaan. Tarjoamme myös "virtuaalisen laitteiston" version niille, joilla ei ole fyysistä laitteistoa käytettävissä tai jotka haluavat oppia lisää ennen ostopäätöstä. Voit lukea lisää ja löytää "ostoslistan" [laitteistosivulta](./hardware.md), mukaan lukien linkkejä ostaa valmiita sarjoja ystäviltämme Seeed Studiolta. -Meillä on kaksi vaihtoehtoa IoT-laitteistolle projekteihin henkilökohtaisten mieltymysten, ohjelmointikielitaitojen, oppimistavoitteiden ja saatavuuden mukaan. Olemme myös tarjonneet 'virtuaalilaitteiston' versiota niille, joilla ei ole pääsyä laitteisiin tai jotka haluavat oppia lisää ennen ostosta. Voit lukea lisää ja löytää 'ostoskannan' [laitteistosivulta](./hardware.md), mukaan lukien linkit ostaa täydelliset sarjat ystäviltämme Seeed Studiossa. -> 💁 Löydät säännöstömme [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md) ja [Translation](TRANSLATIONS.md) ohjeistot. Otamme mielellämme vastaan rakentavaa palautettasi! +> 💁 Löydät [käyttäytymissääntömme](CODE_OF_CONDUCT.md), [osallistumisohjeet](CONTRIBUTING.md) ja [käännös-ohjeet](TRANSLATIONS.md). Otamme mielellämme vastaan rakentavaa palautettasi! > -> 🔧 Onko sinulla ongelmia? Katso [Vianmääritysohjeemme](TROUBLESHOOTING.md) yleisten ongelmien ratkaisuja varten. +> 🔧 Ongelmatilanteissa tutustu [vianmääritysohjeeseemme](TROUBLESHOOTING.md) yleisimpiin ongelmiin ja niiden ratkaisuihin. ## Jokainen oppitunti sisältää: -- muistiinpanokuvauksen +- luonnosmuistiinpanon - valinnaisen lisävideon -- lämmittelykyselyn ennen oppituntia +- esilämmittelykyselyn ennen oppituntia - kirjallisen oppitunnin -- projektilähtöisissä oppitunneissa vaiheittaiset ohjeet projektin rakentamiseen -- tietotarkistuksia +- projektipohjaisissa oppitunneissa vaiheittaiset ohjeet projektin rakentamiseen +- tiedon tarkistuksia - haasteen - lisälukemista - tehtävän - [oppitunnin jälkeisen kyselyn](https://ff-quizzes.netlify.app/en/) -> **Huomautus kyselyistä**: Kaikki kyselyt löytyvät quiz-app-kansiosta, yhteensä 48 kyselyä joissa jokaisessa on kolme kysymystä. Ne ovat linkitettyinä oppitunneissa, mutta kyselysovellusta voi ajaa paikallisesti tai ottaa käyttöön Azureen; noudata quiz-app-kansion ohjeita. Kyselyitä ollaan vähitellen lokalisoimassa. +> **Huomautus kyselyistä**: Kaikki kyselyt löytyvät quiz-app-kansiosta, yhteensä 48 kyselyä, joissa kussakin on kolme kysymystä. Ne on linkitetty oppitunneista, mutta kyselysovellusta voi ajaa paikallisesti tai ottaa käyttöön Azuren kautta; katso ohjeet `quiz-app`-kansiosta. Ne ovat asteittain paikallistettavina. ## Oppitunnit -| | Projektin nimi | Opitut käsitteet | Oppimistavoitteet | Linkitetty oppitunti | -| :---: | :---------------------------------------: | :------------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------: | -| 01 | [Aloittaminen](./1-getting-started/README.md) | Johdatus IoT:hen | Opit IoT:n perusperiaatteet ja IoT-ratkaisujen peruselementit kuten anturit ja pilvipalvelut, kun asennat ensimmäisen IoT-laitteesi | [Johdatus IoT:hen](./1-getting-started/lessons/1-introduction-to-iot/README.md) | -| 02 | [Aloittaminen](./1-getting-started/README.md) | Syvällisempi katsaus IoT:hen | Opit lisää IoT-järjestelmän osista, mikro-ohjaimista ja yksittäisistä korteista | [Syvällisempi katsaus IoT:hen](./1-getting-started/lessons/2-deeper-dive/README.md) | -| 03 | [Aloittaminen](./1-getting-started/README.md) | Vuorovaikutus fyysisen maailman kanssa antureilla ja toimilaitteilla | Opit antureista keräämään tietoa fyysisestä maailmasta ja toimilaitteista palautteen lähettämiseen, samalla rakentaen yöllisvalo | [Vuorovaikutus fyysisen maailman kanssa antureilla ja toimilaitteilla](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | -| 04 | [Aloittaminen](./1-getting-started/README.md) | Yhdistä laitteesi internetiin | Opit yhdistämään IoT-laitteen internetiin viestien lähettämiseksi ja vastaanottamiseksi liittämällä yöllisvalosi MQTT-välittäjään | [Yhdistä laitteesi internetiin](./1-getting-started/lessons/4-connect-internet/README.md) | -| 05 | [Farmi](./2-farm/README.md) | Ennusta kasvin kasvu | Opit ennustamaan kasvin kasvua IoT-laitteen keräämien lämpötilatietojen perusteella | [Ennusta kasvin kasvu](./2-farm/lessons/1-predict-plant-growth/README.md) | -| 06 | [Farmi](./2-farm/README.md) | Maan kosteuden havaitseminen | Opit havaitsemaan maan kosteuden ja kalibroimaan maankosteusanturin | [Maan kosteuden havaitseminen](./2-farm/lessons/2-detect-soil-moisture/README.md) | -| 07 | [Farmi](./2-farm/README.md) | Kasvien automaattinen kastelu | Opit automatisoimaan ja ajoittamaan kastelun releen ja MQTT:n avulla | [Kasvien automaattinen kastelu](./2-farm/lessons/3-automated-plant-watering/README.md) | -| 08 | [Farmi](./2-farm/README.md) | Siirrä kasvisi pilveen | Opit pilvestä ja pilvipalveluissa isännöidyistä IoT-palveluista sekä miten yhdistät kasvisi niihin julkisen MQTT-välittäjän sijaan | [Siirrä kasvisi pilveen](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | -| 09 | [Farmi](./2-farm/README.md) | Siirrä sovelluslogiikka pilveen | Opit kirjoittamaan sovelluslogiikkaa pilveen, joka reagoi IoT-viesteihin | [Siirrä sovelluslogiikka pilveen](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | -| 10 | [Farmi](./2-farm/README.md) | Pidä kasvisi turvassa | Opit tietoturvasta IoT:ssa ja miten pidät kasvisi turvassa avainten ja sertifikaattien avulla | [Pidä kasvisi turvassa](./2-farm/lessons/6-keep-your-plant-secure/README.md) | -| 11 | [Liikenne](./3-transport/README.md) | Paikannusseuranta | Opit GPS-paikannuksesta IoT-laitteille | [Paikannusseuranta](./3-transport/lessons/1-location-tracking/README.md) | -| 12 | [Liikenne](./3-transport/README.md) | Paikkatietojen tallennus | Opit tallentamaan IoT-dataa myöhempää visualisointia tai analysointia varten | [Paikkatietojen tallennus](./3-transport/lessons/2-store-location-data/README.md) | -| 13 | [Liikenne](./3-transport/README.md) | Paikkatietojen visualisointi | Opit visualisoimaan paikkatietoja kartalla ja miten kartat esittävät todellisen 3D-maailman kahdessa ulottuvuudessa | [Paikkatietojen visualisointi](./3-transport/lessons/3-visualize-location-data/README.md) | -| 14 | [Liikenne](./3-transport/README.md) | Geoaidat | Opit geoaidoista ja miten niitä voidaan käyttää ilmoittamaan, kun toimitusketjun ajoneuvot ovat lähellä määränpäätään | [Geoaidat](./3-transport/lessons/4-geofences/README.md) | -| 15 | [Valmistus](./4-manufacturing/README.md) | Kouluta hedelmien laatutunnistin | Opit kouluttamaan kuvantunnistinta pilvessä hedelmien laadun tunnistamiseen | [Kouluta hedelmien laatutunnistin](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | -| 16 | [Valmistus](./4-manufacturing/README.md) | Tarkasta hedelmien laatu IoT-laitteella | Opit käyttämään hedelmätunnistinta IoT-laitteesta | [Tarkasta hedelmien laatu IoT-laitteella](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | -| 17 | [Valmistus](./4-manufacturing/README.md) | Aja hedelmätunnistin reunalaitteella | Opit ajamaan hedelmätunnistinta IoT-laitteella reunassa | [Aja hedelmätunnistin reunalaitteella](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | -| 18 | [Valmistus](./4-manufacturing/README.md) | Käynnistä hedelmien laatutunnistus anturista | Opit käynnistämään hedelmien laatutunnistuksen anturin avulla | [Käynnistä hedelmien laatutunnistus anturista](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | -| 19 | [Vähittäiskauppa](./5-retail/README.md) | Kouluta varaston tunnistin | Opit käyttämään objektintunnistusta varaston tunnistimen kouluttamiseen kaupalle | [Kouluta varaston tunnistin](./5-retail/lessons/1-train-stock-detector/README.md) | -| 20 | [Vähittäiskauppa](./5-retail/README.md) | Tarkasta varasto IoT-laitteella | Opit tarkistamaan varaston IoT-laitteella käyttämällä objektintunnistusmallia | [Tarkasta varasto IoT-laitteella](./5-retail/lessons/2-check-stock-device/README.md) | -| 21 | [Kuluttaja](./6-consumer/README.md) | Tunnista puhe IoT-laitteella | Opit tunnistamaan puheen IoT-laitteesta älykkään ajastimen rakentamiseen | [Tunnista puhe IoT-laitteella](./6-consumer/lessons/1-speech-recognition/README.md) | -| 22 | [Kuluttaja](./6-consumer/README.md) | Ymmärrä kieltä | Opit ymmärtämään IoT-laitteelle puhuttuja lauseita | [Ymmärrä kieltä](./6-consumer/lessons/2-language-understanding/README.md) | -| 23 | [Kuluttaja](./6-consumer/README.md) | Aseta ajastin ja anna puhuttu palaute | Opit asettamaan ajastimen IoT-laitteelle ja antamaan puhutun palautteen ajastuksen asettamisesta ja päättymisestä | [Aseta ajastin ja anna puhuttu palaute](./6-consumer/lessons/3-spoken-feedback/README.md) | -| 24 | [Kuluttaja](./6-consumer/README.md) | Tue useita kieliä | Opit tukemaan useita kieliä, sekä puheessa että älykkäältä ajastimelta saatavassa palautteessa | [Tue useita kieliä](./6-consumer/lessons/4-multiple-language-support/README.md) | +| | Projektin nimi | Opetettavat käsitteet | Oppimistavoitteet | Linkitetty oppitunti | +| :---: | :------------------------------------: | :---------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------: | +| 01 | [Aloitus](./1-getting-started/README.md) | Johdatus IoT:hen | Opiskele IoT:n perusperiaatteita ja perustavanlaatuisia IoT-ratkaisuja, kuten antureita ja pilvipalveluita, samalla kun asennat ensimmäisen IoT-laitteesi | [Johdatus IoT:hen](./1-getting-started/lessons/1-introduction-to-iot/README.md) | +| 02 | [Aloitus](./1-getting-started/README.md) | Syvällisempi katsaus IoT:hen | Opiskele lisää IoT-järjestelmän osista sekä mikrokontrollereista ja yksikorttitietokoneista | [Syvällisempi katsaus IoT:hen](./1-getting-started/lessons/2-deeper-dive/README.md) | +| 03 | [Aloitus](./1-getting-started/README.md) | Vuorovaikutus fyysisen maailman kanssa antureilla ja toimilaitteilla | Opiskele antureista tietojen keräämiseksi fyysisestä maailmasta ja toimilaitteista palautteen lähettämiseen samalla, kun rakennat yövalon | [Vuorovaikutus fyysisen maailman kanssa antureilla ja toimilaitteilla](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | +| 04 | [Aloitus](./1-getting-started/README.md) | Liitä laitteesi Internetiin | Opiskele, miten IoT-laite liitetään Internetiin lähettämään ja vastaanottamaan viestejä liittämällä yövalo MQTT-välittäjään | [Liitä laitteesi Internetiin](./1-getting-started/lessons/4-connect-internet/README.md) | +| 05 | [Maatila](./2-farm/README.md) | Ennusta kasvien kasvu | Opiskele kasvien kasvun ennustamista IoT-laitteen keräämän lämpötilatiedon avulla | [Ennusta kasvien kasvu](./2-farm/lessons/1-predict-plant-growth/README.md) | +| 06 | [Maatila](./2-farm/README.md) | Havaitse maaperän kosteus | Opiskele maaperän kosteuden havaitsemista ja maaperän kosteusanturin kalibrointia | [Havaitse maaperän kosteus](./2-farm/lessons/2-detect-soil-moisture/README.md) | +| 07 | [Maatila](./2-farm/README.md) | Automaattinen kasvien kastelu | Opiskele kastelun automatisointia ja ajastamista releen ja MQTT:n avulla | [Automaattinen kasvien kastelu](./2-farm/lessons/3-automated-plant-watering/README.md) | +| 08 | [Maatila](./2-farm/README.md) | Siirrä kasvisi pilveen | Opiskele pilvestä ja pilvipohjaisista IoT-palveluista sekä kuinka liittää kasvisi johonkin näistä julkisen MQTT-välittäjän sijaan | [Siirrä kasvisi pilveen](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | +| 09 | [Maatila](./2-farm/README.md) | Siirrä sovelluslogiikkasi pilveen | Opiskele, miten voit kirjoittaa pilveen sovelluslogiikkaa, joka reagoi IoT-viesteihin | [Siirrä sovelluslogiikkasi pilveen](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | +| 10 | [Maatila](./2-farm/README.md) | Pidä kasvisi turvassa | Opiskele IoT:n turvallisuutta ja kuinka suojata kasvisi avaimilla ja sertifikaateilla | [Pidä kasvisi turvassa](./2-farm/lessons/6-keep-your-plant-secure/README.md) | +| 11 | [Liikenne](./3-transport/README.md) | Paikannusseuranta | Opiskele GPS-paikannusseurantaa IoT-laitteille | [Paikannusseuranta](./3-transport/lessons/1-location-tracking/README.md) | +| 12 | [Liikenne](./3-transport/README.md) | Tallenna sijaintitiedot | Opiskele kuinka tallentaa IoT-dataa myöhempää visualisointia tai analysointia varten | [Tallenna sijaintitiedot](./3-transport/lessons/2-store-location-data/README.md) | +| 13 | [Liikenne](./3-transport/README.md) | Visualisoi sijaintitiedot | Opiskele sijaintitietojen visualisointia kartalla ja kuinka kartat esittävät todellisen 3D-maailman 2D-muodossa | [Visualisoi sijaintitiedot](./3-transport/lessons/3-visualize-location-data/README.md) | +| 14 | [Liikenne](./3-transport/README.md) | Geofence-alueet | Opiskele geofence-alueita ja kuinka niitä voidaan käyttää varoittamaan, kun toimitusketjun ajoneuvot lähestyvät määränpäätään | [Geofence-alueet](./3-transport/lessons/4-geofences/README.md) | +| 15 | [Valmistus](./4-manufacturing/README.md) | Kouluta hedelmien laatu tunnistava | Opiskele pilvipohjaisen kuvien luokittelijan kouluttamista hedelmien laadun tunnistamiseen | [Kouluta hedelmien laatu tunnistava](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | +| 16 | [Valmistus](./4-manufacturing/README.md) | Tarkista hedelmien laatu IoT-laitteella | Opiskele hedelmien laadun tarkistamista IoT-laitteella käyttäen hedelmänlaadun tunnistusmallia | [Tarkista hedelmien laatu IoT-laitteella](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | +| 17 | [Valmistus](./4-manufacturing/README.md) | Suorita hedelmätunnistus reunalaitteella | Opiskele hedelmänsuojaussuoritusta IoT-laitteella reunalaitteessa | [Suorita hedelmätunnistus reunalaitteella](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | +| 18 | [Valmistus](./4-manufacturing/README.md) | Laukaise hedelmien laadun tunnistus anturista | Opiskele kuinka laukaista hedelmien laadun tunnistus anturista | [Laukaise hedelmien laadun tunnistus anturista](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | +| 19 | [Vähittäiskauppa](./5-retail/README.md) | Kouluta varaston tunnistin | Opiskele esineentunnistusta ja kuinka kouluttaa varaston tunnistaja varaston laskemiseen kaupassa | [Kouluta varaston tunnistin](./5-retail/lessons/1-train-stock-detector/README.md) | +| 20 | [Vähittäiskauppa](./5-retail/README.md) | Tarkista varasto IoT-laitteella | Opiskele kuinka tarkistaa varasto IoT-laitteella esineentunnistusmallia käyttäen | [Tarkista varasto IoT-laitteella](./5-retail/lessons/2-check-stock-device/README.md) | +| 21 | [Kuluttaja](./6-consumer/README.md) | Tunnista puhe IoT-laitteella | Opiskele puheen tunnistamista IoT-laitteella älyajastimen rakentamiseksi | [Tunnista puhe IoT-laitteella](./6-consumer/lessons/1-speech-recognition/README.md) | +| 22 | [Kuluttaja](./6-consumer/README.md) | Ymmärrä kieltä | Opiskele lauseiden ymmärtämistä IoT-laitteelle puhuttuna | [Ymmärrä kieltä](./6-consumer/lessons/2-language-understanding/README.md) | +| 23 | [Kuluttaja](./6-consumer/README.md) | Aseta ajastin ja anna suullista palautetta | Opiskele, kuinka asettaa ajastin IoT-laitteella ja antaa suullista palautetta ajastimen asetuksesta ja päättymisestä | [Aseta ajastin ja anna suullista palautetta](./6-consumer/lessons/3-spoken-feedback/README.md) | +| 24 | [Kuluttaja](./6-consumer/README.md) | Tue useita kieliä | Opiskele kuinka tukea useita kieliä, sekä puheen vastaanotossa että älyajastimen vastauksissa | [Tue useita kieliä](./6-consumer/lessons/4-multiple-language-support/README.md) | ## Offline-käyttö -Voit ajaa tämän dokumentaation offline-tilassa käyttämällä [Docsify](https://docsify.js.org/#/). Haaroita tämä repo, [asenna Docsify](https://docsify.js.org/#/quickstart) paikalliselle koneellesi ja kirjoita tämän repositorion juurikansiossa `docsify serve`. Verkkosivusto palvellaan portissa 3000 paikallisessa koneessasi: `localhost:3000`. +Voit käyttää tätä dokumentaatiota offline-tilassa käyttämällä [Docsifytä](https://docsify.js.org/#/). Forkkaa tämä repo, [asenna Docsify](https://docsify.js.org/#/quickstart) paikalliselle koneellesi, ja sitten tämän repokansion juuressa kirjoita `docsify serve`. Verkkosivusto palvellaan portissa 3000 paikallisessa ympäristössäsi: `localhost:3000`. ## Kysely -Kiitos yhteisölle interaktiivisen kyselyn tarjoamisesta, joka testaa tietojasi jokaisesta luvusta. Testaa tietosi [täältä](https://ff-quizzes.netlify.app/en/) +Kiitos yhteisölle vuorovaikutteisen kyselyn tarjoamisesta, joka testaa tietämystäsi jokaisesta luvusta. Voit testata tietosi [tässä](https://ff-quizzes.netlify.app/en/). ### PDF -Voit luoda PDF-version tästä sisällöstä offline-käyttöä varten tarvittaessa. Varmista, että sinulla on [npm asennettuna](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) ja aja seuraavat komennot tämän repositorion juurikansiossa: +Voit luoda PDF-version tästä sisällöstä offline-käyttöä varten tarvittaessa. Varmista, että sinulla on [npm asennettuna](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) ja suorita seuraavat komennot tämän repokansion juuressa: ```sh npm i npm run convert ``` -### Dian esitykset +### Esitykset + +Joitakin oppitunteja varten on esitysdioja [slides](../../slides) kansiossa. -Osasta oppitunteja löytyy diakansio [slides](../../slides) kansiosta. -## Muut opetussuunnitelmat +## Muut oppimateriaalit -Tiimimme tuottaa muitakin opetussuunnitelmia! Katso: +Tiimimme tuottaa myös muita oppimateriaaleja! Tutustu: ### LangChain [![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) [![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) - +[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- ### Azure / Edge / MCP / Agents [![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) + [![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) [![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) [![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) @@ -183,7 +195,7 @@ Tiimimme tuottaa muitakin opetussuunnitelmia! Katso: --- -### Ydinopiskelu +### Ydinohjelmointi [![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) [![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) [![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) @@ -202,11 +214,11 @@ Tiimimme tuottaa muitakin opetussuunnitelmia! Katso: ## Kuvien lähdeviitteet -Löydät kaikki tässä opetussuunnitelmassa käytettyjen kuvien lähdeviitteet tarvittaessa tiedostosta [Attributions](./attributions.md). +Löydät kaikki tämän opetussuunnitelman kuvien lähdeviitteet tarvittaessa tiedostosta [Attributions](./attributions.md). --- **Vastuuvapauslauseke**: -Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua [Co-op Translator](https://github.com/Azure/co-op-translator). Vaikka pyrimme tarkkuuteen, otathan huomioon, että automaattikäännöksissä saattaa esiintyä virheitä tai epätarkkuuksia. Alkuperäistä asiakirjaa sen omalla kielellä tulee pitää virallisena lähteenä. Tärkeiden tietojen osalta suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa tämän käännöksen käytöstä johtuvista väärinymmärryksistä tai virhetulkintojen seurauksista. +Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua [Co-op Translator](https://github.com/Azure/co-op-translator). Vaikka pyrimme täsmällisyyteen, automaattikäännöksissä saattaa esiintyä virheitä tai epätarkkuuksia. Alkuperäistä asiakirjaa sen alkuperäiskielellä tulee pitää virallisena lähteenä. Tärkeissä asioissa suosittelemme ammattilaisen tekemää ihmiskäännöstä. Emme ole vastuussa tämän käännöksen käytöstä johtuvista väärinkäsityksistä tai virhetulkinnoista. \ No newline at end of file diff --git a/translations/fi/hardware.md b/translations/fi/hardware.md index 06b279d74..b314614a1 100644 --- a/translations/fi/hardware.md +++ b/translations/fi/hardware.md @@ -26,7 +26,7 @@ Seeed Studios on ystävällisesti koonnut kaikki laitteistot helposti ostettavik **[IoT aloittelijoille Seeedin ja Microsoftin kanssa - Raspberry Pi 4 Starter Kit](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html)** -[![Raspberry Pi -laitteistopaketti](../../translated_images/fi/pi-hardware-kit.26dbadaedb7dd44c73b0131d5d68ea29472ed0a9744f90d5866c6d82f2d16380.png)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) +[![Raspberry Pi -laitteistopaketti](../../translated_images/fi/pi-hardware-kit.26dbadaedb7dd44c.webp)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) ## Arduino diff --git a/translations/fr/.co-op-translator.json b/translations/fr/.co-op-translator.json index 6b806ef9d..218a2bc48 100644 --- a/translations/fr/.co-op-translator.json +++ b/translations/fr/.co-op-translator.json @@ -738,8 +738,8 @@ "language_code": "fr" }, "README.md": { - "original_hash": "3fcc056cd3837e33d2bdf79f9c359fcf", - "translation_date": "2026-01-30T01:01:13+00:00", + "original_hash": "accf69391fa4450eadbf492ca024cccf", + "translation_date": "2026-04-06T15:43:33+00:00", "source_file": "README.md", "language_code": "fr" }, diff --git a/translations/fr/1-getting-started/lessons/1-introduction-to-iot/README.md b/translations/fr/1-getting-started/lessons/1-introduction-to-iot/README.md index 3c7f8680d..d17cc19ad 100644 --- a/translations/fr/1-getting-started/lessons/1-introduction-to-iot/README.md +++ b/translations/fr/1-getting-started/lessons/1-introduction-to-iot/README.md @@ -1,6 +1,6 @@ # Introduction à l'IoT -![Un aperçu illustré de cette leçon](../../../../../translated_images/fr/lesson-1.2606670fa61ee904687da5d6fa4e726639d524d064c895117da1b95b9ff6251d.jpg) +![Un aperçu illustré de cette leçon](../../../../../translated_images/fr/lesson-1.2606670fa61ee904.webp) > Illustration par [Nitya Narasimhan](https://github.com/nitya). Cliquez sur l'image pour une version agrandie. diff --git a/translations/fr/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md b/translations/fr/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md index 529a6b91c..8866f9b20 100644 --- a/translations/fr/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md +++ b/translations/fr/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md @@ -203,7 +203,7 @@ Comme deuxième étape 'Hello World', vous allez exécuter l'application Counter L'application commencera à s'exécuter et s'ouvrira dans votre navigateur web : - ![L'application CounterFit s'exécutant dans un navigateur](../../../../../translated_images/fr/counterfit-first-run.433326358b669b31d0e99c3513cb01bfbb13724d162c99cdcc8f51ecf5f9c779.png) + ![L'application CounterFit s'exécutant dans un navigateur](../../../../../translated_images/fr/counterfit-first-run.433326358b669b31.webp) Elle sera marquée comme *Disconnected*, avec la LED en haut à droite éteinte. @@ -224,7 +224,7 @@ Comme deuxième étape 'Hello World', vous allez exécuter l'application Counter 1. Dans ce nouveau terminal, exécutez le fichier `app.py` comme précédemment. Le statut de CounterFit passera à **Connected** et la LED s'allumera. - ![CounterFit affichant le statut connecté](../../../../../translated_images/fr/counterfit-connected.ed30b46d8f79b0921f3fc70be10366e596a89dca3f80c2224a9d9fc98fccf884.png) + ![CounterFit affichant le statut connecté](../../../../../translated_images/fr/counterfit-connected.ed30b46d8f79b092.webp) > 💁 Vous pouvez trouver ce code dans le dossier [code/virtual-device](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/virtual-device). diff --git a/translations/fr/1-getting-started/lessons/2-deeper-dive/README.md b/translations/fr/1-getting-started/lessons/2-deeper-dive/README.md index 82e70742d..fa06fd4f0 100644 --- a/translations/fr/1-getting-started/lessons/2-deeper-dive/README.md +++ b/translations/fr/1-getting-started/lessons/2-deeper-dive/README.md @@ -1,6 +1,6 @@ # Une exploration approfondie de l'IoT -![Un aperçu en sketchnote de cette leçon](../../../../../translated_images/fr/lesson-2.324b0580d620c25e0a24fb7fddfc0b29a846dd4b82c08e7a9466d580ee78ce51.jpg) +![Un aperçu en sketchnote de cette leçon](../../../../../translated_images/fr/lesson-2.324b0580d620c25e.webp) > Sketchnote par [Nitya Narasimhan](https://github.com/nitya). Cliquez sur l'image pour une version agrandie. @@ -38,7 +38,7 @@ La partie **objet** de l'IoT fait référence à un appareil capable d'interagir Ces appareils interagissent avec le monde physique, soit en utilisant des capteurs pour recueillir des données de leur environnement, soit en contrôlant des sorties ou des actionneurs pour effectuer des changements physiques. L'exemple typique est un thermostat intelligent - un appareil doté d'un capteur de température, d'un moyen de définir une température souhaitée comme un cadran ou un écran tactile, et d'une connexion à un système de chauffage ou de refroidissement qui peut être activé lorsque la température détectée est en dehors de la plage souhaitée. Le capteur de température détecte que la pièce est trop froide et un actionneur allume le chauffage. -![Un diagramme montrant la température et un cadran comme entrées d'un appareil IoT, et le contrôle d'un chauffage comme sortie](../../../../../translated_images/fr/basic-thermostat.a923217fd1f37e5a6f3390396a65c22a387419ea2dd17e518ec24315ba6ae9a8.png) +![Un diagramme montrant la température et un cadran comme entrées d'un appareil IoT, et le contrôle d'un chauffage comme sortie](../../../../../translated_images/fr/basic-thermostat.a923217fd1f37e5a.webp) Il existe une grande variété d'objets pouvant agir comme appareils IoT, allant du matériel dédié à la détection d'un seul élément à des appareils polyvalents, même votre smartphone ! Un smartphone peut utiliser des capteurs pour détecter le monde qui l'entoure et des actionneurs pour interagir avec celui-ci - par exemple, en utilisant un capteur GPS pour détecter votre position et un haut-parleur pour vous donner des instructions de navigation vers une destination. @@ -54,7 +54,7 @@ Les appareils ne se connectent pas toujours directement à Internet via WiFi ou Dans l'exemple d'un thermostat intelligent, le thermostat se connecterait via le WiFi domestique à un service cloud. Il enverrait les données de température à ce service cloud, qui les écrirait ensuite dans une base de données permettant au propriétaire de vérifier les températures actuelles et passées via une application téléphonique. Un autre service dans le cloud saurait quelle température le propriétaire souhaite et enverrait des messages à l'appareil IoT via le service cloud pour indiquer au système de chauffage de s'allumer ou de s'éteindre. -![Un diagramme montrant la température et un cadran comme entrées d'un appareil IoT, l'appareil IoT avec une communication bidirectionnelle avec le cloud, qui à son tour a une communication bidirectionnelle avec un téléphone, et le contrôle d'un chauffage comme sortie de l'appareil IoT](../../../../../translated_images/fr/mobile-controlled-thermostat.4a994010473d8d6a52ba68c67e5f02dc8928c717e93ca4b9bc55525aa75bbb60.png) +![Un diagramme montrant la température et un cadran comme entrées d'un appareil IoT, l'appareil IoT avec une communication bidirectionnelle avec le cloud, qui à son tour a une communication bidirectionnelle avec un téléphone, et le contrôle d'un chauffage comme sortie de l'appareil IoT](../../../../../translated_images/fr/mobile-controlled-thermostat.4a994010473d8d6a.webp) Une version encore plus intelligente pourrait utiliser l'IA dans le cloud avec des données provenant d'autres capteurs connectés à d'autres appareils IoT, tels que des capteurs de présence détectant les pièces utilisées, ainsi que des données telles que la météo et même votre calendrier, pour prendre des décisions sur la manière de régler la température de manière intelligente. Par exemple, elle pourrait éteindre votre chauffage si elle lit dans votre calendrier que vous êtes en vacances, ou éteindre le chauffage pièce par pièce en fonction des pièces que vous utilisez, apprenant des données pour devenir de plus en plus précise au fil du temps. @@ -94,7 +94,7 @@ Plus le cycle de l'horloge est rapide, plus d'instructions peuvent être traité > 💁 Les CPU exécutent des programmes en utilisant le [cycle de récupération-décodage-exécution](https://wikipedia.org/wiki/Instruction_cycle). À chaque battement d'horloge, le CPU récupère la prochaine instruction de la mémoire, la décode, puis l'exécute, par exemple en utilisant une unité logique arithmétique (ALU) pour additionner deux nombres. Certaines exécutions nécessitent plusieurs battements pour s'exécuter, donc le cycle suivant s'exécutera au battement suivant après que l'instruction soit terminée. -![Les cycles de récupération-décodage-exécution montrant la récupération d'une instruction du programme stocké dans la RAM, puis son décodage et son exécution sur un CPU](../../../../../translated_images/fr/fetch-decode-execute.2fd6f150f6280392807f4475382319abd0cee0b90058e1735444d6baa6f2078c.png) +![Les cycles de récupération-décodage-exécution montrant la récupération d'une instruction du programme stocké dans la RAM, puis son décodage et son exécution sur un CPU](../../../../../translated_images/fr/fetch-decode-execute.2fd6f150f6280392.webp) Les microcontrôleurs ont des vitesses d'horloge bien inférieures à celles des ordinateurs de bureau ou portables, ou même de la plupart des smartphones. Par exemple, le Wio Terminal a un CPU fonctionnant à 120MHz, soit 120 000 000 cycles par seconde. @@ -182,7 +182,7 @@ Les cartes Arduino sont programmées en C ou C++. L'utilisation de C/C++ permet Vous écririez votre code d'initialisation dans la fonction `setup`, comme la connexion au WiFi et aux services cloud ou l'initialisation des broches pour l'entrée et la sortie. Votre code de traitement serait ensuite placé dans la fonction `loop`, comme la lecture d'un capteur et l'envoi de la valeur au cloud. Vous incluriez normalement un délai dans chaque boucle, par exemple, si vous souhaitez envoyer des données de capteur toutes les 10 secondes, vous ajouteriez un délai de 10 secondes à la fin de la boucle pour que le microcontrôleur puisse dormir, économisant ainsi de l'énergie, puis exécuter la boucle à nouveau 10 secondes plus tard. -![Un sketch Arduino exécutant d'abord setup, puis loop en continu](../../../../../translated_images/fr/arduino-sketch.79590cb837ff7a7c6a68d1afda6cab83fd53d3bb1bd9a8bf2eaf8d693a4d3ea6.png) +![Un sketch Arduino exécutant d'abord setup, puis loop en continu](../../../../../translated_images/fr/arduino-sketch.79590cb837ff7a7c.webp) ✅ Cette architecture de programme est connue sous le nom de *boucle d'événements* ou *boucle de messages*. De nombreuses applications utilisent ce modèle en arrière-plan, et c'est la norme pour la plupart des applications de bureau fonctionnant sur des OS comme Windows, macOS ou Linux. La fonction `loop` écoute les messages provenant de composants d'interface utilisateur tels que des boutons, ou d'appareils comme le clavier, et y répond. Vous pouvez en lire davantage dans cet [article sur la boucle d'événements](https://wikipedia.org/wiki/Event_loop). diff --git a/translations/fr/1-getting-started/lessons/3-sensors-and-actuators/README.md b/translations/fr/1-getting-started/lessons/3-sensors-and-actuators/README.md index 46b699049..fff869388 100644 --- a/translations/fr/1-getting-started/lessons/3-sensors-and-actuators/README.md +++ b/translations/fr/1-getting-started/lessons/3-sensors-and-actuators/README.md @@ -1,6 +1,6 @@ # Interagir avec le monde physique avec des capteurs et des actionneurs -![Un aperçu en sketchnote de cette leçon](../../../../../translated_images/fr/lesson-3.cc3b7b4cd646de598698cce043c0393fd62ef42bac2eaf60e61272cd844250f4.jpg) +![Un aperçu en sketchnote de cette leçon](../../../../../translated_images/fr/lesson-3.cc3b7b4cd646de59.webp) > Sketchnote par [Nitya Narasimhan](https://github.com/nitya). Cliquez sur l'image pour une version agrandie. @@ -92,7 +92,7 @@ Les capteurs numériques, comme les capteurs analogiques, détectent le monde qu Le capteur numérique le plus simple est un bouton ou un interrupteur. C'est un capteur avec deux états : activé ou désactivé. -![Un bouton reçoit 5 volts. Lorsqu'il n'est pas pressé, il retourne 0 volts ; lorsqu'il est pressé, il retourne 5 volts](../../../../../translated_images/fr/button.eadb560b77ac45e56f523d9d8876e40444f63b419e33eb820082d461fa79490b.png) +![Un bouton reçoit 5 volts. Lorsqu'il n'est pas pressé, il retourne 0 volts ; lorsqu'il est pressé, il retourne 5 volts](../../../../../translated_images/fr/button.eadb560b77ac45e5.webp) Les broches des appareils IoT, comme les broches GPIO, peuvent mesurer ce signal directement comme un 0 ou un 1. Si la tension envoyée est la même que la tension retournée, la valeur lue est 1, sinon la valeur lue est 0. Il n'est pas nécessaire de convertir le signal, il ne peut être que 1 ou 0. @@ -125,7 +125,7 @@ Quelques actionneurs courants incluent : Suivez le guide correspondant ci-dessous pour ajouter un actionneur à votre appareil IoT, contrôlé par le capteur, afin de créer une veilleuse IoT. Elle recueillera les niveaux de lumière du capteur de lumière et utilisera un actionneur sous forme de LED pour émettre de la lumière lorsque le niveau de lumière détecté est trop faible. -![Un diagramme de flux de l'exercice montrant les niveaux de lumière mesurés et vérifiés, et la LED contrôlée](../../../../../translated_images/fr/assignment-1-flow.7552a51acb1a5ec858dca6e855cdbb44206434006df8ba3799a25afcdab1665d.png) +![Un diagramme de flux de l'exercice montrant les niveaux de lumière mesurés et vérifiés, et la LED contrôlée](../../../../../translated_images/fr/assignment-1-flow.7552a51acb1a5ec8.webp) * [Arduino - Wio Terminal](wio-terminal-actuator.md) * [Ordinateur monocarte - Raspberry Pi](pi-actuator.md) @@ -140,7 +140,7 @@ Comme les capteurs, les actionneurs peuvent être analogiques ou numériques. Les actionneurs analogiques prennent un signal analogique et le convertissent en une interaction quelconque, où l'interaction varie en fonction de la tension fournie. Un exemple est une lumière réglable, comme celles que vous pourriez avoir chez vous. La quantité de tension fournie à la lumière détermine sa luminosité. -![Une lumière atténuée à basse tension et plus lumineuse à haute tension](../../../../../translated_images/fr/dimmable-light.9ceffeb195dec1a849da718b2d71b32c35171ff7dfea9c07bbf82646a67acf6b.png) +![Une lumière atténuée à basse tension et plus lumineuse à haute tension](../../../../../translated_images/fr/dimmable-light.9ceffeb195dec1a8.webp) Comme pour les capteurs, le véritable appareil IoT fonctionne avec des signaux numériques, et non analogiques. Cela signifie que pour envoyer un signal analogique, l'appareil IoT a besoin d'un convertisseur numérique-analogique (DAC), soit directement sur l'appareil IoT, soit sur une carte connecteur. Cela convertira les 0 et 1 de l'appareil IoT en une tension analogique que l'actionneur peut utiliser. @@ -187,7 +187,7 @@ Les actionneurs numériques, comme les capteurs numériques, ont soit deux état Un actionneur numérique simple est une LED. Lorsqu'un appareil envoie un signal numérique de 1, une tension haute est envoyée pour allumer la LED. Lorsqu'un signal numérique de 0 est envoyé, la tension tombe à 0V et la LED s'éteint. -![Une LED éteinte à 0 volts et allumée à 5V](../../../../../translated_images/fr/led.ec6d94f66676a174ad06d9fa9ea49c2ee89beb18b312d5c6476467c66375b07f.png) +![Une LED éteinte à 0 volts et allumée à 5V](../../../../../translated_images/fr/led.ec6d94f66676a174.webp) ✅ Quels autres actionneurs simples à 2 états pouvez-vous imaginer ? Un exemple est un solénoïde, qui est un électroaimant pouvant être activé pour effectuer des actions comme déplacer un verrou de porte pour la verrouiller/déverrouiller. diff --git a/translations/fr/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md b/translations/fr/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md index 09df37cad..c1ee76a05 100644 --- a/translations/fr/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md +++ b/translations/fr/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md @@ -26,7 +26,7 @@ La LED Grove est livrée sous forme de module avec une sélection de LEDs, vous Connectez la LED. -![Une LED Grove](../../../../../translated_images/fr/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![Une LED Grove](../../../../../translated_images/fr/grove-led.6c853be93f473cf2.webp) 1. Choisissez votre LED préférée et insérez les pattes dans les deux trous du module LED. @@ -40,7 +40,7 @@ Connectez la LED. 1. Avec le Raspberry Pi éteint, connectez l'autre extrémité du câble Grove à la prise numérique marquée **D5** sur le Grove Base Hat attaché au Pi. Cette prise est la deuxième à partir de la gauche, sur la rangée de prises à côté des broches GPIO. -![La LED Grove connectée à la prise D5](../../../../../translated_images/fr/pi-led.97f1d474981dc35d1c7996c7b17de355d3d0a6bc9606d79fa5f89df933415122.png) +![La LED Grove connectée à la prise D5](../../../../../translated_images/fr/pi-led.97f1d474981dc35d.webp) ## Programmer la veilleuse diff --git a/translations/fr/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md b/translations/fr/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md index 26455f3cf..288c3e97e 100644 --- a/translations/fr/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md +++ b/translations/fr/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md @@ -16,13 +16,13 @@ Le capteur de lumière Grove utilisé pour détecter les niveaux de lumière doi Connectez le capteur de lumière. -![Un capteur de lumière Grove](../../../../../translated_images/fr/grove-light-sensor.b8127b7c434e632d6bcdb57587a14e9ef69a268a22df95d08628f62b8fa5505c.png) +![Un capteur de lumière Grove](../../../../../translated_images/fr/grove-light-sensor.b8127b7c434e632d.webp) 1. Insérez une extrémité d'un câble Grove dans la prise du module du capteur de lumière. Il ne peut être inséré que dans un seul sens. 1. Avec le Raspberry Pi éteint, connectez l'autre extrémité du câble Grove à la prise analogique marquée **A0** sur le Grove Base Hat attaché au Pi. Cette prise est la deuxième à partir de la droite, sur la rangée de prises à côté des broches GPIO. -![Le capteur de lumière Grove connecté à la prise A0](../../../../../translated_images/fr/pi-light-sensor.66cc1e31fa48cd7d5f23400d4b2119aa41508275cb7c778053a7923b4e972d7e.png) +![Le capteur de lumière Grove connecté à la prise A0](../../../../../translated_images/fr/pi-light-sensor.66cc1e31fa48cd7d.webp) ## Programmer le capteur de lumière diff --git a/translations/fr/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md b/translations/fr/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md index 14be7266b..4cd5a4d62 100644 --- a/translations/fr/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md +++ b/translations/fr/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md @@ -36,11 +36,11 @@ Ajoutez la LED à l'application CounterFit. 1. Sélectionnez le bouton **Ajouter** pour créer la LED sur la broche 5. - ![Les paramètres de la LED](../../../../../translated_images/fr/counterfit-create-led.ba9db1c9b8c622a635d6dfae5cdc4e70c2b250635bd4f0601c6cf0bd22b7ba46.png) + ![Les paramètres de la LED](../../../../../translated_images/fr/counterfit-create-led.ba9db1c9b8c622a6.webp) La LED sera créée et apparaîtra dans la liste des actionneurs. - ![La LED créée](../../../../../translated_images/fr/counterfit-led.c0ab02de6d256ad84d9bad4d67a7faa709f0ea83e410cfe9b5561ef0cef30b1c.png) + ![La LED créée](../../../../../translated_images/fr/counterfit-led.c0ab02de6d256ad8.webp) Une fois la LED créée, vous pouvez changer sa couleur en utilisant le sélecteur *Couleur*. Sélectionnez le bouton **Définir** pour changer la couleur après l'avoir choisie. diff --git a/translations/fr/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md b/translations/fr/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md index 7933ac875..d664d2021 100644 --- a/translations/fr/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md +++ b/translations/fr/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md @@ -28,11 +28,11 @@ Ajoutez le capteur de lumière à l'application CounterFit. 1. Sélectionnez le bouton **Add** pour créer le capteur de lumière sur le Pin 0. - ![Les paramètres du capteur de lumière](../../../../../translated_images/fr/counterfit-create-light-sensor.9f36a5e0d4458d8d554d54b34d2c806d56093d6e49fddcda2d20f6fef7f5cce1.png) + ![Les paramètres du capteur de lumière](../../../../../translated_images/fr/counterfit-create-light-sensor.9f36a5e0d4458d8d.webp) Le capteur de lumière sera créé et apparaîtra dans la liste des capteurs. - ![Le capteur de lumière créé](../../../../../translated_images/fr/counterfit-light-sensor.5d0f5584df56b90f6b2561910d9cb20dfbd73eeff2177c238d38f4de54aefae1.png) + ![Le capteur de lumière créé](../../../../../translated_images/fr/counterfit-light-sensor.5d0f5584df56b90f.webp) ## Programmer le capteur de lumière diff --git a/translations/fr/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md b/translations/fr/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md index 7d9b54bf5..68c2aa88e 100644 --- a/translations/fr/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md +++ b/translations/fr/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md @@ -26,7 +26,7 @@ La LED Grove est fournie sous forme de module avec une sélection de LEDs, vous Connectez la LED. -![Une LED Grove](../../../../../translated_images/fr/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![Une LED Grove](../../../../../translated_images/fr/grove-led.6c853be93f473cf2.webp) 1. Choisissez votre LED préférée et insérez ses pattes dans les deux trous du module LED. diff --git a/translations/fr/1-getting-started/lessons/4-connect-internet/README.md b/translations/fr/1-getting-started/lessons/4-connect-internet/README.md index 5eb5004a1..7e953786c 100644 --- a/translations/fr/1-getting-started/lessons/4-connect-internet/README.md +++ b/translations/fr/1-getting-started/lessons/4-connect-internet/README.md @@ -1,6 +1,6 @@ # Connectez votre appareil à Internet -![Un aperçu illustré de cette leçon](../../../../../translated_images/fr/lesson-4.7344e074ea68fa545fd320b12dce36d72dd62d28c3b4596cb26cf315f434b98f.jpg) +![Un aperçu illustré de cette leçon](../../../../../translated_images/fr/lesson-4.7344e074ea68fa54.webp) > Illustration par [Nitya Narasimhan](https://github.com/nitya). Cliquez sur l'image pour une version agrandie. @@ -47,7 +47,7 @@ MQTT est le protocole de communication le plus populaire pour les appareils IoT MQTT fonctionne avec un courtier unique et plusieurs clients. Tous les clients se connectent au courtier, qui achemine les messages vers les clients concernés. Les messages sont acheminés à l'aide de sujets nommés, plutôt que d'être envoyés directement à un client individuel. Un client peut publier sur un sujet, et tous les clients abonnés à ce sujet recevront le message. -![Un appareil IoT publiant des données de télémétrie sur le sujet /telemetry, et le service cloud s'abonnant à ce sujet](../../../../../translated_images/fr/mqtt.cbf7f21d9adc3e17548b359444cc11bb4bf2010543e32ece9a47becf54438c23.png) +![Un appareil IoT publiant des données de télémétrie sur le sujet /telemetry, et le service cloud s'abonnant à ce sujet](../../../../../translated_images/fr/mqtt.cbf7f21d9adc3e17.webp) ✅ Faites des recherches. Si vous avez de nombreux appareils IoT, comment pouvez-vous vous assurer que votre courtier MQTT peut gérer tous les messages ? @@ -69,7 +69,7 @@ Plutôt que de gérer les complexités de la configuration d'un courtier MQTT da > 💁 Ce courtier de test est public et non sécurisé. N'importe qui pourrait écouter ce que vous publiez, il ne doit donc pas être utilisé pour des données devant rester privées. -![Un diagramme de flux de l'exercice montrant les niveaux de lumière mesurés et vérifiés, et la LED contrôlée](../../../../../translated_images/fr/assignment-1-internet-flow.3256feab5f052fd273bf4e331157c574c2c3fa42e479836fc9c3586f41db35a5.png) +![Un diagramme de flux de l'exercice montrant les niveaux de lumière mesurés et vérifiés, et la LED contrôlée](../../../../../translated_images/fr/assignment-1-internet-flow.3256feab5f052fd2.webp) Suivez l'étape correspondante ci-dessous pour connecter votre appareil au courtier MQTT : @@ -350,7 +350,7 @@ Pour des machines, vous pourriez vouloir conserver les données, surtout si elle Les concepteurs d'appareils IoT devraient également envisager si l'appareil IoT peut être utilisé pendant une panne Internet ou une perte de signal due à l'emplacement. Un thermostat intelligent devrait pouvoir prendre des décisions limitées pour contrôler le chauffage s'il ne peut pas envoyer de télémétrie au cloud en raison d'une panne. -[![Cette Ferrari est devenue inutilisable parce que quelqu'un a essayé de la mettre à jour sous terre où il n'y a pas de réception cellulaire](../../../../../translated_images/fr/bricked-car.dc38f8efadc6c59d76211f981a521efb300939283dee468f79503aae3ec67615.png)](https://twitter.com/internetofshit/status/1315736960082808832) +[![Cette Ferrari est devenue inutilisable parce que quelqu'un a essayé de la mettre à jour sous terre où il n'y a pas de réception cellulaire](../../../../../translated_images/fr/bricked-car.dc38f8efadc6c59d.webp)](https://twitter.com/internetofshit/status/1315736960082808832) Pour que MQTT gère une perte de connectivité, le code de l'appareil et du serveur devra être responsable de garantir la livraison des messages si nécessaire, par exemple en exigeant que tous les messages envoyés soient confirmés par des messages supplémentaires sur un sujet de réponse, et si ce n'est pas le cas, ils sont mis en file d'attente manuellement pour être rejoués plus tard. @@ -358,7 +358,7 @@ Pour que MQTT gère une perte de connectivité, le code de l'appareil et du serv Les commandes sont des messages envoyés par le cloud à un appareil, lui demandant de faire quelque chose. La plupart du temps, cela implique de donner une sorte de sortie via un actionneur, mais cela peut être une instruction pour l'appareil lui-même, comme redémarrer ou collecter des données supplémentaires de télémétrie et les renvoyer en réponse à la commande. -![Un thermostat connecté à Internet recevant une commande pour allumer le chauffage](../../../../../translated_images/fr/commands.d6c06bbbb3a02cce95f2831a1c331daf6dedd4e470c4aa2b0ae54f332016e504.png) +![Un thermostat connecté à Internet recevant une commande pour allumer le chauffage](../../../../../translated_images/fr/commands.d6c06bbbb3a02cce.webp) Un thermostat pourrait recevoir une commande du cloud pour allumer le chauffage. Sur la base des données de télémétrie de tous les capteurs, si le service cloud a décidé que le chauffage doit être allumé, il envoie la commande correspondante. diff --git a/translations/fr/2-farm/lessons/1-predict-plant-growth/README.md b/translations/fr/2-farm/lessons/1-predict-plant-growth/README.md index d5da44e62..0c6972871 100644 --- a/translations/fr/2-farm/lessons/1-predict-plant-growth/README.md +++ b/translations/fr/2-farm/lessons/1-predict-plant-growth/README.md @@ -1,6 +1,6 @@ # Prédire la croissance des plantes avec l'IoT -![Un aperçu illustré de cette leçon](../../../../../translated_images/fr/lesson-5.42b234299279d263143148b88ab4583861a32ddb03110c6c1120e41bb88b2592.jpg) +![Un aperçu illustré de cette leçon](../../../../../translated_images/fr/lesson-5.42b234299279d263.webp) > Illustration par [Nitya Narasimhan](https://github.com/nitya). Cliquez sur l'image pour une version agrandie. @@ -102,7 +102,7 @@ Les étapes pour le faire manuellement sont : Par exemple, si la température la plus élevée de la journée est de 25°C, et la plus basse est de 12°C : -![GDD = 25 + 12 divisé par 2, puis soustrayez 10 du résultat pour obtenir 8,5](../../../../../translated_images/fr/gdd-calculation-strawberries.59f57db94b22adb8ff6efb951ace33af104a1c6ccca3ffb0f8169c14cb160c90.png) +![GDD = 25 + 12 divisé par 2, puis soustrayez 10 du résultat pour obtenir 8,5](../../../../../translated_images/fr/gdd-calculation-strawberries.59f57db94b22adb8.webp) * 25 + 12 = 37 * 37 / 2 = 18,5 diff --git a/translations/fr/2-farm/lessons/1-predict-plant-growth/assignment.md b/translations/fr/2-farm/lessons/1-predict-plant-growth/assignment.md index 1a9e14d7e..79209fa52 100644 --- a/translations/fr/2-farm/lessons/1-predict-plant-growth/assignment.md +++ b/translations/fr/2-farm/lessons/1-predict-plant-growth/assignment.md @@ -33,7 +33,7 @@ Une fois que vous avez des données de température, vous pouvez utiliser le Jup Jupyter démarrera et ouvrira le notebook dans votre navigateur. Suivez les instructions dans le notebook pour visualiser les températures mesurées et calculer les jours degrés de croissance. - ![Le notebook Jupyter](../../../../../translated_images/fr/gdd-jupyter-notebook.c5b52cf21094f158a61f47f455490fd95f1729777ff90861a4521820bf354cdc.png) + ![Le notebook Jupyter](../../../../../translated_images/fr/gdd-jupyter-notebook.c5b52cf21094f158.webp) ## Grille d'évaluation diff --git a/translations/fr/2-farm/lessons/1-predict-plant-growth/pi-temp.md b/translations/fr/2-farm/lessons/1-predict-plant-growth/pi-temp.md index 53ccd8583..1e1f698a2 100644 --- a/translations/fr/2-farm/lessons/1-predict-plant-growth/pi-temp.md +++ b/translations/fr/2-farm/lessons/1-predict-plant-growth/pi-temp.md @@ -16,13 +16,13 @@ Le capteur de température Grove peut être connecté au Raspberry Pi. Connectez le capteur de température. -![Un capteur de température Grove](../../../../../translated_images/fr/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![Un capteur de température Grove](../../../../../translated_images/fr/grove-dht11.07f8eafceee17004.webp) 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. Avec le Raspberry Pi éteint, connectez l'autre extrémité du câble Grove à la prise numérique marquée **D5** sur le Grove Base Hat attaché au Pi. Cette prise est la deuxième à partir de la gauche, sur la rangée de prises à côté des broches GPIO. -![Le capteur de température Grove connecté à la prise A0](../../../../../translated_images/fr/pi-temperature-sensor.3ff82fff672c8e565ef25a39d26d111de006b825a7e0867227ef4e7fbff8553c.png) +![Le capteur de température Grove connecté à la prise A0](../../../../../translated_images/fr/pi-temperature-sensor.3ff82fff672c8e56.webp) ## Programmer le capteur de température diff --git a/translations/fr/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md b/translations/fr/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md index 78420c83b..7ffba984f 100644 --- a/translations/fr/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md +++ b/translations/fr/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md @@ -38,11 +38,11 @@ Ajoutez les capteurs d'humidité et de température à l'application CounterFit. 1. Sélectionnez le bouton **Add** pour créer le capteur d'humidité sur le Pin 5. - ![Les paramètres du capteur d'humidité](../../../../../translated_images/fr/counterfit-create-humidity-sensor.2750e27b6f30e09cf4e22101defd5252710717620816ab41ba688f91f757c49a.png) + ![Les paramètres du capteur d'humidité](../../../../../translated_images/fr/counterfit-create-humidity-sensor.2750e27b6f30e09c.webp) Le capteur d'humidité sera créé et apparaîtra dans la liste des capteurs. - ![Le capteur d'humidité créé](../../../../../translated_images/fr/counterfit-humidity-sensor.7b12f7f339e430cb26c8211d2dba4ef75261b353a01da0932698b5bebd693f27.png) + ![Le capteur d'humidité créé](../../../../../translated_images/fr/counterfit-humidity-sensor.7b12f7f339e430cb.webp) 1. Créez un capteur de température : @@ -54,11 +54,11 @@ Ajoutez les capteurs d'humidité et de température à l'application CounterFit. 1. Sélectionnez le bouton **Add** pour créer le capteur de température sur le Pin 6. - ![Les paramètres du capteur de température](../../../../../translated_images/fr/counterfit-create-temperature-sensor.199350ed34f7343d79dccbe95eaf6c11d2121f03d1c35ab9613b330c23f39b29.png) + ![Les paramètres du capteur de température](../../../../../translated_images/fr/counterfit-create-temperature-sensor.199350ed34f7343d.webp) Le capteur de température sera créé et apparaîtra dans la liste des capteurs. - ![Le capteur de température créé](../../../../../translated_images/fr/counterfit-temperature-sensor.f0560236c96a9016bafce7f6f792476fe3367bc6941a1f7d5811d144d4bcbfff.png) + ![Le capteur de température créé](../../../../../translated_images/fr/counterfit-temperature-sensor.f0560236c96a9016.webp) ## Programmer l'application du capteur de température diff --git a/translations/fr/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md b/translations/fr/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md index 0883fb7c1..4cfb8ce9b 100644 --- a/translations/fr/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md +++ b/translations/fr/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md @@ -18,7 +18,7 @@ Le capteur de température Grove peut être connecté au port numérique du Wio Connectez le capteur de température. -![Un capteur de température Grove](../../../../../translated_images/fr/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![Un capteur de température Grove](../../../../../translated_images/fr/grove-dht11.07f8eafceee17004.webp) 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. diff --git a/translations/fr/2-farm/lessons/2-detect-soil-moisture/assignment.md b/translations/fr/2-farm/lessons/2-detect-soil-moisture/assignment.md index 0aefd951f..d0fa64b51 100644 --- a/translations/fr/2-farm/lessons/2-detect-soil-moisture/assignment.md +++ b/translations/fr/2-farm/lessons/2-detect-soil-moisture/assignment.md @@ -20,14 +20,14 @@ Vous devrez répéter ces étapes plusieurs fois pour obtenir les relevés néce L'humidité gravimétrique du sol se calcule comme suit : -![l'humidité du sol % est le poids humide moins le poids sec, divisé par le poids sec, multiplié par 100](../../../../../translated_images/fr/gsm-calculation.6da38c6201eec14e7573bb2647aa18892883193553d23c9d77e5dc681522dfb2.png) +![l'humidité du sol % est le poids humide moins le poids sec, divisé par le poids sec, multiplié par 100](../../../../../translated_images/fr/gsm-calculation.6da38c6201eec14e.webp) * W - le poids du sol humide * W - le poids du sol sec Par exemple, supposons que vous avez un échantillon de sol pesant 212 g humide et 197 g sec. -![Le calcul rempli](../../../../../translated_images/fr/gsm-calculation-example.99f9803b4f29e97668e7c15412136c0c399ab12dbba0b89596fdae9d8aedb6fb.png) +![Le calcul rempli](../../../../../translated_images/fr/gsm-calculation-example.99f9803b4f29e976.webp) * W = 212 g * W = 197 g diff --git a/translations/fr/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md b/translations/fr/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md index 2636ac94a..8749928f6 100644 --- a/translations/fr/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md +++ b/translations/fr/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md @@ -18,13 +18,13 @@ Le capteur d'humidité du sol Grove peut être connecté au Raspberry Pi. Connectez le capteur d'humidité du sol. -![Un capteur d'humidité du sol Grove](../../../../../translated_images/fr/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![Un capteur d'humidité du sol Grove](../../../../../translated_images/fr/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. Insérez une extrémité d'un câble Grove dans la prise du capteur d'humidité du sol. Il ne peut être inséré que dans un seul sens. 1. Avec le Raspberry Pi éteint, connectez l'autre extrémité du câble Grove à la prise analogique marquée **A0** sur le Grove Base Hat attaché au Pi. Cette prise est la deuxième à partir de la droite, sur la rangée de prises à côté des broches GPIO. -![Le capteur d'humidité du sol Grove connecté à la prise A0](../../../../../translated_images/fr/pi-soil-moisture-sensor.fdd7eb2393792cf6739cacf1985d9f55beda16d372f30d0b5a51d586f978a870.png) +![Le capteur d'humidité du sol Grove connecté à la prise A0](../../../../../translated_images/fr/pi-soil-moisture-sensor.fdd7eb2393792cf6.webp) 1. Insérez le capteur d'humidité du sol dans le sol. Il comporte une "ligne de position maximale" - une ligne blanche traversant le capteur. Insérez le capteur jusqu'à cette ligne, mais pas au-delà. diff --git a/translations/fr/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md b/translations/fr/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md index ff7341ae8..077bdd2b8 100644 --- a/translations/fr/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md +++ b/translations/fr/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md @@ -34,11 +34,11 @@ Ajoutez le capteur d'humidité du sol à l'application CounterFit. 1. Sélectionnez le bouton **Add** pour créer le capteur *Soil Moisture* sur le Pin 0. - ![Les paramètres du capteur d'humidité du sol](../../../../../translated_images/fr/counterfit-create-soil-moisture-sensor.35266135a5e0ae68b29a684d7db0d2933a8098b2307d197f7c71577b724603aa.png) + ![Les paramètres du capteur d'humidité du sol](../../../../../translated_images/fr/counterfit-create-soil-moisture-sensor.35266135a5e0ae68.webp) Le capteur d'humidité du sol sera créé et apparaîtra dans la liste des capteurs. - ![Le capteur d'humidité du sol créé](../../../../../translated_images/fr/counterfit-soil-moisture-sensor.81742b2de0e9de60a3b3b9a2ff8ecc686d428eb6d71820f27a693be26e5aceee.png) + ![Le capteur d'humidité du sol créé](../../../../../translated_images/fr/counterfit-soil-moisture-sensor.81742b2de0e9de60.webp) ## Programmer l'application du capteur d'humidité du sol diff --git a/translations/fr/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md b/translations/fr/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md index 688a2452a..7df7a5065 100644 --- a/translations/fr/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md +++ b/translations/fr/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md @@ -18,7 +18,7 @@ Le capteur Grove d'humidité du sol peut être connecté au port analogique/num Connectez le capteur d'humidité du sol. -![Un capteur Grove d'humidité du sol](../../../../../translated_images/fr/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![Un capteur Grove d'humidité du sol](../../../../../translated_images/fr/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. Insérez une extrémité d'un câble Grove dans la prise du capteur d'humidité du sol. Il ne peut être inséré que dans un seul sens. diff --git a/translations/fr/2-farm/lessons/3-automated-plant-watering/README.md b/translations/fr/2-farm/lessons/3-automated-plant-watering/README.md index 5592d917a..58026fbe9 100644 --- a/translations/fr/2-farm/lessons/3-automated-plant-watering/README.md +++ b/translations/fr/2-farm/lessons/3-automated-plant-watering/README.md @@ -1,6 +1,6 @@ # Arrosage automatisé des plantes -![Un aperçu en sketchnote de cette leçon](../../../../../translated_images/fr/lesson-7.30b5f577d3cb8e031238751475cb519c7d6dbaea261b5df4643d086ffb2a03bb.jpg) +![Un aperçu en sketchnote de cette leçon](../../../../../translated_images/fr/lesson-7.30b5f577d3cb8e03.webp) > Sketchnote par [Nitya Narasimhan](https://github.com/nitya). Cliquez sur l'image pour une version agrandie. @@ -32,7 +32,7 @@ Les appareils IoT utilisent une basse tension. Bien que cela suffise pour les ca La solution consiste à connecter une pompe à une alimentation externe et à utiliser un actionneur pour allumer la pompe, de la même manière que vous allumeriez une lumière. Il faut une très petite quantité d'énergie (sous forme d'énergie corporelle) pour que votre doigt actionne un interrupteur, ce qui connecte la lumière à l'électricité domestique fonctionnant à 110v/240v. -![Un interrupteur allume une lumière](../../../../../translated_images/fr/light-switch.760317ad6ab8bd6d611da5352dfe9c73a94a0822ccec7df3c8bae35da18e1658.png) +![Un interrupteur allume une lumière](../../../../../translated_images/fr/light-switch.760317ad6ab8bd6d.webp) > 🎓 [L'électricité domestique](https://wikipedia.org/wiki/Mains_electricity) fait référence à l'électricité distribuée aux maisons et aux entreprises via des infrastructures nationales dans de nombreuses régions du monde. @@ -72,7 +72,7 @@ Lorsque le levier se déplace, vous pouvez généralement entendre un clic bien L'électroaimant n'a pas besoin de beaucoup de puissance pour s'activer et tirer le levier, il peut être contrôlé en utilisant la sortie 3,3V ou 5V d'un kit de développement IoT. Le circuit de sortie peut transporter beaucoup plus de puissance, selon le relais, y compris la tension domestique ou même des niveaux de puissance plus élevés pour une utilisation industrielle. Ainsi, un kit de développement IoT peut contrôler un système d'irrigation, allant d'une petite pompe pour une seule plante à un système industriel massif pour une ferme commerciale entière. -![Un relais Grove avec le circuit de commande, le circuit de sortie et le relais étiquetés](../../../../../translated_images/fr/grove-relay-labelled.293e068f5c3c2a199bd7892f2661fdc9e10c920b535cfed317fbd6d1d4ae1168.png) +![Un relais Grove avec le circuit de commande, le circuit de sortie et le relais étiquetés](../../../../../translated_images/fr/grove-relay-labelled.293e068f5c3c2a19.webp) L'image ci-dessus montre un relais Grove. Le circuit de commande se connecte à un appareil IoT et active ou désactive le relais en utilisant 3,3V ou 5V. Le circuit de sortie a deux bornes, l'une pouvant être l'alimentation ou la masse. Le circuit de sortie peut gérer jusqu'à 250V à 10A, suffisant pour une gamme d'appareils alimentés par le secteur. Vous pouvez trouver des relais capables de gérer des niveaux de puissance encore plus élevés. diff --git a/translations/fr/2-farm/lessons/3-automated-plant-watering/pi-relay.md b/translations/fr/2-farm/lessons/3-automated-plant-watering/pi-relay.md index 3a0513452..af34412ed 100644 --- a/translations/fr/2-farm/lessons/3-automated-plant-watering/pi-relay.md +++ b/translations/fr/2-farm/lessons/3-automated-plant-watering/pi-relay.md @@ -18,13 +18,13 @@ Le relais Grove peut être connecté au Raspberry Pi. Connectez le relais. -![Un relais Grove](../../../../../translated_images/fr/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) +![Un relais Grove](../../../../../translated_images/fr/grove-relay.d426958ca210fbd0.webp) 1. Insérez une extrémité d'un câble Grove dans la prise du relais. Il ne peut être inséré que dans un seul sens. 1. Avec le Raspberry Pi éteint, connectez l'autre extrémité du câble Grove à la prise numérique marquée **D5** sur le Grove Base Hat attaché au Pi. Cette prise est la deuxième à partir de la gauche, sur la rangée de prises à côté des broches GPIO. Laissez le capteur d'humidité du sol connecté à la prise **A0**. -![Le relais Grove connecté à la prise D5, et le capteur d'humidité du sol connecté à la prise A0](../../../../../translated_images/fr/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e69ec716cd2719ce117700bd1fc933eaf93476c103c57939b.png) +![Le relais Grove connecté à la prise D5, et le capteur d'humidité du sol connecté à la prise A0](../../../../../translated_images/fr/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e.webp) 1. Insérez le capteur d'humidité du sol dans le sol, s'il n'est pas déjà en place depuis la leçon précédente. diff --git a/translations/fr/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md b/translations/fr/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md index 87b4078e2..cfaf251ce 100644 --- a/translations/fr/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md +++ b/translations/fr/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md @@ -28,11 +28,11 @@ Ajoutez le relais à l'application CounterFit. 1. Sélectionnez le bouton **Add** pour créer le relais sur la broche 5. - ![Les paramètres du relais](../../../../../translated_images/fr/counterfit-create-relay.fa7c40fd0f2f6afc33b35ea94fcb235085be4861e14e3fe6b9b7bcfc82d1c888.png) + ![Les paramètres du relais](../../../../../translated_images/fr/counterfit-create-relay.fa7c40fd0f2f6afc.webp) Le relais sera créé et apparaîtra dans la liste des actionneurs. - ![Le relais créé](../../../../../translated_images/fr/counterfit-relay.bbf74c1dbdc8b9acd983367fcbd06703a402aefef6af54ddb28e11307ba8a12c.png) + ![Le relais créé](../../../../../translated_images/fr/counterfit-relay.bbf74c1dbdc8b9ac.webp) ## Programmer le relais diff --git a/translations/fr/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md b/translations/fr/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md index 6589f7952..78a83da02 100644 --- a/translations/fr/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md +++ b/translations/fr/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md @@ -18,7 +18,7 @@ Le relais Grove peut être connecté au port numérique du Wio Terminal. Connectez le relais. -![Un relais Grove](../../../../../translated_images/fr/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) +![Un relais Grove](../../../../../translated_images/fr/grove-relay.d426958ca210fbd0.webp) 1. Insérez une extrémité d'un câble Grove dans la prise du relais. Il ne peut être inséré que dans un seul sens. diff --git a/translations/fr/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md b/translations/fr/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md index 2ccdc893b..2753ec505 100644 --- a/translations/fr/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md +++ b/translations/fr/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md @@ -1,6 +1,6 @@ # Migrez votre plante vers le cloud -![Un aperçu illustré de cette leçon](../../../../../translated_images/fr/lesson-8.3f21f3c11159e6a0a376351973ea5724d5de68fa23b4288853a174bed9ac48c3.jpg) +![Un aperçu illustré de cette leçon](../../../../../translated_images/fr/lesson-8.3f21f3c11159e6a0.webp) > Illustration par [Nitya Narasimhan](https://github.com/nitya). Cliquez sur l'image pour une version agrandie. @@ -46,8 +46,8 @@ Cela pouvait être très coûteux, nécessiter une large gamme de compétences e Le cloud est souvent décrit avec humour comme "l'ordinateur de quelqu'un d'autre". L'idée initiale était simple : au lieu d'acheter des ordinateurs, vous louez ceux de quelqu'un d'autre. Un fournisseur de cloud computing gère d'immenses centres de données. Il s'occupe de tout : achat et installation du matériel, gestion de l'alimentation et du refroidissement, réseau, sécurité des bâtiments, mises à jour matérielles et logicielles, etc. En tant que client, vous louez les ordinateurs dont vous avez besoin, en augmentant la location lorsque la demande augmente, et en la réduisant lorsque la demande diminue. Ces centres de données cloud sont répartis dans le monde entier. -![Un centre de données cloud Microsoft](../../../../../translated_images/fr/azure-region-existing.73f704604f2aa6cb9b5a49ed40e93d4fd81ae3f4e6af4a8ca504023902832f56.png) -![Une expansion planifiée d'un centre de données cloud Microsoft](../../../../../translated_images/fr/azure-region-planned-expansion.a5074a1e8af74f156a73552d502429e5b126ea5019274d767ecb4b9afdad442b.png) +![Un centre de données cloud Microsoft](../../../../../translated_images/fr/azure-region-existing.73f704604f2aa6cb.webp) +![Une expansion planifiée d'un centre de données cloud Microsoft](../../../../../translated_images/fr/azure-region-planned-expansion.a5074a1e8af74f15.webp) Ces centres de données peuvent couvrir plusieurs kilomètres carrés. Les images ci-dessus montrent un centre de données cloud Microsoft il y a quelques années, ainsi qu'une expansion planifiée. La zone dégagée pour l'expansion couvre plus de 5 kilomètres carrés. @@ -108,11 +108,11 @@ Les services IoT dans le cloud résolvent ces problèmes. Ils sont maintenus par Les appareils IoT se connectent à un service cloud soit en utilisant un SDK pour appareils (une bibliothèque qui fournit du code pour travailler avec les fonctionnalités du service), soit directement via un protocole de communication tel que MQTT ou HTTP. Le SDK pour appareils est généralement la voie la plus simple, car il gère tout pour vous, comme les sujets à publier ou à souscrire, et la gestion de la sécurité. -![Les appareils se connectent à un service en utilisant un SDK pour appareils. Le code serveur se connecte également au service via un SDK](../../../../../translated_images/fr/iot-service-connectivity.7e873847921a5d6fd60d0ba3a943210194518cee0d4e362476624316443275c3.png) +![Les appareils se connectent à un service en utilisant un SDK pour appareils. Le code serveur se connecte également au service via un SDK](../../../../../translated_images/fr/iot-service-connectivity.7e873847921a5d6f.webp) Votre appareil communique ensuite avec d'autres parties de votre application via ce service - de manière similaire à la façon dont vous avez envoyé des données et reçu des commandes via MQTT. Cela se fait généralement en utilisant un SDK pour services ou une bibliothèque similaire. Les messages proviennent de votre appareil vers le service, où d'autres composants de votre application peuvent les lire, et des messages peuvent ensuite être renvoyés à votre appareil. -![Les appareils sans clé secrète valide ne peuvent pas se connecter au service IoT](../../../../../translated_images/fr/iot-service-allowed-denied-connection.818b0063ac213fb84204a7229303764d9b467ca430fb822b4ac2fca267d56726.png) +![Les appareils sans clé secrète valide ne peuvent pas se connecter au service IoT](../../../../../translated_images/fr/iot-service-allowed-denied-connection.818b0063ac213fb8.webp) Ces services mettent en œuvre la sécurité en connaissant tous les appareils qui peuvent se connecter et envoyer des données, soit en enregistrant les appareils à l'avance, soit en leur fournissant des clés secrètes ou des certificats qu'ils peuvent utiliser pour s'enregistrer eux-mêmes lors de leur première connexion. Les appareils inconnus ne peuvent pas se connecter ; s'ils essaient, le service rejette la connexion et ignore les messages envoyés par eux. @@ -124,7 +124,7 @@ D'autres composants de votre application peuvent se connecter au service IoT, ob Maintenant que vous avez un abonnement Azure, vous pouvez vous inscrire à un service IoT. Le service IoT de Microsoft s'appelle Azure IoT Hub. -![Le logo Azure IoT Hub](../../../../../translated_images/fr/azure-iot-hub-logo.28a19de76d0a1932464d858f7558712bcdace3e5ec69c434d482ed7ce41c3a26.png) +![Le logo Azure IoT Hub](../../../../../translated_images/fr/azure-iot-hub-logo.28a19de76d0a1932.webp) La vidéo ci-dessous donne un aperçu rapide d'Azure IoT Hub : diff --git a/translations/fr/2-farm/lessons/5-migrate-application-to-the-cloud/README.md b/translations/fr/2-farm/lessons/5-migrate-application-to-the-cloud/README.md index 31eef3d7a..979e49ea5 100644 --- a/translations/fr/2-farm/lessons/5-migrate-application-to-the-cloud/README.md +++ b/translations/fr/2-farm/lessons/5-migrate-application-to-the-cloud/README.md @@ -1,6 +1,6 @@ # Migrer la logique de votre application vers le cloud -![Un aperçu en sketchnote de cette leçon](../../../../../translated_images/fr/lesson-9.dfe99c8e891f48e179724520da9f5794392cf9a625079281ccdcbf09bd85e1b6.jpg) +![Un aperçu en sketchnote de cette leçon](../../../../../translated_images/fr/lesson-9.dfe99c8e891f48e1.webp) > Sketchnote par [Nitya Narasimhan](https://github.com/nitya). Cliquez sur l'image pour une version agrandie. @@ -28,7 +28,7 @@ Dans cette leçon, nous couvrirons : Le sans serveur, ou informatique sans serveur, consiste à créer de petits blocs de code qui s'exécutent dans le cloud en réponse à différents types d'événements. Lorsque l'événement se produit, votre code est exécuté et reçoit des données sur l'événement. Ces événements peuvent provenir de nombreuses sources, notamment des requêtes web, des messages placés dans une file d'attente, des modifications de données dans une base de données ou des messages envoyés à un service IoT par des appareils IoT. -![Des événements envoyés d'un service IoT à un service sans serveur, tous traités simultanément par plusieurs fonctions exécutées](../../../../../translated_images/fr/iot-messages-to-serverless.0194da1cc0732bb7d0f823aed3fce54735c6b1ad3bf36089804d8aaefc0a774f.png) +![Des événements envoyés d'un service IoT à un service sans serveur, tous traités simultanément par plusieurs fonctions exécutées](../../../../../translated_images/fr/iot-messages-to-serverless.0194da1cc0732bb7.webp) > 💁 Si vous avez déjà utilisé des déclencheurs de base de données, vous pouvez considérer cela comme similaire : du code déclenché par un événement tel que l'insertion d'une ligne. @@ -54,7 +54,7 @@ En tant que développeur IoT, le modèle sans serveur est idéal. Vous pouvez é Le service d'informatique sans serveur de Microsoft s'appelle Azure Functions. -![Le logo Azure Functions](../../../../../translated_images/fr/azure-functions-logo.1cfc8e3204c9c44aaf80fcf406fc8544d80d7f00f8d3e8ed6fed764563e17564.png) +![Le logo Azure Functions](../../../../../translated_images/fr/azure-functions-logo.1cfc8e3204c9c44a.webp) La courte vidéo ci-dessous donne un aperçu d'Azure Functions. diff --git a/translations/fr/2-farm/lessons/6-keep-your-plant-secure/README.md b/translations/fr/2-farm/lessons/6-keep-your-plant-secure/README.md index 6ad78370a..10d469a0b 100644 --- a/translations/fr/2-farm/lessons/6-keep-your-plant-secure/README.md +++ b/translations/fr/2-farm/lessons/6-keep-your-plant-secure/README.md @@ -1,6 +1,6 @@ # Gardez votre plante en sécurité -![Un aperçu en sketchnote de cette leçon](../../../../../translated_images/fr/lesson-10.829c86b80b9403bb770929ee553a1d293afe50dc23121aaf9be144673ae012cc.jpg) +![Un aperçu en sketchnote de cette leçon](../../../../../translated_images/fr/lesson-10.829c86b80b9403bb.webp) > Sketchnote par [Nitya Narasimhan](https://github.com/nitya). Cliquez sur l'image pour une version agrandie. @@ -52,11 +52,11 @@ Ce sont des scénarios réels qui se produisent fréquemment. Certains exemples Lorsqu'un appareil se connecte à un service IoT, il utilise un identifiant pour s'identifier. Le problème est que cet identifiant peut être cloné - un hacker pourrait configurer un appareil malveillant utilisant le même identifiant qu'un appareil réel mais envoyant des données erronées. -![Les appareils valides et malveillants pourraient utiliser le même identifiant pour envoyer des télémétries](../../../../../translated_images/fr/iot-device-and-hacked-device-connecting.e0671675df74d6d99eb1dedb5a670e606f698efa6202b1ad4c8ae548db299cc6.png) +![Les appareils valides et malveillants pourraient utiliser le même identifiant pour envoyer des télémétries](../../../../../translated_images/fr/iot-device-and-hacked-device-connecting.e0671675df74d6d9.webp) La solution consiste à convertir les données envoyées en un format brouillé, en utilisant une valeur connue uniquement de l'appareil et du cloud pour brouiller les données. Ce processus est appelé *chiffrement*, et la valeur utilisée pour chiffrer les données est appelée une *clé de chiffrement*. -![Si le chiffrement est utilisé, seuls les messages chiffrés seront acceptés, les autres seront rejetés](../../../../../translated_images/fr/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f979e46f2849b573564eeb4a4dc5b52f669f62745397492fb.png) +![Si le chiffrement est utilisé, seuls les messages chiffrés seront acceptés, les autres seront rejetés](../../../../../translated_images/fr/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f.webp) Le service cloud peut ensuite convertir les données en un format lisible, en utilisant un processus appelé *déchiffrement*, soit avec la même clé de chiffrement, soit avec une *clé de déchiffrement*. Si le message chiffré ne peut pas être déchiffré par la clé, l'appareil a été piraté et le message est rejeté. diff --git a/translations/fr/3-transport/lessons/1-location-tracking/README.md b/translations/fr/3-transport/lessons/1-location-tracking/README.md index 9a234d4b8..41a125578 100644 --- a/translations/fr/3-transport/lessons/1-location-tracking/README.md +++ b/translations/fr/3-transport/lessons/1-location-tracking/README.md @@ -1,6 +1,6 @@ # Suivi de localisation -![Un aperçu en sketchnote de cette leçon](../../../../../translated_images/fr/lesson-11.9fddbac4b664c6d50ab7ac9bb32f1fc3f945f03760e72f7f43938073762fb017.jpg) +![Un aperçu en sketchnote de cette leçon](../../../../../translated_images/fr/lesson-11.9fddbac4b664c6d5.webp) > Sketchnote par [Nitya Narasimhan](https://github.com/nitya). Cliquez sur l'image pour une version agrandie. @@ -63,13 +63,13 @@ La Terre est une sphère - un cercle tridimensionnel. En raison de cela, les poi > 💁 Personne ne sait vraiment pourquoi les cercles sont divisés en 360 degrés. La [page sur le degré (angle) sur Wikipédia](https://wikipedia.org/wiki/Degree_(angle)) couvre certaines des raisons possibles. -![Lignes de latitude allant de 90° au pôle Nord, 45° à mi-chemin entre le pôle Nord et l'équateur, 0° à l'équateur, -45° à mi-chemin entre l'équateur et le pôle Sud, et -90° au pôle Sud](../../../../../translated_images/fr/latitude-lines.11d8d91dfb2014a57437272d7db7fd6607243098e8685f06e0c5f1ec984cb7eb.png) +![Lignes de latitude allant de 90° au pôle Nord, 45° à mi-chemin entre le pôle Nord et l'équateur, 0° à l'équateur, -45° à mi-chemin entre l'équateur et le pôle Sud, et -90° au pôle Sud](../../../../../translated_images/fr/latitude-lines.11d8d91dfb2014a5.webp) La latitude est mesurée à l'aide de lignes qui entourent la Terre et sont parallèles à l'équateur, divisant les hémisphères Nord et Sud en 90° chacun. L'équateur est à 0°, le pôle Nord est à 90°, également connu sous le nom de 90° Nord, et le pôle Sud est à -90°, ou 90° Sud. La longitude est mesurée comme le nombre de degrés mesurés d'est en ouest. L'origine 0° de la longitude est appelée le *méridien de Greenwich*, et a été définie en 1884 comme une ligne allant du pôle Nord au pôle Sud qui passe par l'[Observatoire royal britannique de Greenwich, Angleterre](https://wikipedia.org/wiki/Royal_Observatory,_Greenwich). -![Lignes de longitude allant de -180° à l'ouest du méridien de Greenwich, à 0° sur le méridien de Greenwich, à 180° à l'est du méridien de Greenwich](../../../../../translated_images/fr/longitude-meridians.ab4ef1c91c064586b0185a3c8d39e585903696c6a7d28c098a93a629cddb5d20.png) +![Lignes de longitude allant de -180° à l'ouest du méridien de Greenwich, à 0° sur le méridien de Greenwich, à 180° à l'est du méridien de Greenwich](../../../../../translated_images/fr/longitude-meridians.ab4ef1c91c064586.webp) > 🎓 Un méridien est une ligne imaginaire droite qui va du pôle Nord au pôle Sud, formant un demi-cercle. @@ -100,7 +100,7 @@ Les coordonnées d'un point sont toujours données sous la forme `latitude, long * Une latitude de 47.6423109 (47.6423109 degrés au nord de l'équateur) * Une longitude de -122.1390293 (122.1390293 degrés à l'ouest du méridien de Greenwich). -![Le campus de Microsoft à 47.6423109,-122.117198](../../../../../translated_images/fr/microsoft-gps-location-world.a321d481b010f6adfcca139b2ba0adc53b79f58a540495b8e2ce7f779ea64bfe.png) +![Le campus de Microsoft à 47.6423109,-122.117198](../../../../../translated_images/fr/microsoft-gps-location-world.a321d481b010f6ad.webp) ## Systèmes de Positionnement Global (GPS) @@ -112,7 +112,7 @@ Les systèmes GPS fonctionnent en ayant un certain nombre de satellites qui envo > 💁 Les capteurs GPS ont besoin d'antennes pour détecter les ondes radio. Les antennes intégrées aux camions et voitures équipés de GPS embarqué sont positionnées pour obtenir un bon signal, généralement sur le pare-brise ou le toit. Si vous utilisez un système GPS séparé, comme un smartphone ou un dispositif IoT, vous devez vous assurer que l'antenne intégrée au système GPS ou au téléphone a une vue dégagée du ciel, comme être montée sur votre pare-brise. -![En connaissant la distance entre le capteur et plusieurs satellites, la localisation peut être calculée](../../../../../translated_images/fr/gps-satellites.04acf1148fe25fbf1586bc2e8ba698e8d79b79a50c36824b38417dd13372b90f.png) +![En connaissant la distance entre le capteur et plusieurs satellites, la localisation peut être calculée](../../../../../translated_images/fr/gps-satellites.04acf1148fe25fbf.webp) Les satellites GPS tournent autour de la Terre, et ne sont pas à un point fixe au-dessus du capteur, donc les données de localisation incluent l'altitude au-dessus du niveau de la mer ainsi que la latitude et la longitude. diff --git a/translations/fr/3-transport/lessons/1-location-tracking/pi-gps-sensor.md b/translations/fr/3-transport/lessons/1-location-tracking/pi-gps-sensor.md index 17895c41d..e881e309b 100644 --- a/translations/fr/3-transport/lessons/1-location-tracking/pi-gps-sensor.md +++ b/translations/fr/3-transport/lessons/1-location-tracking/pi-gps-sensor.md @@ -18,13 +18,13 @@ Le capteur GPS Grove peut être connecté au Raspberry Pi. Connectez le capteur GPS. -![Un capteur GPS Grove](../../../../../translated_images/fr/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![Un capteur GPS Grove](../../../../../translated_images/fr/grove-gps-sensor.247943bf69b03f0d.webp) 1. Insérez une extrémité d'un câble Grove dans la prise du capteur GPS. Il ne peut être inséré que dans un seul sens. 1. Avec le Raspberry Pi éteint, connectez l'autre extrémité du câble Grove à la prise UART marquée **UART** sur le Grove Base Hat attaché au Pi. Cette prise se trouve sur la rangée du milieu, du côté le plus proche du slot pour carte SD, à l'opposé des ports USB et de la prise Ethernet. - ![Le capteur GPS Grove connecté à la prise UART](../../../../../translated_images/fr/pi-gps-sensor.1f99ee2b2f6528915047ec78967bd362e0e4ee0ed594368a3837b9cf9cdaca64.png) + ![Le capteur GPS Grove connecté à la prise UART](../../../../../translated_images/fr/pi-gps-sensor.1f99ee2b2f652891.webp) 1. Positionnez le capteur GPS de manière à ce que l'antenne attachée ait une visibilité sur le ciel - idéalement près d'une fenêtre ouverte ou à l'extérieur. Il est plus facile d'obtenir un signal clair sans obstacle devant l'antenne. diff --git a/translations/fr/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md b/translations/fr/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md index ed4966041..2168350e4 100644 --- a/translations/fr/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md +++ b/translations/fr/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md @@ -38,11 +38,11 @@ Ajoutez le capteur GPS à l'application CounterFit. 1. Sélectionnez le bouton **Add** pour créer le capteur GPS sur le port `/dev/ttyAMA0`. - ![Les paramètres du capteur GPS](../../../../../translated_images/fr/counterfit-create-gps-sensor.6385dc9357d85ad1d47b4abb2525e7651fd498917d25eefc5a72feab09eedc70.png) + ![Les paramètres du capteur GPS](../../../../../translated_images/fr/counterfit-create-gps-sensor.6385dc9357d85ad1.webp) Le capteur GPS sera créé et apparaîtra dans la liste des capteurs. - ![Le capteur GPS créé](../../../../../translated_images/fr/counterfit-gps-sensor.3fbb15af0a5367566f2f11324ef5a6f30861cdf2b497071a5e002b7aa473550e.png) + ![Le capteur GPS créé](../../../../../translated_images/fr/counterfit-gps-sensor.3fbb15af0a536756.webp) ## Programmer le capteur GPS @@ -102,17 +102,17 @@ Programmez l'application du capteur GPS. * Définissez la **Source** sur `Lat/Lon`, et spécifiez une latitude, une longitude et un nombre de satellites utilisés pour obtenir la position GPS. Cette valeur sera envoyée une seule fois, alors cochez la case **Repeat** pour que les données se répètent toutes les secondes. - ![Le capteur GPS avec lat lon sélectionné](../../../../../translated_images/fr/counterfit-gps-sensor-latlon.008c867d75464fbe7f84107cc57040df565ac07cb57d2f21db37d087d470197d.png) + ![Le capteur GPS avec lat lon sélectionné](../../../../../translated_images/fr/counterfit-gps-sensor-latlon.008c867d75464fbe.webp) * Définissez la **Source** sur `NMEA` et ajoutez des phrases NMEA dans la boîte de texte. Toutes ces valeurs seront envoyées, avec un délai d'une seconde avant chaque nouvelle phrase GGA (fixation de position). - ![Le capteur GPS avec des phrases NMEA définies](../../../../../translated_images/fr/counterfit-gps-sensor-nmea.c62eea442171e17e19528b051b104cfcecdc9cd18db7bc72920f29821ae63f73.png) + ![Le capteur GPS avec des phrases NMEA définies](../../../../../translated_images/fr/counterfit-gps-sensor-nmea.c62eea442171e17e.webp) Vous pouvez utiliser un outil comme [nmeagen.org](https://www.nmeagen.org) pour générer ces phrases en dessinant sur une carte. Ces valeurs seront envoyées une seule fois, alors cochez la case **Repeat** pour que les données se répètent une seconde après leur envoi complet. * Définissez la **Source** sur fichier GPX, et téléchargez un fichier GPX contenant des emplacements de piste. Vous pouvez télécharger des fichiers GPX depuis plusieurs sites populaires de cartographie et de randonnée, tels que [AllTrails](https://www.alltrails.com/). Ces fichiers contiennent plusieurs emplacements GPS sous forme de parcours, et le capteur GPS renverra chaque nouvel emplacement à des intervalles d'une seconde. - ![Le capteur GPS avec un fichier GPX défini](../../../../../translated_images/fr/counterfit-gps-sensor-gpxfile.8310b063ce8a425ccc8ebeec8306aeac5e8e55207f007d52c6e1194432a70cd9.png) + ![Le capteur GPS avec un fichier GPX défini](../../../../../translated_images/fr/counterfit-gps-sensor-gpxfile.8310b063ce8a425c.webp) Ces valeurs seront envoyées une seule fois, alors cochez la case **Repeat** pour que les données se répètent une seconde après leur envoi complet. diff --git a/translations/fr/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md b/translations/fr/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md index 0dda35577..c93868d36 100644 --- a/translations/fr/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md +++ b/translations/fr/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md @@ -18,7 +18,7 @@ Le capteur Grove GPS peut être connecté au Wio Terminal. Connectez le capteur GPS. -![Un capteur Grove GPS](../../../../../translated_images/fr/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![Un capteur Grove GPS](../../../../../translated_images/fr/grove-gps-sensor.247943bf69b03f0d.webp) 1. Insérez une extrémité d'un câble Grove dans le connecteur du capteur GPS. Il ne peut être inséré que dans un seul sens. diff --git a/translations/fr/3-transport/lessons/2-store-location-data/README.md b/translations/fr/3-transport/lessons/2-store-location-data/README.md index 1c374b3af..6543755dc 100644 --- a/translations/fr/3-transport/lessons/2-store-location-data/README.md +++ b/translations/fr/3-transport/lessons/2-store-location-data/README.md @@ -1,6 +1,6 @@ # Stocker des données de localisation -![Un aperçu en sketchnote de cette leçon](../../../../../translated_images/fr/lesson-12.ca7f53039712a3ec14ad6474d8445361c84adab643edc53fa6269b77895606bb.jpg) +![Un aperçu en sketchnote de cette leçon](../../../../../translated_images/fr/lesson-12.ca7f53039712a3ec.webp) > Sketchnote par [Nitya Narasimhan](https://github.com/nitya). Cliquez sur l'image pour une version agrandie. @@ -75,7 +75,7 @@ Les bases de données NoSQL sont appelées NoSQL car elles n'ont pas la même st > 💁 Malgré leur nom, certaines bases de données NoSQL permettent d'utiliser SQL pour interroger les données. -![Documents dans des dossiers dans une base de données NoSQL](../../../../../translated_images/fr/noqsl-database.62d24ccf5b73f60d35c245a8533f1c7147c0928e955b82cb290b2e184bb434df.png) +![Documents dans des dossiers dans une base de données NoSQL](../../../../../translated_images/fr/noqsl-database.62d24ccf5b73f60d.webp) Les bases de données NoSQL n'ont pas de schéma prédéfini qui limite la manière dont les données sont stockées. Vous pouvez insérer des données non structurées, généralement sous forme de documents JSON. Ces documents peuvent être organisés en dossiers, similaires aux fichiers sur votre ordinateur. Chaque document peut avoir des champs différents des autres documents - par exemple, si vous stockiez des données IoT provenant de vos véhicules agricoles, certains pourraient avoir des champs pour les données d'accéléromètre et de vitesse, d'autres pourraient avoir des champs pour la température dans la remorque. Si vous ajoutiez un nouveau type de camion, comme un camion avec des balances intégrées pour suivre le poids des produits transportés, alors votre dispositif IoT pourrait ajouter ce nouveau champ et il pourrait être stocké sans aucun changement à la base de données. @@ -89,7 +89,7 @@ Dans cette leçon, vous utiliserez un stockage NoSQL pour stocker des données I Dans la dernière leçon, vous avez capturé des données GPS à partir d'un capteur GPS connecté à votre dispositif IoT. Pour stocker ces données IoT dans le cloud, vous devez les envoyer à un service IoT. Une fois de plus, vous utiliserez Azure IoT Hub, le même service IoT cloud que vous avez utilisé dans le projet précédent. -![Envoi de télémétrie GPS d'un dispositif IoT à IoT Hub](../../../../../translated_images/fr/gps-telemetry-iot-hub.8115335d51cd2c1285d20e9d1b18cf685e59a8e093e7797291ef173445af6f3d.png) +![Envoi de télémétrie GPS d'un dispositif IoT à IoT Hub](../../../../../translated_images/fr/gps-telemetry-iot-hub.8115335d51cd2c12.webp) ### Tâche - envoyer des données GPS à un IoT Hub @@ -171,7 +171,7 @@ Les données du chemin froid sont stockées dans des entrepôts de données - de Une fois que les données arrivent dans votre IoT Hub, vous pouvez écrire du code sans serveur pour écouter les événements publiés sur le point de terminaison compatible Event-Hub. Il s'agit du chemin tiède - ces données seront stockées et utilisées dans la prochaine leçon pour établir un rapport sur le trajet. -![Envoi de télémétrie GPS d'un dispositif IoT à IoT Hub, puis à Azure Functions via un déclencheur Event Hub](../../../../../translated_images/fr/gps-telemetry-iot-hub-functions.24d3fa5592455e9f4e2fe73856b40c3915a292b90263c31d652acfd976cfedd8.png) +![Envoi de télémétrie GPS d'un dispositif IoT à IoT Hub, puis à Azure Functions via un déclencheur Event Hub](../../../../../translated_images/fr/gps-telemetry-iot-hub-functions.24d3fa5592455e9f.webp) ### Tâche - gérer les événements GPS avec du code sans serveur @@ -193,7 +193,7 @@ Une fois que les données arrivent dans votre IoT Hub, vous pouvez écrire du co ## Comptes de stockage Azure -![Le logo Azure Storage](../../../../../translated_images/fr/azure-storage-logo.605c0f602c640d482a80f1b35a2629a32d595711b7ab1d7ceea843250615ff32.png) +![Le logo Azure Storage](../../../../../translated_images/fr/azure-storage-logo.605c0f602c640d48.webp) Les comptes de stockage Azure sont un service de stockage polyvalent qui peut stocker des données de différentes manières. Vous pouvez stocker des données sous forme de blobs, dans des files d'attente, dans des tables ou sous forme de fichiers, et tout cela simultanément. diff --git a/translations/fr/3-transport/lessons/3-visualize-location-data/README.md b/translations/fr/3-transport/lessons/3-visualize-location-data/README.md index 9b1478101..1d49569fa 100644 --- a/translations/fr/3-transport/lessons/3-visualize-location-data/README.md +++ b/translations/fr/3-transport/lessons/3-visualize-location-data/README.md @@ -1,6 +1,6 @@ # Visualiser des données de localisation -![Un aperçu illustré de cette leçon](../../../../../translated_images/fr/lesson-13.a259db1485021be7d7c72e90842fbe0ab977529e8684c179b5fb1ea75e92b3ef.jpg) +![Un aperçu illustré de cette leçon](../../../../../translated_images/fr/lesson-13.a259db1485021be7.webp) > Illustration par [Nitya Narasimhan](https://github.com/nitya). Cliquez sur l'image pour une version agrandie. @@ -64,11 +64,11 @@ Prenons un exemple simple : dans le projet agricole, vous avez capturé des mesu Pour un humain, comprendre ces données peut être difficile. C'est une masse de chiffres sans signification apparente. Une première étape pour visualiser ces données consiste à les tracer sur un graphique en courbes : -![Un graphique en courbes des données ci-dessus](../../../../../translated_images/fr/chart-soil-moisture.fd6d9d0cdc0b5f75e78038ecb8945dfc84b38851359de99d84b16e3336d6d7c2.png) +![Un graphique en courbes des données ci-dessus](../../../../../translated_images/fr/chart-soil-moisture.fd6d9d0cdc0b5f75.webp) Cela peut être encore amélioré en ajoutant une ligne indiquant quand le système d'arrosage automatique a été activé à une lecture d'humidité du sol de 450 : -![Un graphique en courbes de l'humidité du sol avec une ligne à 450](../../../../../translated_images/fr/chart-soil-moisture-relay.fbb391236d34a64d0abf1df396e9197e0a24df14150620b9cc820a64a55c9326.png) +![Un graphique en courbes de l'humidité du sol avec une ligne à 450](../../../../../translated_images/fr/chart-soil-moisture-relay.fbb391236d34a64d.webp) Ce graphique montre très rapidement non seulement les niveaux d'humidité du sol, mais aussi les points où le système d'arrosage a été activé. @@ -84,7 +84,7 @@ Lorsqu'on travaille avec des données GPS, la visualisation la plus claire peut Travailler avec des cartes est un exercice intéressant, et il existe de nombreuses options comme Bing Maps, Leaflet, Open Street Maps et Google Maps. Dans cette leçon, vous apprendrez à utiliser [Azure Maps](https://azure.microsoft.com/services/azure-maps/?WT.mc_id=academic-17441-jabenn) et comment ils peuvent afficher vos données GPS. -![Le logo Azure Maps](../../../../../translated_images/fr/azure-maps-logo.35d01dcfbd81fe6140e94257aaa1538f785a58c91576d14e0ebe7a2f6c694b99.png) +![Le logo Azure Maps](../../../../../translated_images/fr/azure-maps-logo.35d01dcfbd81fe61.webp) Azure Maps est "une collection de services géospatiaux et de SDK qui utilisent des données cartographiques actualisées pour fournir un contexte géographique aux applications web et mobiles." Les développeurs disposent d'outils pour créer de belles cartes interactives capables de fournir des itinéraires recommandés, des informations sur les incidents de circulation, une navigation intérieure, des capacités de recherche, des informations sur l'altitude, des services météorologiques et bien plus encore. @@ -185,7 +185,7 @@ Vous pouvez maintenant passer à l'étape suivante, qui consiste à afficher vot Si vous ouvrez votre page `index.html` dans un navigateur web, vous devriez voir une carte chargée, centrée sur la région de Seattle. - ![Une carte montrant Seattle, une ville de l'État de Washington, aux États-Unis](../../../../../translated_images/fr/map-image.8fb2c53eb23ef39c1c0a4410a5282e879b3b452b707eb066ff04c5488d3d72b7.png) + ![Une carte montrant Seattle, une ville de l'État de Washington, aux États-Unis](../../../../../translated_images/fr/map-image.8fb2c53eb23ef39c.webp) ✅ Expérimentez avec les paramètres de zoom et de centre pour modifier l'affichage de votre carte. Vous pouvez ajouter différentes coordonnées correspondant à la latitude et à la longitude de vos données pour recentrer la carte. @@ -318,7 +318,7 @@ Si vous appelez votre stockage pour récupérer les données, vous pourriez êtr 1. Chargez la page HTML dans votre navigateur. Elle chargera la carte, puis toutes les données GPS depuis le stockage et les tracera sur la carte. - ![Une carte du parc d'État Saint Edward près de Seattle, avec des cercles montrant un chemin autour du parc](../../../../../translated_images/fr/map-path.896832e72dc696ffe20650e4051027d4855442d955f93fdbb80bb417ca8a406f.png) + ![Une carte du parc d'État Saint Edward près de Seattle, avec des cercles montrant un chemin autour du parc](../../../../../translated_images/fr/map-path.896832e72dc696ff.webp) > 💁 Vous pouvez trouver ce code dans le dossier [code](../../../../../3-transport/lessons/3-visualize-location-data/code). diff --git a/translations/fr/3-transport/lessons/4-geofences/README.md b/translations/fr/3-transport/lessons/4-geofences/README.md index d3ea60e6d..6273b7907 100644 --- a/translations/fr/3-transport/lessons/4-geofences/README.md +++ b/translations/fr/3-transport/lessons/4-geofences/README.md @@ -1,6 +1,6 @@ # Clôtures géographiques -![Un aperçu illustré de cette leçon](../../../../../translated_images/fr/lesson-14.63980c5150ae3c153e770fb71d044c1845dce79248d86bed9fc525adf3ede73c.jpg) +![Un aperçu illustré de cette leçon](../../../../../translated_images/fr/lesson-14.63980c5150ae3c15.webp) > Illustration par [Nitya Narasimhan](https://github.com/nitya). Cliquez sur l'image pour une version plus grande. @@ -35,7 +35,7 @@ Dans cette leçon, nous aborderons : Une clôture géographique est un périmètre virtuel pour une région géographique réelle. Les clôtures géographiques peuvent être des cercles définis par un point et un rayon (par exemple, un cercle de 100 m autour d'un bâtiment), ou un polygone couvrant une zone comme une zone scolaire, les limites d'une ville, ou un campus universitaire ou d'entreprise. -![Quelques exemples de clôtures géographiques montrant une clôture circulaire autour du magasin Microsoft et une clôture polygonale autour du campus ouest de Microsoft](../../../../../translated_images/fr/geofence-examples.172fbc534665769f6e1a1ddcf75e3b25183cd10354c80cc603ba44b635390e1a.png) +![Quelques exemples de clôtures géographiques montrant une clôture circulaire autour du magasin Microsoft et une clôture polygonale autour du campus ouest de Microsoft](../../../../../translated_images/fr/geofence-examples.172fbc534665769f.webp) > 💁 Vous avez peut-être déjà utilisé des clôtures géographiques sans le savoir. Si vous avez défini un rappel dans l'application Rappels d'iOS ou Google Keep basé sur un emplacement, vous avez utilisé une clôture géographique. Ces applications configurent une clôture géographique en fonction de l'emplacement donné et vous alertent lorsque votre téléphone entre dans la clôture. @@ -212,7 +212,7 @@ Il est important de connaître la distance jusqu'au bord de la clôture géograp Par exemple, imaginez des relevés GPS montrant qu'un véhicule roulait sur une route qui finit par passer à côté d'une clôture géographique. Si une seule valeur GPS est inexacte et place le véhicule à l'intérieur de la clôture géographique, malgré l'absence d'accès pour les véhicules, alors elle peut être ignorée. -![Une trace GPS montrant un véhicule passant à côté du campus Microsoft sur la 520, avec des relevés GPS le long de la route sauf un sur le campus, à l'intérieur d'une clôture géographique](../../../../../translated_images/fr/geofence-crossing-inaccurate-gps.6a3ed911202ad9cabb66d3964888cec03a42c61d5b8f536ad5bdc99716b370f5.png) +![Une trace GPS montrant un véhicule passant à côté du campus Microsoft sur la 520, avec des relevés GPS le long de la route sauf un sur le campus, à l'intérieur d'une clôture géographique](../../../../../translated_images/fr/geofence-crossing-inaccurate-gps.6a3ed911202ad9ca.webp) Dans l'image ci-dessus, il y a une géofence couvrant une partie du campus de Microsoft. La ligne rouge montre un camion circulant le long de la 520, avec des cercles indiquant les relevés GPS. La plupart de ces relevés sont précis et suivent la 520, mais un relevé erroné apparaît à l'intérieur de la géofence. Il est impossible que ce relevé soit correct - il n'y a pas de routes permettant au camion de quitter soudainement la 520 pour entrer sur le campus, puis revenir sur la 520. Le code qui vérifie cette géofence devra prendre en compte les relevés précédents avant d'agir sur les résultats du test de la géofence. ✅ Quelles données supplémentaires auriez-vous besoin de vérifier pour déterminer si un relevé GPS peut être considéré comme correct ? @@ -284,7 +284,7 @@ Comme vous vous en souvenez des leçons précédentes, l'IoT Hub vous permet de La réponse est qu'il ne peut pas ! À la place, vous pouvez définir plusieurs connexions distinctes pour lire les événements, et chacune peut gérer la relecture des messages non lus. Ces connexions sont appelées *groupes de consommateurs*. Lorsque vous vous connectez au point de terminaison, vous pouvez spécifier le groupe de consommateurs auquel vous souhaitez vous connecter. Chaque composant de votre application se connectera à un groupe de consommateurs différent. -![Un IoT Hub avec 3 groupes de consommateurs distribuant les mêmes messages à 3 applications Functions différentes](../../../../../translated_images/fr/consumer-groups.a3262e26fc27ba2092863678ad57af15c7223416e388a23f330c058cf4358630.png) +![Un IoT Hub avec 3 groupes de consommateurs distribuant les mêmes messages à 3 applications Functions différentes](../../../../../translated_images/fr/consumer-groups.a3262e26fc27ba20.webp) En théorie, jusqu'à 5 applications peuvent se connecter à chaque groupe de consommateurs, et elles recevront toutes les messages lorsqu'ils arriveront. Il est recommandé de n'avoir qu'une seule application accédant à chaque groupe de consommateurs pour éviter le traitement en double des messages et garantir qu'au redémarrage, tous les messages en file d'attente sont correctement traités. Par exemple, si vous lancez votre application Functions localement tout en l'exécutant dans le cloud, elles traiteront toutes les deux les messages, ce qui entraînera des blobs en double stockés dans le compte de stockage. diff --git a/translations/fr/4-manufacturing/lessons/1-train-fruit-detector/README.md b/translations/fr/4-manufacturing/lessons/1-train-fruit-detector/README.md index 7e1f84fc0..9415dca72 100644 --- a/translations/fr/4-manufacturing/lessons/1-train-fruit-detector/README.md +++ b/translations/fr/4-manufacturing/lessons/1-train-fruit-detector/README.md @@ -1,6 +1,6 @@ # Former un détecteur de qualité des fruits -![Un aperçu illustré de cette leçon](../../../../../translated_images/fr/lesson-15.843d21afdc6fb2bba70cd9db7b7d2f91598859fafda2078b0bdc44954194b6c0.jpg) +![Un aperçu illustré de cette leçon](../../../../../translated_images/fr/lesson-15.843d21afdc6fb2bb.webp) > Illustration par [Nitya Narasimhan](https://github.com/nitya). Cliquez sur l'image pour une version agrandie. @@ -38,7 +38,7 @@ Toutes les cultures ne mûrissent pas uniformément. Les tomates, par exemple, p L'essor de la récolte automatisée a déplacé le tri des produits de la récolte à l'usine. Les aliments voyagent sur de longs tapis roulants avec des équipes de personnes qui trient les produits en retirant tout ce qui ne répond pas aux normes de qualité requises. La récolte était moins chère grâce aux machines, mais il y avait toujours un coût pour trier manuellement les aliments. -![Si une tomate rouge est détectée, elle continue son chemin sans interruption. Si une tomate verte est détectée, elle est poussée dans une poubelle par un levier](../../../../../translated_images/fr/optical-tomato-sorting.61aa134bdda4e5b1bfb16a212c1e35a6ef0c426cbb8b1c975f79d7bfbf48d068.png) +![Si une tomate rouge est détectée, elle continue son chemin sans interruption. Si une tomate verte est détectée, elle est poussée dans une poubelle par un levier](../../../../../translated_images/fr/optical-tomato-sorting.61aa134bdda4e5b1.webp) L'évolution suivante a été d'utiliser des machines pour trier, soit intégrées dans la moissonneuse, soit dans les usines de traitement. La première génération de ces machines utilisait des capteurs optiques pour détecter les couleurs, contrôlant des actionneurs pour pousser les tomates vertes dans une poubelle à l'aide de leviers ou de jets d'air, laissant les tomates rouges continuer sur un réseau de tapis roulants. @@ -62,7 +62,7 @@ Par exemple, vous pourriez donner à un modèle des millions de photos de banane > 🎓 Les résultats des modèles de ML sont appelés *prédictions* -![2 bananes, une mûre avec une prédiction de 99,7% mûre, 0,3% non mûre, et une non mûre avec une prédiction de 1,4% mûre, 98,6% non mûre](../../../../../translated_images/fr/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50ece4e4589e724b142da0681f35470fe3db3f7d51240f69c85.png) +![2 bananes, une mûre avec une prédiction de 99,7% mûre, 0,3% non mûre, et une non mûre avec une prédiction de 1,4% mûre, 98,6% non mûre](../../../../../translated_images/fr/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50e.webp) Les modèles de ML ne donnent pas une réponse binaire, mais plutôt des probabilités. Par exemple, un modèle peut recevoir une photo de banane et prédire `mûr` à 99,7% et `non mûr` à 0,3%. Votre code choisirait alors la meilleure prédiction et déciderait que la banane est mûre. @@ -90,7 +90,7 @@ Il existe une large gamme d'outils qui peuvent vous aider à faire cela, y compr Custom Vision est un outil basé sur le cloud pour entraîner des classificateurs d'images. Il vous permet d'entraîner un classificateur en utilisant seulement un petit nombre d'images. Vous pouvez télécharger des images via un portail web, une API web ou un SDK, en attribuant à chaque image une *étiquette* correspondant à sa classification. Vous entraînez ensuite le modèle et le testez pour voir ses performances. Une fois satisfait du modèle, vous pouvez publier des versions accessibles via une API web ou un SDK. -![Le logo Azure Custom Vision](../../../../../translated_images/fr/custom-vision-logo.d3d4e7c8a87ec9daf825e72e210576c3cbf60312577be7a139e22dd97ab7f1e6.png) +![Le logo Azure Custom Vision](../../../../../translated_images/fr/custom-vision-logo.d3d4e7c8a87ec9da.webp) > 💁 Vous pouvez entraîner un modèle Custom Vision avec seulement 5 images par classification, mais plus il y en a, mieux c'est. Vous obtiendrez de meilleurs résultats avec au moins 30 images. @@ -146,7 +146,7 @@ Pour utiliser Custom Vision, vous devez d'abord créer deux ressources Cognitive Lors de la création de votre projet, assurez-vous d'utiliser la ressource `fruit-quality-detector-training` que vous avez créée précédemment. Utilisez un type de projet *Classification*, un type de classification *Multiclass*, et le domaine *Food*. - ![Les paramètres du projet Custom Vision avec le nom défini sur fruit-quality-detector, aucune description, la ressource définie sur fruit-quality-detector-training, le type de projet défini sur classification, le type de classification défini sur multiclass et le domaine défini sur food](../../../../../translated_images/fr/custom-vision-create-project.cf46325b92d8b131089f6647cf5e07b664cb77850e106d66e3c057b6b69756c6.png) + ![Les paramètres du projet Custom Vision avec le nom défini sur fruit-quality-detector, aucune description, la ressource définie sur fruit-quality-detector-training, le type de projet défini sur classification, le type de classification défini sur multiclass et le domaine défini sur food](../../../../../translated_images/fr/custom-vision-create-project.cf46325b92d8b131.webp) ✅ Prenez le temps d'explorer l'interface utilisateur Custom Vision pour votre classificateur d'images. @@ -164,7 +164,7 @@ Les classificateurs d'images fonctionnent à très basse résolution. Par exempl * En utilisant 2 bananes mûres, prenez plusieurs photos de chacune sous différents angles, en prenant au moins 7 photos (5 pour l'entraînement, 2 pour le test), mais idéalement plus. - ![Photos de 2 bananes différentes](../../../../../translated_images/fr/banana-training-images.530eb203346d73bc23b8b990fb4609470bf4ff7c942ccc13d4cfffeed9be1ad4.png) + ![Photos de 2 bananes différentes](../../../../../translated_images/fr/banana-training-images.530eb203346d73bc.webp) * Répétez le même processus avec 2 bananes non mûres. @@ -174,7 +174,7 @@ Les classificateurs d'images fonctionnent à très basse résolution. Par exempl 1. Suivez la [section sur le téléchargement et l'étiquetage des images du guide de démarrage rapide pour créer un classificateur sur la documentation Microsoft](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) pour télécharger vos images d'entraînement. Étiquetez les fruits mûrs comme `ripe` et les fruits non mûrs comme `unripe`. - ![Les boîtes de dialogue de téléchargement montrant l'importation d'images de bananes mûres et non mûres](../../../../../translated_images/fr/image-upload-bananas.0751639f3815e0ec42bdbc6254d1e4357a185834d1ae10c9948a0e7d6d336695.png) + ![Les boîtes de dialogue de téléchargement montrant l'importation d'images de bananes mûres et non mûres](../../../../../translated_images/fr/image-upload-bananas.0751639f3815e0ec.webp) 1. Suivez la [section sur l'entraînement du classificateur du guide de démarrage rapide pour créer un classificateur sur la documentation Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#train-the-classifier) pour entraîner le classificateur d'images avec vos images téléchargées. @@ -192,7 +192,7 @@ Une fois votre classificateur entraîné, vous pouvez le tester en lui fournissa 1. Suivez la [documentation sur le test de votre modèle sur la documentation Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/test-your-model?WT.mc_id=academic-17441-jabenn#test-your-model) pour tester votre classificateur d'images. Utilisez les images de test que vous avez créées précédemment, et non celles utilisées pour l'entraînement. - ![Une banane non mûre prédite comme non mûre avec une probabilité de 98,9 %, mûre avec une probabilité de 1,1 %](../../../../../translated_images/fr/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64886422438850ea14f0be6ac918c217ea3b255c685abfabe7.png) + ![Une banane non mûre prédite comme non mûre avec une probabilité de 98,9 %, mûre avec une probabilité de 1,1 %](../../../../../translated_images/fr/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64.webp) 1. Essayez toutes les images de test dont vous disposez et observez les probabilités. diff --git a/translations/fr/4-manufacturing/lessons/2-check-fruit-from-device/README.md b/translations/fr/4-manufacturing/lessons/2-check-fruit-from-device/README.md index f40b5c0f5..d7d41f8e5 100644 --- a/translations/fr/4-manufacturing/lessons/2-check-fruit-from-device/README.md +++ b/translations/fr/4-manufacturing/lessons/2-check-fruit-from-device/README.md @@ -1,6 +1,6 @@ # Vérifier la qualité des fruits avec un appareil IoT -![Un aperçu illustré de cette leçon](../../../../../translated_images/fr/lesson-16.215daf18b00631fbdfd64c6fc2dc6044dff5d544288825d8076f9fb83d964c23.jpg) +![Un aperçu illustré de cette leçon](../../../../../translated_images/fr/lesson-16.215daf18b00631fb.webp) > Illustration par [Nitya Narasimhan](https://github.com/nitya). Cliquez sur l'image pour une version agrandie. @@ -26,7 +26,7 @@ Dans cette leçon, nous aborderons : Les capteurs de caméra, comme leur nom l'indique, sont des caméras que vous pouvez connecter à votre appareil IoT. Ils peuvent prendre des images fixes ou capturer des vidéos en streaming. Certains renvoient des données d'image brutes, tandis que d'autres compressent les données en fichiers image tels que JPEG ou PNG. En général, les caméras compatibles avec les appareils IoT sont beaucoup plus petites et de résolution inférieure à ce que vous pourriez utiliser habituellement, mais il existe des caméras haute résolution qui rivalisent avec les meilleurs téléphones. Vous pouvez également trouver des objectifs interchangeables, des configurations multi-caméras, des caméras thermiques infrarouges ou des caméras UV. -![La lumière d'une scène passe à travers une lentille et est focalisée sur un capteur CMOS](../../../../../translated_images/fr/cmos-sensor.75f9cd74decb137149a4c9ea825251a4549497d67c0ae2776159e6102bb53aa9.png) +![La lumière d'une scène passe à travers une lentille et est focalisée sur un capteur CMOS](../../../../../translated_images/fr/cmos-sensor.75f9cd74decb1371.webp) La plupart des capteurs de caméra utilisent des capteurs d'image où chaque pixel est une photodiode. Une lentille focalise l'image sur le capteur d'image, et des milliers ou millions de photodiodes détectent la lumière qui tombe sur chacune d'elles, enregistrant cela comme des données de pixels. @@ -74,7 +74,7 @@ Les itérations sont publiées depuis le portail Custom Vision. 1. Cliquez sur le bouton **Publish** pour l'itération. - ![Le bouton publier](../../../../../translated_images/fr/custom-vision-publish-button.b7174e1977b0c33b8b72d4e5b1326c779e0af196f3849d09985ee2d7d5493a39.png) + ![Le bouton publier](../../../../../translated_images/fr/custom-vision-publish-button.b7174e1977b0c33b.webp) 1. Dans la boîte de dialogue *Publish Model*, définissez la ressource *Prediction resource* sur la ressource `fruit-quality-detector-prediction` que vous avez créée dans la dernière leçon. Laissez le nom comme `Iteration2`, puis cliquez sur le bouton **Publish**. @@ -88,7 +88,7 @@ Les itérations sont publiées depuis le portail Custom Vision. Copiez également la valeur de la *Prediction-Key*. Il s'agit d'une clé sécurisée que vous devez transmettre lorsque vous appelez le modèle. Seules les applications qui transmettent cette clé sont autorisées à utiliser le modèle, toutes les autres applications sont rejetées. - ![La boîte de dialogue de l'API de prédiction montrant l'URL et la clé](../../../../../translated_images/fr/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![La boîte de dialogue de l'API de prédiction montrant l'URL et la clé](../../../../../translated_images/fr/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ Lorsqu'une nouvelle itération est publiée, elle aura un nom différent. Comment pensez-vous que vous pourriez changer l'itération utilisée par un appareil IoT ? @@ -109,7 +109,7 @@ Vous pourriez constater que les résultats obtenus avec la caméra connectée à Pour obtenir les meilleurs résultats avec un classificateur d'images, vous devez entraîner le modèle avec des images aussi similaires que possible à celles utilisées pour les prédictions. Par exemple, si vous avez utilisé l'appareil photo de votre téléphone pour capturer des images d'entraînement, la qualité, la netteté et les couleurs des images seront différentes de celles d'une caméra connectée à un appareil IoT. -![2 photos de bananes, une de basse résolution avec un mauvais éclairage prise par un appareil IoT, et une de haute résolution avec un bon éclairage prise par un téléphone](../../../../../translated_images/fr/banana-picture-compare.174df164dc326a42cf7fb051a7497e6113c620e91552d92ca914220305d47d9a.png) +![2 photos de bananes, une de basse résolution avec un mauvais éclairage prise par un appareil IoT, et une de haute résolution avec un bon éclairage prise par un téléphone](../../../../../translated_images/fr/banana-picture-compare.174df164dc326a42.webp) Dans l'image ci-dessus, la photo de banane à gauche a été prise avec une caméra Raspberry Pi, tandis que celle de droite a été prise du même fruit au même endroit avec un iPhone. Il y a une différence notable de qualité : la photo de l'iPhone est plus nette, avec des couleurs plus vives et un meilleur contraste. diff --git a/translations/fr/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md b/translations/fr/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md index 413358057..e488f78c2 100644 --- a/translations/fr/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md +++ b/translations/fr/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md @@ -16,7 +16,7 @@ La caméra peut être connectée au Raspberry Pi à l'aide d'un câble ruban. ### Tâche - connecter la caméra -![Une caméra Raspberry Pi](../../../../../translated_images/fr/pi-camera-module.4278753c31bd6e757aa2b858be97d72049f71616278cefe4fb5abb485b40a078.png) +![Une caméra Raspberry Pi](../../../../../translated_images/fr/pi-camera-module.4278753c31bd6e75.webp) 1. Éteignez le Raspberry Pi. @@ -24,17 +24,17 @@ La caméra peut être connectée au Raspberry Pi à l'aide d'un câble ruban. Vous pouvez trouver une animation montrant comment ouvrir le clip et insérer le câble dans la [documentation Raspberry Pi pour débuter avec le module caméra](https://projects.raspberrypi.org/en/projects/getting-started-with-picamera/2). - ![Le câble ruban inséré dans le module caméra](../../../../../translated_images/fr/pi-camera-ribbon-cable.0bf82acd251611c21ac616f082849413e2b322a261d0e4f8fec344248083b07e.png) + ![Le câble ruban inséré dans le module caméra](../../../../../translated_images/fr/pi-camera-ribbon-cable.0bf82acd251611c2.webp) 1. Retirez le Grove Base Hat du Raspberry Pi. 1. Faites passer le câble ruban à travers la fente pour caméra du Grove Base Hat. Assurez-vous que le côté bleu du câble est orienté vers les ports analogiques étiquetés **A0**, **A1**, etc. - ![Le câble ruban passant à travers le Grove Base Hat](../../../../../translated_images/fr/grove-base-hat-ribbon-cable.501fed202fcf73b11b2b68f6d246189f7d15d3e4423c572ddee79d77b4632b47.png) + ![Le câble ruban passant à travers le Grove Base Hat](../../../../../translated_images/fr/grove-base-hat-ribbon-cable.501fed202fcf73b1.webp) 1. Insérez le câble ruban dans le port caméra du Raspberry Pi. Une fois encore, tirez le clip en plastique noir vers le haut, insérez le câble, puis repoussez le clip en place. Le côté bleu du câble doit être orienté vers les ports USB et Ethernet. - ![Le câble ruban connecté à la prise caméra du Raspberry Pi](../../../../../translated_images/fr/pi-camera-socket-ribbon-cable.a18309920b11800911082ed7aa6fb28e6d9be3a022e4079ff990016cae3fca10.png) + ![Le câble ruban connecté à la prise caméra du Raspberry Pi](../../../../../translated_images/fr/pi-camera-socket-ribbon-cable.a18309920b118009.webp) 1. Remettez en place le Grove Base Hat. @@ -101,7 +101,7 @@ Programmez l'appareil. La ligne `camera.rotation = 0` définit la rotation de l'image. Le câble ruban entre par le bas de la caméra, mais si votre caméra est tournée pour mieux pointer vers l'objet que vous souhaitez classifier, vous pouvez modifier cette ligne avec le nombre de degrés de rotation. - ![La caméra suspendue au-dessus d'une canette](../../../../../translated_images/fr/pi-camera-upside-down.5376961ba31459883362124152ad6b823d5ac5fc14e85f317e22903bd681c2b6.png) + ![La caméra suspendue au-dessus d'une canette](../../../../../translated_images/fr/pi-camera-upside-down.5376961ba3145988.webp) Par exemple, si vous suspendez le câble ruban de manière à ce qu'il soit au-dessus de la caméra, définissez la rotation à 180 : diff --git a/translations/fr/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md b/translations/fr/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md index c4145b023..b16266a97 100644 --- a/translations/fr/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md +++ b/translations/fr/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md @@ -84,7 +84,7 @@ Le service Custom Vision dispose d'un SDK Python que vous pouvez utiliser pour c Vous pourrez voir l'image qui a été prise, ainsi que ces valeurs dans l'onglet **Predictions** de Custom Vision. - ![Une banane dans Custom Vision prédite comme mûre à 56,8 % et non mûre à 43,1 %](../../../../../translated_images/fr/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![Une banane dans Custom Vision prédite comme mûre à 56,8 % et non mûre à 43,1 %](../../../../../translated_images/fr/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 Vous pouvez trouver ce code dans le dossier [code-classify/pi](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/pi) ou [code-classify/virtual-iot-device](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/virtual-iot-device). diff --git a/translations/fr/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md b/translations/fr/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md index 31e7fe64f..fd8528cfb 100644 --- a/translations/fr/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md +++ b/translations/fr/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md @@ -34,11 +34,11 @@ Ajoutez la caméra à l'application CounterFit. 1. Sélectionnez le bouton **Ajouter** pour créer la caméra. - ![Les paramètres de la caméra](../../../../../translated_images/fr/counterfit-create-camera.a5de97f59c0bd3cbe0416d7e89a3cfe86d19fbae05c641c53a91286412af0a34.png) + ![Les paramètres de la caméra](../../../../../translated_images/fr/counterfit-create-camera.a5de97f59c0bd3cb.webp) La caméra sera créée et apparaîtra dans la liste des capteurs. - ![La caméra créée](../../../../../translated_images/fr/counterfit-camera.001ec52194c8ee5d3f617173da2c79e1df903d10882adc625cbfc493525125d4.png) + ![La caméra créée](../../../../../translated_images/fr/counterfit-camera.001ec52194c8ee5d.webp) ## Programmer la caméra @@ -103,7 +103,7 @@ Programmez l'appareil. 1. Configurez l'image que la caméra dans CounterFit capturera. Vous pouvez soit définir la *Source* sur *Fichier*, puis télécharger un fichier image, soit définir la *Source* sur *WebCam*, et les images seront capturées depuis votre webcam. Assurez-vous de sélectionner le bouton **Définir** après avoir choisi une image ou votre webcam. - ![CounterFit avec un fichier défini comme source d'image, et une webcam montrant une personne tenant une banane dans un aperçu de la webcam](../../../../../translated_images/fr/counterfit-camera-options.eb3bd5150a8e7dffbf24bc5bcaba0cf2cdef95fbe6bbe393695d173817d6b8df.png) + ![CounterFit avec un fichier défini comme source d'image, et une webcam montrant une personne tenant une banane dans un aperçu de la webcam](../../../../../translated_images/fr/counterfit-camera-options.eb3bd5150a8e7dff.webp) 1. Une image sera capturée et enregistrée sous le nom `image.jpg` dans le dossier actuel. Vous verrez ce fichier dans l'explorateur de VS Code. Sélectionnez le fichier pour afficher l'image. Si elle nécessite une rotation, mettez à jour la ligne `camera.rotation = 0` selon les besoins et prenez une autre photo. diff --git a/translations/fr/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md b/translations/fr/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md index a6e82d52d..d9e5bbc44 100644 --- a/translations/fr/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md +++ b/translations/fr/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md @@ -16,7 +16,7 @@ L'ArduCam n'a pas de prise Grove, elle se connecte donc aux bus SPI et I2C via l Connectez la caméra. -![Un capteur ArduCam](../../../../../translated_images/fr/arducam.20e4e4cbb268296570b5914e20d6c349fc42ddac9ed4e1b9deba2188204eebae.png) +![Un capteur ArduCam](../../../../../translated_images/fr/arducam.20e4e4cbb2682965.webp) 1. Les broches à la base de l'ArduCam doivent être connectées aux broches GPIO du Wio Terminal. Pour faciliter l'identification des broches, attachez l'autocollant des broches GPIO fourni avec le Wio Terminal autour des broches : @@ -35,7 +35,7 @@ Connectez la caméra. | SDA | 3 (I2C1_SDA) | Données série I2C | | SCL | 5 (I2C1_SCL) | Horloge série I2C | - ![Le Wio Terminal connecté à l'ArduCam avec des fils de connexion](../../../../../translated_images/fr/arducam-wio-terminal-connections.a4d5a4049bdb5ab800a2877389fc6ecf5e4ff307e6451ff56c517e6786467d0a.png) + ![Le Wio Terminal connecté à l'ArduCam avec des fils de connexion](../../../../../translated_images/fr/arducam-wio-terminal-connections.a4d5a4049bdb5ab8.webp) Les connexions GND et VCC fournissent une alimentation de 5V à l'ArduCam. Elle fonctionne à 5V, contrairement aux capteurs Grove qui fonctionnent à 3V. Cette alimentation provient directement de la connexion USB-C qui alimente l'appareil. @@ -456,7 +456,7 @@ Le Wio Terminal ne prend en charge que les cartes microSD d'une capacité maxima 1. Éteignez le Wio Terminal et éjectez la carte microSD en la poussant légèrement pour la libérer. Vous devrez peut-être utiliser un outil fin pour cela. Insérez la carte microSD dans votre ordinateur pour visualiser les images. - ![Une photo d'une banane capturée avec l'ArduCam](../../../../../translated_images/fr/banana-arducam.be1b32d4267a8194b0fd042362e56faa431da9cd4af172051b37243ea9be0256.jpg) + ![Une photo d'une banane capturée avec l'ArduCam](../../../../../translated_images/fr/banana-arducam.be1b32d4267a8194.webp) > 💁 Il peut falloir quelques images pour que la balance des blancs de la caméra s'ajuste. Vous le remarquerez en fonction de la couleur des images capturées, les premières peuvent sembler décolorées. Vous pouvez toujours contourner cela en modifiant le code pour capturer quelques images qui sont ignorées dans la fonction `setup`. diff --git a/translations/fr/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md b/translations/fr/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md index a3d25c2b4..8966351a5 100644 --- a/translations/fr/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md +++ b/translations/fr/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md @@ -208,7 +208,7 @@ Ces certificats contiennent des clés publiques et n'ont pas besoin d'être gard Vous pourrez voir l'image capturée et ces valeurs dans l'onglet **Predictions** de Custom Vision. - ![Une banane dans Custom Vision prédite mûre à 56,8 % et non mûre à 43,1 %](../../../../../translated_images/fr/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![Une banane dans Custom Vision prédite mûre à 56,8 % et non mûre à 43,1 %](../../../../../translated_images/fr/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 Vous pouvez trouver ce code dans le dossier [code-classify/wio-terminal](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/wio-terminal). diff --git a/translations/fr/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md b/translations/fr/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md index 31f693bf1..3cd480771 100644 --- a/translations/fr/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md +++ b/translations/fr/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md @@ -1,6 +1,6 @@ # Exécutez votre détecteur de fruits en périphérie -![Un aperçu illustré de cette leçon](../../../../../translated_images/fr/lesson-17.bc333c3c35ba8e42cce666cfffa82b915f787f455bd94e006aea2b6f2722421a.jpg) +![Un aperçu illustré de cette leçon](../../../../../translated_images/fr/lesson-17.bc333c3c35ba8e42.webp) > Illustration par [Nitya Narasimhan](https://github.com/nitya). Cliquez sur l'image pour une version agrandie. @@ -33,11 +33,11 @@ Dans cette leçon, nous aborderons : L'informatique en périphérie consiste à traiter les données IoT aussi près que possible de l'endroit où elles sont générées. Au lieu de traiter ces données dans le cloud, ce traitement est déplacé à la périphérie du cloud - sur votre réseau interne. -![Un diagramme d'architecture montrant des services Internet dans le cloud et des appareils IoT sur un réseau local](../../../../../translated_images/fr/cloud-without-edge.b4da641f6022c95ed6b91fde8b5323abd2f94e0d52073ad54172ae8f5dac90e9.png) +![Un diagramme d'architecture montrant des services Internet dans le cloud et des appareils IoT sur un réseau local](../../../../../translated_images/fr/cloud-without-edge.b4da641f6022c95e.webp) Dans les leçons précédentes, vos appareils collectaient des données et les envoyaient au cloud pour analyse, en exécutant des fonctions sans serveur ou des modèles d'IA dans le cloud. -![Un diagramme d'architecture montrant des appareils IoT sur un réseau local se connectant à des appareils en périphérie, et ces appareils en périphérie se connectant au cloud](../../../../../translated_images/fr/cloud-with-edge.1e26462c62c126fe150bd15a5714ddf0be599f09bacbad08b85be02b76ea1ae1.png) +![Un diagramme d'architecture montrant des appareils IoT sur un réseau local se connectant à des appareils en périphérie, et ces appareils en périphérie se connectant au cloud](../../../../../translated_images/fr/cloud-with-edge.1e26462c62c126fe.webp) L'informatique en périphérie consiste à déplacer certains services cloud hors du cloud et sur des ordinateurs fonctionnant sur le même réseau que les appareils IoT, ne communiquant avec le cloud que si nécessaire. Par exemple, vous pouvez exécuter des modèles d'IA sur des appareils en périphérie pour analyser la maturité des fruits, et n'envoyer que des analyses au cloud, comme le nombre de fruits mûrs par rapport aux fruits non mûrs. @@ -85,7 +85,7 @@ Pour les systèmes IoT, vous voudrez souvent un mélange d'informatique en péri ## Azure IoT Edge -![Le logo Azure IoT Edge](../../../../../translated_images/fr/azure-iot-edge-logo.c1c076749b5cba2e8755262fadc2f19ca1146b948d76990b1229199ac2292d79.png) +![Le logo Azure IoT Edge](../../../../../translated_images/fr/azure-iot-edge-logo.c1c076749b5cba2e.webp) Azure IoT Edge est un service qui peut vous aider à déplacer des charges de travail hors du cloud vers la périphérie. Vous configurez un appareil comme appareil en périphérie, et depuis le cloud, vous pouvez déployer du code sur cet appareil. Cela vous permet de combiner les capacités du cloud et de la périphérie. @@ -99,7 +99,7 @@ IoT Edge est intégré à IoT Hub, vous permettant de gérer les appareils en p IoT Edge exécute du code à partir de *conteneurs* - des applications autonomes exécutées en isolation des autres applications sur votre ordinateur. Lorsqu'un conteneur est exécuté, il agit comme un ordinateur distinct fonctionnant à l'intérieur de votre ordinateur, avec ses propres logiciels, services et applications. La plupart du temps, les conteneurs ne peuvent accéder à rien sur votre ordinateur, sauf si vous choisissez de partager des éléments comme un dossier avec le conteneur. Le conteneur expose ensuite des services via un port ouvert auquel vous pouvez vous connecter ou exposer à votre réseau. -![Une requête web redirigée vers un conteneur](../../../../../translated_images/fr/container-web-browser.4ee81dd4f0d8838ce622b2a0d600b6a4322b5d4fe43159facd87b7b34f84d66a.png) +![Une requête web redirigée vers un conteneur](../../../../../translated_images/fr/container-web-browser.4ee81dd4f0d8838c.webp) Par exemple, vous pouvez avoir un conteneur avec un site web fonctionnant sur le port 80, le port HTTP par défaut, et vous pouvez ensuite l'exposer depuis votre ordinateur également sur le port 80. @@ -196,11 +196,11 @@ Une fois le modèle entraîné, il doit être exporté sous forme de conteneur. ## Préparer votre conteneur pour le déploiement -![Les conteneurs sont construits puis poussés vers un registre de conteneurs, puis déployés depuis le registre vers un appareil edge à l'aide de IoT Edge](../../../../../translated_images/fr/container-edge-flow.c246050dd60ceefdb6ace026a4ce5c6aa4112bb5898ae23fbb2ab4be29ae3e1b.png) +![Les conteneurs sont construits puis poussés vers un registre de conteneurs, puis déployés depuis le registre vers un appareil edge à l'aide de IoT Edge](../../../../../translated_images/fr/container-edge-flow.c246050dd60ceefd.webp) Une fois que vous avez téléchargé votre modèle, il doit être construit dans un conteneur, puis poussé vers un registre de conteneurs - un emplacement en ligne où vous pouvez stocker des conteneurs. IoT Edge peut ensuite télécharger le conteneur depuis le registre et le pousser vers votre appareil. -![Logo du registre de conteneurs Azure](../../../../../translated_images/fr/azure-container-registry-logo.09494206991d4b295025ebff7d4e2900325e527a59184ffbc8464b6ab59654be.png) +![Logo du registre de conteneurs Azure](../../../../../translated_images/fr/azure-container-registry-logo.09494206991d4b29.webp) Le registre de conteneurs que vous utiliserez pour cette leçon est Azure Container Registry. Ce n'est pas un service gratuit, donc pour économiser de l'argent, assurez-vous de [nettoyer votre projet](../../../clean-up.md) une fois terminé. diff --git a/translations/fr/4-manufacturing/lessons/4-trigger-fruit-detector/README.md b/translations/fr/4-manufacturing/lessons/4-trigger-fruit-detector/README.md index c636f92df..5897065c9 100644 --- a/translations/fr/4-manufacturing/lessons/4-trigger-fruit-detector/README.md +++ b/translations/fr/4-manufacturing/lessons/4-trigger-fruit-detector/README.md @@ -1,6 +1,6 @@ # Déclencher la détection de la qualité des fruits à partir d'un capteur -![Un aperçu en sketchnote de cette leçon](../../../../../translated_images/fr/lesson-18.92c32ed1d354caa5a54baa4032cf0b172d4655e8e326ad5d46c558a0def15365.jpg) +![Un aperçu en sketchnote de cette leçon](../../../../../translated_images/fr/lesson-18.92c32ed1d354caa5.webp) > Sketchnote par [Nitya Narasimhan](https://github.com/nitya). Cliquez sur l'image pour une version agrandie. @@ -39,7 +39,7 @@ Les applications IoT peuvent être décrites comme des *objets* (appareils) envo ### Architecture IoT de référence -![Une architecture IoT de référence](../../../../../translated_images/fr/iot-reference-architecture.2278b98b55c6d4e89bde18eada3688d893861d43507641804dd2f9d3079cfaa0.png) +![Une architecture IoT de référence](../../../../../translated_images/fr/iot-reference-architecture.2278b98b55c6d4e8.webp) Le diagramme ci-dessus montre une architecture IoT de référence. @@ -49,7 +49,7 @@ Le diagramme ci-dessus montre une architecture IoT de référence. * **Informations** : elles proviennent d'applications sans serveur ou d'analyses effectuées sur des données stockées. * **Actions** : elles peuvent être des commandes envoyées aux appareils ou des visualisations de données permettant aux humains de prendre des décisions. -![Une architecture IoT de référence](../../../../../translated_images/fr/iot-reference-architecture-azure.0b8d2161af924cb18ae48a8558a19541cca47f27264851b5b7e56d7b8bb372ac.png) +![Une architecture IoT de référence](../../../../../translated_images/fr/iot-reference-architecture-azure.0b8d2161af924cb1.webp) Le diagramme ci-dessus montre certains des composants et services abordés jusqu'à présent dans ces leçons et comment ils s'articulent dans une architecture IoT de référence. @@ -89,7 +89,7 @@ Vous devez construire un système où les fruits sont détectés à leur arrivé ### Prototyper votre application -![Une architecture IoT de référence pour la vérification de la qualité des fruits](../../../../../translated_images/fr/iot-reference-architecture-fruit-quality.cc705f121c3b6fa71c800d9630935ac34bc08223a04601e35f41d5e9b5dd5207.png) +![Une architecture IoT de référence pour la vérification de la qualité des fruits](../../../../../translated_images/fr/iot-reference-architecture-fruit-quality.cc705f121c3b6fa7.webp) Le diagramme ci-dessus montre une architecture de référence pour cette application prototype. @@ -124,7 +124,7 @@ Suivez le guide correspondant pour utiliser un capteur de proximité afin de dé Le détecteur de fruits prototype comporte plusieurs composants qui communiquent entre eux. -![Les composants communiquent entre eux](../../../../../translated_images/fr/fruit-quality-detector-message-flow.adf2a65da8fd8741ac7af11361574de89adc126785d67606bb4d2ec00467e380.png) +![Les composants communiquent entre eux](../../../../../translated_images/fr/fruit-quality-detector-message-flow.adf2a65da8fd8741.webp) * Un capteur de proximité mesurant la distance par rapport à un fruit et envoyant cela à IoT Hub * La commande pour contrôler la caméra provenant de IoT Hub vers l'appareil caméra diff --git a/translations/fr/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md b/translations/fr/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md index 4dbeeb0c3..d556badc6 100644 --- a/translations/fr/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md +++ b/translations/fr/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md @@ -20,7 +20,7 @@ Le capteur Grove Time of Flight peut être connecté au Raspberry Pi. Connectez le capteur Time of Flight. -![Un capteur Grove Time of Flight](../../../../../translated_images/fr/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![Un capteur Grove Time of Flight](../../../../../translated_images/fr/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. Insérez une extrémité d'un câble Grove dans la prise du capteur Time of Flight. Il ne peut être inséré que dans un seul sens. diff --git a/translations/fr/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md b/translations/fr/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md index 1b212b07a..eaac9a4f6 100644 --- a/translations/fr/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md +++ b/translations/fr/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md @@ -36,11 +36,11 @@ Ajoutez le capteur de distance à l'application CounterFit. 1. Sélectionnez le bouton **Add** pour créer le capteur de distance. - ![Les paramètres du capteur de distance](../../../../../translated_images/fr/counterfit-create-distance-sensor.967c9fb98f27888d95920c9784d004c972490eb71f70397fe13bd70a79a879a3.png) + ![Les paramètres du capteur de distance](../../../../../translated_images/fr/counterfit-create-distance-sensor.967c9fb98f27888d.webp) Le capteur de distance sera créé et apparaîtra dans la liste des capteurs. - ![Le capteur de distance créé](../../../../../translated_images/fr/counterfit-distance-sensor.079eefeeea0b68afc36431ce8fcbe2f09a7e4916ed1cd5cb30e696db53bc18fa.png) + ![Le capteur de distance créé](../../../../../translated_images/fr/counterfit-distance-sensor.079eefeeea0b68af.webp) ## Programmer le capteur de distance diff --git a/translations/fr/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md b/translations/fr/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md index ce25fd65e..dd27a7fd7 100644 --- a/translations/fr/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md +++ b/translations/fr/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md @@ -20,7 +20,7 @@ Le capteur Grove Time of Flight peut être connecté au Wio Terminal. Connectez le capteur Time of Flight. -![Un capteur Grove Time of Flight](../../../../../translated_images/fr/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![Un capteur Grove Time of Flight](../../../../../translated_images/fr/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. Insérez une extrémité d'un câble Grove dans la prise du capteur Time of Flight. Il ne peut être inséré que dans un seul sens. diff --git a/translations/fr/5-retail/lessons/1-train-stock-detector/README.md b/translations/fr/5-retail/lessons/1-train-stock-detector/README.md index 9bfdde4e3..2cc580693 100644 --- a/translations/fr/5-retail/lessons/1-train-stock-detector/README.md +++ b/translations/fr/5-retail/lessons/1-train-stock-detector/README.md @@ -1,6 +1,6 @@ # Entraîner un détecteur de stock -![Un aperçu illustré de cette leçon](../../../../../translated_images/fr/lesson-19.cf6973cecadf080c4b526310620dc4d6f5994c80fb0139c6f378cc9ca2d435cd.jpg) +![Un aperçu illustré de cette leçon](../../../../../translated_images/fr/lesson-19.cf6973cecadf080c.webp) > Illustration par [Nitya Narasimhan](https://github.com/nitya). Cliquez sur l'image pour une version plus grande. @@ -36,7 +36,7 @@ La détection d'objets consiste à détecter des objets dans des images à l'aid La classification d'images consiste à classer une image dans son ensemble - quelles sont les probabilités que l'image entière corresponde à chaque étiquette. Vous obtenez des probabilités pour chaque étiquette utilisée pour entraîner le modèle. -![Classification d'images de noix de cajou et de concentré de tomate](../../../../../translated_images/fr/image-classifier-cashews-tomato.bc2e16ab8f05cf9ac0f59f73e32efc4227f9a5b601b90b2c60f436694547a965.png) +![Classification d'images de noix de cajou et de concentré de tomate](../../../../../translated_images/fr/image-classifier-cashews-tomato.bc2e16ab8f05cf9a.webp) Dans l'exemple ci-dessus, deux images sont classées à l'aide d'un modèle entraîné pour classer des pots de noix de cajou ou des boîtes de concentré de tomate. La première image est un pot de noix de cajou, et les résultats du classificateur d'images sont : @@ -60,7 +60,7 @@ Lorsque vous l'utilisez ensuite pour prédire des images, au lieu d'obtenir une > 🎓 *Les boîtes englobantes* sont les cadres autour d'un objet. -![Détection d'objets de noix de cajou et de concentré de tomate](../../../../../translated_images/fr/object-detector-cashews-tomato.1af7c26686b4db0e709754aeb196f4e73271f54e2085db3bcccb70d4a0d84d97.png) +![Détection d'objets de noix de cajou et de concentré de tomate](../../../../../translated_images/fr/object-detector-cashews-tomato.1af7c26686b4db0e.webp) L'image ci-dessus contient à la fois un pot de noix de cajou et trois boîtes de concentré de tomate. Le détecteur d'objets a détecté les noix de cajou, renvoyant la boîte englobante qui contient les noix de cajou avec le pourcentage de probabilité que la boîte englobante contienne l'objet, dans ce cas 97,6%. Le détecteur d'objets a également détecté trois boîtes de concentré de tomate et fournit trois boîtes englobantes distinctes, une pour chaque boîte détectée, chacune avec une probabilité que la boîte englobante contienne une boîte de concentré de tomate. @@ -111,7 +111,7 @@ Vous pouvez entraîner un détecteur d'objets à l'aide de Custom Vision, de man Lorsque vous créez votre projet, assurez-vous d'utiliser la ressource `stock-detector-training` que vous avez créée précédemment. Utilisez le type de projet *Détection d'objets* et le domaine *Produits sur étagères*. - ![Les paramètres du projet Custom Vision avec le nom défini sur fruit-quality-detector, aucune description, la ressource définie sur fruit-quality-detector-training, le type de projet défini sur classification, les types de classification définis sur multi-classes et les domaines définis sur nourriture](../../../../../translated_images/fr/custom-vision-create-object-detector-project.32d4fb9aa8e7e7375f8a799bfce517aca970f2cb65e42d4245c5e635c734ab29.png) + ![Les paramètres du projet Custom Vision avec le nom défini sur fruit-quality-detector, aucune description, la ressource définie sur fruit-quality-detector-training, le type de projet défini sur classification, les types de classification définis sur multi-classes et les domaines définis sur nourriture](../../../../../translated_images/fr/custom-vision-create-object-detector-project.32d4fb9aa8e7e737.webp) ✅ Le domaine des produits sur étagères est spécifiquement conçu pour détecter les stocks sur les étagères des magasins. Lisez-en davantage sur les différents domaines dans la [documentation Sélectionner un domaine sur Microsoft Docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/select-domain?WT.mc_id=academic-17441-jabenn#object-detection) @@ -133,11 +133,11 @@ Pour entraîner votre modèle, vous aurez besoin d'un ensemble d'images contenan 1. Suivez la [section Télécharger et étiqueter des images du guide de démarrage rapide sur la création d'un détecteur d'objets dans la documentation Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/get-started-build-detector?WT.mc_id=academic-17441-jabenn#upload-and-tag-images) pour télécharger vos images d'entraînement. Créez des étiquettes pertinentes en fonction des types d'objets que vous souhaitez détecter. - ![Les boîtes de dialogue de téléchargement montrant le téléchargement d'images de bananes mûres et non mûres](../../../../../translated_images/fr/image-upload-object-detector.77c7892c3093cb59b79018edecd678749a75d71a099bc8a2d2f2f76320f88a5b.png) + ![Les boîtes de dialogue de téléchargement montrant le téléchargement d'images de bananes mûres et non mûres](../../../../../translated_images/fr/image-upload-object-detector.77c7892c3093cb59.webp) Lorsque vous dessinez des boîtes englobantes pour les objets, gardez-les bien ajustées autour de l'objet. Cela peut prendre un certain temps pour délimiter toutes les images, mais l'outil détectera ce qu'il pense être les boîtes englobantes, ce qui accélérera le processus. - ![Étiquetage de concentré de tomate](../../../../../translated_images/fr/object-detector-tag-tomato-paste.f47c362fb0f0eb582f3bc68cf3855fb43a805106395358d41896a269c210b7b4.png) + ![Étiquetage de concentré de tomate](../../../../../translated_images/fr/object-detector-tag-tomato-paste.f47c362fb0f0eb58.webp) > 💁 Si vous avez plus de 15 images pour chaque objet, vous pouvez entraîner après 15 images, puis utiliser la fonction **Étiquettes suggérées**. Cela utilisera le modèle entraîné pour détecter les objets dans les images non étiquetées. Vous pouvez ensuite confirmer les objets détectés ou rejeter et redessiner les boîtes englobantes. Cela peut faire gagner *beaucoup* de temps. @@ -155,7 +155,7 @@ Une fois votre détecteur d'objets entraîné, vous pouvez le tester en lui four 1. Utilisez le bouton **Test rapide** pour télécharger des images de test et vérifier que les objets sont détectés. Utilisez les images de test que vous avez créées précédemment, et non celles utilisées pour l'entraînement. - ![3 boîtes de concentré de tomate détectées avec des probabilités de 38 %, 35,5 % et 34,6 %](../../../../../translated_images/fr/object-detector-detected-tomato-paste.52656fe87af4c37b4ee540526d63e73ed075da2e54a9a060aa528e0c562fb1b6.png) + ![3 boîtes de concentré de tomate détectées avec des probabilités de 38 %, 35,5 % et 34,6 %](../../../../../translated_images/fr/object-detector-detected-tomato-paste.52656fe87af4c37b.webp) 1. Essayez toutes les images de test dont vous disposez et observez les probabilités. diff --git a/translations/fr/5-retail/lessons/2-check-stock-device/README.md b/translations/fr/5-retail/lessons/2-check-stock-device/README.md index 005bf9054..b5b4c32ab 100644 --- a/translations/fr/5-retail/lessons/2-check-stock-device/README.md +++ b/translations/fr/5-retail/lessons/2-check-stock-device/README.md @@ -1,6 +1,6 @@ # Vérifier le stock depuis un appareil IoT -![Un aperçu illustré de cette leçon](../../../../../translated_images/fr/lesson-20.0211df9551a8abb300fc8fcf7dc2789468dea2eabe9202273ac077b0ba37f15e.jpg) +![Un aperçu illustré de cette leçon](../../../../../translated_images/fr/lesson-20.0211df9551a8abb3.webp) > Illustration par [Nitya Narasimhan](https://github.com/nitya). Cliquez sur l'image pour une version agrandie. @@ -62,7 +62,7 @@ Les itérations sont publiées depuis le portail Custom Vision. 1. Cliquez sur le bouton **Publish** pour l'itération. - ![Le bouton publier](../../../../../translated_images/fr/custom-vision-object-detector-publish-button.34ee379fc650ccb9856c3868d0003f413b9529f102fc73c37168c98d721cc293.png) + ![Le bouton publier](../../../../../translated_images/fr/custom-vision-object-detector-publish-button.34ee379fc650ccb9.webp) 1. Dans la boîte de dialogue *Publish Model*, définissez la ressource *Prediction resource* sur la ressource `stock-detector-prediction` que vous avez créée dans la leçon précédente. Laissez le nom comme `Iteration2`, puis cliquez sur le bouton **Publish**. @@ -76,7 +76,7 @@ Les itérations sont publiées depuis le portail Custom Vision. Copiez également la valeur de la clé *Prediction-Key*. C'est une clé sécurisée que vous devez transmettre lorsque vous appelez le modèle. Seules les applications qui transmettent cette clé sont autorisées à utiliser le modèle, toutes les autres applications sont rejetées. - ![La boîte de dialogue de l'API de prédiction montrant l'URL et la clé](../../../../../translated_images/fr/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![La boîte de dialogue de l'API de prédiction montrant l'URL et la clé](../../../../../translated_images/fr/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ Lorsqu'une nouvelle itération est publiée, elle aura un nom différent. Comment pensez-vous que vous pourriez changer l'itération utilisée par un appareil IoT ? @@ -95,7 +95,7 @@ Lorsque vous utilisez le détecteur d'objets, vous obtenez non seulement les obj Les résultats d'une prédiction dans l'onglet **Predictions** de Custom Vision affichent les boîtes englobantes dessinées sur l'image envoyée pour la prédiction. -![4 boîtes de concentré de tomate sur une étagère avec des prédictions pour les 4 détections de 35,8 %, 33,5 %, 25,7 % et 16,6 %](../../../../../translated_images/fr/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) +![4 boîtes de concentré de tomate sur une étagère avec des prédictions pour les 4 détections de 35,8 %, 33,5 %, 25,7 % et 16,6 %](../../../../../translated_images/fr/custom-vision-stock-prediction.942266ab1bcca341.webp) Dans l'image ci-dessus, 4 boîtes de concentré de tomate ont été détectées. Dans les résultats, un carré rouge est superposé pour chaque objet détecté dans l'image, indiquant la boîte englobante pour l'image. @@ -103,7 +103,7 @@ Dans l'image ci-dessus, 4 boîtes de concentré de tomate ont été détectées. Les boîtes englobantes sont définies par 4 valeurs : haut, gauche, hauteur et largeur. Ces valeurs sont sur une échelle de 0 à 1, représentant les positions en pourcentage de la taille de l'image. L'origine (la position 0,0) est le coin supérieur gauche de l'image, donc la valeur *haut* est la distance depuis le haut, et le bas de la boîte englobante est le haut plus la hauteur. -![Une boîte englobante autour d'une boîte de concentré de tomate](../../../../../translated_images/fr/bounding-box.1420a7ea0d3d15f71e1ffb5cf4b2271d184fac051f990abc541975168d163684.png) +![Une boîte englobante autour d'une boîte de concentré de tomate](../../../../../translated_images/fr/bounding-box.1420a7ea0d3d15f7.webp) L'image ci-dessus mesure 600 pixels de large et 800 pixels de haut. La boîte englobante commence à 320 pixels du haut, ce qui donne une coordonnée *haut* de 0,4 (800 x 0,4 = 320). Depuis la gauche, la boîte englobante commence à 240 pixels, ce qui donne une coordonnée *gauche* de 0,4 (600 x 0,4 = 240). La hauteur de la boîte englobante est de 240 pixels, ce qui donne une valeur de hauteur de 0,3 (800 x 0,3 = 240). La largeur de la boîte englobante est de 120 pixels, ce qui donne une valeur de largeur de 0,2 (600 x 0,2 = 120). @@ -118,7 +118,7 @@ Utiliser des valeurs en pourcentage de 0 à 1 signifie que, quelle que soit la t Vous pouvez utiliser les boîtes englobantes combinées aux probabilités pour évaluer la précision d'une détection. Par exemple, un détecteur d'objets peut détecter plusieurs objets qui se chevauchent, par exemple en détectant une boîte à l'intérieur d'une autre. Votre code pourrait examiner les boîtes englobantes, comprendre que cela est impossible, et ignorer tout objet ayant un chevauchement significatif avec d'autres objets. -![Deux boîtes englobantes se chevauchant autour d'une boîte de concentré de tomate](../../../../../translated_images/fr/overlap-object-detection.d431e03cae75072a2760430eca7f2c5fdd43045bfd72dadcbf12711f7cd6c2ae.png) +![Deux boîtes englobantes se chevauchant autour d'une boîte de concentré de tomate](../../../../../translated_images/fr/overlap-object-detection.d431e03cae75072a.webp) Dans l'exemple ci-dessus, une boîte englobante indique une boîte de concentré de tomate prédite à 78,3 %. Une seconde boîte englobante est légèrement plus petite et se trouve à l'intérieur de la première avec une probabilité de 64,3 %. Votre code peut vérifier les boîtes englobantes, constater qu'elles se chevauchent complètement, et ignorer la probabilité la plus basse, car il est impossible qu'une boîte soit à l'intérieur d'une autre. diff --git a/translations/fr/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md b/translations/fr/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md index 7f403c037..40af85142 100644 --- a/translations/fr/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md +++ b/translations/fr/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md @@ -67,7 +67,7 @@ Le code que vous avez utilisé pour classifier des images est très similaire à Vous pourrez voir l'image capturée et ces valeurs dans l'onglet **Predictions** de Custom Vision. - ![4 boîtes de concentré de tomate sur une étagère avec des prédictions pour les 4 détections de 35,8 %, 33,5 %, 25,7 % et 16,6 %](../../../../../translated_images/fr/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![4 boîtes de concentré de tomate sur une étagère avec des prédictions pour les 4 détections de 35,8 %, 33,5 %, 25,7 % et 16,6 %](../../../../../translated_images/fr/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 Vous pouvez trouver ce code dans le dossier [code-detect/pi](../../../../../5-retail/lessons/2-check-stock-device/code-detect/pi) ou [code-detect/virtual-iot-device](../../../../../5-retail/lessons/2-check-stock-device/code-detect/virtual-iot-device). diff --git a/translations/fr/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md b/translations/fr/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md index 1f10304f7..7b52529a6 100644 --- a/translations/fr/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md +++ b/translations/fr/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md @@ -95,7 +95,7 @@ Le code que vous avez utilisé pour classifier des images est très similaire à Vous pourrez voir l'image capturée, ainsi que ces valeurs dans l'onglet **Predictions** de Custom Vision. - ![4 boîtes de concentré de tomate sur une étagère avec des prédictions pour les 4 détections de 35,8 %, 33,5 %, 25,7 % et 16,6 %](../../../../../translated_images/fr/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![4 boîtes de concentré de tomate sur une étagère avec des prédictions pour les 4 détections de 35,8 %, 33,5 %, 25,7 % et 16,6 %](../../../../../translated_images/fr/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 Vous pouvez trouver ce code dans le dossier [code-detect/wio-terminal](../../../../../5-retail/lessons/2-check-stock-device/code-detect/wio-terminal). diff --git a/translations/fr/6-consumer/lessons/1-speech-recognition/README.md b/translations/fr/6-consumer/lessons/1-speech-recognition/README.md index ed3115c67..4599bc476 100644 --- a/translations/fr/6-consumer/lessons/1-speech-recognition/README.md +++ b/translations/fr/6-consumer/lessons/1-speech-recognition/README.md @@ -1,6 +1,6 @@ # Reconnaître la parole avec un appareil IoT -![Un aperçu illustré de cette leçon](../../../../../translated_images/fr/lesson-21.e34de51354d6606fb5ee08d8c89d0222eea0a2a7aaf744a8805ae847c4f69dc4.jpg) +![Un aperçu illustré de cette leçon](../../../../../translated_images/fr/lesson-21.e34de51354d6606f.webp) > Illustration par [Nitya Narasimhan](https://github.com/nitya). Cliquez sur l'image pour une version plus grande. @@ -51,7 +51,7 @@ Les microphones existent en plusieurs types : Les microphones dynamiques n'ont pas besoin d'alimentation pour fonctionner, le signal électrique est entièrement généré par le microphone. - ![Patti Smith chantant dans un microphone Shure SM58 (type cardioïde dynamique)](../../../../../translated_images/fr/dynamic-mic.8babac890a2d80dfb0874b5bf37d4b851fe2aeb9da6fd72945746176978bf3bb.jpg) + ![Patti Smith chantant dans un microphone Shure SM58 (type cardioïde dynamique)](../../../../../translated_images/fr/dynamic-mic.8babac890a2d80df.webp) * Ruban - Les microphones à ruban sont similaires aux microphones dynamiques, sauf qu'ils utilisent un ruban métallique au lieu d'une membrane. Ce ruban se déplace dans un champ magnétique, générant un courant électrique. Comme les microphones dynamiques, les microphones à ruban n'ont pas besoin d'alimentation pour fonctionner. @@ -59,11 +59,11 @@ Les microphones existent en plusieurs types : * Condensateur - Les microphones à condensateur possèdent une fine membrane métallique et une plaque arrière métallique fixe. Un courant électrique est appliqué aux deux, et lorsque la membrane vibre, la charge statique entre les plaques change, générant un signal. Les microphones à condensateur nécessitent une alimentation pour fonctionner - appelée *alimentation fantôme*. - ![Microphone à condensateur à petite membrane C451B par AKG Acoustics](../../../../../translated_images/fr/condenser-mic.6f6ed5b76ca19e0ec3fd0c544601542d4479a6cb7565db336de49fbbf69f623e.jpg) + ![Microphone à condensateur à petite membrane C451B par AKG Acoustics](../../../../../translated_images/fr/condenser-mic.6f6ed5b76ca19e0e.webp) * MEMS - Les microphones à systèmes microélectromécaniques, ou MEMS, sont des microphones sur puce. Ils possèdent une membrane sensible à la pression gravée sur une puce de silicium, et fonctionnent de manière similaire à un microphone à condensateur. Ces microphones peuvent être minuscules et intégrés dans des circuits. - ![Un microphone MEMS sur une carte de circuit imprimé](../../../../../translated_images/fr/mems-microphone.80574019e1f5e4d9ee72fed720ecd25a39fc2969c91355d17ebb24ba4159e4c4.png) + ![Un microphone MEMS sur une carte de circuit imprimé](../../../../../translated_images/fr/mems-microphone.80574019e1f5e4d9.webp) Dans l'image ci-dessus, la puce étiquetée **LEFT** est un microphone MEMS, avec une membrane minuscule de moins d'un millimètre de large. @@ -159,7 +159,7 @@ Pour éviter la complexité de l'entraînement et de l'utilisation d'un modèle ## Convertir la parole en texte -![Logo des services vocaux](../../../../../translated_images/fr/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![Logo des services vocaux](../../../../../translated_images/fr/azure-speech-logo.a1f08c4befb0159f.webp) Tout comme pour la classification d'images dans un projet précédent, il existe des services d'IA préconstruits qui peuvent prendre un fichier audio et le convertir en texte. L'un de ces services est le Speech Service, qui fait partie des Cognitive Services, des services d'IA préconstruits que vous pouvez utiliser dans vos applications. diff --git a/translations/fr/6-consumer/lessons/1-speech-recognition/pi-audio.md b/translations/fr/6-consumer/lessons/1-speech-recognition/pi-audio.md index 1775e0e46..293722c78 100644 --- a/translations/fr/6-consumer/lessons/1-speech-recognition/pi-audio.md +++ b/translations/fr/6-consumer/lessons/1-speech-recognition/pi-audio.md @@ -16,13 +16,13 @@ Le bouton peut être connecté au Grove Base Hat. #### Tâche - connecter le bouton -![Un bouton Grove](../../../../../translated_images/fr/grove-button.a70cfbb809a8563681003250cf5b06d68cdcc68624f9e2f493d5a534ae2da1e5.png) +![Un bouton Grove](../../../../../translated_images/fr/grove-button.a70cfbb809a85636.webp) 1. Insérez une extrémité d'un câble Grove dans la prise du module bouton. Il ne peut être inséré que dans un seul sens. 1. Avec le Raspberry Pi éteint, connectez l'autre extrémité du câble Grove à la prise numérique marquée **D5** sur le Grove Base Hat attaché au Pi. Cette prise est la deuxième à partir de la gauche, sur la rangée de prises à côté des broches GPIO. -![Le bouton Grove connecté à la prise D5](../../../../../translated_images/fr/pi-button.c7a1a4f55943341ce1baf1057658e9a205804d4131d258e820c93f951df0abf3.png) +![Le bouton Grove connecté à la prise D5](../../../../../translated_images/fr/pi-button.c7a1a4f55943341c.webp) ## Capturer de l'audio diff --git a/translations/fr/6-consumer/lessons/1-speech-recognition/pi-microphone.md b/translations/fr/6-consumer/lessons/1-speech-recognition/pi-microphone.md index 39ec5bbfa..bd7cb2d68 100644 --- a/translations/fr/6-consumer/lessons/1-speech-recognition/pi-microphone.md +++ b/translations/fr/6-consumer/lessons/1-speech-recognition/pi-microphone.md @@ -34,7 +34,7 @@ Le microphone et les haut-parleurs doivent être connectés et configurés. 1. Si vous utilisez le ReSpeaker 2-Mics Pi HAT, vous pouvez retirer le Grove base hat, puis installer le ReSpeaker hat à sa place. - ![Un Raspberry Pi avec un ReSpeaker hat](../../../../../translated_images/fr/pi-respeaker-hat.f00fabe7dd039a93e2e0aa0fc946c9af0c6a9eb17c32fa1ca097fb4e384f69f0.png) + ![Un Raspberry Pi avec un ReSpeaker hat](../../../../../translated_images/fr/pi-respeaker-hat.f00fabe7dd039a93.webp) Vous aurez besoin d'un bouton Grove plus tard dans cette leçon, mais un bouton est intégré à ce hat, donc le Grove base hat n'est pas nécessaire. diff --git a/translations/fr/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md b/translations/fr/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md index 236713d5e..fad40dd7c 100644 --- a/translations/fr/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md +++ b/translations/fr/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md @@ -10,7 +10,7 @@ Le microphone intégré capture un signal analogique, qui est ensuite converti e ✅ En savoir plus sur le DMA sur la [page d'accès direct à la mémoire sur Wikipedia](https://wikipedia.org/wiki/Direct_memory_access). -![L'audio du micro passe par un ADC puis par le DMAC. Celui-ci écrit dans un buffer. Lorsque ce buffer est plein, il est traité et le DMAC écrit dans un second buffer](../../../../../translated_images/fr/dmac-adc-buffers.4509aee49145c90bc2e1be472b8ed2ddfcb2b6a81ad3e559114aca55f5fff759.png) +![L'audio du micro passe par un ADC puis par le DMAC. Celui-ci écrit dans un buffer. Lorsque ce buffer est plein, il est traité et le DMAC écrit dans un second buffer](../../../../../translated_images/fr/dmac-adc-buffers.4509aee49145c90b.webp) Le DMAC peut capturer de l'audio depuis l'ADC à des intervalles fixes, comme 16 000 fois par seconde pour un audio à 16KHz. Il peut écrire ces données capturées dans un buffer mémoire pré-alloué, et lorsque celui-ci est plein, le rendre disponible pour que votre code le traite. L'utilisation de cette mémoire peut retarder la capture audio, mais vous pouvez configurer plusieurs buffers. Le DMAC écrit dans le buffer 1, puis lorsqu'il est plein, il notifie votre code pour traiter le buffer 1, tandis que le DMAC écrit dans le buffer 2. Lorsque le buffer 2 est plein, il notifie votre code et revient à l'écriture dans le buffer 1. Ainsi, tant que vous traitez chaque buffer en moins de temps qu'il ne faut pour en remplir un, vous ne perdrez aucune donnée. diff --git a/translations/fr/6-consumer/lessons/2-language-understanding/README.md b/translations/fr/6-consumer/lessons/2-language-understanding/README.md index 3ce181dfa..a2a12a90d 100644 --- a/translations/fr/6-consumer/lessons/2-language-understanding/README.md +++ b/translations/fr/6-consumer/lessons/2-language-understanding/README.md @@ -1,6 +1,6 @@ # Comprendre le langage -![Un aperçu en sketchnote de cette leçon](../../../../../translated_images/fr/lesson-22.6148ea28500d9e00c396aaa2649935fb6641362c8f03d8e5e90a676977ab01dd.jpg) +![Un aperçu en sketchnote de cette leçon](../../../../../translated_images/fr/lesson-22.6148ea28500d9e00.webp) > Sketchnote par [Nitya Narasimhan](https://github.com/nitya). Cliquez sur l'image pour une version agrandie. @@ -46,7 +46,7 @@ Les modèles de compréhension du langage sont des modèles d'IA entraînés à ## Créer un modèle de compréhension du langage -![Le logo LUIS](../../../../../translated_images/fr/luis-logo.5cb4f3e88c020ee6df4f614e8831f4a4b6809a7247bf52085fb48d629ef9be52.png) +![Le logo LUIS](../../../../../translated_images/fr/luis-logo.5cb4f3e88c020ee6.webp) Vous pouvez créer des modèles de compréhension du langage en utilisant LUIS, un service de compréhension du langage de Microsoft qui fait partie des Cognitive Services. @@ -169,7 +169,7 @@ Vous pouvez trouver des instructions pour utiliser le portail LUIS dans la docum 1. À mesure que vous entrez chaque exemple, LUIS commencera à détecter les entités et soulignera et étiquettera celles qu'il trouve. - ![Les exemples avec les nombres et les unités de temps soulignés par LUIS](../../../../../translated_images/fr/luis-intent-examples.25716580b2d2723cf1bafdf277d015c7f046d8cfa20f27bddf3a0873ec45fab7.png) + ![Les exemples avec les nombres et les unités de temps soulignés par LUIS](../../../../../translated_images/fr/luis-intent-examples.25716580b2d2723c.webp) ### Tâche - entraîner et tester le modèle diff --git a/translations/fr/6-consumer/lessons/3-spoken-feedback/README.md b/translations/fr/6-consumer/lessons/3-spoken-feedback/README.md index 0f0238f3c..27511fe0a 100644 --- a/translations/fr/6-consumer/lessons/3-spoken-feedback/README.md +++ b/translations/fr/6-consumer/lessons/3-spoken-feedback/README.md @@ -1,6 +1,6 @@ # Régler un minuteur et fournir un retour vocal -![Un aperçu illustré de cette leçon](../../../../../translated_images/fr/lesson-23.f38483e1d4df4828990d3f02d60e46c978b075d384ae7cb4f7bab738e107c850.jpg) +![Un aperçu illustré de cette leçon](../../../../../translated_images/fr/lesson-23.f38483e1d4df4828.webp) > Illustration par [Nitya Narasimhan](https://github.com/nitya). Cliquez sur l'image pour une version agrandie. diff --git a/translations/fr/6-consumer/lessons/4-multiple-language-support/README.md b/translations/fr/6-consumer/lessons/4-multiple-language-support/README.md index 7604992f8..509789964 100644 --- a/translations/fr/6-consumer/lessons/4-multiple-language-support/README.md +++ b/translations/fr/6-consumer/lessons/4-multiple-language-support/README.md @@ -1,6 +1,6 @@ # Prise en charge de plusieurs langues -![Un aperçu en sketchnote de cette leçon](../../../../../translated_images/fr/lesson-24.4246968ed058510ab275052e87ef9aa89c7b2f938915d103c605c04dc6cd5bb7.jpg) +![Un aperçu en sketchnote de cette leçon](../../../../../translated_images/fr/lesson-24.4246968ed058510a.webp) > Sketchnote par [Nitya Narasimhan](https://github.com/nitya). Cliquez sur l'image pour une version agrandie. @@ -74,7 +74,7 @@ Il existe un certain nombre de services d'IA que vous pouvez utiliser dans vos a ### Service vocal des services cognitifs -![Le logo du service vocal](../../../../../translated_images/fr/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![Le logo du service vocal](../../../../../translated_images/fr/azure-speech-logo.a1f08c4befb0159f.webp) Le service vocal que vous avez utilisé au cours des dernières leçons dispose de capacités de traduction pour la reconnaissance vocale. Lorsque vous reconnaissez la parole, vous pouvez demander non seulement le texte de la parole dans la même langue, mais aussi dans d'autres langues. @@ -82,7 +82,7 @@ Le service vocal que vous avez utilisé au cours des dernières leçons dispose ### Service de traduction des services cognitifs -![Le logo du service de traduction](../../../../../translated_images/fr/azure-translator-logo.c6ed3a4a433edfd2f11577eca105412c50b8396b194cbbd730723dd1d0793bcd.png) +![Le logo du service de traduction](../../../../../translated_images/fr/azure-translator-logo.c6ed3a4a433edfd2.webp) Le service Translator est un service de traduction dédié qui peut traduire du texte d'une langue vers une ou plusieurs langues cibles. En plus de traduire, il prend en charge un large éventail de fonctionnalités supplémentaires, y compris le masquage des propos injurieux. Il vous permet également de fournir une traduction spécifique pour un mot ou une phrase particulière, afin de travailler avec des termes que vous ne souhaitez pas traduire ou qui ont une traduction bien connue. diff --git a/translations/fr/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md b/translations/fr/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md index e35b49f1d..fdcc107eb 100644 --- a/translations/fr/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md +++ b/translations/fr/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md @@ -25,7 +25,7 @@ L'API REST du service vocal ne prend pas en charge les traductions directes. Cep > > Par exemple, si vous entraînez LUIS en anglais mais souhaitez utiliser le français comme langue utilisateur, vous pouvez traduire des phrases comme "set a 2 minute and 27 second timer" de l'anglais au français en utilisant Bing Translate, puis utiliser le bouton **Écouter la traduction** pour prononcer la traduction dans votre microphone. > - > ![Le bouton écouter la traduction sur Bing Translate](../../../../../translated_images/fr/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Le bouton écouter la traduction sur Bing Translate](../../../../../translated_images/fr/bing-translate.348aa796d6efe2a9.webp) 1. Ajoutez la clé API du service Translator sous la variable `speech_api_key` : diff --git a/translations/fr/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md b/translations/fr/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md index 5ad95e9f0..c29e0deae 100644 --- a/translations/fr/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md +++ b/translations/fr/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md @@ -37,7 +37,7 @@ Le service de reconnaissance vocale peut non seulement convertir la parole en te > > Par exemple, si vous entraînez LUIS en anglais mais souhaitez utiliser le français comme langue utilisateur, vous pouvez traduire des phrases comme "set a 2 minute and 27 second timer" de l'anglais au français en utilisant Bing Translate, puis utiliser le bouton **Écouter la traduction** pour prononcer la traduction dans votre microphone. > - > ![Le bouton écouter la traduction sur Bing Translate](../../../../../translated_images/fr/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Le bouton écouter la traduction sur Bing Translate](../../../../../translated_images/fr/bing-translate.348aa796d6efe2a9.webp) 1. Remplacez les déclarations `recognizer_config` et `recognizer` par ce qui suit : diff --git a/translations/fr/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md b/translations/fr/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md index c0502e084..c6a24d96b 100644 --- a/translations/fr/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md +++ b/translations/fr/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md @@ -105,7 +105,7 @@ L'API REST du service de reconnaissance vocale ne prend pas en charge les traduc > > Par exemple, si vous entraînez LUIS en anglais mais souhaitez utiliser le français comme langue utilisateur, vous pouvez traduire des phrases comme "set a 2 minute and 27 second timer" de l'anglais au français en utilisant Bing Translate, puis utiliser le bouton **Écouter la traduction** pour parler la traduction dans votre microphone. > - > ![Le bouton écouter la traduction sur Bing Translate](../../../../../translated_images/fr/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Le bouton écouter la traduction sur Bing Translate](../../../../../translated_images/fr/bing-translate.348aa796d6efe2a9.webp) 1. Ajoutez la clé API et la localisation du traducteur sous `SPEECH_LOCATION` : diff --git a/translations/fr/README.md b/translations/fr/README.md index 51898d6ca..6f063bcb0 100644 --- a/translations/fr/README.md +++ b/translations/fr/README.md @@ -10,43 +10,53 @@ ### Rejoignez la communauté Azure AI Foundry -Si vous êtes bloqué ou avez des questions sur la création d'applications IA. Rejoignez d'autres apprenants et des développeurs expérimentés dans les discussions sur MCP. C'est une communauté bienveillante où les questions sont les bienvenues et le savoir partagé librement. +Si vous êtes bloqué ou avez des questions sur la création d'applications d'IA. Rejoignez d'autres apprenants et développeurs expérimentés dans des discussions sur MCP. C'est une communauté bienveillante où les questions sont les bienvenues et où le savoir est partagé librement. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Si vous avez des retours sur le produit ou des erreurs lors de la création, rendez-vous sur : +Si vous avez des retours sur les produits ou des erreurs lors de la création, visitez : -[![Forum développeurs Microsoft Foundry](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) +[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) Suivez ces étapes pour commencer à utiliser ces ressources : -1. **Créez un Fork du dépôt** : Cliquez [![Forks GitHub](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) +1. **Forkez le dépôt** : Cliquez [![Forks GitHub](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) 2. **Clonez le dépôt** : `git clone https://github.com/microsoft/IoT-For-Beginners.git` -3. [**Rejoignez le Discord Microsot Foundry et rencontrez des experts et d'autres développeurs**](https://discord.com/invite/ByRwuEEgH4) +3. [**Rejoignez le Discord Microsoft Foundry et rencontrez des experts et d'autres développeurs**](https://discord.com/invite/ByRwuEEgH4) ### 🌐 Support multilingue -#### Pris en charge via GitHub Action (Automatisé & toujours à jour) +#### Pris en charge via GitHub Action (Automatisé et toujours à jour) -[Arabe](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgare](../bg/README.md) | [Birman (Myanmar)](../my/README.md) | [Chinois (Simplifié)](../zh-CN/README.md) | [Chinois (Traditionnel, Hong Kong)](../zh-HK/README.md) | [Chinois (Traditionnel, Macao)](../zh-MO/README.md) | [Chinois (Traditionnel, Taïwan)](../zh-TW/README.md) | [Croate](../hr/README.md) | [Tchèque](../cs/README.md) | [Danois](../da/README.md) | [Néerlandais](../nl/README.md) | [Estonien](../et/README.md) | [Finnois](../fi/README.md) | [Français](./README.md) | [Allemand](../de/README.md) | [Grec](../el/README.md) | [Hébreu](../he/README.md) | [Hindi](../hi/README.md) | [Hongrois](../hu/README.md) | [Indonésien](../id/README.md) | [Italien](../it/README.md) | [Japonais](../ja/README.md) | [Kannada](../kn/README.md) | [Coréen](../ko/README.md) | [Lituanien](../lt/README.md) | [Malais](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Népalais](../ne/README.md) | [Pidgin nigérian](../pcm/README.md) | [Norvégien](../no/README.md) | [Persan (Farsi)](../fa/README.md) | [Polonais](../pl/README.md) | [Portugais (Brésil)](../pt-BR/README.md) | [Portugais (Portugal)](../pt-PT/README.md) | [Pendjabi (Gurmukhi)](../pa/README.md) | [Roumain](../ro/README.md) | [Russe](../ru/README.md) | [Serbe (cyrillique)](../sr/README.md) | [Slovaque](../sk/README.md) | [Slovène](../sl/README.md) | [Espagnol](../es/README.md) | [Swahili](../sw/README.md) | [Suédois](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamoul](../ta/README.md) | [Télougou](../te/README.md) | [Thaï](../th/README.md) | [Turc](../tr/README.md) | [Ukrainien](../uk/README.md) | [Ourdou](../ur/README.md) | [Vietnamien](../vi/README.md) +[Arabe](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgare](../bg/README.md) | [Birman (Myanmar)](../my/README.md) | [Chinois (Simplifié)](../zh-CN/README.md) | [Chinois (Traditionnel, Hong Kong)](../zh-HK/README.md) | [Chinois (Traditionnel, Macao)](../zh-MO/README.md) | [Chinois (Traditionnel, Taïwan)](../zh-TW/README.md) | [Croate](../hr/README.md) | [Tchèque](../cs/README.md) | [Danois](../da/README.md) | [Néerlandais](../nl/README.md) | [Estonien](../et/README.md) | [Finnois](../fi/README.md) | [Français](./README.md) | [Allemand](../de/README.md) | [Grec](../el/README.md) | [Hébreu](../he/README.md) | [Hindi](../hi/README.md) | [Hongrois](../hu/README.md) | [Indonésien](../id/README.md) | [Italien](../it/README.md) | [Japonais](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Coréen](../ko/README.md) | [Lituanien](../lt/README.md) | [Malais](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Népalais](../ne/README.md) | [Pidgin nigérian](../pcm/README.md) | [Norvégien](../no/README.md) | [Persan (Farsi)](../fa/README.md) | [Polonais](../pl/README.md) | [Portugais (Brésil)](../pt-BR/README.md) | [Portugais (Portugal)](../pt-PT/README.md) | [Panjabi (Gurmukhi)](../pa/README.md) | [Roumain](../ro/README.md) | [Russe](../ru/README.md) | [Serbe (Cyrillique)](../sr/README.md) | [Slovaque](../sk/README.md) | [Slovène](../sl/README.md) | [Espagnol](../es/README.md) | [Swahili](../sw/README.md) | [Suédois](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamoul](../ta/README.md) | [Télougou](../te/README.md) | [Thaï](../th/README.md) | [Turc](../tr/README.md) | [Ukrainien](../uk/README.md) | [Ourdou](../ur/README.md) | [Vietnamien](../vi/README.md) > **Préférez cloner localement ?** - -> Ce dépôt comprend plus de 50 traductions, ce qui augmente considérablement la taille du téléchargement. Pour cloner sans les traductions, utilisez le sparse checkout : +> +> Ce dépôt inclut plus de 50 traductions linguistiques ce qui augmente considérablement la taille du téléchargement. Pour cloner sans les traductions, utilisez le sparse checkout : +> +> **Bash / macOS / Linux :** > ```bash > git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git > cd IoT-For-Beginners > git sparse-checkout set --no-cone '/*' '!translations' '!translated_images' > ``` +> +> **CMD (Windows) :** +> ```cmd +> git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git +> cd IoT-For-Beginners +> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" +> ``` +> > Cela vous donne tout ce dont vous avez besoin pour compléter le cours avec un téléchargement beaucoup plus rapide. # IoT pour débutants - Un programme -Les promoteurs cloud Azure chez Microsoft ont le plaisir de proposer un programme de 12 semaines, comprenant 24 leçons, consacrées aux bases de l'IoT. Chaque leçon inclut des quiz avant et après la leçon, des instructions écrites pour réaliser la leçon, une solution, un devoir et plus encore. Notre pédagogie basée sur des projets vous permet d'apprendre en construisant, une méthode éprouvée pour que les nouvelles compétences "collent". +Les Azure Cloud Advocates chez Microsoft ont le plaisir de proposer un programme de 12 semaines, 24 leçons, entièrement consacré aux bases de l'IoT. Chaque leçon inclut des quiz avant et après la leçon, des instructions écrites pour compléter la leçon, une solution, un devoir et plus encore. Notre pédagogie basée sur des projets vous permet d'apprendre en construisant, une méthode éprouvée pour que les nouvelles compétences "collent". -Les projets couvrent le parcours des aliments de la ferme à la table. Cela comprend l'agriculture, la logistique, la fabrication, la vente au détail et le consommateur - autant de domaines d'industrie populaires pour les appareils IoT. +Les projets couvrent le parcours des aliments de la ferme à la table. Cela inclut l'agriculture, la logistique, la fabrication, la vente au détail et le consommateur — tous des secteurs industriels populaires pour les appareils IoT. ![Une feuille de route du cours montrant 24 leçons couvrant introduction, agriculture, transport, transformation, vente au détail et cuisine](../../translated_images/fr/Roadmap.bb1dec285dda0eda.webp) @@ -54,40 +64,40 @@ Les projets couvrent le parcours des aliments de la ferme à la table. Cela comp **Un grand merci à nos auteurs [Jen Fox](https://github.com/jenfoxbot), [Jen Looper](https://github.com/jlooper), [Jim Bennett](https://github.com/jimbobbennett), et notre artiste sketchnote [Nitya Narasimhan](https://github.com/nitya).** -**Merci également à notre équipe d’[ambassadeurs étudiants Microsoft Learn](https://studentambassadors.microsoft.com?WT.mc_id=academic-17441-jabenn) qui ont revu et traduit ce programme - [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), et [Zina Kamel](https://www.linkedin.com/in/zina-kamel/).** +**Merci également à notre équipe d'[Ambassadeurs étudiants Microsoft Learn](https://studentambassadors.microsoft.com?WT.mc_id=academic-17441-jabenn) qui ont revu et traduit ce programme - [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), et [Zina Kamel](https://www.linkedin.com/in/zina-kamel/).** -Rencontrez l’équipe ! +Rencontrez l'équipe ! -[![Vidéo promo](../../images/IOT.gif)](https://youtu.be/-wippUJRi5k) +[![Vidéo promotionnelle](../../images/IOT.gif)](https://youtu.be/-wippUJRi5k) **Gif par** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) > 🎥 Cliquez sur l'image ci-dessus pour une vidéo sur le projet ! -> **Professeurs**, nous avons [inclus quelques suggestions](for-teachers.md) sur la manière d’utiliser ce programme. Si vous souhaitez créer vos propres leçons, nous avons également inclus un [modèle de leçon](lesson-template/README.md). +> **Enseignants**, nous avons [inclus quelques suggestions](for-teachers.md) sur comment utiliser ce programme. Si vous souhaitez créer vos propres leçons, nous avons également inclus un [modèle de leçon](lesson-template/README.md). -> **[Étudiants](https://aka.ms/student-page)**, pour utiliser ce programme par vous-même, faites un fork du dépôt complet et complétez les exercices par vous-même, en commençant par un quiz avant la leçon, puis en lisant la leçon et en réalisant le reste des activités. Essayez de créer les projets en comprenant les leçons plutôt qu’en copiant le code solution ; cependant, ce code est disponible dans les dossiers /solutions de chaque leçon orientée projet. Une autre idée serait de former un groupe d’étude avec des amis et de parcourir le contenu ensemble. Pour approfondir, nous recommandons [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn). +> **[Étudiants](https://aka.ms/student-page)**, pour utiliser ce programme de manière autonome, forkez l’intégralité du dépôt et complétez les exercices par vous-même, en commençant par un quiz pré-lecture, puis en lisant la leçon et en accomplissant le reste des activités. Essayez de créer les projets en comprenant les leçons plutôt qu'en copiant le code de la solution ; toutefois ce code est disponible dans les dossiers /solutions de chaque leçon orientée projet. Une autre idée serait de former un groupe d'étude avec des amis et parcourir ensemble le contenu. Pour approfondir, nous recommandons [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn). Pour un aperçu vidéo de ce cours, regardez cette vidéo : -[![Vidéo promo](https://img.youtube.com/vi/bccEMm8gRuc/0.jpg)](https://youtube.com/watch?v=bccEMm8gRuc "Vidéo promo") +[![Vidéo promotionnelle](https://img.youtube.com/vi/bccEMm8gRuc/0.jpg)](https://youtube.com/watch?v=bccEMm8gRuc "Vidéo promotionnelle") > 🎥 Cliquez sur l'image ci-dessus pour une vidéo sur le projet ! ## Pédagogie -Nous avons choisi deux principes pédagogiques lors de la création de ce programme : faire en sorte qu’il soit basé sur des projets et qu’il comprenne des quiz fréquents. À la fin de cette série, les étudiants auront construit un système de surveillance et d'arrosage des plantes, un traceur de véhicule, une installation d’usine intelligente pour suivre et vérifier l’alimentation, un minuteur de cuisine contrôlé par la voix, et auront appris les bases de l’Internet des Objets, y compris la rédaction du code des dispositifs, la connexion au cloud, l’analyse des télémétries et l’exécution de l’IA en périphérie. +Nous avons choisi deux principes pédagogiques pour construire ce programme : nous assurer qu'il soit basé sur des projets et qu'il inclue des quiz fréquents. À la fin de cette série, les étudiants auront construit un système de surveillance et d'arrosage de plantes, un traceur de véhicule, une configuration d'usine intelligente pour suivre et contrôler les aliments, et un minuteur de cuisine contrôlé par la voix, tout en ayant appris les bases de l'Internet des objets incluant comment écrire du code pour les appareils, se connecter au cloud, analyser la télémétrie et exécuter de l'IA en périphérie (edge). -En veillant à ce que le contenu soit aligné avec des projets, le processus devient plus engageant pour les étudiants et la rétention des concepts est augmentée. +En garantissant que le contenu est aligné avec des projets, le processus devient plus engageant pour les étudiants et la rétention des concepts sera augmentée. -De plus, un quiz à faible enjeu avant un cours oriente l’intention de l’étudiant vers l’apprentissage d’un sujet, tandis qu’un second quiz après le cours assure une retention supplémentaire. Ce programme a été conçu pour être flexible et ludique, et peut être suivi en totalité ou en partie. Les projets commencent petits et deviennent de plus en plus complexes à la fin du cycle de 12 semaines. +De plus, un quiz à faible enjeu avant une classe fixe l'intention de l'étudiant vers l'apprentissage d'un sujet, tandis qu'un second quiz après la classe assure une rétention supérieure. Ce programme a été conçu pour être flexible et amusant et peut être suivi en entier ou partiellement. Les projets commencent petits et deviennent de plus en plus complexes à la fin du cycle de 12 semaines. -Chaque projet est basé sur du matériel réel disponible pour les étudiants et les passionnés. Chaque projet explore le domaine spécifique du projet, fournissant des connaissances de base pertinentes. Pour être un développeur réussi, il est utile de comprendre le domaine dans lequel vous résolvez des problèmes. Fournir ces connaissances de base permet aux étudiants de réfléchir à leurs solutions et apprentissages IoT dans le contexte du type de problème réel qu’ils pourraient être amenés à résoudre en tant que développeur IoT. Les étudiants apprennent le « pourquoi » des solutions qu’ils construisent, et développent une appréciation de l’utilisateur final. +Chaque projet est basé sur du matériel réel accessible aux étudiants et aux amateurs. Chaque projet étudie le domaine spécifique, fournissant les connaissances de fond pertinentes. Pour être un développeur performant, il est utile de comprendre le domaine dans lequel vous résolvez des problèmes, fournir ce contexte permet aux étudiants de réfléchir à leurs solutions IoT et apprentissages dans le cadre du type de problèmes réels qu'ils pourraient être amenés à résoudre comme développeurs IoT. Les étudiants apprennent le "pourquoi" des solutions qu'ils construisent, et comprennent mieux l'utilisateur final. ## Matériel +Nous avons deux choix de matériel IoT à utiliser pour les projets en fonction des préférences personnelles, des connaissances ou préférences en langage de programmation, des objectifs d'apprentissage et de la disponibilité. Nous avons également fourni une version « matériel virtuel » pour ceux qui n'ont pas accès au matériel, ou qui souhaitent en apprendre davantage avant de s'engager dans un achat. Vous pouvez en lire plus et trouver une « liste d'achat » sur la [page matériel](./hardware.md), y compris des liens pour acheter des kits complets auprès de nos amis de Seeed Studio. -Nous proposons deux choix de matériel IoT pour les projets selon la préférence personnelle, la connaissance ou préférence du langage de programmation, les objectifs d’apprentissage et la disponibilité. Nous avons également fourni une version « matériel virtuel » pour ceux qui n’ont pas accès au matériel ou qui souhaitent en apprendre davantage avant de s’engager dans un achat. Vous pouvez en lire plus et trouver une « liste de courses » sur la [page matériel](./hardware.md), incluant des liens pour acheter des kits complets auprès de nos amis de Seeed Studio. -> 💁 Retrouvez notre [Code de conduite](CODE_OF_CONDUCT.md), [Contribuer](CONTRIBUTING.md) et [Traduction](TRANSLATIONS.md) guides. Nous apprécions vos retours constructifs ! +> 💁 Retrouvez notre [Code de conduite](CODE_OF_CONDUCT.md), [Contribuer](CONTRIBUTING.md) et [Traduction](TRANSLATIONS.md). Nous accueillons vos retours constructifs ! > > 🔧 Vous avez des problèmes ? Consultez notre [Guide de dépannage](TROUBLESHOOTING.md) pour des solutions aux problèmes courants. @@ -95,96 +105,96 @@ Nous proposons deux choix de matériel IoT pour les projets selon la préférenc - sketchnote - vidéo complémentaire optionnelle -- quiz d'échauffement avant la leçon +- quiz d'échauffement pré-lesson - leçon écrite -- pour les leçons basées sur un projet, des guides étape par étape sur la façon de réaliser le projet -- contrôles de connaissances +- pour les leçons basées sur un projet, guides étape par étape sur comment construire le projet +- contrôles des connaissances - un défi - lecture complémentaire - devoir -- [quiz post-leçon](https://ff-quizzes.netlify.app/en/) +- [quiz post-lesson](https://ff-quizzes.netlify.app/en/) -> **Une note sur les quiz** : Tous les quiz se trouvent dans le dossier quiz-app, pour un total de 48 quiz comprenant chacun trois questions. Ils sont liés depuis les leçons mais l’application de quiz peut être exécutée localement ou déployée sur Azure ; suivez les instructions dans le dossier `quiz-app`. Ils sont progressivement localisés. +> **Une remarque sur les quiz** : Tous les quiz sont contenus dans le dossier quiz-app, pour un total de 48 quiz composés chacun de trois questions. Ils sont liés depuis l'intérieur des leçons mais l'application de quiz peut être exécutée localement ou déployée sur Azure ; suivez les instructions dans le dossier `quiz-app`. Ils sont en cours de localisation progressive. ## Leçons -| | Nom du projet | Concepts enseignés | Objectifs d’apprentissage | Leçon liée | -| :---: | :------------------------------------: | :-------------------------------------------------------------: | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------: | -| 01 | [Prise en main](./1-getting-started/README.md) | Introduction à l’IoT | Apprenez les principes de base de l’IoT ainsi que les composants de base des solutions IoT telles que les capteurs et les services cloud en configurant votre premier appareil IoT | [Introduction à l’IoT](./1-getting-started/lessons/1-introduction-to-iot/README.md) | -| 02 | [Prise en main](./1-getting-started/README.md) | Approfondissement de l’IoT | Approfondissez votre connaissance des composants d’un système IoT, ainsi que des microcontrôleurs et des ordinateurs monocartes | [Approfondissement de l’IoT](./1-getting-started/lessons/2-deeper-dive/README.md) | -| 03 | [Prise en main](./1-getting-started/README.md) | Interactions avec le monde physique via capteurs et actionneurs | Découvrez les capteurs pour collecter des données du monde physique, et les actionneurs pour envoyer des retours, tout en construisant une veilleuse | [Interactions avec le monde physique via capteurs et actionneurs](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | -| 04 | [Prise en main](./1-getting-started/README.md) | Connecter votre appareil à Internet | Apprenez comment connecter un appareil IoT à Internet pour envoyer et recevoir des messages en connectant votre veilleuse à un courtier MQTT | [Connecter votre appareil à Internet](./1-getting-started/lessons/4-connect-internet/README.md) | -| 05 | [Ferme](./2-farm/README.md) | Prédire la croissance des plantes | Apprenez à prédire la croissance des plantes à l’aide de données de température capturées par un appareil IoT | [Prédire la croissance des plantes](./2-farm/lessons/1-predict-plant-growth/README.md) | -| 06 | [Ferme](./2-farm/README.md) | 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/README.md) | -| 07 | [Ferme](./2-farm/README.md) | Arrosage automatique des plantes | Apprenez à automatiser et minuter l’arrosage en utilisant un relais et MQTT | [Arrosage automatique des plantes](./2-farm/lessons/3-automated-plant-watering/README.md) | -| 08 | [Ferme](./2-farm/README.md) | Migrer votre plante vers le cloud | Découvrez le cloud et les services IoT hébergés dans le cloud et comment connecter votre plante à l’un d’eux au lieu d’un courtier MQTT public | [Migrer votre plante vers le cloud](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | -| 09 | [Ferme](./2-farm/README.md) | Migrer votre logique applicative vers le cloud | Apprenez à écrire une logique applicative dans le cloud qui répond aux messages IoT | [Migrer votre logique applicative vers le cloud](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | -| 10 | [Ferme](./2-farm/README.md) | Protéger votre plante | Apprenez la sécurité appliquée à l’IoT et comment sécuriser votre plante avec des clés et des certificats | [Protéger votre plante](./2-farm/lessons/6-keep-your-plant-secure/README.md) | -| 11 | [Transport](./3-transport/README.md) | Suivi de localisation | Découvrez le suivi de localisation GPS pour appareils IoT | [Suivi de localisation](./3-transport/lessons/1-location-tracking/README.md) | -| 12 | [Transport](./3-transport/README.md) | Stocker les données de localisation | Apprenez à stocker les données IoT pour qu’elles soient visualisées ou analysées ultérieurement | [Stocker les données de localisation](./3-transport/lessons/2-store-location-data/README.md) | -| 13 | [Transport](./3-transport/README.md) | Visualiser les données de localisation | Découvrez la visualisation des données de localisation sur une carte et comment les cartes représentent le monde réel 3D en 2 dimensions | [Visualiser les données de localisation](./3-transport/lessons/3-visualize-location-data/README.md) | -| 14 | [Transport](./3-transport/README.md) | Géorepérage | Découvrez les géorepérages et comment ils peuvent être utilisés pour alerter lorsque des véhicules dans la chaîne d’approvisionnement sont proches de leur destination | [Géorepérage](./3-transport/lessons/4-geofences/README.md) | -| 15 | [Fabrication](./4-manufacturing/README.md) | Entraîner un détecteur de qualité de fruit | Découvrez comment entraîner un classificateur d’images dans le cloud pour détecter la qualité des fruits | [Entraîner un détecteur de qualité de fruit](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | -| 16 | [Fabrication](./4-manufacturing/README.md) | Vérifier la qualité des fruits avec un appareil IoT | Apprenez à utiliser votre détecteur de qualité des fruits à partir d’un appareil IoT | [Vérifier la qualité des fruits avec un appareil IoT](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | -| 17 | [Fabrication](./4-manufacturing/README.md) | Exécuter votre détecteur de fruits en périphérie | Découvrez l’exécution de votre détecteur de fruits sur un appareil IoT en périphérie | [Exécuter votre détecteur de fruits en périphérie](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | -| 18 | [Fabrication](./4-manufacturing/README.md) | Déclencher la détection de qualité des fruits par un capteur | Apprenez à déclencher la détection de qualité des fruits par un capteur | [Déclencher la détection de qualité des fruits par un capteur](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | -| 19 | [Commerce](./5-retail/README.md) | Entraîner un détecteur de stock | Apprenez à utiliser la détection d’objets pour entraîner un détecteur de stock afin de compter le stock dans un magasin | [Entraîner un détecteur de stock](./5-retail/lessons/1-train-stock-detector/README.md) | -| 20 | [Commerce](./5-retail/README.md) | Vérifier le stock à partir d’un appareil IoT | Apprenez à vérifier le stock à partir d’un appareil IoT utilisant un modèle de détection d’objets | [Vérifier le stock à partir d’un appareil IoT](./5-retail/lessons/2-check-stock-device/README.md) | -| 21 | [Consommateur](./6-consumer/README.md) | Reconnaître la parole avec un appareil IoT | Apprenez à reconnaître la parole depuis un appareil IoT pour construire un minuteur intelligent | [Reconnaître la parole avec un appareil IoT](./6-consumer/lessons/1-speech-recognition/README.md) | -| 22 | [Consommateur](./6-consumer/README.md) | Comprendre le langage | Apprenez à comprendre des phrases adressées à un appareil IoT | [Comprendre le langage](./6-consumer/lessons/2-language-understanding/README.md) | -| 23 | [Consommateur](./6-consumer/README.md) | Régler un minuteur et fournir un retour vocal | Apprenez à régler un minuteur sur un appareil IoT et à fournir un retour vocal quand le minuteur est réglé et quand il se termine | [Régler un minuteur et fournir un retour vocal](./6-consumer/lessons/3-spoken-feedback/README.md) | -| 24 | [Consommateur](./6-consumer/README.md) | Supporter plusieurs langues | Apprenez à supporter plusieurs langues, tant pour les interactions vocales que pour les réponses de votre minuteur intelligent | [Supporter plusieurs langues](./6-consumer/lessons/4-multiple-language-support/README.md) | +| | Nom du Projet | Concepts Enseignés | Objectifs d'apprentissage | Leçon Liée | +| :---: | :------------------------------------: | :-------------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------: | +| 01 | [Premiers pas](./1-getting-started/README.md) | Introduction à l’IoT | Apprenez les principes de base de l’IoT et les blocs fondamentaux des solutions IoT tels que les capteurs et les services cloud pendant que vous configurez votre premier appareil IoT | [Introduction à l’IoT](./1-getting-started/lessons/1-introduction-to-iot/README.md) | +| 02 | [Premiers pas](./1-getting-started/README.md) | Une plongée plus profonde dans l’IoT | Découvrez davantage les composants d’un système IoT, ainsi que les microcontrôleurs et les ordinateurs monocartes | [Une plongée plus profonde dans l’IoT](./1-getting-started/lessons/2-deeper-dive/README.md) | +| 03 | [Premiers pas](./1-getting-started/README.md) | Interagissez avec le monde physique via des capteurs et actionneurs | Apprenez à utiliser les capteurs pour collecter des données du monde physique et les actionneurs pour envoyer des réactions, tout en construisant une lampe de chevet | [Interagissez avec le monde physique via des capteurs et actionneurs](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | +| 04 | [Premiers pas](./1-getting-started/README.md) | Connectez votre appareil à Internet | Apprenez comment connecter un appareil IoT à Internet pour envoyer et recevoir des messages en connectant votre lampe de chevet à un broker MQTT | [Connectez votre appareil à Internet](./1-getting-started/lessons/4-connect-internet/README.md) | +| 05 | [Ferme](./2-farm/README.md) | Prédire la croissance des plantes | Apprenez à prédire la croissance des plantes en utilisant les données de température capturées par un appareil IoT | [Prédire la croissance des plantes](./2-farm/lessons/1-predict-plant-growth/README.md) | +| 06 | [Ferme](./2-farm/README.md) | 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/README.md) | +| 07 | [Ferme](./2-farm/README.md) | Arrosage automatisé des plantes | Apprenez à automatiser et programmer l’arrosage en utilisant un relais et MQTT | [Arrosage automatisé des plantes](./2-farm/lessons/3-automated-plant-watering/README.md) | +| 08 | [Ferme](./2-farm/README.md) | Migrez votre plante vers le cloud | Découvrez le cloud et les services IoT hébergés dans le cloud et comment connecter votre plante à l’un d’eux au lieu d’un broker MQTT public | [Migrez votre plante vers le cloud](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | +| 09 | [Ferme](./2-farm/README.md) | Migrez la logique de votre application vers le cloud | Apprenez comment écrire la logique d’application dans le cloud qui réagit aux messages IoT | [Migrez la logique de votre application vers le cloud](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | +| 10 | [Ferme](./2-farm/README.md) | Sécurisez votre plante | Apprenez la sécurité avec l’IoT et comment sécuriser votre plante avec des clés et des certificats | [Sécurisez votre plante](./2-farm/lessons/6-keep-your-plant-secure/README.md) | +| 11 | [Transport](./3-transport/README.md) | Suivi de localisation | Apprenez sur le suivi de localisation GPS pour les appareils IoT | [Suivi de localisation](./3-transport/lessons/1-location-tracking/README.md) | +| 12 | [Transport](./3-transport/README.md) | Stocker les données de localisation | Apprenez comment stocker les données IoT pour les visualiser ou les analyser plus tard | [Stocker les données de localisation](./3-transport/lessons/2-store-location-data/README.md) | +| 13 | [Transport](./3-transport/README.md) | Visualiser les données de localisation | Apprenez à visualiser des données de localisation sur une carte, et comment les cartes représentent le monde réel 3D en 2 dimensions | [Visualiser les données de localisation](./3-transport/lessons/3-visualize-location-data/README.md) | +| 14 | [Transport](./3-transport/README.md) | Géorepérages | Apprenez ce que sont les géorepérages, et comment ils peuvent être utilisés pour alerter quand des véhicules dans la chaîne d'approvisionnement sont proches de leur destination | [Géorepérages](./3-transport/lessons/4-geofences/README.md) | +| 15 | [Fabrication](./4-manufacturing/README.md) | Entraîner un détecteur de qualité de fruit | Apprenez à entraîner un classificateur d’images dans le cloud pour détecter la qualité des fruits | [Entraîner un détecteur de qualité de fruit](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | +| 16 | [Fabrication](./4-manufacturing/README.md) | Vérifier la qualité des fruits depuis un appareil IoT | Apprenez à utiliser votre détecteur de qualité des fruits depuis un appareil IoT | [Vérifier la qualité des fruits depuis un appareil IoT](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | +| 17 | [Fabrication](./4-manufacturing/README.md) | Exécuter votre détecteur de fruits en périphérie | Apprenez à exécuter votre détecteur de fruits sur un appareil IoT en périphérie | [Exécuter votre détecteur de fruits en périphérie](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | +| 18 | [Fabrication](./4-manufacturing/README.md) | Déclencher la détection de qualité des fruits depuis un capteur | Apprenez à déclencher la détection de qualité des fruits depuis un capteur | [Déclencher la détection de qualité des fruits depuis un capteur](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | +| 19 | [Commerce](./5-retail/README.md) | Entraîner un détecteur de stock | Apprenez à utiliser la détection d’objets pour entraîner un détecteur de stock afin de compter le stock dans un magasin | [Entraîner un détecteur de stock](./5-retail/lessons/1-train-stock-detector/README.md) | +| 20 | [Commerce](./5-retail/README.md) | Vérifier le stock depuis un appareil IoT | Apprenez à vérifier le stock depuis un appareil IoT en utilisant un modèle de détection d’objets | [Vérifier le stock depuis un appareil IoT](./5-retail/lessons/2-check-stock-device/README.md) | +| 21 | [Consommateur](./6-consumer/README.md) | Reconnaître la parole avec un appareil IoT | Apprenez à reconnaître la parole depuis un appareil IoT pour construire un minuteur intelligent | [Reconnaître la parole avec un appareil IoT](./6-consumer/lessons/1-speech-recognition/README.md) | +| 22 | [Consommateur](./6-consumer/README.md) | Comprendre les langues | Apprenez à comprendre les phrases prononcées à un appareil IoT | [Comprendre les langues](./6-consumer/lessons/2-language-understanding/README.md) | +| 23 | [Consommateur](./6-consumer/README.md) | Régler une minuterie et fournir un retour vocal | Apprenez à régler une minuterie sur un appareil IoT et à donner un retour vocal lorsque la minuterie est réglée et quand elle se termine | [Régler une minuterie et fournir un retour vocal](./6-consumer/lessons/3-spoken-feedback/README.md) | +| 24 | [Consommateur](./6-consumer/README.md) | Supporter plusieurs langues | Apprenez à prendre en charge plusieurs langues, à la fois pour être parlé et pour les réponses de votre minuteur intelligent | [Supporter plusieurs langues](./6-consumer/lessons/4-multiple-language-support/README.md) | ## Accès hors ligne -Vous pouvez exécuter cette documentation hors ligne en utilisant [Docsify](https://docsify.js.org/#/). Forkez ce repo, [installez Docsify](https://docsify.js.org/#/quickstart) sur votre machine locale, puis dans le dossier racine de ce repo, tapez `docsify serve`. Le site sera servi sur le port 3000 de votre localhost : `localhost:3000`. +Vous pouvez exécuter cette documentation hors ligne en utilisant [Docsify](https://docsify.js.org/#/). Clonez ce dépôt, [installez Docsify](https://docsify.js.org/#/quickstart) sur votre machine locale, puis dans le dossier racine de ce dépôt, tapez `docsify serve`. Le site sera servi sur le port 3000 sur votre localhost : `localhost:3000`. ## Quiz -Merci à la communauté pour l’hébergement du quiz interactif qui teste vos connaissances sur chacun des chapitres. Testez vos connaissances [ici](https://ff-quizzes.netlify.app/en/) +Merci à la communauté pour l’hébergement du quiz interactif qui teste vos connaissances pour chacun des chapitres. Testez vos connaissances [ici](https://ff-quizzes.netlify.app/en/) ### PDF -Vous pouvez générer un PDF de ce contenu pour un accès hors ligne si nécessaire. Pour ce faire, assurez-vous d’avoir [npm installé](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) et exécutez les commandes suivantes dans le dossier racine de ce repo : +Vous pouvez générer un PDF de ce contenu pour un accès hors ligne si nécessaire. Pour cela, assurez-vous d'avoir [npm installé](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) et exécutez les commandes suivantes dans le dossier racine de ce dépôt : ```sh npm i npm run convert ``` -### Diapositives +### Présentations Il existe des diaporamas pour certaines leçons dans le dossier [slides](../../slides). ## Autres programmes -Notre équipe produit d’autres programmes ! Découvrez : +Notre équipe produit d'autres cursus ! Découvrez : ### LangChain [![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) [![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) - +[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- ### Azure / Edge / MCP / Agents [![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Edge AI pour débutants](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![MCP pour débutants](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) [![Agents IA pour débutants](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Série IA Générative -[![IA Générative pour débutants](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![IA Générative (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![IA Générative (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![IA Générative (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +### Série IA générative +[![IA générative pour débutants](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![IA générative (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![IA générative (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![IA générative (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- -### Apprentissage Fondamental +### Apprentissage fondamental [![ML pour débutants](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) [![Science des données pour débutants](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) [![IA pour débutants](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) @@ -203,11 +213,11 @@ Notre équipe produit d’autres programmes ! Découvrez : ## Attributions des images -Vous pouvez trouver toutes les attributions pour les images utilisées dans ce programme lorsque nécessaire dans le fichier [Attributions](./attributions.md). +Vous pouvez retrouver toutes les attributions des images utilisées dans ce cursus là où cela est nécessaire dans le fichier [Attributions](./attributions.md). --- **Avertissement** : -Ce document a été traduit à l’aide du service de traduction automatique [Co-op Translator](https://github.com/Azure/co-op-translator). Bien que nous nous efforçons d’assurer l’exactitude, veuillez noter que les traductions automatisées peuvent contenir des erreurs ou des inexactitudes. Le document original dans sa langue d’origine doit être considéré comme la source faisant foi. Pour des informations critiques, il est recommandé de recourir à une traduction professionnelle réalisée par un humain. Nous déclinons toute responsabilité en cas de malentendus ou de mauvaises interprétations résultant de l’utilisation de cette traduction. +Ce document a été traduit à l'aide du service de traduction automatique [Co-op Translator](https://github.com/Azure/co-op-translator). Bien que nous nous efforcions d'assurer l'exactitude, veuillez noter que les traductions automatiques peuvent contenir des erreurs ou des inexactitudes. Le document original dans sa langue d'origine doit être considéré comme la source faisant autorité. Pour les informations critiques, une traduction professionnelle réalisée par un humain est recommandée. Nous ne sommes pas responsables des malentendus ou des erreurs d'interprétation résultant de l'utilisation de cette traduction. \ No newline at end of file diff --git a/translations/fr/hardware.md b/translations/fr/hardware.md index ecb0b2556..a05bb9bb6 100644 --- a/translations/fr/hardware.md +++ b/translations/fr/hardware.md @@ -26,7 +26,7 @@ Seeed Studios a gentiment mis à disposition tout le matériel sous forme de kit **[IoT pour 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-p-5004.html)** -[![Le kit matériel Raspberry Pi Terminal](../../translated_images/fr/pi-hardware-kit.26dbadaedb7dd44c73b0131d5d68ea29472ed0a9744f90d5866c6d82f2d16380.png)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) +[![Le kit matériel Raspberry Pi Terminal](../../translated_images/fr/pi-hardware-kit.26dbadaedb7dd44c.webp)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) ## Arduino diff --git a/translations/he/.co-op-translator.json b/translations/he/.co-op-translator.json index 190d0755d..351e1b20d 100644 --- a/translations/he/.co-op-translator.json +++ b/translations/he/.co-op-translator.json @@ -738,8 +738,8 @@ "language_code": "he" }, "README.md": { - "original_hash": "3fcc056cd3837e33d2bdf79f9c359fcf", - "translation_date": "2026-01-30T02:11:55+00:00", + "original_hash": "accf69391fa4450eadbf492ca024cccf", + "translation_date": "2026-04-06T17:06:48+00:00", "source_file": "README.md", "language_code": "he" }, diff --git a/translations/he/1-getting-started/lessons/1-introduction-to-iot/README.md b/translations/he/1-getting-started/lessons/1-introduction-to-iot/README.md index f606e4cfb..4435b5136 100644 --- a/translations/he/1-getting-started/lessons/1-introduction-to-iot/README.md +++ b/translations/he/1-getting-started/lessons/1-introduction-to-iot/README.md @@ -1,6 +1,6 @@ # מבוא ל-IoT -![סקיצה של השיעור](../../../../../translated_images/he/lesson-1.2606670fa61ee904687da5d6fa4e726639d524d064c895117da1b95b9ff6251d.jpg) +![סקיצה של השיעור](../../../../../translated_images/he/lesson-1.2606670fa61ee904.webp) > סקיצה מאת [ניטיה נאראסימן](https://github.com/nitya). לחצו על התמונה לגרסה גדולה יותר. diff --git a/translations/he/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md b/translations/he/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md index c2b98f609..9265eaf42 100644 --- a/translations/he/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md +++ b/translations/he/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md @@ -203,7 +203,7 @@ האפליקציה תתחיל לפעול ותיפתח בדפדפן האינטרנט שלך: - ![The Counter Fit app running in a browser](../../../../../translated_images/he/counterfit-first-run.433326358b669b31d0e99c3513cb01bfbb13724d162c99cdcc8f51ecf5f9c779.png) + ![The Counter Fit app running in a browser](../../../../../translated_images/he/counterfit-first-run.433326358b669b31.webp) היא תסומן כ-*Disconnected*, עם הנורית בפינה הימנית העליונה כבויה. @@ -224,7 +224,7 @@ 1. בטרמינל החדש, הרץ את הקובץ `app.py` כפי שעשית קודם. הסטטוס של CounterFit ישתנה ל-**Connected** והנורית תידלק. - ![Counter Fit showing as connected](../../../../../translated_images/he/counterfit-connected.ed30b46d8f79b0921f3fc70be10366e596a89dca3f80c2224a9d9fc98fccf884.png) + ![Counter Fit showing as connected](../../../../../translated_images/he/counterfit-connected.ed30b46d8f79b092.webp) > 💁 תוכל למצוא את הקוד הזה בתיקייה [code/virtual-device](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/virtual-device). diff --git a/translations/he/1-getting-started/lessons/2-deeper-dive/README.md b/translations/he/1-getting-started/lessons/2-deeper-dive/README.md index 861c8f135..384b5b99b 100644 --- a/translations/he/1-getting-started/lessons/2-deeper-dive/README.md +++ b/translations/he/1-getting-started/lessons/2-deeper-dive/README.md @@ -1,6 +1,6 @@ # צלילה עמוקה יותר לעולם ה-IoT -![סקיצה של השיעור](../../../../../translated_images/he/lesson-2.324b0580d620c25e0a24fb7fddfc0b29a846dd4b82c08e7a9466d580ee78ce51.jpg) +![סקיצה של השיעור](../../../../../translated_images/he/lesson-2.324b0580d620c25e.webp) > סקיצה מאת [ניטיה נאראסימהאן](https://github.com/nitya). לחצו על התמונה לגרסה גדולה יותר. @@ -38,7 +38,7 @@ מכשירים אלו מתקשרים עם העולם הפיזי, או באמצעות חיישנים לאיסוף נתונים מהסביבה שלהם, או על ידי שליטה בפלטים או מפעילים (actuators) כדי לבצע שינויים פיזיים. דוגמה טיפוסית לכך היא תרמוסטט חכם - מכשיר שיש לו חיישן טמפרטורה, אמצעי לקביעת טמפרטורה רצויה כמו חוגה או מסך מגע, וחיבור למערכת חימום או קירור שניתן להפעיל כאשר הטמפרטורה הנמדדת חורגת מהטווח הרצוי. חיישן הטמפרטורה מזהה שהחדר קר מדי, והמפעיל מדליק את החימום. -![תרשים המראה טמפרטורה וחוגה כקלטים למכשיר IoT, ושליטה על תנור כחלק מהפלט](../../../../../translated_images/he/basic-thermostat.a923217fd1f37e5a6f3390396a65c22a387419ea2dd17e518ec24315ba6ae9a8.png) +![תרשים המראה טמפרטורה וחוגה כקלטים למכשיר IoT, ושליטה על תנור כחלק מהפלט](../../../../../translated_images/he/basic-thermostat.a923217fd1f37e5a.webp) יש מגוון עצום של דברים שיכולים לשמש כמכשירי IoT, החל מחומרה ייעודית שמזהה דבר אחד, ועד מכשירים כלליים, אפילו הטלפון החכם שלכם! טלפון חכם יכול להשתמש בחיישנים כדי לזהות את העולם סביבו, ובמפעילים כדי לתקשר עם העולם - לדוגמה, שימוש בחיישן GPS כדי לזהות את מיקומכם ורמקול כדי לתת הוראות ניווט ליעד. @@ -54,7 +54,7 @@ לדוגמה, בתרמוסטט חכם, התרמוסטט יתחבר באמצעות WiFi ביתי לשירות ענן. הוא ישלח את נתוני הטמפרטורה לשירות הענן, ומשם הנתונים ייכתבו למסד נתונים כלשהו, מה שיאפשר לבעל הבית לבדוק את הטמפרטורה הנוכחית והעברית באמצעות אפליקציה בטלפון. שירות נוסף בענן יידע מהי הטמפרטורה הרצויה לבעל הבית, וישלח הודעות חזרה למכשיר IoT דרך שירות הענן כדי להפעיל או לכבות את מערכת החימום. -![תרשים המראה טמפרטורה וחוגה כקלטים למכשיר IoT, המכשיר עם תקשורת דו-כיוונית לענן, שמתקשר גם עם טלפון, ומפעיל תנור כחלק מהפלט](../../../../../translated_images/he/mobile-controlled-thermostat.4a994010473d8d6a52ba68c67e5f02dc8928c717e93ca4b9bc55525aa75bbb60.png) +![תרשים המראה טמפרטורה וחוגה כקלטים למכשיר IoT, המכשיר עם תקשורת דו-כיוונית לענן, שמתקשר גם עם טלפון, ומפעיל תנור כחלק מהפלט](../../../../../translated_images/he/mobile-controlled-thermostat.4a994010473d8d6a.webp) גרסה חכמה יותר יכולה להשתמש בבינה מלאכותית בענן עם נתונים מחיישנים אחרים המחוברים למכשירי IoT אחרים, כמו חיישני נוכחות שמזהים אילו חדרים בשימוש, כמו גם נתונים כמו מזג האוויר ואפילו לוח השנה שלכם, כדי לקבל החלטות על הגדרת הטמפרטורה בצורה חכמה. לדוגמה, היא יכולה לכבות את החימום אם היא מזהה מלוח השנה שאתם בחופשה, או לכבות את החימום לפי חדרים בהתאם לשימוש שלכם, וללמוד מהנתונים כדי להיות מדויקת יותר עם הזמן. @@ -94,7 +94,7 @@ > 💁 מעבדים מבצעים תוכניות באמצעות [מחזור אחזור-פענוח-ביצוע](https://wikipedia.org/wiki/Instruction_cycle). בכל תקתוק שעון, המעבד יאחזר את ההוראה הבאה מהזיכרון, יפענח אותה, ואז יבצע אותה, כמו שימוש ביחידת לוגיקה אריתמטית (ALU) כדי לחבר שני מספרים. חלק מהביצועים ייקחו מספר תקתוקים, ולכן המחזור הבא יפעל בתקתוק הבא לאחר שההוראה הושלמה. -![מחזור אחזור-פענוח-ביצוע המראה את אחזור ההוראה מהתוכנית המאוחסנת ב-RAM, ואז פענוחה וביצועה על המעבד](../../../../../translated_images/he/fetch-decode-execute.2fd6f150f6280392807f4475382319abd0cee0b90058e1735444d6baa6f2078c.png) +![מחזור אחזור-פענוח-ביצוע המראה את אחזור ההוראה מהתוכנית המאוחסנת ב-RAM, ואז פענוחה וביצועה על המעבד](../../../../../translated_images/he/fetch-decode-execute.2fd6f150f6280392.webp) למיקרו-בקרים יש מהירויות שעון נמוכות בהרבה ממחשבים שולחניים או ניידים, או אפילו מרוב הטלפונים החכמים. לדוגמה, למיקרו-בקר Wio Terminal יש מעבד שפועל במהירות של 120MHz או 120,000,000 מחזורים בשנייה. @@ -182,7 +182,7 @@ RAM הוא הזיכרון שבו התוכנית משתמשת בזמן הריצה אתם תכתבו את קוד ההגדרות שלכם בפונקציה `setup`, כמו התחברות ל-WiFi ושירותי ענן או אתחול פינים לקלט ופלט. קוד הלולאה שלכם יכיל קוד עיבוד, כמו קריאה מחיישן ושליחת הערך לענן. בדרך כלל תכללו עיכוב בכל לולאה, לדוגמה, אם אתם רוצים לשלוח נתוני חיישן רק כל 10 שניות, תוסיפו עיכוב של 10 שניות בסוף הלולאה כך שהמיקרו-בקר יוכל לישון, לחסוך באנרגיה, ואז להריץ את הלולאה שוב כעבור 10 שניות. -![סקיצה של Arduino שמריצה את setup תחילה, ואז מריצה את loop שוב ושוב](../../../../../translated_images/he/arduino-sketch.79590cb837ff7a7c6a68d1afda6cab83fd53d3bb1bd9a8bf2eaf8d693a4d3ea6.png) +![סקיצה של Arduino שמריצה את setup תחילה, ואז מריצה את loop שוב ושוב](../../../../../translated_images/he/arduino-sketch.79590cb837ff7a7c.webp) ✅ ארכיטקטורת תוכנה זו מכונה *לולאת אירועים* או *לולאת הודעות*. יישומים רבים משתמשים בזה מאחורי הקלעים וזהו הסטנדרט עבור רוב יישומי שולחן העבודה שמריצים מערכות הפעלה כמו Windows, macOS או Linux. הפונקציה `loop` מאזינה להודעות מרכיבי ממשק משתמש כמו כפתורים, או מכשירים כמו מקלדת, ומגיבה אליהם. תוכלו לקרוא עוד במאמר זה על [לולאת אירועים](https://wikipedia.org/wiki/Event_loop). diff --git a/translations/he/1-getting-started/lessons/3-sensors-and-actuators/README.md b/translations/he/1-getting-started/lessons/3-sensors-and-actuators/README.md index d8dc4fc18..8d063f9bd 100644 --- a/translations/he/1-getting-started/lessons/3-sensors-and-actuators/README.md +++ b/translations/he/1-getting-started/lessons/3-sensors-and-actuators/README.md @@ -1,6 +1,6 @@ # אינטראקציה עם העולם הפיזי באמצעות חיישנים ומפעילים -![סקיצה של סקירה כללית של השיעור](../../../../../translated_images/he/lesson-3.cc3b7b4cd646de598698cce043c0393fd62ef42bac2eaf60e61272cd844250f4.jpg) +![סקיצה של סקירה כללית של השיעור](../../../../../translated_images/he/lesson-3.cc3b7b4cd646de59.webp) > סקיצה מאת [ניטיה נאראסימן](https://github.com/nitya). לחצו על התמונה לגרסה גדולה יותר. @@ -81,7 +81,7 @@ מכשירי IoT הם דיגיטליים - הם לא יכולים לעבוד עם ערכים אנלוגיים, אלא רק עם 0 ו-1. משמעות הדבר היא שערכי חיישנים אנלוגיים צריכים להיות מומרצים לאות דיגיטלי לפני שניתן לעבד אותם. מכשירי IoT רבים כוללים ממירי אנלוגי-לדיגיטלי (ADCs) כדי להמיר קלטים אנלוגיים לייצוגים דיגיטליים של ערכם. חיישנים יכולים גם לעבוד עם ADCs דרך לוח מחבר. ... -![אור עמום במתח נמוך ובהיר יותר במתח גבוה](../../../../../translated_images/he/dimmable-light.9ceffeb195dec1a849da718b2d71b32c35171ff7dfea9c07bbf82646a67acf6b.png) +![אור עמום במתח נמוך ובהיר יותר במתח גבוה](../../../../../translated_images/he/dimmable-light.9ceffeb195dec1a8.webp) בדומה לחיישנים, מכשיר ה-IoT עצמו עובד עם אותות דיגיטליים, לא אנלוגיים. המשמעות היא שכדי לשלוח אות אנלוגי, מכשיר ה-IoT זקוק לממיר דיגיטלי לאנלוגי (DAC), או על המכשיר עצמו או על לוח מחבר. ממיר זה יהפוך את ה-0 וה-1 מהמכשיר לאות מתח אנלוגי שהמפעיל יכול להשתמש בו. @@ -128,7 +128,7 @@ מפעיל דיגיטלי פשוט הוא לד (LED). כאשר מכשיר שולח אות דיגיטלי של 1, נשלח מתח גבוה שמדליק את הלד. כאשר נשלח אות דיגיטלי של 0, המתח יורד ל-0V והלד נכבה. -![לד כבוי ב-0 וולט ודולק ב-5V](../../../../../translated_images/he/led.ec6d94f66676a174ad06d9fa9ea49c2ee89beb18b312d5c6476467c66375b07f.png) +![לד כבוי ב-0 וולט ודולק ב-5V](../../../../../translated_images/he/led.ec6d94f66676a174.webp) ✅ אילו מפעילים פשוטים בעלי שני מצבים נוספים אתם יכולים לחשוב עליהם? דוגמה אחת היא סולנואיד, שהוא אלקטרומגנט שניתן להפעיל כדי לבצע פעולות כמו הזזת בריח דלת לנעילה/פתיחה של דלת. diff --git a/translations/he/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md b/translations/he/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md index e8c1b59b3..04ebe0f5c 100644 --- a/translations/he/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md +++ b/translations/he/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md @@ -26,7 +26,7 @@ Otherwise חבר את ה-LED. -![נורת LED מסוג Grove](../../../../../translated_images/he/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![נורת LED מסוג Grove](../../../../../translated_images/he/grove-led.6c853be93f473cf2.webp) 1. בחר את ה-LED המועדף עליך והכנס את הרגליים לשני החורים שבמודול ה-LED. @@ -40,7 +40,7 @@ Otherwise 1. כאשר ה-Raspberry Pi כבוי, חבר את הקצה השני של כבל Grove לשקע הדיגיטלי המסומן **D5** על כובע הבסיס של Grove שמחובר ל-Pi. שקע זה הוא השני משמאל, בשורה של השקעים ליד פיני GPIO. -![ה-LED של Grove מחובר לשקע D5](../../../../../translated_images/he/pi-led.97f1d474981dc35d1c7996c7b17de355d3d0a6bc9606d79fa5f89df933415122.png) +![ה-LED של Grove מחובר לשקע D5](../../../../../translated_images/he/pi-led.97f1d474981dc35d.webp) ## תכנת את מנורת הלילה diff --git a/translations/he/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md b/translations/he/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md index 6453d2f57..4eaa9baa4 100644 --- a/translations/he/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md +++ b/translations/he/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md @@ -16,13 +16,13 @@ חבר את חיישן האור -![חיישן אור Grove](../../../../../translated_images/he/grove-light-sensor.b8127b7c434e632d6bcdb57587a14e9ef69a268a22df95d08628f62b8fa5505c.png) +![חיישן אור Grove](../../../../../translated_images/he/grove-light-sensor.b8127b7c434e632d.webp) 1. הכנס קצה אחד של כבל Grove לשקע על מודול חיישן האור. הכבל ייכנס רק בכיוון אחד. 1. כאשר ה-Raspberry Pi כבוי, חבר את הקצה השני של כבל Grove לשקע האנלוגי המסומן **A0** על כובע הבסיס של Grove שמחובר ל-Pi. שקע זה הוא השני מימין, בשורה של השקעים ליד פיני GPIO. -![חיישן האור Grove מחובר לשקע A0](../../../../../translated_images/he/pi-light-sensor.66cc1e31fa48cd7d5f23400d4b2119aa41508275cb7c778053a7923b4e972d7e.png) +![חיישן האור Grove מחובר לשקע A0](../../../../../translated_images/he/pi-light-sensor.66cc1e31fa48cd7d.webp) ## תכנות חיישן האור diff --git a/translations/he/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md b/translations/he/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md index be6c39ed6..bb7677350 100644 --- a/translations/he/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md +++ b/translations/he/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md @@ -36,11 +36,11 @@ Otherwise 1. בחר בכפתור **Add** כדי ליצור את ה-LED על Pin 5. - ![הגדרות ה-LED](../../../../../translated_images/he/counterfit-create-led.ba9db1c9b8c622a635d6dfae5cdc4e70c2b250635bd4f0601c6cf0bd22b7ba46.png) + ![הגדרות ה-LED](../../../../../translated_images/he/counterfit-create-led.ba9db1c9b8c622a6.webp) ה-LED ייווצר ויופיע ברשימת האקטואטורים. - ![ה-LED נוצר](../../../../../translated_images/he/counterfit-led.c0ab02de6d256ad84d9bad4d67a7faa709f0ea83e410cfe9b5561ef0cef30b1c.png) + ![ה-LED נוצר](../../../../../translated_images/he/counterfit-led.c0ab02de6d256ad8.webp) לאחר שה-LED נוצר, תוכל לשנות את הצבע באמצעות בוחר הצבעים *Color*. בחר בכפתור **Set** כדי לשנות את הצבע לאחר שבחרת אותו. diff --git a/translations/he/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md b/translations/he/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md index 97bc9e158..f6932f6af 100644 --- a/translations/he/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md +++ b/translations/he/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md @@ -28,11 +28,11 @@ 1. לחץ על כפתור **Add** כדי ליצור את חיישן האור על Pin 0. - ![הגדרות חיישן האור](../../../../../translated_images/he/counterfit-create-light-sensor.9f36a5e0d4458d8d554d54b34d2c806d56093d6e49fddcda2d20f6fef7f5cce1.png) + ![הגדרות חיישן האור](../../../../../translated_images/he/counterfit-create-light-sensor.9f36a5e0d4458d8d.webp) חיישן האור ייווצר ויופיע ברשימת החיישנים. - ![חיישן האור נוצר](../../../../../translated_images/he/counterfit-light-sensor.5d0f5584df56b90f6b2561910d9cb20dfbd73eeff2177c238d38f4de54aefae1.png) + ![חיישן האור נוצר](../../../../../translated_images/he/counterfit-light-sensor.5d0f5584df56b90f.webp) ## תכנת את חיישן האור diff --git a/translations/he/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md b/translations/he/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md index d91f4d3d5..1e06000f2 100644 --- a/translations/he/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md +++ b/translations/he/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md @@ -26,7 +26,7 @@ Otherwise חבר את ה-LED. -![נורת Grove LED](../../../../../translated_images/he/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![נורת Grove LED](../../../../../translated_images/he/grove-led.6c853be93f473cf2.webp) 1. בחר את ה-LED המועדף עליך והכנס את הרגליים לשני החורים במודול ה-LED. diff --git a/translations/he/1-getting-started/lessons/4-connect-internet/README.md b/translations/he/1-getting-started/lessons/4-connect-internet/README.md index dfb9ac4b6..f7b6aac99 100644 --- a/translations/he/1-getting-started/lessons/4-connect-internet/README.md +++ b/translations/he/1-getting-started/lessons/4-connect-internet/README.md @@ -1,6 +1,6 @@ # חיבור המכשיר שלך לאינטרנט -![סקיצה של השיעור](../../../../../translated_images/he/lesson-4.7344e074ea68fa545fd320b12dce36d72dd62d28c3b4596cb26cf315f434b98f.jpg) +![סקיצה של השיעור](../../../../../translated_images/he/lesson-4.7344e074ea68fa54.webp) > סקיצה מאת [Nitya Narasimhan](https://github.com/nitya). לחץ על התמונה לגרסה גדולה יותר. @@ -47,7 +47,7 @@ MQTT הוא פרוטוקול התקשורת הפופולרי ביותר למכש MQTT כולל מתווך יחיד ומספר לקוחות. כל הלקוחות מתחברים למתווך, והמתווך מנתב הודעות ללקוחות הרלוונטיים. הודעות מנותבות באמצעות נושאים (topics) שמותיים, במקום להישלח ישירות ללקוח מסוים. לקוח יכול לפרסם לנושא, וכל לקוח שנרשם לנושא הזה יקבל את ההודעה. -![מכשיר IoT מפרסם טלמטריה בנושא /telemetry, ושירות הענן נרשם לנושא הזה](../../../../../translated_images/he/mqtt.cbf7f21d9adc3e17548b359444cc11bb4bf2010543e32ece9a47becf54438c23.png) +![מכשיר IoT מפרסם טלמטריה בנושא /telemetry, ושירות הענן נרשם לנושא הזה](../../../../../translated_images/he/mqtt.cbf7f21d9adc3e17.webp) ✅ בצעו מחקר. אם יש לכם הרבה מכשירי IoT, איך תוכלו להבטיח שהמתווך של MQTT יוכל להתמודד עם כל ההודעות? @@ -69,7 +69,7 @@ MQTT כולל מתווך יחיד ומספר לקוחות. כל הלקוחות > 💁 מתווך הבדיקה הזה הוא ציבורי ואינו מאובטח. כל אחד יכול להאזין למה שאתם מפרסמים, ולכן לא כדאי להשתמש בו עם נתונים שצריכים להישאר פרטיים. -![תרשים זרימה של המשימה שמראה קריאת רמות אור ובדיקתן, ושליטה ב-LED](../../../../../translated_images/he/assignment-1-internet-flow.3256feab5f052fd273bf4e331157c574c2c3fa42e479836fc9c3586f41db35a5.png) +![תרשים זרימה של המשימה שמראה קריאת רמות אור ובדיקתן, ושליטה ב-LED](../../../../../translated_images/he/assignment-1-internet-flow.3256feab5f052fd2.webp) עקבו אחר הצעד הרלוונטי למטה כדי לחבר את המכשיר שלכם למתווך MQTT: @@ -350,7 +350,7 @@ MQTT גם תומך בפונקציית שמירה על חיבור שמוודאת מעצבי מכשירי IoT צריכים גם לשקול אם ניתן להשתמש במכשיר IoT במהלך תקלה באינטרנט או אובדן אות שנגרם על ידי מיקום. תרמוסטט חכם צריך להיות מסוגל לקבל החלטות מוגבלות לשליטה בחימום אם הוא לא יכול לשלוח טלמטריה לענן עקב תקלה. -[![מכונית פרארי נתקעה כי מישהו ניסה לעדכן אותה מתחת לאדמה ללא קליטת סלולר](../../../../../translated_images/he/bricked-car.dc38f8efadc6c59d76211f981a521efb300939283dee468f79503aae3ec67615.png)](https://twitter.com/internetofshit/status/1315736960082808832) +[![מכונית פרארי נתקעה כי מישהו ניסה לעדכן אותה מתחת לאדמה ללא קליטת סלולר](../../../../../translated_images/he/bricked-car.dc38f8efadc6c59d.webp)](https://twitter.com/internetofshit/status/1315736960082808832) כדי ש-MQTT יטפל באובדן קישוריות, קוד המכשיר והשרת יצטרכו להיות אחראים להבטחת מסירת הודעות אם היא נדרשת, לדוגמה על ידי דרישה שכל ההודעות שנשלחות ייענו בהודעות נוספות בנושא תשובה, ואם לא הן יתווספו לתור באופן ידני כדי להישלח מחדש מאוחר יותר. @@ -358,7 +358,7 @@ MQTT גם תומך בפונקציית שמירה על חיבור שמוודאת פקודות הן הודעות שנשלחות מהענן למכשיר, ומורות לו לעשות משהו. רוב הזמן זה כרוך במתן סוג של פלט באמצעות מפעיל, אבל זה יכול להיות הוראה למכשיר עצמו, כמו לבצע אתחול מחדש, או לאסוף טלמטריה נוספת ולהחזיר אותה כתגובה לפקודה. -![תרמוסטט מחובר לאינטרנט שמקבל פקודה להפעיל את החימום](../../../../../translated_images/he/commands.d6c06bbbb3a02cce95f2831a1c331daf6dedd4e470c4aa2b0ae54f332016e504.png) +![תרמוסטט מחובר לאינטרנט שמקבל פקודה להפעיל את החימום](../../../../../translated_images/he/commands.d6c06bbbb3a02cce.webp) לדוגמה, תרמוסטט יכול לקבל פקודה מהענן להפעיל את החימום. בהתבסס על נתוני הטלמטריה מכל החיישנים, אם שירות הענן החליט שהחימום צריך להיות מופעל, הוא שולח את הפקודה הרלוונטית. diff --git a/translations/he/2-farm/lessons/1-predict-plant-growth/README.md b/translations/he/2-farm/lessons/1-predict-plant-growth/README.md index b431b1886..a320503dd 100644 --- a/translations/he/2-farm/lessons/1-predict-plant-growth/README.md +++ b/translations/he/2-farm/lessons/1-predict-plant-growth/README.md @@ -1,6 +1,6 @@ ## נבא את צמיחת הצמחים עם IoT -![סקיצה של סקירה כללית של השיעור](../../../../../translated_images/he/lesson-5.42b234299279d263143148b88ab4583861a32ddb03110c6c1120e41bb88b2592.jpg) +![סקיצה של סקירה כללית של השיעור](../../../../../translated_images/he/lesson-5.42b234299279d263.webp) > סקיצה מאת [ניטיה נאראסימן](https://github.com/nitya). לחצו על התמונה לגרסה גדולה יותר. @@ -90,7 +90,7 @@ הנוסחה המלאה ל-GDD מעט מורכבת, אבל יש משוואה פשוטה שמשמשת לעיתים קרובות כהערכה טובה: -![GDD = T max + T min divided by 2, all minus T base](../../../../../translated_images/he/gdd-calculation.79b3660f9c5757aa92dc2dd2cdde75344e2d2c1565c4b3151640f7887edc0275.png) +![GDD = T max + T min divided by 2, all minus T base](../../../../../translated_images/he/gdd-calculation.79b3660f9c5757aa.webp) * **GDD** - זהו מספר ימי דרגת הצמיחה * **T max** - זו הטמפרטורה היומית המקסימלית בצלזיוס @@ -118,7 +118,7 @@ זה נותן חישוב של: -![GDD = 16 + 12 divided by 2, all minus 10, giving an answer of 4](../../../../../translated_images/he/gdd-calculation-corn.64a58b7a7afcd0dfd46ff733996d939f17f4f3feac9f0d1c632be3523e51ebd9.png) +![GDD = 16 + 12 divided by 2, all minus 10, giving an answer of 4](../../../../../translated_images/he/gdd-calculation-corn.64a58b7a7afcd0df.webp) התירס קיבל 4 GDD באותו יום. בהנחה של זן תירס שזקוק ל-800 GDD כדי להבשיל, הוא יזדקק לעוד 796 GDD כדי להגיע לבגרות. @@ -239,7 +239,7 @@ לדוגמה, אם הטמפרטורה הגבוהה ביותר של היום היא 25°C, והנמוכה ביותר היא 12°C: -![GDD = 25 + 12 חלקי 2, ואז מחסירים 10 מהתוצאה ומקבלים 8.5](../../../../../translated_images/he/gdd-calculation-strawberries.59f57db94b22adb8ff6efb951ace33af104a1c6ccca3ffb0f8169c14cb160c90.png) +![GDD = 25 + 12 חלקי 2, ואז מחסירים 10 מהתוצאה ומקבלים 8.5](../../../../../translated_images/he/gdd-calculation-strawberries.59f57db94b22adb8.webp) * 25 + 12 = 37 * 37 / 2 = 18.5 diff --git a/translations/he/2-farm/lessons/1-predict-plant-growth/assignment.md b/translations/he/2-farm/lessons/1-predict-plant-growth/assignment.md index 75aa3883c..1b200fd0d 100644 --- a/translations/he/2-farm/lessons/1-predict-plant-growth/assignment.md +++ b/translations/he/2-farm/lessons/1-predict-plant-growth/assignment.md @@ -33,7 +33,7 @@ Jupyter יתחיל ויפתח את המחברת בדפדפן שלך. עבד דרך ההוראות במחברת כדי להציג את הטמפרטורות שנמדדו ולחשב את ימי הדרגה לגידול (GDD). - ![המחברת של Jupyter](../../../../../translated_images/he/gdd-jupyter-notebook.c5b52cf21094f158a61f47f455490fd95f1729777ff90861a4521820bf354cdc.png) + ![המחברת של Jupyter](../../../../../translated_images/he/gdd-jupyter-notebook.c5b52cf21094f158.webp) ## קריטריונים להערכה diff --git a/translations/he/2-farm/lessons/1-predict-plant-growth/pi-temp.md b/translations/he/2-farm/lessons/1-predict-plant-growth/pi-temp.md index 366516752..3494de52e 100644 --- a/translations/he/2-farm/lessons/1-predict-plant-growth/pi-temp.md +++ b/translations/he/2-farm/lessons/1-predict-plant-growth/pi-temp.md @@ -16,13 +16,13 @@ חברו את חיישן הטמפרטורה -![חיישן טמפרטורה Grove](../../../../../translated_images/he/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![חיישן טמפרטורה Grove](../../../../../translated_images/he/grove-dht11.07f8eafceee17004.webp) 1. הכניסו קצה אחד של כבל Grove לשקע שעל חיישן הלחות והטמפרטורה. הכבל ייכנס רק בכיוון אחד. 1. כאשר ה-Raspberry Pi כבוי, חברו את הקצה השני של כבל ה-Grove לשקע הדיגיטלי המסומן **D5** על כובע הבסיס של Grove המחובר ל-Pi. שקע זה הוא השני משמאל, בשורת השקעים הסמוכה לפינים של GPIO. -![חיישן הטמפרטורה Grove מחובר לשקע A0](../../../../../translated_images/he/pi-temperature-sensor.3ff82fff672c8e565ef25a39d26d111de006b825a7e0867227ef4e7fbff8553c.png) +![חיישן הטמפרטורה Grove מחובר לשקע A0](../../../../../translated_images/he/pi-temperature-sensor.3ff82fff672c8e56.webp) ## תכנות חיישן הטמפרטורה diff --git a/translations/he/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md b/translations/he/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md index 35e77b1be..a49bb78db 100644 --- a/translations/he/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md +++ b/translations/he/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md @@ -38,11 +38,11 @@ 1. לחצו על כפתור **Add** כדי ליצור את חיישן הלחות על Pin 5. - ![הגדרות חיישן הלחות](../../../../../translated_images/he/counterfit-create-humidity-sensor.2750e27b6f30e09cf4e22101defd5252710717620816ab41ba688f91f757c49a.png) + ![הגדרות חיישן הלחות](../../../../../translated_images/he/counterfit-create-humidity-sensor.2750e27b6f30e09c.webp) חיישן הלחות ייווצר ויופיע ברשימת החיישנים. - ![חיישן הלחות שנוצר](../../../../../translated_images/he/counterfit-humidity-sensor.7b12f7f339e430cb26c8211d2dba4ef75261b353a01da0932698b5bebd693f27.png) + ![חיישן הלחות שנוצר](../../../../../translated_images/he/counterfit-humidity-sensor.7b12f7f339e430cb.webp) 1. צרו חיישן טמפרטורה: @@ -54,11 +54,11 @@ 1. לחצו על כפתור **Add** כדי ליצור את חיישן הטמפרטורה על Pin 6. - ![הגדרות חיישן הטמפרטורה](../../../../../translated_images/he/counterfit-create-temperature-sensor.199350ed34f7343d79dccbe95eaf6c11d2121f03d1c35ab9613b330c23f39b29.png) + ![הגדרות חיישן הטמפרטורה](../../../../../translated_images/he/counterfit-create-temperature-sensor.199350ed34f7343d.webp) חיישן הטמפרטורה ייווצר ויופיע ברשימת החיישנים. - ![חיישן הטמפרטורה שנוצר](../../../../../translated_images/he/counterfit-temperature-sensor.f0560236c96a9016bafce7f6f792476fe3367bc6941a1f7d5811d144d4bcbfff.png) + ![חיישן הטמפרטורה שנוצר](../../../../../translated_images/he/counterfit-temperature-sensor.f0560236c96a9016.webp) ## תכנות אפליקציית חיישן הטמפרטורה diff --git a/translations/he/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md b/translations/he/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md index 180693958..777e0ed38 100644 --- a/translations/he/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md +++ b/translations/he/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md @@ -18,7 +18,7 @@ חבר את חיישן הטמפרטורה. -![חיישן טמפרטורה מסוג Grove](../../../../../translated_images/he/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![חיישן טמפרטורה מסוג Grove](../../../../../translated_images/he/grove-dht11.07f8eafceee17004.webp) 1. הכנס קצה אחד של כבל Grove לשקע בחיישן הלחות והטמפרטורה. הכבל ייכנס רק בכיוון אחד. diff --git a/translations/he/2-farm/lessons/2-detect-soil-moisture/README.md b/translations/he/2-farm/lessons/2-detect-soil-moisture/README.md index ae789f427..e59ff3bc1 100644 --- a/translations/he/2-farm/lessons/2-detect-soil-moisture/README.md +++ b/translations/he/2-farm/lessons/2-detect-soil-moisture/README.md @@ -13,7 +13,7 @@ C, מבוטא *איי בריבוע סי*, הוא פרוטוקול רב-בקר ו | VCC | אספן מתח משותף | ספק הכוח למכשירים. זה מחובר לחוטי SDA ו-SCL כדי לספק להם כוח דרך נגד משיכה שמכבה את האות כאשר אין מכשיר שמשמש כבקר. | | GND | קרקע | מספק קרקע משותפת למעגל החשמלי. | -![אוטובוס I2C עם 3 מכשירים המחוברים לחוטי SDA ו-SCL, ומשתפים חוט קרקע משותף](../../../../../translated_images/he/i2c.83da845dde02256bdd462dbe0d5145461416b74930571b89d1ae142841eeb584.png) +![אוטובוס I2C עם 3 מכשירים המחוברים לחוטי SDA ו-SCL, ומשתפים חוט קרקע משותף](../../../../../translated_images/he/i2c.83da845dde02256b.webp) כדי לשלוח נתונים, מכשיר אחד יפעיל תנאי התחלה כדי להראות שהוא מוכן לשלוח נתונים. הוא יהפוך אז לבקר. הבקר שולח את כתובת המכשיר שאליו הוא רוצה לתקשר, יחד עם מידע אם הוא רוצה לקרוא או לכתוב נתונים. לאחר שהנתונים הועברו, הבקר שולח תנאי עצירה כדי להצביע על כך שסיים. לאחר מכן מכשיר אחר יכול להפוך לבקר ולשלוח או לקבל נתונים. diff --git a/translations/he/2-farm/lessons/2-detect-soil-moisture/assignment.md b/translations/he/2-farm/lessons/2-detect-soil-moisture/assignment.md index 3cdeba2c9..4650ffefc 100644 --- a/translations/he/2-farm/lessons/2-detect-soil-moisture/assignment.md +++ b/translations/he/2-farm/lessons/2-detect-soil-moisture/assignment.md @@ -20,14 +20,14 @@ תכולת הלחות הגרבימטרית של הקרקע מחושבת כך: -![אחוז לחות הקרקע הוא משקל הקרקע הרטובה פחות משקל הקרקע היבשה, מחולק במשקל הקרקע היבשה, כפול 100](../../../../../translated_images/he/gsm-calculation.6da38c6201eec14e7573bb2647aa18892883193553d23c9d77e5dc681522dfb2.png) +![אחוז לחות הקרקע הוא משקל הקרקע הרטובה פחות משקל הקרקע היבשה, מחולק במשקל הקרקע היבשה, כפול 100](../../../../../translated_images/he/gsm-calculation.6da38c6201eec14e.webp) * W - משקל הקרקע הרטובה * W - משקל הקרקע היבשה לדוגמה, נניח שיש לכם דגימת קרקע שמשקלה 212 גרם כשהיא רטובה, ו-197 גרם כשהיא יבשה. -![החישוב ממולא](../../../../../translated_images/he/gsm-calculation-example.99f9803b4f29e97668e7c15412136c0c399ab12dbba0b89596fdae9d8aedb6fb.png) +![החישוב ממולא](../../../../../translated_images/he/gsm-calculation-example.99f9803b4f29e976.webp) * W = 212 גרם * W = 197 גרם diff --git a/translations/he/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md b/translations/he/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md index 66d651aa2..5f64ba55c 100644 --- a/translations/he/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md +++ b/translations/he/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md @@ -18,13 +18,13 @@ חבר את חיישן לחות הקרקע. -![חיישן לחות קרקע של Grove](../../../../../translated_images/he/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![חיישן לחות קרקע של Grove](../../../../../translated_images/he/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. הכנס קצה אחד של כבל Grove לשקע על חיישן לחות הקרקע. הכבל ייכנס רק בכיוון אחד. 1. כשה-Raspberry Pi כבוי, חבר את הקצה השני של כבל Grove לשקע האנלוגי המסומן **A0** בכובע הבסיס של Grove המחובר ל-Pi. שקע זה הוא השני מימין, בשורה של השקעים ליד פיני ה-GPIO. -![חיישן לחות הקרקע של Grove מחובר לשקע A0](../../../../../translated_images/he/pi-soil-moisture-sensor.fdd7eb2393792cf6739cacf1985d9f55beda16d372f30d0b5a51d586f978a870.png) +![חיישן לחות הקרקע של Grove מחובר לשקע A0](../../../../../translated_images/he/pi-soil-moisture-sensor.fdd7eb2393792cf6.webp) 1. הכנס את חיישן לחות הקרקע לתוך הקרקע. יש לו 'קו מיקום עליון' - קו לבן שחוצה את החיישן. הכנס את החיישן עד לקו זה אך לא מעבר לו. diff --git a/translations/he/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md b/translations/he/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md index e42a026cd..7dfaf8ce4 100644 --- a/translations/he/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md +++ b/translations/he/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md @@ -34,11 +34,11 @@ 1. לחצו על כפתור **Add** כדי ליצור את חיישן ה-*Soil Moisture* על Pin 0. - ![הגדרות חיישן לחות הקרקע](../../../../../translated_images/he/counterfit-create-soil-moisture-sensor.35266135a5e0ae68b29a684d7db0d2933a8098b2307d197f7c71577b724603aa.png) + ![הגדרות חיישן לחות הקרקע](../../../../../translated_images/he/counterfit-create-soil-moisture-sensor.35266135a5e0ae68.webp) חיישן לחות הקרקע ייווצר ויופיע ברשימת החיישנים. - ![חיישן לחות הקרקע שנוצר](../../../../../translated_images/he/counterfit-soil-moisture-sensor.81742b2de0e9de60a3b3b9a2ff8ecc686d428eb6d71820f27a693be26e5aceee.png) + ![חיישן לחות הקרקע שנוצר](../../../../../translated_images/he/counterfit-soil-moisture-sensor.81742b2de0e9de60.webp) ## תכנות אפליקציית חיישן לחות הקרקע diff --git a/translations/he/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md b/translations/he/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md index 7108da71e..c6fd0002b 100644 --- a/translations/he/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md +++ b/translations/he/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md @@ -18,7 +18,7 @@ חברו את חיישן לחות הקרקע. -![חיישן לחות קרקע מסוג Grove](../../../../../translated_images/he/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![חיישן לחות קרקע מסוג Grove](../../../../../translated_images/he/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. הכניסו קצה אחד של כבל Grove לשקע שבחיישן לחות הקרקע. הכבל ייכנס רק בכיוון אחד. diff --git a/translations/he/2-farm/lessons/3-automated-plant-watering/README.md b/translations/he/2-farm/lessons/3-automated-plant-watering/README.md index 14bba827d..a86fbfe1f 100644 --- a/translations/he/2-farm/lessons/3-automated-plant-watering/README.md +++ b/translations/he/2-farm/lessons/3-automated-plant-watering/README.md @@ -1,6 +1,6 @@ # השקיית צמחים אוטומטית -![סקיצה של השיעור](../../../../../translated_images/he/lesson-7.30b5f577d3cb8e031238751475cb519c7d6dbaea261b5df4643d086ffb2a03bb.jpg) +![סקיצה של השיעור](../../../../../translated_images/he/lesson-7.30b5f577d3cb8e03.webp) > סקיצה מאת [ניטיה נאראסימן](https://github.com/nitya). לחצו על התמונה לגרסה גדולה יותר. @@ -32,7 +32,7 @@ הפתרון לכך הוא לחבר את המשאבה למקור כוח חיצוני ולהשתמש במפעיל כדי להפעיל את המשאבה, בדומה לאופן שבו מפעילים אור. נדרש מעט מאוד כוח (בצורת אנרגיה בגוף שלכם) כדי שהאצבע שלכם תלחץ על מתג, וזה מחבר את האור לחשמל ביתי הפועל ב-110v/240v. -![מתג אור מפעיל כוח לאור](../../../../../translated_images/he/light-switch.760317ad6ab8bd6d611da5352dfe9c73a94a0822ccec7df3c8bae35da18e1658.png) +![מתג אור מפעיל כוח לאור](../../../../../translated_images/he/light-switch.760317ad6ab8bd6d.webp) > 🎓 [חשמל ביתי](https://wikipedia.org/wiki/Mains_electricity) מתייחס לחשמל המסופק לבתים ולעסקים דרך תשתיות לאומיות בחלקים רבים בעולם. @@ -72,7 +72,7 @@ האלקטרומגנט לא צריך הרבה כוח כדי להפעיל ולמשוך את המנוף, ניתן לשלוט בו באמצעות יציאת 3.3V או 5V מערכת פיתוח IoT. מעגל הפלט יכול לשאת הרבה יותר כוח, תלוי בממסר, כולל מתח ביתי או אפילו רמות כוח גבוהות יותר לשימוש תעשייתי. כך ערכת פיתוח IoT יכולה לשלוט במערכת השקיה, ממשאבה קטנה לצמח יחיד ועד מערכת תעשייתית גדולה לחווה מסחרית שלמה. -![ממסר Grove עם מעגל הבקרה, מעגל הפלט והממסר מסומנים](../../../../../translated_images/he/grove-relay-labelled.293e068f5c3c2a199bd7892f2661fdc9e10c920b535cfed317fbd6d1d4ae1168.png) +![ממסר Grove עם מעגל הבקרה, מעגל הפלט והממסר מסומנים](../../../../../translated_images/he/grove-relay-labelled.293e068f5c3c2a19.webp) התמונה למעלה מציגה ממסר Grove. מעגל הבקרה מתחבר למכשיר IoT ומפעיל או מכבה את הממסר באמצעות 3.3V או 5V. למעגל הפלט יש שני מסופים, כל אחד מהם יכול להיות כוח או קרקע. מעגל הפלט יכול להתמודד עם עד 250V ב-10A, מספיק למגוון מכשירים המופעלים על ידי חשמל ביתי. ניתן להשיג ממסרים שיכולים להתמודד עם רמות כוח גבוהות אף יותר. diff --git a/translations/he/2-farm/lessons/3-automated-plant-watering/pi-relay.md b/translations/he/2-farm/lessons/3-automated-plant-watering/pi-relay.md index 7951a7c0b..b61b6623e 100644 --- a/translations/he/2-farm/lessons/3-automated-plant-watering/pi-relay.md +++ b/translations/he/2-farm/lessons/3-automated-plant-watering/pi-relay.md @@ -18,13 +18,13 @@ חבר את הריליי. -![ריליי Grove](../../../../../translated_images/he/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) +![ריליי Grove](../../../../../translated_images/he/grove-relay.d426958ca210fbd0.webp) 1. הכנס קצה אחד של כבל Grove לשקע על הריליי. הוא ייכנס רק בכיוון אחד. 1. כאשר ה-Raspberry Pi כבוי, חבר את הקצה השני של כבל Grove לשקע הדיגיטלי המסומן **D5** על ה-Grove Base Hat המחובר ל-Pi. שקע זה הוא השני משמאל, בשורה של השקעים ליד פיני ה-GPIO. השאר את חיישן לחות הקרקע מחובר לשקע **A0**. -![הריליי Grove מחובר לשקע D5, וחיישן לחות הקרקע מחובר לשקע A0](../../../../../translated_images/he/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e69ec716cd2719ce117700bd1fc933eaf93476c103c57939b.png) +![הריליי Grove מחובר לשקע D5, וחיישן לחות הקרקע מחובר לשקע A0](../../../../../translated_images/he/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e.webp) 1. הכנס את חיישן לחות הקרקע לאדמה, אם הוא לא כבר מחובר מהשיעור הקודם. diff --git a/translations/he/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md b/translations/he/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md index 482b58abe..c326ef67e 100644 --- a/translations/he/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md +++ b/translations/he/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md @@ -28,11 +28,11 @@ 1. לחצו על כפתור **Add** כדי ליצור את הממסר על Pin 5. - ![הגדרות הממסר](../../../../../translated_images/he/counterfit-create-relay.fa7c40fd0f2f6afc33b35ea94fcb235085be4861e14e3fe6b9b7bcfc82d1c888.png) + ![הגדרות הממסר](../../../../../translated_images/he/counterfit-create-relay.fa7c40fd0f2f6afc.webp) הממסר ייווצר ויופיע ברשימת המפעילים. - ![הממסר שנוצר](../../../../../translated_images/he/counterfit-relay.bbf74c1dbdc8b9acd983367fcbd06703a402aefef6af54ddb28e11307ba8a12c.png) + ![הממסר שנוצר](../../../../../translated_images/he/counterfit-relay.bbf74c1dbdc8b9ac.webp) ## תכנות הממסר diff --git a/translations/he/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md b/translations/he/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md index 43d814cd6..9d16ef57a 100644 --- a/translations/he/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md +++ b/translations/he/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md @@ -1,6 +1,6 @@ # העבר את הצמח שלך לענן -![סקיצה של השיעור](../../../../../translated_images/he/lesson-8.3f21f3c11159e6a0a376351973ea5724d5de68fa23b4288853a174bed9ac48c3.jpg) +![סקיצה של השיעור](../../../../../translated_images/he/lesson-8.3f21f3c11159e6a0.webp) > סקיצה מאת [Nitya Narasimhan](https://github.com/nitya). לחצו על התמונה לגרסה גדולה יותר. @@ -46,8 +46,8 @@ הענן מכונה לעיתים קרובות בצחוק "המחשב של מישהו אחר". הרעיון הראשוני היה פשוט - במקום לקנות מחשבים, שוכרים את המחשב של מישהו אחר. ספק מחשוב ענן היה מנהל מרכזי נתונים גדולים. הם היו אחראים על רכישת והתקנת החומרה, ניהול חשמל וקירור, רשתות, אבטחת הבניין, עדכוני חומרה ותוכנה, הכל. כלקוח, הייתם שוכרים את המחשבים שאתם צריכים, שוכרים יותר כאשר הביקוש עולה, ואז מפחיתים את הכמות שאתם שוכרים אם הביקוש יורד. מרכזי הנתונים הללו נמצאים בכל רחבי העולם. -![מרכז נתונים של Microsoft בענן](../../../../../translated_images/he/azure-region-existing.73f704604f2aa6cb9b5a49ed40e93d4fd81ae3f4e6af4a8ca504023902832f56.png) -![הרחבה מתוכננת של מרכז נתונים של Microsoft בענן](../../../../../translated_images/he/azure-region-planned-expansion.a5074a1e8af74f156a73552d502429e5b126ea5019274d767ecb4b9afdad442b.png) +![מרכז נתונים של Microsoft בענן](../../../../../translated_images/he/azure-region-existing.73f704604f2aa6cb.webp) +![הרחבה מתוכננת של מרכז נתונים של Microsoft בענן](../../../../../translated_images/he/azure-region-planned-expansion.a5074a1e8af74f15.webp) מרכזי הנתונים הללו יכולים להיות בגודל של מספר קילומטרים רבועים. התמונות למעלה צולמו לפני כמה שנים במרכז נתונים של Microsoft בענן, ומראות את הגודל ההתחלתי, יחד עם הרחבה מתוכננת. השטח שנוקה להרחבה הוא מעל 5 קילומטרים רבועים. @@ -108,11 +108,11 @@ Azure הוא הענן למפתחים של Microsoft, וזהו הענן שבו ת מכשירי IoT מתחברים לשירות ענן באמצעות SDK למכשיר (ספרייה שמספקת קוד לעבודה עם תכונות השירות) או ישירות דרך פרוטוקול תקשורת כמו MQTT או HTTP. ה-SDK למכשיר הוא בדרך כלל הדרך הקלה ביותר מכיוון שהוא מטפל בכל עבורכם, כמו לדעת אילו נושאים לפרסם או להירשם אליהם, וכיצד לטפל באבטחה. -![מכשירים מתחברים לשירות באמצעות SDK למכשיר. קוד שרת מתחבר גם הוא לשירות דרך SDK](../../../../../translated_images/he/iot-service-connectivity.7e873847921a5d6fd60d0ba3a943210194518cee0d4e362476624316443275c3.png) +![מכשירים מתחברים לשירות באמצעות SDK למכשיר. קוד שרת מתחבר גם הוא לשירות דרך SDK](../../../../../translated_images/he/iot-service-connectivity.7e873847921a5d6f.webp) המכשיר שלכם מתקשר עם חלקים אחרים של האפליקציה שלכם דרך השירות הזה - בדומה לאופן שבו שלחתם טלמטריה וקיבלתם פקודות דרך MQTT. זה נעשה בדרך כלל באמצעות SDK לשירות או ספרייה דומה. הודעות מגיעות מהמכשיר שלכם לשירות, שם רכיבים אחרים של האפליקציה שלכם יכולים לקרוא אותן, והודעות יכולות להישלח בחזרה למכשיר שלכם. -![מכשירים ללא מפתח סודי תקף אינם יכולים להתחבר לשירות IoT](../../../../../translated_images/he/iot-service-allowed-denied-connection.818b0063ac213fb84204a7229303764d9b467ca430fb822b4ac2fca267d56726.png) +![מכשירים ללא מפתח סודי תקף אינם יכולים להתחבר לשירות IoT](../../../../../translated_images/he/iot-service-allowed-denied-connection.818b0063ac213fb8.webp) שירותים אלו מיישמים אבטחה על ידי ידיעה על כל המכשירים שיכולים להתחבר ולשלוח נתונים, או על ידי רישום מראש של המכשירים בשירות, או על ידי מתן מפתחות סודיים או תעודות למכשירים שהם יכולים להשתמש בהם כדי לרשום את עצמם בשירות בפעם הראשונה שהם מתחברים. מכשירים לא מוכרים אינם יכולים להתחבר, ואם הם מנסים השירות דוחה את החיבור ומתעלם מהודעות שנשלחות על ידם. @@ -124,7 +124,7 @@ Azure הוא הענן למפתחים של Microsoft, וזהו הענן שבו ת עכשיו כשיש לך מנוי ל-Azure, תוכל להירשם לשירות IoT. שירות ה-IoT של Microsoft נקרא Azure IoT Hub. -![לוגו של Azure IoT Hub](../../../../../translated_images/he/azure-iot-hub-logo.28a19de76d0a1932464d858f7558712bcdace3e5ec69c434d482ed7ce41c3a26.png) +![לוגו של Azure IoT Hub](../../../../../translated_images/he/azure-iot-hub-logo.28a19de76d0a1932.webp) הסרטון הבא מספק סקירה קצרה על Azure IoT Hub: diff --git a/translations/he/2-farm/lessons/5-migrate-application-to-the-cloud/README.md b/translations/he/2-farm/lessons/5-migrate-application-to-the-cloud/README.md index 0e41375f4..295a38569 100644 --- a/translations/he/2-farm/lessons/5-migrate-application-to-the-cloud/README.md +++ b/translations/he/2-farm/lessons/5-migrate-application-to-the-cloud/README.md @@ -1,6 +1,6 @@ # העבר את לוגיקת האפליקציה שלך לענן -![סקיצה של סקירה כללית של השיעור הזה](../../../../../translated_images/he/lesson-9.dfe99c8e891f48e179724520da9f5794392cf9a625079281ccdcbf09bd85e1b6.jpg) +![סקיצה של סקירה כללית של השיעור הזה](../../../../../translated_images/he/lesson-9.dfe99c8e891f48e1.webp) > סקיצה מאת [ניטיה נאראסימן](https://github.com/nitya). לחץ על התמונה לגרסה גדולה יותר. @@ -28,7 +28,7 @@ ללא שרת, או מחשוב ללא שרת, כולל יצירת בלוקים קטנים של קוד שמופעלים בענן בתגובה לסוגים שונים של אירועים. כאשר האירוע מתרחש, הקוד שלך מופעל ומועבר אליו מידע על האירוע. אירועים אלו יכולים להגיע ממגוון מקורות, כולל בקשות אינטרנט, הודעות בתור, שינויים בנתונים בבסיס נתונים, או הודעות שנשלחות לשירות IoT על ידי מכשירי IoT. -![אירועים שנשלחים משירות IoT לשירות ללא שרת, כולם מעובדים בו זמנית על ידי פונקציות מרובות](../../../../../translated_images/he/iot-messages-to-serverless.0194da1cc0732bb7d0f823aed3fce54735c6b1ad3bf36089804d8aaefc0a774f.png) +![אירועים שנשלחים משירות IoT לשירות ללא שרת, כולם מעובדים בו זמנית על ידי פונקציות מרובות](../../../../../translated_images/he/iot-messages-to-serverless.0194da1cc0732bb7.webp) > 💁 אם השתמשת בעבר בטריגרים של בסיס נתונים, תוכל לחשוב על זה כמשהו דומה - קוד שמופעל על ידי אירוע כמו הכנסת שורה. @@ -54,7 +54,7 @@ שירות המחשוב ללא שרת של מיקרוסופט נקרא Azure Functions. -![לוגו של Azure Functions](../../../../../translated_images/he/azure-functions-logo.1cfc8e3204c9c44aaf80fcf406fc8544d80d7f00f8d3e8ed6fed764563e17564.png) +![לוגו של Azure Functions](../../../../../translated_images/he/azure-functions-logo.1cfc8e3204c9c44a.webp) הסרטון הקצר למטה מציג סקירה כללית של Azure Functions. diff --git a/translations/he/2-farm/lessons/6-keep-your-plant-secure/README.md b/translations/he/2-farm/lessons/6-keep-your-plant-secure/README.md index f70d2eeb4..8c7f4f47d 100644 --- a/translations/he/2-farm/lessons/6-keep-your-plant-secure/README.md +++ b/translations/he/2-farm/lessons/6-keep-your-plant-secure/README.md @@ -1,6 +1,6 @@ # שמור על הצמח שלך בטוח -![סקיצה של השיעור](../../../../../translated_images/he/lesson-10.829c86b80b9403bb770929ee553a1d293afe50dc23121aaf9be144673ae012cc.jpg) +![סקיצה של השיעור](../../../../../translated_images/he/lesson-10.829c86b80b9403bb.webp) > סקיצה מאת [ניטיה נאראסימהן](https://github.com/nitya). לחץ על התמונה לגרסה גדולה יותר. @@ -52,11 +52,11 @@ כאשר מכשיר מתחבר לשירות IoT, הוא משתמש במזהה כדי לזהות את עצמו. הבעיה היא שמזהה זה יכול להיות משוכפל - האקר יכול להקים מכשיר זדוני שמשתמש באותו מזהה כמו מכשיר אמיתי אך שולח נתונים מזויפים. -![גם מכשירים תקינים וגם זדוניים יכולים להשתמש באותו מזהה כדי לשלוח נתונים](../../../../../translated_images/he/iot-device-and-hacked-device-connecting.e0671675df74d6d99eb1dedb5a670e606f698efa6202b1ad4c8ae548db299cc6.png) +![גם מכשירים תקינים וגם זדוניים יכולים להשתמש באותו מזהה כדי לשלוח נתונים](../../../../../translated_images/he/iot-device-and-hacked-device-connecting.e0671675df74d6d9.webp) הפתרון לכך הוא להמיר את הנתונים הנשלחים לפורמט מוצפן, באמצעות ערך מסוים הידוע רק למכשיר ולענן. תהליך זה נקרא *הצפנה*, והערך המשמש להצפנת הנתונים נקרא *מפתח הצפנה*. -![אם משתמשים בהצפנה, רק הודעות מוצפנות יתקבלו, אחרות יידחו](../../../../../translated_images/he/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f979e46f2849b573564eeb4a4dc5b52f669f62745397492fb.png) +![אם משתמשים בהצפנה, רק הודעות מוצפנות יתקבלו, אחרות יידחו](../../../../../translated_images/he/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f.webp) שירות הענן יכול אז להמיר את הנתונים בחזרה לפורמט קריא, באמצעות תהליך שנקרא *פענוח*, באמצעות אותו מפתח הצפנה או *מפתח פענוח*. אם ההודעה המוצפנת לא ניתנת לפענוח על ידי המפתח, המכשיר נפרץ וההודעה נדחית. diff --git a/translations/he/3-transport/lessons/1-location-tracking/README.md b/translations/he/3-transport/lessons/1-location-tracking/README.md index f95eaa9ac..53c050b59 100644 --- a/translations/he/3-transport/lessons/1-location-tracking/README.md +++ b/translations/he/3-transport/lessons/1-location-tracking/README.md @@ -1,6 +1,6 @@ # מעקב מיקום -![סקיצה של סקירה כללית של השיעור](../../../../../translated_images/he/lesson-11.9fddbac4b664c6d50ab7ac9bb32f1fc3f945f03760e72f7f43938073762fb017.jpg) +![סקיצה של סקירה כללית של השיעור](../../../../../translated_images/he/lesson-11.9fddbac4b664c6d5.webp) > סקיצה מאת [ניטיה נאראסימהאן](https://github.com/nitya). לחצו על התמונה לגרסה גדולה יותר. @@ -63,13 +63,13 @@ IoT משנה את הדרך שבה סחורות מועברות על ידי יצי > 💁 אף אחד לא באמת יודע את הסיבה המקורית לכך שמעגלים מחולקים ל-360 מעלות. [עמוד הוויקיפדיה על מעלה (זווית)](https://wikipedia.org/wiki/Degree_(angle)) מכסה כמה מהסיבות האפשריות. -![קווי רוחב מ-90° בקוטב הצפוני, 45° באמצע הדרך בין הקוטב הצפוני לקו המשווה, 0° בקו המשווה, -45° באמצע הדרך בין קו המשווה לקוטב הדרומי, ו-90° בקוטב הדרומי](../../../../../translated_images/he/latitude-lines.11d8d91dfb2014a57437272d7db7fd6607243098e8685f06e0c5f1ec984cb7eb.png) +![קווי רוחב מ-90° בקוטב הצפוני, 45° באמצע הדרך בין הקוטב הצפוני לקו המשווה, 0° בקו המשווה, -45° באמצע הדרך בין קו המשווה לקוטב הדרומי, ו-90° בקוטב הדרומי](../../../../../translated_images/he/latitude-lines.11d8d91dfb2014a5.webp) קו רוחב נמדד באמצעות קווים שמקיפים את כדור הארץ ורצים במקביל לקו המשווה, ומחלקים את ההמיספרות הצפונית והדרומית ל-90° כל אחת. קו המשווה נמצא ב-0°, הקוטב הצפוני ב-90°, הידוע גם כ-90° צפון, והקוטב הדרומי ב--90°, או 90° דרום. קו אורך נמדד כמספר המעלות ממזרח למערב. נקודת ה-0° של קו האורך נקראת *מרידיאן הראשי*, והיא הוגדרה בשנת 1884 כקו מהקוטב הצפוני לקוטב הדרומי שעובר דרך [מצפה הכוכבים המלכותי בגריניץ', אנגליה](https://wikipedia.org/wiki/Royal_Observatory,_Greenwich). -![קווי אורך שנעים מ--180° מערבית למרידיאן הראשי, ל-0° במרידיאן הראשי, ל-180° מזרחית למרידיאן הראשי](../../../../../translated_images/he/longitude-meridians.ab4ef1c91c064586b0185a3c8d39e585903696c6a7d28c098a93a629cddb5d20.png) +![קווי אורך שנעים מ--180° מערבית למרידיאן הראשי, ל-0° במרידיאן הראשי, ל-180° מזרחית למרידיאן הראשי](../../../../../translated_images/he/longitude-meridians.ab4ef1c91c064586.webp) > 🎓 מרידיאן הוא קו דמיוני ישר שעובר מהקוטב הצפוני לקוטב הדרומי, ויוצר חצי מעגל. @@ -100,7 +100,7 @@ IoT משנה את הדרך שבה סחורות מועברות על ידי יצי * רוחב של 47.6423109 (47.6423109 מעלות צפונית לקו המשווה) * אורך של -122.1390293 (122.1390293 מעלות מערבית למרידיאן הראשי). -![הקמפוס של מיקרוסופט ב-47.6423109,-122.117198](../../../../../translated_images/he/microsoft-gps-location-world.a321d481b010f6adfcca139b2ba0adc53b79f58a540495b8e2ce7f779ea64bfe.png) +![הקמפוס של מיקרוסופט ב-47.6423109,-122.117198](../../../../../translated_images/he/microsoft-gps-location-world.a321d481b010f6ad.webp) ## מערכות מיקום גלובליות (GPS) @@ -112,7 +112,7 @@ IoT משנה את הדרך שבה סחורות מועברות על ידי יצי > 💁 חיישני GPS זקוקים לאנטנות כדי לזהות גלי רדיו. האנטנות המובנות במשאיות וברכבים עם GPS מובנה ממוקמות כך שיקבלו אות טוב, בדרך כלל על השמשה הקדמית או הגג. אם אתם משתמשים במערכת GPS נפרדת, כמו סמארטפון או מכשיר IoT, עליכם לוודא שהאנטנה המובנית במערכת ה-GPS או בטלפון נראית לשמיים, כמו התקנה על השמשה הקדמית. -![על ידי ידיעת המרחק מהחיישן למספר לוויינים, ניתן לחשב את המיקום](../../../../../translated_images/he/gps-satellites.04acf1148fe25fbf1586bc2e8ba698e8d79b79a50c36824b38417dd13372b90f.png) +![על ידי ידיעת המרחק מהחיישן למספר לוויינים, ניתן לחשב את המיקום](../../../../../translated_images/he/gps-satellites.04acf1148fe25fbf.webp) לווייני GPS מקיפים את כדור הארץ, ולא נמצאים בנקודה קבועה מעל החיישן, ולכן נתוני מיקום כוללים גובה מעל פני הים בנוסף לרוחב ואורך. diff --git a/translations/he/3-transport/lessons/1-location-tracking/pi-gps-sensor.md b/translations/he/3-transport/lessons/1-location-tracking/pi-gps-sensor.md index bf8bcbe53..92a74076f 100644 --- a/translations/he/3-transport/lessons/1-location-tracking/pi-gps-sensor.md +++ b/translations/he/3-transport/lessons/1-location-tracking/pi-gps-sensor.md @@ -18,13 +18,13 @@ חבר את חיישן ה-GPS. -![חיישן Grove GPS](../../../../../translated_images/he/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![חיישן Grove GPS](../../../../../translated_images/he/grove-gps-sensor.247943bf69b03f0d.webp) 1. הכנס קצה אחד של כבל Grove לשקע בחיישן ה-GPS. הכבל ייכנס רק בכיוון אחד. 1. כאשר ה-Raspberry Pi כבוי, חבר את הקצה השני של כבל Grove לשקע UART המסומן **UART** על כובע הבסיס של Grove המחובר ל-Pi. שקע זה נמצא בשורה האמצעית, בצד הקרוב לחריץ כרטיס ה-SD, בצד השני מהשקעים של ה-USB והאת'רנט. - ![חיישן Grove GPS מחובר לשקע UART](../../../../../translated_images/he/pi-gps-sensor.1f99ee2b2f6528915047ec78967bd362e0e4ee0ed594368a3837b9cf9cdaca64.png) + ![חיישן Grove GPS מחובר לשקע UART](../../../../../translated_images/he/pi-gps-sensor.1f99ee2b2f652891.webp) 1. מקם את חיישן ה-GPS כך שהאנטנה המחוברת תהיה עם ראות לשמיים - רצוי ליד חלון פתוח או בחוץ. קל יותר לקבל אות ברור כאשר אין מכשולים בדרך של האנטנה. diff --git a/translations/he/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md b/translations/he/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md index 5295e4fdc..360fe42ce 100644 --- a/translations/he/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md +++ b/translations/he/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md @@ -38,11 +38,11 @@ 1. בחרו בכפתור **Add** כדי ליצור את חיישן ה-GPS על פורט `/dev/ttyAMA0`. - ![הגדרות חיישן ה-GPS](../../../../../translated_images/he/counterfit-create-gps-sensor.6385dc9357d85ad1d47b4abb2525e7651fd498917d25eefc5a72feab09eedc70.png) + ![הגדרות חיישן ה-GPS](../../../../../translated_images/he/counterfit-create-gps-sensor.6385dc9357d85ad1.webp) חיישן ה-GPS ייווצר ויופיע ברשימת החיישנים. - ![חיישן ה-GPS נוצר](../../../../../translated_images/he/counterfit-gps-sensor.3fbb15af0a5367566f2f11324ef5a6f30861cdf2b497071a5e002b7aa473550e.png) + ![חיישן ה-GPS נוצר](../../../../../translated_images/he/counterfit-gps-sensor.3fbb15af0a536756.webp) ## תכנות חיישן ה-GPS @@ -102,17 +102,17 @@ * הגדירו את **Source** ל-`Lat/Lon`, והגדירו קו רוחב, קו אורך ומספר לוויינים ששימשו לקבלת תיקון GPS. ערך זה יישלח רק פעם אחת, לכן סמנו את תיבת **Repeat** כדי שהנתונים יחזרו כל שנייה. - ![חיישן ה-GPS עם lat lon נבחר](../../../../../translated_images/he/counterfit-gps-sensor-latlon.008c867d75464fbe7f84107cc57040df565ac07cb57d2f21db37d087d470197d.png) + ![חיישן ה-GPS עם lat lon נבחר](../../../../../translated_images/he/counterfit-gps-sensor-latlon.008c867d75464fbe.webp) * הגדירו את **Source** ל-`NMEA` והוסיפו כמה משפטי NMEA לתיבת הטקסט. כל הערכים הללו יישלחו, עם עיכוב של שנייה אחת לפני כל משפט GGA (תיקון מיקום) חדש שניתן לקרוא. - ![חיישן ה-GPS עם משפטי NMEA מוגדרים](../../../../../translated_images/he/counterfit-gps-sensor-nmea.c62eea442171e17e19528b051b104cfcecdc9cd18db7bc72920f29821ae63f73.png) + ![חיישן ה-GPS עם משפטי NMEA מוגדרים](../../../../../translated_images/he/counterfit-gps-sensor-nmea.c62eea442171e17e.webp) תוכלו להשתמש בכלי כמו [nmeagen.org](https://www.nmeagen.org) כדי ליצור את המשפטים הללו על ידי ציור על מפה. ערכים אלו יישלחו רק פעם אחת, לכן סמנו את תיבת **Repeat** כדי שהנתונים יחזרו שנייה אחת לאחר שכל הנתונים נשלחו. * הגדירו את **Source** לקובץ GPX, והעלו קובץ GPX עם מיקומי מסלול. תוכלו להוריד קבצי GPX ממספר אתרי מפות וטיולים פופולריים, כמו [AllTrails](https://www.alltrails.com/). קבצים אלו מכילים מיקומי GPS מרובים כנתיב, וחיישן ה-GPS יחזיר כל מיקום חדש במרווחים של שנייה אחת. - ![חיישן ה-GPS עם קובץ GPX מוגדר](../../../../../translated_images/he/counterfit-gps-sensor-gpxfile.8310b063ce8a425ccc8ebeec8306aeac5e8e55207f007d52c6e1194432a70cd9.png) + ![חיישן ה-GPS עם קובץ GPX מוגדר](../../../../../translated_images/he/counterfit-gps-sensor-gpxfile.8310b063ce8a425c.webp) ערכים אלו יישלחו רק פעם אחת, לכן סמנו את תיבת **Repeat** כדי שהנתונים יחזרו שנייה אחת לאחר שכל הנתונים נשלחו. diff --git a/translations/he/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md b/translations/he/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md index d587ba866..1a9691829 100644 --- a/translations/he/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md +++ b/translations/he/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md @@ -18,7 +18,7 @@ חבר את חיישן ה-GPS. -![חיישן GPS מסוג Grove](../../../../../translated_images/he/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![חיישן GPS מסוג Grove](../../../../../translated_images/he/grove-gps-sensor.247943bf69b03f0d.webp) 1. הכנס קצה אחד של כבל Grove לשקע שבחיישן ה-GPS. הכבל ייכנס רק בכיוון אחד. diff --git a/translations/he/3-transport/lessons/2-store-location-data/README.md b/translations/he/3-transport/lessons/2-store-location-data/README.md index ee84196e6..31e2ac47e 100644 --- a/translations/he/3-transport/lessons/2-store-location-data/README.md +++ b/translations/he/3-transport/lessons/2-store-location-data/README.md @@ -1,6 +1,6 @@ # אחסן נתוני מיקום -![סקיצה של סקירה כללית של השיעור](../../../../../translated_images/he/lesson-12.ca7f53039712a3ec14ad6474d8445361c84adab643edc53fa6269b77895606bb.jpg) +![סקיצה של סקירה כללית של השיעור](../../../../../translated_images/he/lesson-12.ca7f53039712a3ec.webp) > סקיצה מאת [ניטיה נאראסימהן](https://github.com/nitya). לחצו על התמונה לגרסה גדולה יותר. @@ -75,7 +75,7 @@ > 💁 למרות שמם, חלק מבסיסי נתונים NoSQL מאפשרים להשתמש ב-SQL כדי לשאול את הנתונים. -![מסמכים בתיקיות בבסיס נתונים NoSQL](../../../../../translated_images/he/noqsl-database.62d24ccf5b73f60d35c245a8533f1c7147c0928e955b82cb290b2e184bb434df.png) +![מסמכים בתיקיות בבסיס נתונים NoSQL](../../../../../translated_images/he/noqsl-database.62d24ccf5b73f60d.webp) בסיסי נתונים NoSQL אינם כוללים סכימה מוגדרת מראש שמגבילה כיצד הנתונים מאוחסנים, במקום זאת ניתן להכניס כל נתון לא מובנה, בדרך כלל באמצעות מסמכי JSON. מסמכים אלו יכולים להיות מאורגנים בתיקיות, בדומה לקבצים במחשב שלכם. כל מסמך יכול לכלול שדות שונים ממסמכים אחרים - לדוגמה, אם תאחסנו נתוני IoT מרכבי החווה שלכם, חלקם עשויים לכלול שדות עבור נתוני תאוצה ומהירות, אחרים עשויים לכלול שדות עבור הטמפרטורה בקרון. אם תוסיפו סוג משאית חדש, כמו אחת עם מאזניים מובנים למעקב אחר משקל התוצרת, מכשיר ה-IoT שלכם יוכל להוסיף שדה חדש זה והוא יוכל להישמר ללא שינויים בבסיס הנתונים. @@ -89,7 +89,7 @@ בשיעור הקודם לכדתם נתוני GPS מחיישן GPS המחובר למכשיר ה-IoT שלכם. כדי לאחסן נתוני IoT אלו בענן, עליכם לשלוח אותם לשירות IoT. שוב, תשתמשו ב-Azure IoT Hub, אותו שירות IoT בענן שבו השתמשתם בפרויקט הקודם. -![שליחת טלמטריית GPS ממכשיר IoT ל-IoT Hub](../../../../../translated_images/he/gps-telemetry-iot-hub.8115335d51cd2c1285d20e9d1b18cf685e59a8e093e7797291ef173445af6f3d.png) +![שליחת טלמטריית GPS ממכשיר IoT ל-IoT Hub](../../../../../translated_images/he/gps-telemetry-iot-hub.8115335d51cd2c12.webp) ### משימה - שליחת נתוני GPS ל-IoT Hub @@ -171,7 +171,7 @@ message = Message(json.dumps(message_json)) ברגע שנתונים זורמים ל-IoT Hub, תוכלו לכתוב קוד ללא שרת שיקשיב לאירועים שמתפרסמים לנקודת הקצה התואמת ל-Event Hub. זהו הנתיב הפושר - נתונים אלו יאוחסנו וישמשו בשיעור הבא לצורך דיווח על המסלול. -![שליחת טלמטריית GPS ממכשיר IoT ל-IoT Hub, ואז ל-Azure Functions דרך טריגר Event Hub](../../../../../translated_images/he/gps-telemetry-iot-hub-functions.24d3fa5592455e9f4e2fe73856b40c3915a292b90263c31d652acfd976cfedd8.png) +![שליחת טלמטריית GPS ממכשיר IoT ל-IoT Hub, ואז ל-Azure Functions דרך טריגר Event Hub](../../../../../translated_images/he/gps-telemetry-iot-hub-functions.24d3fa5592455e9f.webp) ### משימה - טיפול באירועי GPS באמצעות קוד ללא שרת @@ -193,7 +193,7 @@ message = Message(json.dumps(message_json)) ## חשבונות אחסון של Azure -![לוגו אחסון Azure](../../../../../translated_images/he/azure-storage-logo.605c0f602c640d482a80f1b35a2629a32d595711b7ab1d7ceea843250615ff32.png) +![לוגו אחסון Azure](../../../../../translated_images/he/azure-storage-logo.605c0f602c640d48.webp) חשבונות אחסון של Azure הם שירות אחסון רב-תכליתי שיכול לאחסן נתונים במגוון דרכים שונות. ניתן לאחסן נתונים כבלובים, בתורים, בטבלאות או כקבצים, והכול בו-זמנית. diff --git a/translations/he/3-transport/lessons/3-visualize-location-data/README.md b/translations/he/3-transport/lessons/3-visualize-location-data/README.md index 9cd0972ca..fba3224e2 100644 --- a/translations/he/3-transport/lessons/3-visualize-location-data/README.md +++ b/translations/he/3-transport/lessons/3-visualize-location-data/README.md @@ -1,6 +1,6 @@ # הצגת נתוני מיקום -![סקיצה של סקירה כללית של השיעור הזה](../../../../../translated_images/he/lesson-13.a259db1485021be7d7c72e90842fbe0ab977529e8684c179b5fb1ea75e92b3ef.jpg) +![סקיצה של סקירה כללית של השיעור הזה](../../../../../translated_images/he/lesson-13.a259db1485021be7.webp) > סקיצה מאת [ניטיה נאראסימן](https://github.com/nitya). לחצו על התמונה לגרסה גדולה יותר. @@ -64,11 +64,11 @@ כבן אדם, להבין את הנתונים הללו יכול להיות קשה. זו חומת מספרים ללא משמעות. כצעד ראשון להצגת הנתונים, ניתן למקם אותם על גרף קו: -![גרף קו של הנתונים לעיל](../../../../../translated_images/he/chart-soil-moisture.fd6d9d0cdc0b5f75e78038ecb8945dfc84b38851359de99d84b16e3336d6d7c2.png) +![גרף קו של הנתונים לעיל](../../../../../translated_images/he/chart-soil-moisture.fd6d9d0cdc0b5f75.webp) ניתן לשפר את הגרף הזה על ידי הוספת קו שמציין מתי מערכת ההשקיה האוטומטית הופעלה בקריאת לחות קרקע של 450: -![גרף קו של לחות קרקע עם קו ב-450](../../../../../translated_images/he/chart-soil-moisture-relay.fbb391236d34a64d0abf1df396e9197e0a24df14150620b9cc820a64a55c9326.png) +![גרף קו של לחות קרקע עם קו ב-450](../../../../../translated_images/he/chart-soil-moisture-relay.fbb391236d34a64d.webp) הגרף הזה מראה במהירות לא רק מה היו רמות לחות הקרקע, אלא גם את הנקודות שבהן מערכת ההשקיה הופעלה. @@ -84,7 +84,7 @@ עבודה עם מפות היא תרגיל מעניין, ויש הרבה שירותים לבחירה כמו Bing Maps, Leaflet, Open Street Maps ו-Google Maps. בשיעור הזה תלמדו על [Azure Maps](https://azure.microsoft.com/services/azure-maps/?WT.mc_id=academic-17441-jabenn) וכיצד הם יכולים להציג את נתוני ה-GPS שלכם. -![לוגו Azure Maps](../../../../../translated_images/he/azure-maps-logo.35d01dcfbd81fe6140e94257aaa1538f785a58c91576d14e0ebe7a2f6c694b99.png) +![לוגו Azure Maps](../../../../../translated_images/he/azure-maps-logo.35d01dcfbd81fe61.webp) Azure Maps הוא "אוסף של שירותים גיאו-מרחביים ו-SDKs שמשתמשים בנתוני מפות עדכניים כדי לספק הקשר גיאוגרפי לאפליקציות אינטרנט ומובייל." מפתחים מקבלים כלים ליצירת מפות יפות ואינטראקטיביות שיכולות לעשות דברים כמו לספק מסלולי תנועה מומלצים, לתת מידע על תקריות תנועה, ניווט פנימי, יכולות חיפוש, מידע על גובה, שירותי מזג אוויר ועוד. @@ -185,7 +185,7 @@ Azure Maps הוא "אוסף של שירותים גיאו-מרחביים ו-SDKs אם תפתחו את קובץ `index.html` שלכם בדפדפן אינטרנט, אתם אמורים לראות מפה נטענת, ממוקדת באזור סיאטל. - ![מפה שמראה את סיאטל, עיר במדינת וושינגטון, ארה"ב](../../../../../translated_images/he/map-image.8fb2c53eb23ef39c1c0a4410a5282e879b3b452b707eb066ff04c5488d3d72b7.png) + ![מפה שמראה את סיאטל, עיר במדינת וושינגטון, ארה"ב](../../../../../translated_images/he/map-image.8fb2c53eb23ef39c.webp) ✅ נסו לשנות את פרמטרי הזום והמרכז כדי לשנות את תצוגת המפה שלכם. תוכלו להוסיף קואורדינטות שונות בהתאם לנתוני הרוחב והאורך שלכם כדי למרכז מחדש את המפה. @@ -319,7 +319,7 @@ Azure Maps הוא "אוסף של שירותים גיאו-מרחביים ו-SDKs 1. טענו את דף ה-HTML בדפדפן שלכם. הוא יטען את המפה, ואז יטען את כל נתוני ה-GPS מהאחסון ויציג אותם על המפה. - ![מפה של Saint Edward State Park ליד סיאטל, עם מעגלים שמראים מסלול סביב קצה הפארק](../../../../../translated_images/he/map-path.896832e72dc696ffe20650e4051027d4855442d955f93fdbb80bb417ca8a406f.png) + ![מפה של Saint Edward State Park ליד סיאטל, עם מעגלים שמראים מסלול סביב קצה הפארק](../../../../../translated_images/he/map-path.896832e72dc696ff.webp) > 💁 תוכלו למצוא את הקוד הזה בתיקיית [code](../../../../../3-transport/lessons/3-visualize-location-data/code). diff --git a/translations/he/3-transport/lessons/4-geofences/README.md b/translations/he/3-transport/lessons/4-geofences/README.md index 5bfa250c4..1074d3420 100644 --- a/translations/he/3-transport/lessons/4-geofences/README.md +++ b/translations/he/3-transport/lessons/4-geofences/README.md @@ -1,6 +1,6 @@ # גדרות גיאוגרפיות -![סקיצה של סקירת השיעור](../../../../../translated_images/he/lesson-14.63980c5150ae3c153e770fb71d044c1845dce79248d86bed9fc525adf3ede73c.jpg) +![סקיצה של סקירת השיעור](../../../../../translated_images/he/lesson-14.63980c5150ae3c15.webp) > סקיצה מאת [ניטיה נאראסימן](https://github.com/nitya). לחצו על התמונה לגרסה גדולה יותר. @@ -35,7 +35,7 @@ גדר גיאוגרפית היא גבול וירטואלי לאזור גיאוגרפי בעולם האמיתי. גדרות גיאוגרפיות יכולות להיות מעגלים המוגדרים כנקודה ורדיוס (לדוגמה, מעגל ברוחב 100 מטר סביב בניין), או פוליגון המכסה אזור כמו אזור בית ספר, גבולות עיר, או קמפוס אוניברסיטה או משרדים. -![דוגמאות לגדרות גיאוגרפיות: גדר מעגלית סביב חנות Microsoft, וגדר פוליגונית סביב הקמפוס המערבי של Microsoft](../../../../../translated_images/he/geofence-examples.172fbc534665769f6e1a1ddcf75e3b25183cd10354c80cc603ba44b635390e1a.png) +![דוגמאות לגדרות גיאוגרפיות: גדר מעגלית סביב חנות Microsoft, וגדר פוליגונית סביב הקמפוס המערבי של Microsoft](../../../../../translated_images/he/geofence-examples.172fbc534665769f.webp) > 💁 ייתכן שכבר השתמשתם בגדרות גיאוגרפיות מבלי לדעת. אם הגדרתם תזכורת באפליקציית התזכורות של iOS או Google Keep בהתבסס על מיקום, השתמשתם בגדר גיאוגרפית. אפליקציות אלו יגדירו גדר גיאוגרפית בהתבסס על המיקום שניתן ויתריעו לכם כאשר הטלפון שלכם נכנס לגדר הגיאוגרפית. @@ -212,7 +212,7 @@ Azure Maps, השירות שבו השתמשתם בשיעור הקודם כדי ל לדוגמה, דמיינו קריאות GPS שמראות שרכב נוסע לאורך כביש שמסתיים ליד גדר גיאוגרפית. אם ערך GPS יחיד אינו מדויק וממקם את הרכב בתוך הגדר הגיאוגרפית, למרות שאין גישה לרכב, ניתן להתעלם ממנו. -![מסלול GPS שמראה רכב שעובר ליד קמפוס Microsoft על כביש 520, עם קריאות GPS לאורך הכביש למעט אחת בקמפוס, בתוך גדר גיאוגרפית](../../../../../translated_images/he/geofence-crossing-inaccurate-gps.6a3ed911202ad9cabb66d3964888cec03a42c61d5b8f536ad5bdc99716b370f5.png) +![מסלול GPS שמראה רכב שעובר ליד קמפוס Microsoft על כביש 520, עם קריאות GPS לאורך הכביש למעט אחת בקמפוס, בתוך גדר גיאוגרפית](../../../../../translated_images/he/geofence-crossing-inaccurate-gps.6a3ed911202ad9ca.webp) בתמונה למעלה, יש גדר גיאוגרפית מעל חלק מקמפוס מיקרוסופט. הקו האדום מראה משאית שנוסעת לאורך כביש 520, עם עיגולים שמייצגים את קריאות ה-GPS. רוב הקריאות מדויקות ונמצאות לאורך כביש 520, אך ישנה קריאה אחת לא מדויקת בתוך הגדר הגיאוגרפית. אין אפשרות שהקריאה הזו נכונה - אין כבישים שמאפשרים למשאית לסטות פתאום מכביש 520 לתוך הקמפוס ואז לחזור לכביש 520. הקוד שבודק את הגדר הגיאוגרפית יצטרך לקחת בחשבון את הקריאות הקודמות לפני שיפעל על תוצאות הבדיקה של הגדר הגיאוגרפית. ✅ אילו נתונים נוספים הייתם צריכים לבדוק כדי לוודא אם קריאת GPS יכולה להיחשב נכונה? @@ -284,7 +284,7 @@ Azure Maps, השירות שבו השתמשתם בשיעור הקודם כדי ל התשובה היא שהוא לא יכול! במקום זאת, תוכלו להגדיר מספר חיבורים נפרדים לקרוא אירועים, וכל אחד מהם יכול לנהל את הפעלת ההודעות שלא נקראו. אלה נקראים *קבוצות צרכנים*. כאשר אתם מתחברים לנקודת הקצה, תוכלו לציין לאיזו קבוצת צרכנים אתם רוצים להתחבר. כל רכיב באפליקציה שלכם יתחבר לקבוצת צרכנים שונה. -![IoT Hub אחד עם 3 קבוצות צרכנים שמפיצות את אותן הודעות ל-3 אפליקציות פונקציות שונות](../../../../../translated_images/he/consumer-groups.a3262e26fc27ba2092863678ad57af15c7223416e388a23f330c058cf4358630.png) +![IoT Hub אחד עם 3 קבוצות צרכנים שמפיצות את אותן הודעות ל-3 אפליקציות פונקציות שונות](../../../../../translated_images/he/consumer-groups.a3262e26fc27ba20.webp) באופן תיאורטי, עד 5 אפליקציות יכולות להתחבר לכל קבוצת צרכנים, וכולן יקבלו הודעות כשהן מגיעות. מומלץ שיהיה רק יישום אחד שמתחבר לכל קבוצת צרכנים כדי להימנע מעיבוד כפול של הודעות, ולהבטיח שכאשר מפעילים מחדש כל ההודעות בתור יעובדו כראוי. לדוגמה, אם הפעלתם את אפליקציית Functions שלכם באופן מקומי וגם הפעלתם אותה בענן, שתיהן יעבדו הודעות, מה שיוביל לאחסון כפול של blobs בחשבון האחסון. diff --git a/translations/he/4-manufacturing/lessons/1-train-fruit-detector/README.md b/translations/he/4-manufacturing/lessons/1-train-fruit-detector/README.md index f2085aac4..175caf2a0 100644 --- a/translations/he/4-manufacturing/lessons/1-train-fruit-detector/README.md +++ b/translations/he/4-manufacturing/lessons/1-train-fruit-detector/README.md @@ -1,6 +1,6 @@ # מאמן גלאי איכות פירות -![סקיצה של סקירה כללית של השיעור](../../../../../translated_images/he/lesson-15.843d21afdc6fb2bba70cd9db7b7d2f91598859fafda2078b0bdc44954194b6c0.jpg) +![סקיצה של סקירה כללית של השיעור](../../../../../translated_images/he/lesson-15.843d21afdc6fb2bb.webp) > סקיצה מאת [Nitya Narasimhan](https://github.com/nitya). לחצו על התמונה לגרסה גדולה יותר. @@ -38,7 +38,7 @@ העלייה בקטיף אוטומטי העבירה את מיון התוצרת מהקטיף למפעל. מזון היה נוסע על מסועים ארוכים עם צוותים של אנשים שמסירים כל דבר שלא עומד בסטנדרט האיכות הנדרש. הקטיף היה זול יותר בזכות מכונות, אבל עדיין הייתה עלות למיון ידני של המזון. -![אם מזוהה עגבנייה אדומה היא ממשיכה במסלול שלה ללא הפרעה. אם מזוהה עגבנייה ירוקה היא נזרקת לפח פסולת באמצעות מנוף](../../../../../translated_images/he/optical-tomato-sorting.61aa134bdda4e5b1bfb16a212c1e35a6ef0c426cbb8b1c975f79d7bfbf48d068.png) +![אם מזוהה עגבנייה אדומה היא ממשיכה במסלול שלה ללא הפרעה. אם מזוהה עגבנייה ירוקה היא נזרקת לפח פסולת באמצעות מנוף](../../../../../translated_images/he/optical-tomato-sorting.61aa134bdda4e5b1.webp) האבולוציה הבאה הייתה שימוש במכונות למיון, בין אם מובנות בתוך הקטיף או במפעלים לעיבוד. הדור הראשון של המכונות הללו השתמש בחיישנים אופטיים כדי לזהות צבעים, ששלטו במפעילים כדי לדחוף עגבניות ירוקות לפח פסולת באמצעות מנופים או פיצוצים של אוויר, והשאירו עגבניות אדומות להמשיך ברשת המסועים. @@ -62,7 +62,7 @@ > 🎓 התוצאות של מודלים של ML נקראות *תחזיות* -![2 בננות, אחת בשלה עם תחזית של 99.7% בשלה, 0.3% לא בשלה, ואחת לא בשלה עם תחזית של 1.4% בשלה, 98.6% לא בשלה](../../../../../translated_images/he/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50ece4e4589e724b142da0681f35470fe3db3f7d51240f69c85.png) +![2 בננות, אחת בשלה עם תחזית של 99.7% בשלה, 0.3% לא בשלה, ואחת לא בשלה עם תחזית של 1.4% בשלה, 98.6% לא בשלה](../../../../../translated_images/he/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50e.webp) מודלים של ML לא נותנים תשובה בינארית, אלא נותנים הסתברויות. לדוגמה, מודל יכול לקבל תמונה של בננה ולחזות `בשלה` ב-99.7% ו`לא בשלה` ב-0.3%. הקוד שלכם יבחר את התחזית הטובה ביותר ויחליט שהבננה בשלה. @@ -90,7 +90,7 @@ Custom Vision הוא כלי מבוסס ענן לאימון מסווגי תמונות. הוא מאפשר לכם לאמן מסווג באמצעות מספר קטן של תמונות בלבד. אתם יכולים להעלות תמונות דרך פורטל אינטרנט, API ברשת או SDK, לתת לכל תמונה *תג* שמסווג את התמונה, ואז לאמן את המודל ולבדוק איך הוא מתפקד. ברגע שאתם מרוצים מהמודל, אתם יכולים לפרסם גרסאות שלו שניתן לגשת אליהן דרך API ברשת או SDK. -![הלוגו של Azure Custom Vision](../../../../../translated_images/he/custom-vision-logo.d3d4e7c8a87ec9daf825e72e210576c3cbf60312577be7a139e22dd97ab7f1e6.png) +![הלוגו של Azure Custom Vision](../../../../../translated_images/he/custom-vision-logo.d3d4e7c8a87ec9da.webp) > 💁 אתם יכולים לאמן מודל Custom Vision עם מינימום של 5 תמונות לכל סיווג, אבל יותר זה טוב יותר. אתם יכולים לקבל תוצאות טובות יותר עם לפחות 30 תמונות. @@ -146,7 +146,7 @@ Custom Vision הוא חלק ממגוון כלים של AI מבית Microsoft ש כאשר אתם יוצרים את הפרויקט שלכם, ודאו שאתם משתמשים במשאב `fruit-quality-detector-training` שיצרתם קודם. השתמשו בסוג פרויקט *Classification*, סוג סיווג *Multiclass*, ובתחום *Food*. - ![ההגדרות לפרויקט Custom Vision עם השם מוגדר ל-fruit-quality-detector, ללא תיאור, המשאב מוגדר ל-fruit-quality-detector-training, סוג הפרויקט מוגדר ל-classification, סוגי הסיווג מוגדרים ל-multi class והתחומים מוגדרים ל-food](../../../../../translated_images/he/custom-vision-create-project.cf46325b92d8b131089f6647cf5e07b664cb77850e106d66e3c057b6b69756c6.png) + ![ההגדרות לפרויקט Custom Vision עם השם מוגדר ל-fruit-quality-detector, ללא תיאור, המשאב מוגדר ל-fruit-quality-detector-training, סוג הפרויקט מוגדר ל-classification, סוגי הסיווג מוגדרים ל-multi class והתחומים מוגדרים ל-food](../../../../../translated_images/he/custom-vision-create-project.cf46325b92d8b131.webp) ✅ הקדישו זמן לחקור את ממשק המשתמש של Custom Vision עבור מסווג התמונות שלכם. @@ -164,7 +164,7 @@ Custom Vision הוא חלק ממגוון כלים של AI מבית Microsoft ש * השתמשו ב-2 בננות בשלות, צלמו כמה תמונות של כל אחת מזוויות שונות, לפחות 7 תמונות (5 לאימון, 2 לבדיקה), אך רצוי יותר. - ![תמונות של 2 בננות שונות](../../../../../translated_images/he/banana-training-images.530eb203346d73bc23b8b990fb4609470bf4ff7c942ccc13d4cfffeed9be1ad4.png) + ![תמונות של 2 בננות שונות](../../../../../translated_images/he/banana-training-images.530eb203346d73bc.webp) * חזרו על אותו תהליך עם 2 בננות לא בשלות. @@ -174,7 +174,7 @@ Custom Vision הוא חלק ממגוון כלים של AI מבית Microsoft ש 1. עקבו אחר [העלאת תמונות ותיוגן במדריך המהיר לבניית מסווג במסמכי Microsoft](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`. - ![תיבות הדו-שיח של העלאת תמונות בננות בשלות ולא בשלות](../../../../../translated_images/he/image-upload-bananas.0751639f3815e0ec42bdbc6254d1e4357a185834d1ae10c9948a0e7d6d336695.png) + ![תיבות הדו-שיח של העלאת תמונות בננות בשלות ולא בשלות](../../../../../translated_images/he/image-upload-bananas.0751639f3815e0ec.webp) 1. עקבו אחר [אימון המסווג במדריך המהיר לבניית מסווג במסמכי Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#train-the-classifier) כדי לאמן את מסווג התמונות על התמונות שהעליתם. @@ -192,7 +192,7 @@ Custom Vision הוא חלק ממגוון כלים של AI מבית Microsoft ש 1. עקבו אחר [בדיקת המודל במסמכי Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/test-your-model?WT.mc_id=academic-17441-jabenn#test-your-model) כדי לבדוק את מסווג התמונות שלכם. השתמשו בתמונות הבדיקה שיצרתם קודם, ולא באף אחת מהתמונות שבהן השתמשתם לאימון. - ![בננה לא בשלה שסווגה כלא בשלה עם הסתברות של 98.9%, בשלה עם הסתברות של 1.1%](../../../../../translated_images/he/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64886422438850ea14f0be6ac918c217ea3b255c685abfabe7.png) + ![בננה לא בשלה שסווגה כלא בשלה עם הסתברות של 98.9%, בשלה עם הסתברות של 1.1%](../../../../../translated_images/he/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64.webp) 1. נסו את כל תמונות הבדיקה שיש לכם וצפו בהסתברויות. diff --git a/translations/he/4-manufacturing/lessons/2-check-fruit-from-device/README.md b/translations/he/4-manufacturing/lessons/2-check-fruit-from-device/README.md index f6068fa84..b459b2bab 100644 --- a/translations/he/4-manufacturing/lessons/2-check-fruit-from-device/README.md +++ b/translations/he/4-manufacturing/lessons/2-check-fruit-from-device/README.md @@ -1,6 +1,6 @@ # בדיקת איכות פירות באמצעות מכשיר IoT -![סקיצה של השיעור](../../../../../translated_images/he/lesson-16.215daf18b00631fbdfd64c6fc2dc6044dff5d544288825d8076f9fb83d964c23.jpg) +![סקיצה של השיעור](../../../../../translated_images/he/lesson-16.215daf18b00631fb.webp) > סקיצה מאת [ניטיה נאראסימן](https://github.com/nitya). לחצו על התמונה לגרסה גדולה יותר. @@ -26,7 +26,7 @@ חיישני מצלמה, כפי שהשם מרמז, הם מצלמות שניתן לחבר למכשיר IoT. הם יכולים לצלם תמונות סטילס או להקליט וידאו זורם. חלקם יחזירו נתוני תמונה גולמיים, בעוד אחרים ידחסו את הנתונים לקובץ תמונה כמו JPEG או PNG. בדרך כלל, המצלמות שעובדות עם מכשירי IoT קטנות יותר ובעלות רזולוציה נמוכה יותר ממה שאתם רגילים, אך ניתן להשיג מצלמות ברזולוציה גבוהה שמתחרות במצלמות של טלפונים מתקדמים. ניתן להשיג עדשות מתחלפות, מערכות מצלמות מרובות, מצלמות תרמיות אינפרא-אדום או מצלמות UV. -![האור מסצנה עובר דרך עדשה וממוקד על חיישן CMOS](../../../../../translated_images/he/cmos-sensor.75f9cd74decb137149a4c9ea825251a4549497d67c0ae2776159e6102bb53aa9.png) +![האור מסצנה עובר דרך עדשה וממוקד על חיישן CMOS](../../../../../translated_images/he/cmos-sensor.75f9cd74decb1371.webp) רוב חיישני המצלמה משתמשים בחיישני תמונה שבהם כל פיקסל הוא פוטודיודה. עדשה ממקדת את התמונה על חיישן התמונה, ואלפי או מיליוני פוטודיודות מזהות את האור הנופל על כל אחת מהן ומקליטות אותו כנתוני פיקסלים. @@ -74,7 +74,7 @@ 1. לחצו על כפתור **פרסום** עבור האיטרציה. - ![כפתור הפרסום](../../../../../translated_images/he/custom-vision-publish-button.b7174e1977b0c33b8b72d4e5b1326c779e0af196f3849d09985ee2d7d5493a39.png) + ![כפתור הפרסום](../../../../../translated_images/he/custom-vision-publish-button.b7174e1977b0c33b.webp) 1. בדיאלוג *פרסום מודל*, הגדירו את *משאב התחזית* למשאב `fruit-quality-detector-prediction` שיצרתם בשיעור הקודם. השאירו את השם כ-`Iteration2`, ולחצו על כפתור **פרסום**. @@ -88,7 +88,7 @@ בנוסף, העתיקו את ערך *מפתח התחזית*. זהו מפתח מאובטח שעליכם להעביר כאשר אתם קוראים למודל. רק אפליקציות שמעבירות את המפתח הזה מורשות להשתמש במודל, כל אפליקציה אחרת תידחה. - ![דיאלוג API התחזית המציג את ה-URL והמפתח](../../../../../translated_images/he/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![דיאלוג API התחזית המציג את ה-URL והמפתח](../../../../../translated_images/he/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ כאשר איטרציה חדשה מתפרסמת, יהיה לה שם שונה. כיצד לדעתכם ניתן לשנות את האיטרציה שבה משתמש מכשיר IoT? @@ -109,7 +109,7 @@ כדי לקבל את התוצאות הטובות ביותר ממסווג תמונות, כדאי לאמן את המודל עם תמונות שדומות ככל האפשר לתמונות המשמשות לתחזיות. אם השתמשתם במצלמת הטלפון שלכם לצילום תמונות לאימון, למשל, איכות התמונה, החדות והצבע יהיו שונים ממצלמה המחוברת למכשיר IoT. -![2 תמונות של בננה, אחת ברזולוציה נמוכה עם תאורה גרועה ממכשיר IoT, והשנייה ברזולוציה גבוהה עם תאורה טובה מטלפון](../../../../../translated_images/he/banana-picture-compare.174df164dc326a42cf7fb051a7497e6113c620e91552d92ca914220305d47d9a.png) +![2 תמונות של בננה, אחת ברזולוציה נמוכה עם תאורה גרועה ממכשיר IoT, והשנייה ברזולוציה גבוהה עם תאורה טובה מטלפון](../../../../../translated_images/he/banana-picture-compare.174df164dc326a42.webp) בתמונה למעלה, תמונת הבננה משמאל צולמה באמצעות מצלמת Raspberry Pi, והתמונה מימין צולמה של אותה בננה באותו מיקום באמצעות iPhone. יש הבדל ניכר באיכות - תמונת ה-iPhone חדה יותר, עם צבעים בהירים יותר ויותר ניגודיות. diff --git a/translations/he/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md b/translations/he/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md index 0787e1307..c2f018edc 100644 --- a/translations/he/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md +++ b/translations/he/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md @@ -16,7 +16,7 @@ ### משימה - חיבור המצלמה -![מצלמת Raspberry Pi](../../../../../translated_images/he/pi-camera-module.4278753c31bd6e757aa2b858be97d72049f71616278cefe4fb5abb485b40a078.png) +![מצלמת Raspberry Pi](../../../../../translated_images/he/pi-camera-module.4278753c31bd6e75.webp) 1. כבו את ה-Pi. @@ -24,17 +24,17 @@ ניתן למצוא אנימציה שמראה כיצד לפתוח את הקליפס ולהכניס את הכבל בתיעוד [Raspberry Pi Getting Started with the Camera module](https://projects.raspberrypi.org/en/projects/getting-started-with-picamera/2). - ![כבל הסרט מוכנס למודול המצלמה](../../../../../translated_images/he/pi-camera-ribbon-cable.0bf82acd251611c21ac616f082849413e2b322a261d0e4f8fec344248083b07e.png) + ![כבל הסרט מוכנס למודול המצלמה](../../../../../translated_images/he/pi-camera-ribbon-cable.0bf82acd251611c2.webp) 1. הסירו את ה-Grove Base Hat מה-Pi. 1. העבירו את כבל הסרט דרך החריץ למצלמה ב-Grove Base Hat. ודאו שהצד הכחול של הכבל פונה לכיוון הפורטים האנלוגיים המסומנים **A0**, **A1** וכו'. - ![כבל הסרט עובר דרך ה-Grove Base Hat](../../../../../translated_images/he/grove-base-hat-ribbon-cable.501fed202fcf73b11b2b68f6d246189f7d15d3e4423c572ddee79d77b4632b47.png) + ![כבל הסרט עובר דרך ה-Grove Base Hat](../../../../../translated_images/he/grove-base-hat-ribbon-cable.501fed202fcf73b1.webp) 1. הכניסו את כבל הסרט לשקע המצלמה ב-Pi. שוב, משכו את הקליפס השחור למעלה, הכניסו את הכבל, ואז דחפו את הקליפס חזרה. הצד הכחול של הכבל צריך לפנות לכיוון פורטי ה-USB והאת'רנט. - ![כבל הסרט מחובר לשקע המצלמה ב-Pi](../../../../../translated_images/he/pi-camera-socket-ribbon-cable.a18309920b11800911082ed7aa6fb28e6d9be3a022e4079ff990016cae3fca10.png) + ![כבל הסרט מחובר לשקע המצלמה ב-Pi](../../../../../translated_images/he/pi-camera-socket-ribbon-cable.a18309920b118009.webp) 1. החזירו את ה-Grove Base Hat למקומו. @@ -101,7 +101,7 @@ השורה `camera.rotation = 0` מגדירה את סיבוב התמונה. כבל הסרט נכנס לתחתית המצלמה, אך אם המצלמה שלכם סובבה כדי להקל על הצבעתה על האובייקט שברצונכם לסווג, תוכלו לשנות שורה זו למספר מעלות הסיבוב. - ![המצלמה תלויה מעל פחית שתייה](../../../../../translated_images/he/pi-camera-upside-down.5376961ba31459883362124152ad6b823d5ac5fc14e85f317e22903bd681c2b6.png) + ![המצלמה תלויה מעל פחית שתייה](../../../../../translated_images/he/pi-camera-upside-down.5376961ba3145988.webp) לדוגמה, אם תתלו את כבל הסרט מעל משהו כך שהוא יהיה בחלק העליון של המצלמה, הגדירו את הסיבוב ל-180: diff --git a/translations/he/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md b/translations/he/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md index 5e716cd6a..e6938be7c 100644 --- a/translations/he/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md +++ b/translations/he/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md @@ -84,7 +84,7 @@ תוכלו לראות את התמונה שצולמה, ואת הערכים הללו בלשונית **Predictions** ב-Custom Vision. - ![בננה ב-Custom Vision שסווגה כבשלה ב-56.8% ולא בשלה ב-43.1%](../../../../../translated_images/he/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![בננה ב-Custom Vision שסווגה כבשלה ב-56.8% ולא בשלה ב-43.1%](../../../../../translated_images/he/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 תוכלו למצוא את הקוד הזה בתיקיית [code-classify/pi](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/pi) או [code-classify/virtual-iot-device](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/virtual-iot-device). diff --git a/translations/he/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md b/translations/he/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md index 4547e340a..fd93ee67a 100644 --- a/translations/he/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md +++ b/translations/he/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md @@ -34,11 +34,11 @@ 1. בחרו בכפתור **Add** כדי ליצור את המצלמה. - ![הגדרות המצלמה](../../../../../translated_images/he/counterfit-create-camera.a5de97f59c0bd3cbe0416d7e89a3cfe86d19fbae05c641c53a91286412af0a34.png) + ![הגדרות המצלמה](../../../../../translated_images/he/counterfit-create-camera.a5de97f59c0bd3cb.webp) המצלמה תיווצר ותופיע ברשימת החיישנים. - ![המצלמה שנוצרה](../../../../../translated_images/he/counterfit-camera.001ec52194c8ee5d3f617173da2c79e1df903d10882adc625cbfc493525125d4.png) + ![המצלמה שנוצרה](../../../../../translated_images/he/counterfit-camera.001ec52194c8ee5d.webp) ## תכנות המצלמה @@ -103,7 +103,7 @@ 1. הגדירו את התמונה שהמצלמה ב-CounterFit תצלם. תוכלו להגדיר את *Source* ל-*File*, ואז להעלות קובץ תמונה, או להגדיר את *Source* ל-*WebCam*, ותמונות יילכדו מהמצלמה שלכם. ודאו שאתם לוחצים על כפתור **Set** לאחר בחירת תמונה או בחירת המצלמה. - ![CounterFit עם קובץ מוגדר כמקור תמונה, ומצלמת רשת שמראה אדם מחזיק בננה בתצוגה מקדימה של המצלמה](../../../../../translated_images/he/counterfit-camera-options.eb3bd5150a8e7dffbf24bc5bcaba0cf2cdef95fbe6bbe393695d173817d6b8df.png) + ![CounterFit עם קובץ מוגדר כמקור תמונה, ומצלמת רשת שמראה אדם מחזיק בננה בתצוגה מקדימה של המצלמה](../../../../../translated_images/he/counterfit-camera-options.eb3bd5150a8e7dff.webp) 1. תמונה תילכד ותישמר כ-`image.jpg` בתיקייה הנוכחית. תוכלו לראות את הקובץ הזה בסייר של VS Code. בחרו בקובץ כדי לצפות בתמונה. אם יש צורך בסיבוב, עדכנו את השורה `camera.rotation = 0` בהתאם וצילמו תמונה נוספת. diff --git a/translations/he/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md b/translations/he/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md index f6e330856..7aecc7fe4 100644 --- a/translations/he/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md +++ b/translations/he/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md @@ -16,7 +16,7 @@ חבר את המצלמה. -![חיישן ArduCam](../../../../../translated_images/he/arducam.20e4e4cbb268296570b5914e20d6c349fc42ddac9ed4e1b9deba2188204eebae.png) +![חיישן ArduCam](../../../../../translated_images/he/arducam.20e4e4cbb2682965.webp) 1. הפינים בבסיס ה-ArduCam צריכים להיות מחוברים לפיני GPIO ב-Wio Terminal. כדי להקל על מציאת הפינים הנכונים, הצמד את מדבקת פיני GPIO שמגיעה עם ה-Wio Terminal סביב הפינים: @@ -35,7 +35,7 @@ | SDA | 3 (I2C1_SDA) | נתונים סדרתיים I2C | | SCL | 5 (I2C1_SCL) | שעון סדרתי I2C | - ![ה-Wio Terminal מחובר ל-ArduCam עם חוטי ג'אמפר](../../../../../translated_images/he/arducam-wio-terminal-connections.a4d5a4049bdb5ab800a2877389fc6ecf5e4ff307e6451ff56c517e6786467d0a.png) + ![ה-Wio Terminal מחובר ל-ArduCam עם חוטי ג'אמפר](../../../../../translated_images/he/arducam-wio-terminal-connections.a4d5a4049bdb5ab8.webp) חיבורי GND ו-VCC מספקים ספק כוח של 5V ל-ArduCam. הוא פועל ב-5V, בניגוד לחיישני Grove שפועלים ב-3V. כוח זה מגיע ישירות מחיבור ה-USB-C שמספק כוח למכשיר. @@ -456,7 +456,7 @@ 1. כבה את כרטיס ה-microSD והוצא אותו על ידי לחיצה קלה ושחרור, והוא יקפוץ החוצה. ייתכן שתצטרך להשתמש בכלי דק כדי לעשות זאת. חבר את כרטיס ה-microSD למחשב שלך כדי לצפות בתמונות. - ![תמונה של בננה שצולמה באמצעות ArduCam](../../../../../translated_images/he/banana-arducam.be1b32d4267a8194b0fd042362e56faa431da9cd4af172051b37243ea9be0256.jpg) + ![תמונה של בננה שצולמה באמצעות ArduCam](../../../../../translated_images/he/banana-arducam.be1b32d4267a8194.webp) 💁 ייתכן שייקח כמה תמונות עד שהאיזון הלבן של המצלמה יתאים את עצמו. תבחינו בכך על סמך הצבע של התמונות שצולמו, הראשונות עשויות להיראות בצבע שגוי. תמיד תוכלו לעקוף זאת על ידי שינוי הקוד כך שיצלם כמה תמונות שמתעלמים מהן בפונקציית `setup`. diff --git a/translations/he/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md b/translations/he/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md index 347ee3aaa..45466d756 100644 --- a/translations/he/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md +++ b/translations/he/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md @@ -208,7 +208,7 @@ תוכלו לראות את התמונה שצולמה, ואת הערכים הללו בלשונית **Predictions** ב-Custom Vision. - ![בננה ב-Custom Vision עם תחזית של 56.8% בשלה ו-43.1% לא בשלה](../../../../../translated_images/he/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![בננה ב-Custom Vision עם תחזית של 56.8% בשלה ו-43.1% לא בשלה](../../../../../translated_images/he/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 תוכלו למצוא את הקוד הזה בתיקייה [code-classify/wio-terminal](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/wio-terminal). diff --git a/translations/he/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md b/translations/he/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md index cc7e50311..ff0559ff7 100644 --- a/translations/he/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md +++ b/translations/he/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md @@ -1,6 +1,6 @@ # הפעלת גלאי הפירות שלך בקצה -![סקיצה של סקירה כללית של השיעור](../../../../../translated_images/he/lesson-17.bc333c3c35ba8e42cce666cfffa82b915f787f455bd94e006aea2b6f2722421a.jpg) +![סקיצה של סקירה כללית של השיעור](../../../../../translated_images/he/lesson-17.bc333c3c35ba8e42.webp) > סקיצה מאת [ניטיה נאראסימן](https://github.com/nitya). לחצו על התמונה לגרסה גדולה יותר. @@ -33,11 +33,11 @@ מחשוב קצה כולל מחשבים שמעבדים נתוני IoT קרוב ככל האפשר למקום שבו הנתונים נוצרים. במקום לעבד את הנתונים בענן, העיבוד מועבר לקצה הענן - הרשת הפנימית שלכם. -![תרשים ארכיטקטורה שמראה שירותי אינטרנט בענן ומכשירי IoT ברשת מקומית](../../../../../translated_images/he/cloud-without-edge.b4da641f6022c95ed6b91fde8b5323abd2f94e0d52073ad54172ae8f5dac90e9.png) +![תרשים ארכיטקטורה שמראה שירותי אינטרנט בענן ומכשירי IoT ברשת מקומית](../../../../../translated_images/he/cloud-without-edge.b4da641f6022c95e.webp) בשיעורים עד כה, היו לכם מכשירים שאספו נתונים ושלחו אותם לענן לניתוח, תוך הפעלת פונקציות ללא שרת או מודלים של AI בענן. -![תרשים ארכיטקטורה שמראה מכשירי IoT ברשת מקומית שמתחברים למכשירי קצה, ומכשירי הקצה מתחברים לענן](../../../../../translated_images/he/cloud-with-edge.1e26462c62c126fe150bd15a5714ddf0be599f09bacbad08b85be02b76ea1ae1.png) +![תרשים ארכיטקטורה שמראה מכשירי IoT ברשת מקומית שמתחברים למכשירי קצה, ומכשירי הקצה מתחברים לענן](../../../../../translated_images/he/cloud-with-edge.1e26462c62c126fe.webp) מחשוב קצה כולל העברת חלק משירותי הענן מהמחשוב בענן למחשבים שפועלים באותה רשת כמו מכשירי ה-IoT, תוך תקשורת עם הענן רק במידת הצורך. לדוגמה, ניתן להפעיל מודלים של AI על מכשירי קצה כדי לנתח בשלות של פירות, ולשלוח לענן רק ניתוחים, כמו מספר הפירות הבשלים לעומת הלא בשלים. @@ -85,7 +85,7 @@ ## Azure IoT Edge -![לוגו Azure IoT Edge](../../../../../translated_images/he/azure-iot-edge-logo.c1c076749b5cba2e8755262fadc2f19ca1146b948d76990b1229199ac2292d79.png) +![לוגו Azure IoT Edge](../../../../../translated_images/he/azure-iot-edge-logo.c1c076749b5cba2e.webp) Azure IoT Edge הוא שירות שיכול לעזור לכם להעביר עומסי עבודה מהענן לקצה. אתם מגדירים מכשיר כמכשיר קצה, ומהענן תוכלו לפרוס קוד למכשיר הקצה הזה. זה מאפשר לכם לשלב את היכולות של הענן והקצה. @@ -99,7 +99,7 @@ IoT Edge מובנה ב-IoT Hub, כך שתוכלו לנהל מכשירי קצה IoT Edge מפעיל קוד מתוך *קונטיינרים* - יישומים עצמאיים שפועלים בבידוד משאר היישומים במחשב שלכם. כאשר אתם מפעילים קונטיינר, הוא מתנהג כמו מחשב נפרד שפועל בתוך המחשב שלכם, עם התוכנה, השירותים והיישומים שלו. ברוב המקרים, קונטיינרים לא יכולים לגשת לשום דבר במחשב שלכם אלא אם תבחרו לשתף דברים כמו תיקייה עם הקונטיינר. הקונטיינר חושף אז שירותים דרך פורט פתוח שניתן להתחבר אליו או לחשוף לרשת שלכם. -![בקשת אינטרנט שמופנית לקונטיינר](../../../../../translated_images/he/container-web-browser.4ee81dd4f0d8838ce622b2a0d600b6a4322b5d4fe43159facd87b7b34f84d66a.png) +![בקשת אינטרנט שמופנית לקונטיינר](../../../../../translated_images/he/container-web-browser.4ee81dd4f0d8838c.webp) לדוגמה, תוכלו להחזיק קונטיינר עם אתר אינטרנט שפועל על פורט 80, פורט ה-HTTP המוגדר כברירת מחדל, ואז לחשוף אותו מהמחשב שלכם גם על פורט 80. @@ -195,11 +195,11 @@ IoT Edge מפעיל קוד מתוך *קונטיינרים* - יישומים עצ ## הכנת הקונטיינר לפריסה -![קונטיינרים נבנים ואז נדחפים לרג'יסטרי קונטיינרים, ואז נפרסים מהמאגרים למכשיר קצה באמצעות IoT Edge](../../../../../translated_images/he/container-edge-flow.c246050dd60ceefdb6ace026a4ce5c6aa4112bb5898ae23fbb2ab4be29ae3e1b.png) +![קונטיינרים נבנים ואז נדחפים לרג'יסטרי קונטיינרים, ואז נפרסים מהמאגרים למכשיר קצה באמצעות IoT Edge](../../../../../translated_images/he/container-edge-flow.c246050dd60ceefd.webp) לאחר שהורדת את המודל שלך, יש לבנות אותו כקונטיינר ואז לדחוף אותו לרג'יסטרי קונטיינרים - מיקום מקוון שבו ניתן לאחסן קונטיינרים. IoT Edge יכול להוריד את הקונטיינר מהמאגרים ולדחוף אותו למכשיר שלך. -![לוגו Azure Container Registry](../../../../../translated_images/he/azure-container-registry-logo.09494206991d4b295025ebff7d4e2900325e527a59184ffbc8464b6ab59654be.png) +![לוגו Azure Container Registry](../../../../../translated_images/he/azure-container-registry-logo.09494206991d4b29.webp) רג'יסטרי הקונטיינרים שבו תשתמש בשיעור זה הוא Azure Container Registry. זו אינה שירות חינמי, ולכן כדי לחסוך כסף ודא שאתה [מנקה את הפרויקט שלך](../../../clean-up.md) לאחר שתסיים. diff --git a/translations/he/4-manufacturing/lessons/4-trigger-fruit-detector/README.md b/translations/he/4-manufacturing/lessons/4-trigger-fruit-detector/README.md index 812eb652a..be27164cf 100644 --- a/translations/he/4-manufacturing/lessons/4-trigger-fruit-detector/README.md +++ b/translations/he/4-manufacturing/lessons/4-trigger-fruit-detector/README.md @@ -1,6 +1,6 @@ # הפעלת זיהוי איכות פירות באמצעות חיישן -![סקיצה של השיעור](../../../../../translated_images/he/lesson-18.92c32ed1d354caa5a54baa4032cf0b172d4655e8e326ad5d46c558a0def15365.jpg) +![סקיצה של השיעור](../../../../../translated_images/he/lesson-18.92c32ed1d354caa5.webp) > סקיצה מאת [ניטיה נאראסימן](https://github.com/nitya). לחצו על התמונה לגרסה גדולה יותר. @@ -39,7 +39,7 @@ ### ארכיטקטורת IoT לדוגמה -![ארכיטקטורת IoT לדוגמה](../../../../../translated_images/he/iot-reference-architecture.2278b98b55c6d4e89bde18eada3688d893861d43507641804dd2f9d3079cfaa0.png) +![ארכיטקטורת IoT לדוגמה](../../../../../translated_images/he/iot-reference-architecture.2278b98b55c6d4e8.webp) התרשים לעיל מציג ארכיטקטורת IoT לדוגמה. @@ -49,7 +49,7 @@ * **תובנות** מגיעות מיישומים ללא שרת או מניתוחים על נתונים מאוחסנים. * **פעולות** יכולות להיות פקודות שנשלחות למכשירים או ויזואליזציה של נתונים שמאפשרת לבני אדם לקבל החלטות. -![ארכיטקטורת IoT לדוגמה](../../../../../translated_images/he/iot-reference-architecture-azure.0b8d2161af924cb18ae48a8558a19541cca47f27264851b5b7e56d7b8bb372ac.png) +![ארכיטקטורת IoT לדוגמה](../../../../../translated_images/he/iot-reference-architecture-azure.0b8d2161af924cb1.webp) התרשים לעיל מציג כמה מהרכיבים והשירותים שנלמדו בשיעורים אלו וכיצד הם מתחברים יחד בארכיטקטורת IoT לדוגמה. @@ -89,7 +89,7 @@ ### יצירת אב-טיפוס לאפליקציה שלכם -![ארכיטקטורת IoT לדוגמה לבדיקת איכות פירות](../../../../../translated_images/he/iot-reference-architecture-fruit-quality.cc705f121c3b6fa71c800d9630935ac34bc08223a04601e35f41d5e9b5dd5207.png) +![ארכיטקטורת IoT לדוגמה לבדיקת איכות פירות](../../../../../translated_images/he/iot-reference-architecture-fruit-quality.cc705f121c3b6fa7.webp) התרשים לעיל מציג ארכיטקטורה לדוגמה לאפליקציה זו. @@ -124,7 +124,7 @@ לגלאי הפירות באב-טיפוס יש רכיבים מרובים שמתקשרים זה עם זה. -![הרכיבים מתקשרים זה עם זה](../../../../../translated_images/he/fruit-quality-detector-message-flow.adf2a65da8fd8741ac7af11361574de89adc126785d67606bb4d2ec00467e380.png) +![הרכיבים מתקשרים זה עם זה](../../../../../translated_images/he/fruit-quality-detector-message-flow.adf2a65da8fd8741.webp) * חיישן קרבה שמודד את המרחק לפירות ושולח זאת ל-IoT Hub * הפקודה לשלוט במצלמה שמגיעה מ-IoT Hub למכשיר המצלמה diff --git a/translations/he/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md b/translations/he/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md index 45d803b72..95646d3cb 100644 --- a/translations/he/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md +++ b/translations/he/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md @@ -20,7 +20,7 @@ חבר את חיישן ה-Time of Flight. -![חיישן Time of Flight מסוג Grove](../../../../../translated_images/he/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![חיישן Time of Flight מסוג Grove](../../../../../translated_images/he/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. הכנס קצה אחד של כבל Grove לשקע בחיישן ה-Time of Flight. הוא ייכנס רק בכיוון אחד. diff --git a/translations/he/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md b/translations/he/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md index 5325b20b5..9b8bb368e 100644 --- a/translations/he/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md +++ b/translations/he/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md @@ -36,11 +36,11 @@ 1. לחצו על כפתור **Add** כדי ליצור את חיישן המרחק. - ![הגדרות חיישן המרחק](../../../../../translated_images/he/counterfit-create-distance-sensor.967c9fb98f27888d95920c9784d004c972490eb71f70397fe13bd70a79a879a3.png) + ![הגדרות חיישן המרחק](../../../../../translated_images/he/counterfit-create-distance-sensor.967c9fb98f27888d.webp) חיישן המרחק ייווצר ויופיע ברשימת החיישנים. - ![חיישן המרחק שנוצר](../../../../../translated_images/he/counterfit-distance-sensor.079eefeeea0b68afc36431ce8fcbe2f09a7e4916ed1cd5cb30e696db53bc18fa.png) + ![חיישן המרחק שנוצר](../../../../../translated_images/he/counterfit-distance-sensor.079eefeeea0b68af.webp) ## תכנות חיישן המרחק diff --git a/translations/he/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md b/translations/he/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md index 025931d65..9ebdbd3fd 100644 --- a/translations/he/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md +++ b/translations/he/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md @@ -20,7 +20,7 @@ חבר את חיישן Time of Flight. -![חיישן Grove Time of Flight](../../../../../translated_images/he/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![חיישן Grove Time of Flight](../../../../../translated_images/he/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. הכנס קצה אחד של כבל Grove לשקע בחיישן Time of Flight. הכבל ייכנס רק בכיוון אחד. diff --git a/translations/he/5-retail/lessons/1-train-stock-detector/README.md b/translations/he/5-retail/lessons/1-train-stock-detector/README.md index 7e90811c1..f901184de 100644 --- a/translations/he/5-retail/lessons/1-train-stock-detector/README.md +++ b/translations/he/5-retail/lessons/1-train-stock-detector/README.md @@ -1,6 +1,6 @@ # לאמן גלאי מלאי -![סקיצה של השיעור](../../../../../translated_images/he/lesson-19.cf6973cecadf080c4b526310620dc4d6f5994c80fb0139c6f378cc9ca2d435cd.jpg) +![סקיצה של השיעור](../../../../../translated_images/he/lesson-19.cf6973cecadf080c.webp) > סקיצה מאת [ניטיה נאראסימן](https://github.com/nitya). לחצו על התמונה לגרסה גדולה יותר. @@ -36,7 +36,7 @@ סיווג תמונות עוסק בסיווג תמונה כולה - מה ההסתברויות שהתמונה כולה תואמת כל תגית. אתם מקבלים חזרה הסתברויות לכל תגית ששימשה לאימון המודל. -![סיווג תמונות של אגוזי קשיו ורסק עגבניות](../../../../../translated_images/he/image-classifier-cashews-tomato.bc2e16ab8f05cf9ac0f59f73e32efc4227f9a5b601b90b2c60f436694547a965.png) +![סיווג תמונות של אגוזי קשיו ורסק עגבניות](../../../../../translated_images/he/image-classifier-cashews-tomato.bc2e16ab8f05cf9a.webp) בדוגמה למעלה, שתי תמונות סווגו באמצעות מודל שאומן לסווג קופסאות אגוזי קשיו או פחיות רסק עגבניות. התמונה הראשונה היא קופסה של אגוזי קשיו, ויש לה שני תוצאות ממסווג התמונות: @@ -60,7 +60,7 @@ > 🎓 *תיבות גבול* הן התיבות סביב אובייקט. -![זיהוי אובייקטים של אגוזי קשיו ורסק עגבניות](../../../../../translated_images/he/object-detector-cashews-tomato.1af7c26686b4db0e709754aeb196f4e73271f54e2085db3bcccb70d4a0d84d97.png) +![זיהוי אובייקטים של אגוזי קשיו ורסק עגבניות](../../../../../translated_images/he/object-detector-cashews-tomato.1af7c26686b4db0e.webp) התמונה למעלה מכילה גם קופסה של אגוזי קשיו וגם שלוש פחיות של רסק עגבניות. גלאי האובייקטים זיהה את אגוזי הקשיו, והחזיר את תיבת הגבול שמכילה את אגוזי הקשיו עם אחוז ההסתברות שהתיבה מכילה את האובייקט, במקרה הזה 97.6%. גלאי האובייקטים גם זיהה שלוש פחיות של רסק עגבניות, ומספק שלוש תיבות גבול נפרדות, אחת לכל פחית מזוהה, וכל אחת עם אחוז הסתברות שהתיבה מכילה פחית של רסק עגבניות. @@ -111,7 +111,7 @@ כשאתם יוצרים את הפרויקט, ודאו שאתם משתמשים במשאב `stock-detector-training` שיצרתם קודם. השתמשו בסוג הפרויקט *Object Detection* ובתחום *Products on Shelves*. - ![הגדרות הפרויקט של Custom Vision עם השם fruit-quality-detector, ללא תיאור, המשאב מוגדר ל-fruit-quality-detector-training, סוג הפרויקט מוגדר לסיווג, סוגי הסיווג מוגדרים ל-multi class והתחומים מוגדרים ל-food](../../../../../translated_images/he/custom-vision-create-object-detector-project.32d4fb9aa8e7e7375f8a799bfce517aca970f2cb65e42d4245c5e635c734ab29.png) + ![הגדרות הפרויקט של Custom Vision עם השם fruit-quality-detector, ללא תיאור, המשאב מוגדר ל-fruit-quality-detector-training, סוג הפרויקט מוגדר לסיווג, סוגי הסיווג מוגדרים ל-multi class והתחומים מוגדרים ל-food](../../../../../translated_images/he/custom-vision-create-object-detector-project.32d4fb9aa8e7e737.webp) ✅ תחום המוצרים על המדפים מותאם במיוחד לזיהוי מלאי על מדפי חנויות. קראו עוד על התחומים השונים בתיעוד [בחירת תחום בתיעוד של Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/select-domain?WT.mc_id=academic-17441-jabenn#object-detection) @@ -133,11 +133,11 @@ 1. עקבו אחרי [החלק של העלאת תמונות ותיוגן במדריך המהיר לבניית גלאי אובייקטים בתיעוד של Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/get-started-build-detector?WT.mc_id=academic-17441-jabenn#upload-and-tag-images) כדי להעלות את תמונות האימון שלכם. צרו תגיות רלוונטיות בהתאם לסוגי האובייקטים שברצונכם לזהות. - ![דיאלוגי העלאה שמראים העלאת תמונות של בננות בשלות ולא בשלות](../../../../../translated_images/he/image-upload-object-detector.77c7892c3093cb59b79018edecd678749a75d71a099bc8a2d2f2f76320f88a5b.png) + ![דיאלוגי העלאה שמראים העלאת תמונות של בננות בשלות ולא בשלות](../../../../../translated_images/he/image-upload-object-detector.77c7892c3093cb59.webp) כשאתם מציירים תיבות גבול עבור אובייקטים, שמרו אותן צמודות לאובייקט. זה יכול לקחת זמן לסמן את כל התמונות, אבל הכלי יזהה מה הוא חושב כתיבות גבול, מה שיכול להאיץ את התהליך. - ![תיוג רסק עגבניות](../../../../../translated_images/he/object-detector-tag-tomato-paste.f47c362fb0f0eb582f3bc68cf3855fb43a805106395358d41896a269c210b7b4.png) + ![תיוג רסק עגבניות](../../../../../translated_images/he/object-detector-tag-tomato-paste.f47c362fb0f0eb58.webp) > 💁 אם יש לכם יותר מ-15 תמונות עבור כל אובייקט, תוכלו לאמן אחרי 15 ואז להשתמש בתכונת **Suggested tags**. זה ישתמש במודל המאומן כדי לזהות את האובייקטים בתמונה הלא מתויגת. תוכלו אז לאשר את האובייקטים המזוהים או לדחות ולצייר מחדש את תיבות הגבול. זה יכול לחסוך *הרבה* זמן. @@ -155,7 +155,7 @@ 1. השתמשו בכפתור **Quick Test** כדי להעלות תמונות בדיקה ולאמת שהאובייקטים מזוהים. השתמשו בתמונות הבדיקה שיצרתם קודם, לא באף אחת מהתמונות ששימשו לאימון. - ![3 פחיות של רסק עגבניות מזוהות עם הסתברויות של 38%, 35.5% ו-34.6%](../../../../../translated_images/he/object-detector-detected-tomato-paste.52656fe87af4c37b4ee540526d63e73ed075da2e54a9a060aa528e0c562fb1b6.png) + ![3 פחיות של רסק עגבניות מזוהות עם הסתברויות של 38%, 35.5% ו-34.6%](../../../../../translated_images/he/object-detector-detected-tomato-paste.52656fe87af4c37b.webp) 1. נסו את כל תמונות הבדיקה שיש לכם וצפו בהסתברויות. diff --git a/translations/he/5-retail/lessons/2-check-stock-device/README.md b/translations/he/5-retail/lessons/2-check-stock-device/README.md index de05be92f..08794bd68 100644 --- a/translations/he/5-retail/lessons/2-check-stock-device/README.md +++ b/translations/he/5-retail/lessons/2-check-stock-device/README.md @@ -1,6 +1,6 @@ # בדיקת מלאי ממכשיר IoT -![סקיצה של השיעור](../../../../../translated_images/he/lesson-20.0211df9551a8abb300fc8fcf7dc2789468dea2eabe9202273ac077b0ba37f15e.jpg) +![סקיצה של השיעור](../../../../../translated_images/he/lesson-20.0211df9551a8abb3.webp) > סקיצה מאת [ניטיה נאראסימן](https://github.com/nitya). לחצו על התמונה לגרסה גדולה יותר. @@ -62,7 +62,7 @@ 1. לחצו על כפתור **Publish** עבור האיטרציה. - ![כפתור הפרסום](../../../../../translated_images/he/custom-vision-object-detector-publish-button.34ee379fc650ccb9856c3868d0003f413b9529f102fc73c37168c98d721cc293.png) + ![כפתור הפרסום](../../../../../translated_images/he/custom-vision-object-detector-publish-button.34ee379fc650ccb9.webp) 1. בדיאלוג *Publish Model*, הגדירו את *Prediction resource* למשאב `stock-detector-prediction` שיצרתם בשיעור הקודם. השאירו את השם כ-`Iteration2`, ולחצו על כפתור **Publish**. @@ -76,7 +76,7 @@ בנוסף, העתיקו את ערך *Prediction-Key*. זהו מפתח מאובטח שעליכם להעביר כאשר אתם קוראים למודל. רק אפליקציות שמעבירות את המפתח הזה מורשות להשתמש במודל, וכל אפליקציה אחרת תידחה. - ![דיאלוג ה-API של התחזית המציג את ה-URL והמפתח](../../../../../translated_images/he/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![דיאלוג ה-API של התחזית המציג את ה-URL והמפתח](../../../../../translated_images/he/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ כאשר איטרציה חדשה מתפרסמת, יהיה לה שם שונה. איך לדעתכם ניתן לשנות את האיטרציה שמכשיר IoT משתמש בה? @@ -95,7 +95,7 @@ תוצאות התחזית בלשונית **Predictions** ב-Custom Vision מציגות את תיבות הגבול על התמונה שנשלחה לתחזית. -![4 קופסאות רסק עגבניות על מדף עם תחזיות ל-4 זיהויים של 35.8%, 33.5%, 25.7% ו-16.6%](../../../../../translated_images/he/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) +![4 קופסאות רסק עגבניות על מדף עם תחזיות ל-4 זיהויים של 35.8%, 33.5%, 25.7% ו-16.6%](../../../../../translated_images/he/custom-vision-stock-prediction.942266ab1bcca341.webp) בתמונה למעלה, זוהו 4 קופסאות רסק עגבניות. בתוצאות, ריבוע אדום מונח על כל אובייקט שזוהה בתמונה, ומציין את תיבת הגבול של התמונה. @@ -103,7 +103,7 @@ תיבות גבול מוגדרות עם 4 ערכים - עליון, שמאלי, גובה ורוחב. ערכים אלו נמצאים בסקאלה של 0-1, ומייצגים את המיקומים כאחוז מגודל התמונה. המקור (המיקום 0,0) הוא הפינה השמאלית העליונה של התמונה, כך שהערך העליון הוא המרחק מהחלק העליון, והתחתון של תיבת הגבול הוא העליון בתוספת הגובה. -![תיבת גבול סביב קופסת רסק עגבניות](../../../../../translated_images/he/bounding-box.1420a7ea0d3d15f71e1ffb5cf4b2271d184fac051f990abc541975168d163684.png) +![תיבת גבול סביב קופסת רסק עגבניות](../../../../../translated_images/he/bounding-box.1420a7ea0d3d15f7.webp) התמונה למעלה היא ברוחב של 600 פיקסלים ובגובה של 800 פיקסלים. תיבת הגבול מתחילה ב-320 פיקסלים למטה, מה שנותן ערך עליון של 0.4 (800 x 0.4 = 320). מהשמאל, תיבת הגבול מתחילה ב-240 פיקסלים, מה שנותן ערך שמאלי של 0.4 (600 x 0.4 = 240). הגובה של תיבת הגבול הוא 240 פיקסלים, מה שנותן ערך גובה של 0.3 (800 x 0.3 = 240). הרוחב של תיבת הגבול הוא 120 פיקסלים, מה שנותן ערך רוחב של 0.2 (600 x 0.2 = 120). @@ -118,7 +118,7 @@ ניתן להשתמש בתיבות גבול בשילוב עם הסתברויות כדי להעריך עד כמה זיהוי מדויק. לדוגמה, מודל זיהוי יכול לזהות מספר אובייקטים שמצטלבים, לדוגמה זיהוי קופסה אחת בתוך אחרת. הקוד שלכם יכול לבדוק את תיבות הגבול, להבין שזה בלתי אפשרי, ולהתעלם מכל אובייקט שיש לו חפיפה משמעותית עם אובייקטים אחרים. -![שתי תיבות גבול חופפות קופסת רסק עגבניות](../../../../../translated_images/he/overlap-object-detection.d431e03cae75072a2760430eca7f2c5fdd43045bfd72dadcbf12711f7cd6c2ae.png) +![שתי תיבות גבול חופפות קופסת רסק עגבניות](../../../../../translated_images/he/overlap-object-detection.d431e03cae75072a.webp) בדוגמה למעלה, תיבת גבול אחת מציינת קופסת רסק עגבניות עם הסתברות של 78.3%. תיבת גבול שנייה קטנה יותר, ונמצאת בתוך תיבת הגבול הראשונה עם הסתברות של 64.3%. הקוד שלכם יכול לבדוק את תיבות הגבול, לראות שהן חופפות לחלוטין, ולהתעלם מההסתברות הנמוכה יותר מכיוון שאין דרך שקופסה אחת תהיה בתוך אחרת. diff --git a/translations/he/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md b/translations/he/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md index 4c02301c7..8e6f6a81a 100644 --- a/translations/he/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md +++ b/translations/he/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md @@ -67,7 +67,7 @@ תוכל לראות את התמונה שצולמה ואת הערכים הללו בלשונית **Predictions** ב-Custom Vision. - ![4 קופסאות של רסק עגבניות על מדף עם תחזיות של 35.8%, 33.5%, 25.7% ו-16.6%](../../../../../translated_images/he/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![4 קופסאות של רסק עגבניות על מדף עם תחזיות של 35.8%, 33.5%, 25.7% ו-16.6%](../../../../../translated_images/he/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 תוכל למצוא את הקוד הזה בתיקיות [code-detect/pi](../../../../../5-retail/lessons/2-check-stock-device/code-detect/pi) או [code-detect/virtual-iot-device](../../../../../5-retail/lessons/2-check-stock-device/code-detect/virtual-iot-device). diff --git a/translations/he/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md b/translations/he/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md index baaa1fd93..3d80a6392 100644 --- a/translations/he/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md +++ b/translations/he/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md @@ -95,7 +95,7 @@ תוכל לראות את התמונה שצולמה, ואת הערכים הללו בלשונית **Predictions** ב-Custom Vision. - ![4 קופסאות של רסק עגבניות על מדף עם תחזיות ל-4 זיהויים של 35.8%, 33.5%, 25.7% ו-16.6%](../../../../../translated_images/he/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![4 קופסאות של רסק עגבניות על מדף עם תחזיות ל-4 זיהויים של 35.8%, 33.5%, 25.7% ו-16.6%](../../../../../translated_images/he/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 תוכל למצוא את הקוד הזה בתיקיית [code-detect/wio-terminal](../../../../../5-retail/lessons/2-check-stock-device/code-detect/wio-terminal). diff --git a/translations/he/6-consumer/lessons/1-speech-recognition/README.md b/translations/he/6-consumer/lessons/1-speech-recognition/README.md index 4989fad99..e1c9541fd 100644 --- a/translations/he/6-consumer/lessons/1-speech-recognition/README.md +++ b/translations/he/6-consumer/lessons/1-speech-recognition/README.md @@ -1,6 +1,6 @@ # זיהוי דיבור עם מכשיר IoT -![סקיצה של השיעור](../../../../../translated_images/he/lesson-21.e34de51354d6606fb5ee08d8c89d0222eea0a2a7aaf744a8805ae847c4f69dc4.jpg) +![סקיצה של השיעור](../../../../../translated_images/he/lesson-21.e34de51354d6606f.webp) > סקיצה מאת [ניטיה נאראסימהן](https://github.com/nitya). לחצו על התמונה לגרסה גדולה יותר. @@ -51,7 +51,7 @@ מיקרופונים דינמיים אינם זקוקים לחשמל כדי לפעול; האות החשמלי נוצר כולו מהמיקרופון. - ![פאטי סמית' שרה לתוך מיקרופון דינמי מסוג Shure SM58](../../../../../translated_images/he/dynamic-mic.8babac890a2d80dfb0874b5bf37d4b851fe2aeb9da6fd72945746176978bf3bb.jpg) + ![פאטי סמית' שרה לתוך מיקרופון דינמי מסוג Shure SM58](../../../../../translated_images/he/dynamic-mic.8babac890a2d80df.webp) * סרט - מיקרופונים מסוג סרט דומים למיקרופונים דינמיים, אך במקום דיאפרגמה יש בהם סרט מתכת. הסרט נע בשדה מגנטי ויוצר זרם חשמלי. כמו מיקרופונים דינמיים, גם מיקרופונים מסוג סרט אינם זקוקים לחשמל כדי לפעול. @@ -59,11 +59,11 @@ * קונדנסר - מיקרופונים מסוג קונדנסר כוללים דיאפרגמה מתכתית דקה ולוח אחורי מתכתי קבוע. זרם חשמלי מוחל על שניהם, וכאשר הדיאפרגמה רוטטת, המטען הסטטי בין הלוחות משתנה ויוצר אות. מיקרופונים מסוג קונדנסר זקוקים לחשמל כדי לפעול - הנקרא *Phantom power*. - ![מיקרופון קונדנסר קטן מסוג C451B של AKG Acoustics](../../../../../translated_images/he/condenser-mic.6f6ed5b76ca19e0ec3fd0c544601542d4479a6cb7565db336de49fbbf69f623e.jpg) + ![מיקרופון קונדנסר קטן מסוג C451B של AKG Acoustics](../../../../../translated_images/he/condenser-mic.6f6ed5b76ca19e0e.webp) * MEMS - מיקרופונים מסוג מערכות מיקרואלקטרומכניות, או MEMS, הם מיקרופונים על שבב. יש להם דיאפרגמה רגישה ללחץ המוטבעת על שבב סיליקון, והם פועלים בדומה למיקרופון קונדנסר. מיקרופונים אלו יכולים להיות זעירים ומשולבים במעגלים חשמליים. - ![מיקרופון MEMS על לוח מעגלים](../../../../../translated_images/he/mems-microphone.80574019e1f5e4d9ee72fed720ecd25a39fc2969c91355d17ebb24ba4159e4c4.png) + ![מיקרופון MEMS על לוח מעגלים](../../../../../translated_images/he/mems-microphone.80574019e1f5e4d9.webp) בתמונה למעלה, השבב המסומן **LEFT** הוא מיקרופון MEMS, עם דיאפרגמה זעירה ברוחב של פחות ממילימטר. @@ -159,7 +159,7 @@ ## המרת דיבור לטקסט -![לוגו שירותי דיבור](../../../../../translated_images/he/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![לוגו שירותי דיבור](../../../../../translated_images/he/azure-speech-logo.a1f08c4befb0159f.webp) בדומה לסיווג תמונות בפרויקט קודם, קיימים שירותי בינה מלאכותית מוכנים מראש שיכולים לקחת דיבור כקובץ אודיו ולהמיר אותו לטקסט. אחד משירותים אלו הוא Speech Service, חלק משירותי Cognitive Services, שירותי בינה מלאכותית מוכנים לשימוש באפליקציות שלך. diff --git a/translations/he/6-consumer/lessons/1-speech-recognition/pi-audio.md b/translations/he/6-consumer/lessons/1-speech-recognition/pi-audio.md index 7edaba091..543dc93d3 100644 --- a/translations/he/6-consumer/lessons/1-speech-recognition/pi-audio.md +++ b/translations/he/6-consumer/lessons/1-speech-recognition/pi-audio.md @@ -16,13 +16,13 @@ #### משימה - חיבור הלחצן -![לחצן Grove](../../../../../translated_images/he/grove-button.a70cfbb809a8563681003250cf5b06d68cdcc68624f9e2f493d5a534ae2da1e5.png) +![לחצן Grove](../../../../../translated_images/he/grove-button.a70cfbb809a85636.webp) 1. הכניסו קצה אחד של כבל Grove לשקע במודול הלחצן. הוא ייכנס רק בכיוון אחד. 1. כאשר ה-Raspberry Pi כבוי, חברו את הקצה השני של כבל Grove לשקע הדיגיטלי המסומן **D5** בכובע הבסיס של Grove המחובר ל-Pi. שקע זה הוא השני משמאל, בשורה של השקעים ליד פיני GPIO. -![לחצן Grove מחובר לשקע D5](../../../../../translated_images/he/pi-button.c7a1a4f55943341ce1baf1057658e9a205804d4131d258e820c93f951df0abf3.png) +![לחצן Grove מחובר לשקע D5](../../../../../translated_images/he/pi-button.c7a1a4f55943341c.webp) ## לכידת שמע diff --git a/translations/he/6-consumer/lessons/1-speech-recognition/pi-microphone.md b/translations/he/6-consumer/lessons/1-speech-recognition/pi-microphone.md index 605511e79..8e5e48417 100644 --- a/translations/he/6-consumer/lessons/1-speech-recognition/pi-microphone.md +++ b/translations/he/6-consumer/lessons/1-speech-recognition/pi-microphone.md @@ -34,7 +34,7 @@ 1. אם אתה משתמש ב-ReSpeaker 2-Mics Pi HAT, תוכל להסיר את ה-Grove base hat, ואז להתקין את ה-ReSpeaker hat במקומו. - ![Raspberry Pi עם ReSpeaker hat](../../../../../translated_images/he/pi-respeaker-hat.f00fabe7dd039a93e2e0aa0fc946c9af0c6a9eb17c32fa1ca097fb4e384f69f0.png) + ![Raspberry Pi עם ReSpeaker hat](../../../../../translated_images/he/pi-respeaker-hat.f00fabe7dd039a93.webp) תצטרך כפתור Grove מאוחר יותר בשיעור זה, אך כפתור כזה מובנה ב-hat הזה, ולכן ה-Grove base hat אינו נחוץ. diff --git a/translations/he/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md b/translations/he/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md index f80f7b871..a3112d6c9 100644 --- a/translations/he/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md +++ b/translations/he/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md @@ -10,7 +10,7 @@ ✅ קראו עוד על DMA בעמוד [גישה ישירה לזיכרון בויקיפדיה](https://wikipedia.org/wiki/Direct_memory_access). -![שמע מהמיקרופון עובר ל-ADC ואז ל-DMAC. זה כותב למאגר אחד. כשהמאגר הזה מתמלא, הוא מעובד וה-DMAC כותב למאגר שני](../../../../../translated_images/he/dmac-adc-buffers.4509aee49145c90bc2e1be472b8ed2ddfcb2b6a81ad3e559114aca55f5fff759.png) +![שמע מהמיקרופון עובר ל-ADC ואז ל-DMAC. זה כותב למאגר אחד. כשהמאגר הזה מתמלא, הוא מעובד וה-DMAC כותב למאגר שני](../../../../../translated_images/he/dmac-adc-buffers.4509aee49145c90b.webp) ה-DMAC יכול ללכוד שמע מה-ADC במרווחים קבועים, כמו 16,000 פעמים בשנייה עבור שמע ב-16KHz. הוא יכול לכתוב את הנתונים שנלכדו למאגר זיכרון שהוקצה מראש, וכשהמאגר הזה מתמלא, הוא הופך לזמין לקוד שלכם לעיבוד. שימוש בזיכרון זה יכול לעכב את לכידת השמע, אך ניתן להגדיר מספר מאגרים. ה-DMAC כותב למאגר 1, ואז כשהוא מתמלא, הוא מודיע לקוד שלכם לעבד את מאגר 1, בזמן שה-DMAC כותב למאגר 2. כשהמאגר השני מתמלא, הוא מודיע לקוד שלכם, וחוזר לכתיבה למאגר 1. כך, כל עוד אתם מעבדים כל מאגר בזמן קצר יותר מהזמן שלוקח למלא אחד, לא תאבדו נתונים. diff --git a/translations/he/6-consumer/lessons/2-language-understanding/README.md b/translations/he/6-consumer/lessons/2-language-understanding/README.md index 3ff596eba..40f161741 100644 --- a/translations/he/6-consumer/lessons/2-language-understanding/README.md +++ b/translations/he/6-consumer/lessons/2-language-understanding/README.md @@ -1,6 +1,6 @@ # להבין שפה -![סקיצה של השיעור](../../../../../translated_images/he/lesson-22.6148ea28500d9e00c396aaa2649935fb6641362c8f03d8e5e90a676977ab01dd.jpg) +![סקיצה של השיעור](../../../../../translated_images/he/lesson-22.6148ea28500d9e00.webp) > סקיצה מאת [ניטיה נאראסימן](https://github.com/nitya). לחצו על התמונה לגרסה גדולה יותר. @@ -46,7 +46,7 @@ ## יצירת מודל להבנת שפה -![לוגו LUIS](../../../../../translated_images/he/luis-logo.5cb4f3e88c020ee6df4f614e8831f4a4b6809a7247bf52085fb48d629ef9be52.png) +![לוגו LUIS](../../../../../translated_images/he/luis-logo.5cb4f3e88c020ee6.webp) אפשר ליצור מודלים להבנת שפה באמצעות LUIS, שירות להבנת שפה של מיקרוסופט שהוא חלק משירותי Cognitive Services. @@ -169,7 +169,7 @@ 1. כשאתם מכניסים כל דוגמה, LUIS יתחיל לזהות ישויות, ויתחיל להדגיש ולתייג כל ישות שהוא מוצא. - ![הדוגמאות עם המספרים ויחידות הזמן מודגשים על ידי LUIS](../../../../../translated_images/he/luis-intent-examples.25716580b2d2723cf1bafdf277d015c7f046d8cfa20f27bddf3a0873ec45fab7.png) + ![הדוגמאות עם המספרים ויחידות הזמן מודגשים על ידי LUIS](../../../../../translated_images/he/luis-intent-examples.25716580b2d2723c.webp) ### משימה - אימון ובדיקת המודל diff --git a/translations/he/6-consumer/lessons/3-spoken-feedback/README.md b/translations/he/6-consumer/lessons/3-spoken-feedback/README.md index 9d7e054d9..420995d1f 100644 --- a/translations/he/6-consumer/lessons/3-spoken-feedback/README.md +++ b/translations/he/6-consumer/lessons/3-spoken-feedback/README.md @@ -1,6 +1,6 @@ # הגדר טיימר וספק משוב קולי -![סקיצה של סקירה כללית של השיעור](../../../../../translated_images/he/lesson-23.f38483e1d4df4828990d3f02d60e46c978b075d384ae7cb4f7bab738e107c850.jpg) +![סקיצה של סקירה כללית של השיעור](../../../../../translated_images/he/lesson-23.f38483e1d4df4828.webp) > סקיצה מאת [Nitya Narasimhan](https://github.com/nitya). לחצו על התמונה לגרסה גדולה יותר. diff --git a/translations/he/6-consumer/lessons/4-multiple-language-support/README.md b/translations/he/6-consumer/lessons/4-multiple-language-support/README.md index 87cfe926b..92c5af7ee 100644 --- a/translations/he/6-consumer/lessons/4-multiple-language-support/README.md +++ b/translations/he/6-consumer/lessons/4-multiple-language-support/README.md @@ -1,6 +1,6 @@ # תמיכה בשפות מרובות -![סקיצה של השיעור](../../../../../translated_images/he/lesson-24.4246968ed058510ab275052e87ef9aa89c7b2f938915d103c605c04dc6cd5bb7.jpg) +![סקיצה של השיעור](../../../../../translated_images/he/lesson-24.4246968ed058510a.webp) > סקיצה מאת [ניטיה נאראסימן](https://github.com/nitya). לחצו על התמונה לגרסה גדולה יותר. @@ -74,7 +74,7 @@ ### שירות הדיבור של Cognitive Services -![לוגו שירות הדיבור](../../../../../translated_images/he/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![לוגו שירות הדיבור](../../../../../translated_images/he/azure-speech-logo.a1f08c4befb0159f.webp) שירות הדיבור שבו השתמשתם בשיעורים האחרונים כולל יכולות תרגום לזיהוי דיבור. כאשר אתם מזהים דיבור, תוכלו לבקש לא רק את הטקסט של הדיבור באותה שפה, אלא גם בשפות אחרות. @@ -82,7 +82,7 @@ ### שירות המתרגם של Cognitive Services -![לוגו שירות המתרגם](../../../../../translated_images/he/azure-translator-logo.c6ed3a4a433edfd2f11577eca105412c50b8396b194cbbd730723dd1d0793bcd.png) +![לוגו שירות המתרגם](../../../../../translated_images/he/azure-translator-logo.c6ed3a4a433edfd2.webp) שירות המתרגם הוא שירות תרגום ייעודי שיכול לתרגם טקסט משפה אחת, לאחת או יותר שפות יעד. בנוסף לתרגום, הוא תומך במגוון רחב של תכונות נוספות כולל הסתרת מילים גסות. הוא גם מאפשר לכם לספק תרגום ספציפי למילה או משפט מסוימים, לעבוד עם מונחים שאתם לא רוצים לתרגם, או שיש להם תרגום ידוע ספציפי. diff --git a/translations/he/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md b/translations/he/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md index 61fc40bf7..10097b9ff 100644 --- a/translations/he/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md +++ b/translations/he/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md @@ -25,7 +25,7 @@ > > לדוגמה, אם אימנתם את LUIS באנגלית, אך ברצונכם להשתמש בצרפתית כשפת המשתמש, תוכלו לתרגם משפטים כמו "set a 2 minute and 27 second timer" מאנגלית לצרפתית באמצעות Bing Translate, ואז להשתמש בכפתור **Listen translation** כדי לדבר את התרגום למיקרופון שלכם. > - > ![כפתור השמעת התרגום ב-Bing Translate](../../../../../translated_images/he/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![כפתור השמעת התרגום ב-Bing Translate](../../../../../translated_images/he/bing-translate.348aa796d6efe2a9.webp) 1. הוסיפו את מפתח ה-API של שירות התרגום מתחת ל-`speech_api_key`: diff --git a/translations/he/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md b/translations/he/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md index 461646dce..7edf73350 100644 --- a/translations/he/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md +++ b/translations/he/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md @@ -37,7 +37,7 @@ > > לדוגמה, אם אימנתם את LUIS באנגלית, אך ברצונכם להשתמש בצרפתית כשפת המשתמש, תוכלו לתרגם משפטים כמו "הגדר טיימר של 2 דקות ו-27 שניות" מאנגלית לצרפתית באמצעות Bing Translate, ואז להשתמש בכפתור **Listen translation** כדי לדבר את התרגום למיקרופון שלכם. > - > ![כפתור האזנה לתרגום ב-Bing Translate](../../../../../translated_images/he/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![כפתור האזנה לתרגום ב-Bing Translate](../../../../../translated_images/he/bing-translate.348aa796d6efe2a9.webp) 1. החליפו את ההצהרות `recognizer_config` ו-`recognizer` עם הבאות: diff --git a/translations/he/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md b/translations/he/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md index a9722593e..80694ada5 100644 --- a/translations/he/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md +++ b/translations/he/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md @@ -105,7 +105,7 @@ > > לדוגמה, אם אימנתם את LUIS באנגלית, אך רוצים להשתמש בצרפתית כשפת המשתמש, תוכלו לתרגם משפטים כמו "set a 2 minute and 27 second timer" מאנגלית לצרפתית באמצעות Bing Translate, ואז להשתמש בכפתור **Listen translation** כדי להשמיע את התרגום למיקרופון שלכם. > - > ![כפתור השמעת התרגום ב-Bing Translate](../../../../../translated_images/he/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![כפתור השמעת התרגום ב-Bing Translate](../../../../../translated_images/he/bing-translate.348aa796d6efe2a9.webp) 1. הוסיפו את מפתח ה-API של שירות התרגום והמיקום מתחת ל-`SPEECH_LOCATION`: diff --git a/translations/he/README.md b/translations/he/README.md index 15d616abc..65606f285 100644 --- a/translations/he/README.md +++ b/translations/he/README.md @@ -1,176 +1,187 @@ [![רישיון GitHub](https://img.shields.io/github/license/microsoft/IoT-For-Beginners.svg)](https://github.com/microsoft/IoT-For-Beginners/blob/master/LICENSE) -[![תורמים GitHub](https://img.shields.io/github/contributors/microsoft/IoT-For-Beginners.svg)](https://GitHub.com/microsoft/IoT-For-Beginners/graphs/contributors/) -[![בעיות GitHub](https://img.shields.io/github/issues/microsoft/IoT-For-Beginners.svg)](https://GitHub.com/microsoft/IoT-For-Beginners/issues/) -[![בקשות משיכה GitHub](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](https://img.shields.io/github/contributors/microsoft/IoT-For-Beginners.svg)](https://GitHub.com/microsoft/IoT-For-Beginners/graphs/contributors/) +[![בעיות ב-GitHub](https://img.shields.io/github/issues/microsoft/IoT-For-Beginners.svg)](https://GitHub.com/microsoft/IoT-For-Beginners/issues/) +[![בקשות משיכה ב-GitHub](https://img.shields.io/github/issues-pr/microsoft/IoT-For-Beginners.svg)](https://GitHub.com/microsoft/IoT-For-Beginners/pulls/) +[![ברוכים הבאים לבקשות משיכה](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) -[![משגיחים GitHub](https://img.shields.io/github/watchers/microsoft/IoT-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/IoT-For-Beginners/watchers/) -[![מסיעי GitHub](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/network/) -[![כוכבי GitHub](https://img.shields.io/github/stars/microsoft/IoT-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/IoT-For-Beginners/stargazers/) +[![צופים ב-GitHub](https://img.shields.io/github/watchers/microsoft/IoT-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/IoT-For-Beginners/watchers/) +[![Forks ב-GitHub](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/network/) +[![כוכבים ב-GitHub](https://img.shields.io/github/stars/microsoft/IoT-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/IoT-For-Beginners/stargazers/) ### הצטרפו לקהילת Azure AI Foundry -אם אתם נתקעים או יש לכם שאלות לגבי בניית אפליקציות AI. הצטרפו ללומדים אחרים ומפתחים מנוסים בדיונים על MCP. זו קהילה תומכת שבה שאלות מתקבלות בברכה והידע משותף בחופשיות. +אם נתקעתם או יש לכם שאלות בנוגע לבניית אפליקציות AI, הצטרפו ללומדים אחרים ולמפתחים מנוסים בדיונים על MCP. זוהי קהילה תומכת שבה שאלות מתקבלות בברכה והידע משותף בחופשיות. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -אם יש לכם משוב על המוצר או שגיאות בזמן הבנייה בקרו בכתובת: +אם יש לכם משוב מוצר או שגיאות בזמן הבנייה, בקרו ב: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -עקבו אחרי השלבים הבאים כדי להתחיל להשתמש במשאבים אלו: -1. **עשה Fork למאגר**: לחץ על [![מסיעי GitHub](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) -2. **שכפל את המאגר**: `git clone https://github.com/microsoft/IoT-For-Beginners.git` -3. [**הצטרף ל-Discord של Microsoft Foundry ופגוש מומחים ומפתחים אחרים**](https://discord.com/invite/ByRwuEEgH4) +עקבו אחר השלבים הללו כדי להתחיל להשתמש במשאבים אלה: +1. **צרו Fork למאגר**: לחצו על [![Forks ב-GitHub](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) +2. **שכפלו את המאגר**: `git clone https://github.com/microsoft/IoT-For-Beginners.git` +3. [**הצטרפו ל-Discord של Microsoft Foundry ופגשו מומחים ומפתחים אחרים**](https://discord.com/invite/ByRwuEEgH4) -### 🌐 תמיכה בריבוי שפות +### 🌐 תמיכה ברב-שפתית -#### נתמך באמצעות GitHub Action (אוטומטי ועם עדכונים תדירים) +#### נתמכת באמצעות GitHub Action (אוטומטית ותמיד מעודכנת) -[ערבית](../ar/README.md) | [בנגלית](../bn/README.md) | [بلغרית](../bg/README.md) | [בורמזית (מיאנמר)](../my/README.md) | [סינית (מפושטת)](../zh-CN/README.md) | [סינית (מסורתית, הונג קונג)](../zh-HK/README.md) | [סינית (מסורתית, מקאו)](../zh-MO/README.md) | [סינית (מסורתית, טייוואן)](../zh-TW/README.md) | [קרואטית](../hr/README.md) | [צ'כית](../cs/README.md) | [דנית](../da/README.md) | [הולנדית](../nl/README.md) | [אסטונית](../et/README.md) | [פינית](../fi/README.md) | [צרפתית](../fr/README.md) | [גרמנית](../de/README.md) | [יוונית](../el/README.md) | [עברית](./README.md) | [הינדי](../hi/README.md) | [הונגרית](../hu/README.md) | [אינדונזית](../id/README.md) | [איטלקית](../it/README.md) | [יפנית](../ja/README.md) | [קנדה](../kn/README.md) | [קוריאנית](../ko/README.md) | [ליטאית](../lt/README.md) | [מלזית](../ms/README.md) | [מאליאלאם](../ml/README.md) | [מראתית](../mr/README.md) | [נפאלית](../ne/README.md) | [פידג'ין ניגרי](../pcm/README.md) | [נורווגית](../no/README.md) | [פרסית (פארסי)](../fa/README.md) | [פולנית](../pl/README.md) | [פורטוגזית (ברזיל)](../pt-BR/README.md) | [פורטוגזית (פורטוגל)](../pt-PT/README.md) | [פנג'אבית (גורמוכי)](../pa/README.md) | [רומנית](../ro/README.md) | [רוסית](../ru/README.md) | [סרבית (קירילית)](../sr/README.md) | [סלובקית](../sk/README.md) | [סלובנית](../sl/README.md) | [ספרדית](../es/README.md) | [סוואהילי](../sw/README.md) | [שוודית](../sv/README.md) | [טגלוג (פיליפינו)](../tl/README.md) | [טמילית](../ta/README.md) | [טלוגו](../te/README.md) | [תאית](../th/README.md) | [טורקית](../tr/README.md) | [אוקראינית](../uk/README.md) | [אורדו](../ur/README.md) | [וייטנאמית](../vi/README.md) +[ערבית](../ar/README.md) | [בנגלית](../bn/README.md) | [בולגרית](../bg/README.md) | [בורמית (מיאנמר)](../my/README.md) | [סינית (מפושטת)](../zh-CN/README.md) | [סינית (מסורתית, הונג קונג)](../zh-HK/README.md) | [סינית (מסורתית, מקאו)](../zh-MO/README.md) | [סינית (מסורתית, טאיוואן)](../zh-TW/README.md) | [קרואטית](../hr/README.md) | [צ'כית](../cs/README.md) | [דנית](../da/README.md) | [הולנדית](../nl/README.md) | [אסטונית](../et/README.md) | [פינית](../fi/README.md) | [צרפתית](../fr/README.md) | [גרמנית](../de/README.md) | [יוונית](../el/README.md) | [עברית](./README.md) | [הינדי](../hi/README.md) | [הונגרית](../hu/README.md) | [אינדונזית](../id/README.md) | [איטלקית](../it/README.md) | [יפנית](../ja/README.md) | [קנאדה](../kn/README.md) | [חמרית](../km/README.md) | [קוריאנית](../ko/README.md) | [ליטאית](../lt/README.md) | [מאלזית](../ms/README.md) | [מליאלאם](../ml/README.md) | [מרטהית](../mr/README.md) | [נפאלית](../ne/README.md) | [פידג'ין ניגרי](../pcm/README.md) | [נורווגית](../no/README.md) | [פרסית (פרסי)](../fa/README.md) | [פולנית](../pl/README.md) | [פורטוגזית (ברזיל)](../pt-BR/README.md) | [פורטוגזית (פורטוגל)](../pt-PT/README.md) | [פנג'אבי (גורמוכי)](../pa/README.md) | [רומנית](../ro/README.md) | [רוסית](../ru/README.md) | [סרבית (קירילית)](../sr/README.md) | [סלובקית](../sk/README.md) | [סלובנית](../sl/README.md) | [ספרדית](../es/README.md) | [סווהילית](../sw/README.md) | [שוודית](../sv/README.md) | [תגלאוג (פיליפינית)](../tl/README.md) | [טמילית](../ta/README.md) | [טלוגו](../te/README.md) | [תאית](../th/README.md) | [טורקית](../tr/README.md) | [אוקראינית](../uk/README.md) | [אורדו](../ur/README.md) | [ויאטנמית](../vi/README.md) -> **מעדיפים לשכפל מקומית?** - -> מאגר זה כולל יותר מ-50 תרגומים בשפות שונות שמגבירים משמעותית את גודל ההורדה. כדי לשכפל ללא תרגומים, השתמש ב-sparse checkout: +> **מעדיפים לשכפל באופן מקומי?** +> +> מאגר זה כולל יותר מ-50 תרגומים לשפות שמגדילים משמעותית את גודל ההורדה. לשכפול ללא תרגומים, השתמשו ב-sparse checkout: +> +> **Bash / macOS / Linux:** > ```bash > git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git > cd IoT-For-Beginners > git sparse-checkout set --no-cone '/*' '!translations' '!translated_images' > ``` -> זה נותן לך את כל מה שאתה צריך כדי להשלים את הקורס עם הורדה הרבה יותר מהירה. +> +> **CMD (Windows):** +> ```cmd +> git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git +> cd IoT-For-Beginners +> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" +> ``` +> +> זה נותן לכם את כל מה שצריך כדי להשלים את הקורס במהירות הורדה גבוהה משמעותית. # IoT למתחילים - תוכנית לימודים -המאמצים של Azure Cloud Advocates ב-Microsoft מזמינים להציע תוכנית לימודים של 12 שבועות עם 24 שיעורים על יסודות IoT. כל שיעור כולל מבחנים לפני ואחרי השיעור, הוראות כתובות להשלמת השיעור, פתרון, מטלה ועוד. הפדגוגיה מבוססת הפרויקטים שלנו מאפשרת לך ללמוד תוך כדי בנייה, דרך מוכחת להטמעת כישורים חדשים. +תומכי Azure Cloud במיקרוסופט שמחים להציע תוכנית לימודים של 12 שבועות ו-24 שיעורים המכסה את יסודות ה-IoT. כל שיעור כולל מבחנים לפני ואחרי השיעור, הוראות כתובות להשלמת השיעור, פתרון, משימה ועוד. הפדגוגיה מבוססת הפרוייקטים שלנו מאפשרת לכם ללמוד תוך כדי בנייה, דרך מוכחת שהכישורים החדשים 'נתפסים'. -הפרויקטים מכסים את המסע של המזון מהחווה ועד לשולחן. זה כולל חקלאות, לוגיסטיקה, ייצור, קמעונאות וצרכנים – כולם תחומי תעשייה פופולריים למכשירי IoT. +הפרויקטים מכסים את המסלול של המזון משדה החווה אל השולחן. זה כולל חקלאות, לוגיסטיקה, ייצור, קמעונאות וצרכנים - כל תחומי התעשייה הפופולריים למכשירי IoT. -![מפת דרכים לקורס המציגה 24 שיעורים המכסים מבוא, חקלאות, תחבורה, עיבוד, קמעונאות ובישול](../../translated_images/he/Roadmap.bb1dec285dda0eda.webp) +![מפת דרכים לקורס שמראה 24 שיעורים הכוללים מבוא, חקלאות, תחבורה, עיבוד, קמעונאות ובישול](../../translated_images/he/Roadmap.bb1dec285dda0eda.webp) -> סקצ׳נוט מאת [Nitya Narasimhan](https://github.com/nitya). לחץ על התמונה לגירסה גדולה יותר. +> תיאור סקיצה מאת [Nitya Narasimhan](https://github.com/nitya). לחצו על התמונה לגירסה גדולה יותר. -**תודות חמות למחברים שלנו [Jen Fox](https://github.com/jenfoxbot), [Jen Looper](https://github.com/jlooper), [Jim Bennett](https://github.com/jimbobbennett), ואמן הסקצ׳נוט שלנו [Nitya Narasimhan](https://github.com/nitya).** +**תודה רבה למחברים שלנו [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](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/).** +**תודה גם לצוות שלנו של [שגרירי סטודנטים של Microsoft Learn](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/).** -הכירו את הצוות! +כנסו להכיר את הצוות! [![וידאו פרומו](../../images/IOT.gif)](https://youtu.be/-wippUJRi5k) **גיף מאת** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 לחצו על התמונה למעלה לצפייה בווידאו אודות הפרויקט! +> 🎥 לחצו על התמונה למעלה לצפייה בסרטון על הפרויקט! -> **מורים**, כלול כאן [כמה הצעות](for-teachers.md) כיצד להשתמש בתוכנית זו. אם תרצו ליצור שיעורים משלכם, כלול גם [תבנית שיעור](lesson-template/README.md). +> **למורים**, כלול כאן [הצעות](for-teachers.md) כיצד להשתמש בתוכנית לימודים זו. במקרה שתרצו ליצור שיעורים משלכם, כלול גם [תבנית שיעור](lesson-template/README.md). -> **[סטודנטים](https://aka.ms/student-page)**, כדי להשתמש בתוכנית זו בעצמכם, עשו fork לכל המאגר והשלימו את התרגילים בעצמכם, החל ממבחן טרום-הרצאה, קריאת הרצאה והשלמת שאר הפעילויות. נסו ליצור את הפרויקטים על ידי הבנת השיעורים ולא על ידי העתקת קוד הפתרון; עם זאת הקוד זמין בתיקיית /solutions בכל שיעור שמבוסס פרויקט. רעיון נוסף הוא להקים קבוצת לימוד עם חברים ולעבור את התכנים יחד. ללמידה נוספת, אנו ממליצים על [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn). +> **לתלמידים** [https://aka.ms/student-page], לשימוש עצמאי בתוכנית זו, צרו fork לכל המאגר והשלימו את התרגילים בעצמכם, התחילו במבחן לפני ההרצאה, המשיכו בקריאת ההרצאה והשלימו את שאר הפעילויות. נסו ליצור את הפרויקטים על פי ההבנה של השיעורים ולא על ידי העתקת קוד הפתרון; עם זאת, הקוד זמין בתיקיות /solutions בכל שיעור מכוון פרויקט. רעיון נוסף הוא להרכיב קבוצת לימוד עם חברים ולעבור על התוכן ביחד. ללימוד נוסף אנו ממליצים על [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn). -לסקירה וידאו של הקורס, צפו בוידאו זה: +לסקירה מושקעת של קורס זה, צפו בסרטון: [![וידאו פרומו](https://img.youtube.com/vi/bccEMm8gRuc/0.jpg)](https://youtube.com/watch?v=bccEMm8gRuc "וידאו פרומו") -> 🎥 לחצו על התמונה למעלה לצפייה בווידאו אודות הפרויקט! +> 🎥 לחצו על התמונה למעלה לצפייה בסרטון על הפרויקט! ## פדגוגיה -בחרנו שתי עקרונות פדגוגיים בבניית תוכנית זו: להבטיח שהיא מבוססת פרויקטים ושכוללת מבחנים תכופים. בתום סדרה זו, התלמידים יבנו מערכת ניטור והשקיית צמחים, במעקב רכב, הגדרת מפעל חכם למעקב ובדיקת מזון, וטיימר בישול נשלט קולית, ולמדו את יסודות אינטרנט הדברים כולל כיצד לכתוב קוד למכשירים, להתחבר לענן, לנתח טלמטריה ולהריץ AI בקצה. +בחרנו שני עקרונות פדגוגיים בעת בניית תוכנית הלימודים הזו: להבטיח שהקורס מבוסס פרויקטים וכולל מבחנים תכופים. עד סוף סדרה זו, התלמידים יבנו מערכת ניטור והשקיית צמחים, מערכת מעקב רכבים, הגדרת מפעל חכם למעקב ובדיקת מזון, וטיימר בישול מבוקר קולי, ולמדו את יסודות האינטרנט של הדברים שכוללים כתיבת קוד התקן, חיבור לענן, ניתוח טלמטריה והרצת AI בקצה. -על ידי התאמת התוכן לפרויקטים, התהליך הופך למרתק יותר לתלמידים ושמירת המושגים משתפרת. +על ידי התאמת התוכן לפרויקטים התהליך נעשה מעניין יותר עבור התלמידים ושימור המושגים יחודד. -בנוסף, מבחן קליל לפני כיתה מכוון את כוונת התלמיד ללמוד נושא, בעוד שמבחן שני לאחר הכיתה מבטיח שמירה נוספת. תוכנית זו נועדה להיות גמישה ומהנה וניתן לעבור אותה בשלמותה או בחלקה. הפרויקטים מתחילים קטנים והופכים מורכבים יותר לקראת סוף מחזור 12 השבועות. +בנוסף, מבחן בעל סיכון נמוך לפני השיעור מגדיר את כוונת הלמידה של התלמיד כלפי הנושא, בעוד מבחן שני אחרי השיעור מבטיח שימור נוסף. תוכנית זו עוצבה להיות גמישה ומהנה וניתן לקחת אותה בשלמותה או בחלקים. הפרויקטים מתחילים קטנים והופכים למורכבים יותר לקראת סוף מחזור של 12 שבועות. -כל פרויקט מבוסס על חומרה אמיתית הזמינה לתלמידים וחובבים. כל פרויקט מתייחס לדומיין הפרויקט המסוים, ומספק ידע רקע רלוונטי. להיות מפתח מצליח עוזר להבין את התחום שבו פותרים בעיות, מתן ידע רקע זה מאפשר לתלמידים לחשוב על פתרונות IoT ולמידות בהקשר של סוג הבעיה האמיתית שעלולים להתבקש לפתור כמפתח IoT. התלמידים לומדים את ה"למה" של הפתרונות שהם בונים, ומקבלים הערכה למשתמש הסופי. +כל פרויקט מבוסס על חומרה אמיתית זמינה לתלמידים ולחובבים. כל פרויקט בוחן את תחום הפרויקט הספציפי, ומספק ידע רקע רלוונטי. כדי להיות מפתח מצליח חשוב להבין את התחום שבו פותרים בעיות, מתן ידע רקע זה מאפשר לתלמידים לחשוב על פתרונות ה-IoT שלהם ולהתנסות בהם בהקשר לבעיה אמיתית שהייתה עשויה להידרש לפתח כפתרון IoT. התלמידים לומדים את 'הסיבה' לפתרונות שהם בונים, ומקבלים הערכה של המשתמש הקצה. ## חומרה +יש לנו שתי אפשרויות חומרה של IoT לשימוש בפרויקטים בהתאם להעדפות אישיות, ידע בשפת תכנות או העדפות, מטרות למידה וזמינות. בנוסף, סיפקנו גרסת 'חומרה וירטואלית' לאלו שאין להם גישה לחומרה, או שרוצים ללמוד יותר לפני שיבצעו רכישה. ניתן לקרוא עוד ולמצוא 'רשימת קניות' ב[דף החומרה](./hardware.md), כולל קישורים לרכישת ערכות שלמות מחברינו ב-Seeed Studio. -יש לנו שתי אפשרויות חומרה ל-IoT לשימוש בפרויקטים בהתאם להעדפה אישית, ידע או העדפות שפת תכנות, יעדי למידה וזמינות. כמו כן סיפקנו גרסת 'חומרה וירטואלית' למי שאין לו גישה לחומרה, או שרוצה ללמוד לפני שמחליטים על רכישה. ניתן לקרוא יותר ולמצוא 'רשימת קניות' בדף [החומרה](./hardware.md), כולל קישורים לרכישת ערכות מלאות מחברינו ב-Seeed Studio. -> 💁 מצאו את [קוד ההתנהגות](CODE_OF_CONDUCT.md), [הוראות לתרומה](CONTRIBUTING.md) ו[הוראות לתרגום](TRANSLATIONS.md). אנו מקדמים את הפידבק הבונה שלכם! +> 💁 מצאו את [קוד ההתנהגות שלנו](CODE_OF_CONDUCT.md), [כללי התרומה](CONTRIBUTING.md), ו[הנחיות התרגום](TRANSLATIONS.md). נשמח לקבל את המשוב הבונה שלכם! > -> 🔧 יש לכם בעיות? בדקו את [מדריך ההתמודדות עם תקלות](TROUBLESHOOTING.md) עבור פתרונות לבעיות נפוצות. +> 🔧 נתקלתם בבעיות? בדקו את [מדריך פתרון הבעיות](TROUBLESHOOTING.md) לפתרונות לבעיות נפוצות. ## כל שיעור כולל: -- סיכום ציורי -- וידאו משלים אופציונלי -- חידון חימום לפני השיעור +- שרטוט סקיצה (sketchnote) +- סרטון משלים אופציונלי +- חידון הכנה לפני השיעור - שיעור כתוב -- לשיעורים מבוססי פרויקט, מדריכים שלב-אחר-שלב לבניית הפרויקט +- בשיעורים מבוססי פרויקט, מדריכים שלב-אחר-שלב לבניית הפרויקט - בדיקות ידע - אתגר - קריאה משלימה - מטלה - [חידון לאחר השיעור](https://ff-quizzes.netlify.app/en/) -> **הערה לגבי חידונים**: כל החידונים נמצאים בתיקיית quiz-app, עם סך של 48 חידונים הכוללים שלוש שאלות כל אחד. הם מקושרים מתוך השיעורים אך ניתן להריץ את אפליקציית החידון באופן מקומי או לפרוס על Azure; עקבו אחרי ההוראות בתיקיית `quiz-app`. הם מתורגמים בהדרגה. +> **הערה לגבי החידונים**: כל החידונים נמצאים בתיקיית quiz-app, הכוללת סה"כ 48 חידונים שלוש שאלות כל אחד. הם מקושרים מתוך השיעורים אך ניתן להריץ את אפליקציית החידון מקומית או לפרוס ל-Azure; עקבו אחרי ההוראות בתיקיית `quiz-app`. החידונים מתורגמים בהדרגה. ## שיעורים -| | שם הפרויקט | מושגים שנלמדים | מטרות למידה | שיעור מקושר | -| :---: | :----------------------------------: | :-------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------------------------------------------: | -| 01 | [מתחילים](./1-getting-started/README.md) | מבוא לאינטרנט של הדברים | למדו את העקרונות הבסיסיים של IoT ואת אבני הבניין הבסיסיות של פתרונות IoT כמו חיישנים ושירותי ענן תוך כדי הקמת מכשיר ה-IoT הראשון שלכם | [מבוא לאינטרנט של הדברים](./1-getting-started/lessons/1-introduction-to-iot/README.md) | -| 02 | [מתחילים](./1-getting-started/README.md) | התעמקות באינטרנט של הדברים | למדו יותר על רכיבי מערכת IoT, כמו גם על מיקרו-בקרים ומחשבים ליחידה בודדת | [התעמקות באינטרנט של הדברים](./1-getting-started/lessons/2-deeper-dive/README.md) | -| 03 | [מתחילים](./1-getting-started/README.md) | אינטראקציה עם העולם הפיזי בעזרת חיישנים ומפעילים | למדו על חיישנים לאיסוף מידע מהעולם הפיזי, ועל מפעילים לשיגור משוב, תוך כדי בניית מנורת לילה | [אינטראקציה עם העולם הפיזי בעזרת חיישנים ומפעילים](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | -| 04 | [מתחילים](./1-getting-started/README.md) | חיבור המכשיר לאינטרנט | למדו כיצד לחבר מכשיר IoT לאינטרנט כדי לשלוח ולקבל הודעות על ידי חיבור מנורת הלילה שלכם לשרת MQTT | [חיבור המכשיר לאינטרנט](./1-getting-started/lessons/4-connect-internet/README.md) | -| 05 | [חווה](./2-farm/README.md) | חיזוי גדילת צמח | למדו כיצד לנבא גדילת צמח באמצעות נתוני טמפרטורה שנאספו על ידי מכשיר IoT | [חיזוי גדילת צמח](./2-farm/lessons/1-predict-plant-growth/README.md) | -| 06 | [חווה](./2-farm/README.md) | גילוי רמת לחות בקרקע | למדו כיצד לזהות לחות בקרקע ולהקפיד על כיול חיישן לחות בקרקע | [גילוי רמת לחות בקרקע](./2-farm/lessons/2-detect-soil-moisture/README.md) | -| 07 | [חווה](./2-farm/README.md) | השקיית צמחים אוטומטית | למדו כיצד לבצע השקיית צמחים אוטומטית ומזוהמת לפי זמן באמצעות ממסר ו-MQTT | [השקיית צמחים אוטומטית](./2-farm/lessons/3-automated-plant-watering/README.md) | -| 08 | [חווה](./2-farm/README.md) | העבר את הצמח שלך לענן | למדו על ענן ושירותי IoT המרחבים בענן וכיצד לחבר את הצמח שלכם לאחד מהם במקום להשתמש בשרת MQTT ציבורי | [העבר את הצמח שלך לענן](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | -| 09 | [חווה](./2-farm/README.md) | העבר את לוגיקת היישום שלך לענן | למדו כיצד לכתוב לוגיקת יישום בענן שמגיבה להודעות IoT | [העבר את לוגיקת היישום שלך לענן](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | -| 10 | [חווה](./2-farm/README.md) | שמור על אבטחת הצמח שלך | למדו על אבטחה ב-IoT וכיצד לשמור על אבטחת הצמח עם מפתחות ותעודות | [שמור על אבטחת הצמח שלך](./2-farm/lessons/6-keep-your-plant-secure/README.md) | -| 11 | [תחבורה](./3-transport/README.md) | מעקב מיקום | למדו על מעקב מיקום GPS למכשירי IoT | [מעקב מיקום](./3-transport/lessons/1-location-tracking/README.md) | -| 12 | [תחבורה](./3-transport/README.md) | אחסון נתוני מיקום | למדו כיצד לאחסן נתוני IoT לשם ויזואליזציה או ניתוח מאוחר יותר | [אחסון נתוני מיקום](./3-transport/lessons/2-store-location-data/README.md) | -| 13 | [תחבורה](./3-transport/README.md) | ויזואליזציה של נתוני מיקום | למדו על ויזואליזציה של נתוני מיקום במפה, וכיצד מפות מייצגות את העולם התלת-ממדי בממד אחד | [ויזואליזציה של נתוני מיקום](./3-transport/lessons/3-visualize-location-data/README.md) | -| 14 | [תחבורה](./3-transport/README.md) | גיאגדרים | למדו על גיאגדרים וכיצד נעשה בהם שימוש להתרעה כאשר כלי רכב בשרשרת האספקה קרובים ליעדם | [גיאגדרים](./3-transport/lessons/4-geofences/README.md) | -| 15 | [ייצור](./4-manufacturing/README.md) | אימון גלאי איכות פרי | למדו על אימון מסווג תצלומים בענן לזהות איכות פרי | [אימון גלאי איכות פרי](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | -| 16 | [ייצור](./4-manufacturing/README.md) | בדיקת איכות פרי ממכשיר IoT | למדו על השימוש בגלאי איכות פרי ממכשיר IoT | [בדיקת איכות פרי ממכשיר IoT](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | -| 17 | [ייצור](./4-manufacturing/README.md) | הרצת גלאי הפרי שלך בקצה | למדו על הרצת גלאי הפרי שלכם במכשיר IoT בקצה | [הרצת גלאי הפרי שלך בקצה](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | -| 18 | [ייצור](./4-manufacturing/README.md) | הפעלת זיהוי איכות פרי מחיישן | למדו על הפעלת זיהוי איכות פרי מחיישן | [הפעלת זיהוי איכות פרי מחיישן](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | -| 19 | [קמעונאות](./5-retail/README.md) | אימון גלאי מלאי | למדו כיצד להשתמש בזיהוי אובייקטים לאימון גלאי מלאי לספירת מלאי בחנות | [אימון גלאי מלאי](./5-retail/lessons/1-train-stock-detector/README.md) | -| 20 | [קמעונאות](./5-retail/README.md) | בדיקת מלאי ממכשיר IoT | למדו כיצד לבדוק מלאי ממכשיר IoT באמצעות מודל זיהוי אובייקטים | [בדיקת מלאי ממכשיר IoT](./5-retail/lessons/2-check-stock-device/README.md) | -| 21 | [צרכנים](./6-consumer/README.md) | זיהוי דיבור עם מכשיר IoT | למדו כיצד לזהות דיבור ממכשיר IoT לבניית טיימר חכם | [זיהוי דיבור עם מכשיר IoT](./6-consumer/lessons/1-speech-recognition/README.md) | -| 22 | [צרכנים](./6-consumer/README.md) | הבנת שפה | למדו כיצד להבין משפטים המדוברים למכשיר IoT | [הבנת שפה](./6-consumer/lessons/2-language-understanding/README.md) | -| 23 | [צרכנים](./6-consumer/README.md) | הגדרת טיימר ומתן משוב מדובר | למדו כיצד להגדיר טיימר במכשיר IoT ולספק משוב מדובר על מועד ההגדרה וסיום הטיימר | [הגדרת טיימר ומתן משוב מדובר](./6-consumer/lessons/3-spoken-feedback/README.md) | -| 24 | [צרכנים](./6-consumer/README.md) | תמיכה בשפות מרובות | למדו כיצד לתמוך בשפות מרובות, הן בדיבור אל המכשיר והן בתגובות של הטיימר החכם | [תמיכה בשפות מרובות](./6-consumer/lessons/4-multiple-language-support/README.md) | +| | שם הפרויקט | מושגים נלמדים | מטרות למידה | שיעור מקושר | +| :---: | :----------------------------------: | :---------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------: | +| 01 | [התחלה](./1-getting-started/README.md) | מבוא ל-IoT | למדו את העקרונות הבסיסיים של IoT ואת אבני הבניין הבסיסיות של פתרונות IoT כגון חיישנים ושירותי ענן בזמן שאתם מגדירים את מכשיר ה-IoT הראשון שלכם | [מבוא ל-IoT](./1-getting-started/lessons/1-introduction-to-iot/README.md) | +| 02 | [התחלה](./1-getting-started/README.md) | מעמיקים ב-IoT | למדו עוד על מרכיבי מערכת IoT, כמו גם על מיקרו-בקרים ומחשבים על לוח בודד | [מעמיקים ב-IoT](./1-getting-started/lessons/2-deeper-dive/README.md) | +| 03 | [התחלה](./1-getting-started/README.md) | אינטראקציה עם העולם הפיזי באמצעות חיישנים ומבצעים | למדו על חיישנים לאיסוף נתונים מהעולם הפיזי, ועל מבצעים לשליחת משוב, בזמן שאתם בונים מנורת לילה | [אינטראקציה עם העולם הפיזי באמצעות חיישנים ומבצעים](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | +| 04 | [התחלה](./1-getting-started/README.md) | חיבור המכשיר לאינטרנט | למדו כיצד לחבר מכשיר IoT לאינטרנט כדי לשלוח ולקבל הודעות על ידי חיבור מנורת הלילה שלכם לברוקר MQTT | [חיבור המכשיר לאינטרנט](./1-getting-started/lessons/4-connect-internet/README.md) | +| 05 | [חווה](./2-farm/README.md) | חיזוי גדילת צמחים | למדו כיצד לחזות גדילת צמחים באמצעות נתוני טמפרטורה שנאספו על ידי מכשיר IoT | [חיזוי גדילת צמחים](./2-farm/lessons/1-predict-plant-growth/README.md) | +| 06 | [חווה](./2-farm/README.md) | איתור לחות קרקע | למדו כיצד לאתר לחות קרקע וכיצד לכייל חיישן לחות קרקע | [איתור לחות קרקע](./2-farm/lessons/2-detect-soil-moisture/README.md) | +| 07 | [חווה](./2-farm/README.md) | השקייה אוטומטית לצמחים | למדו כיצד לאוטומט ולתזמן השקיה באמצעות ריליי ו-MQTT | [השקייה אוטומטית לצמחים](./2-farm/lessons/3-automated-plant-watering/README.md) | +| 08 | [חווה](./2-farm/README.md) | העברת הצמח לענן | למדו על שירותי ענן ושירותי IoT המתארחים בענן וכיצד לחבר את הצמח שלכם לאחד מהם במקום לברוקר MQTT ציבורי | [העברת הצמח לענן](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | +| 09 | [חווה](./2-farm/README.md) | העברת לוגיקת היישום לענן | למדו כיצד ניתן לכתוב לוגיקת יישום בענן המגיבה להודעות IoT | [העברת לוגיקת היישום לענן](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | +| 10 | [חווה](./2-farm/README.md) | אבטחת הצמח שלכם | למדו על אבטחה ב-IoT וכיצד להגן על הצמח שלכם באמצעות מפתחות ותעודות | [הגנה על הצמח שלכם](./2-farm/lessons/6-keep-your-plant-secure/README.md) | +| 11 | [תחבורה](./3-transport/README.md) | מעקב מיקום | למדו על מעקב מיקום GPS במכשירי IoT | [מעקב מיקום](./3-transport/lessons/1-location-tracking/README.md) | +| 12 | [תחבורה](./3-transport/README.md) | שמירת נתוני מיקום | למדו כיצד לשמור נתוני IoT להצגה או לניתוח מאוחר יותר | [שמירת נתוני מיקום](./3-transport/lessons/2-store-location-data/README.md) | +| 13 | [תחבורה](./3-transport/README.md) | הצגת נתוני מיקום | למדו על הצגת נתוני מיקום על מפת עולם דו-ממדית וכיצד מפות מייצגות את העולם התלת-ממדי האמיתי | [הצגת נתוני מיקום](./3-transport/lessons/3-visualize-location-data/README.md) | +| 14 | [תחבורה](./3-transport/README.md) | גאוגריסות | למדו על גאוגריסות וכיצד משתמשים בהן כדי להתריע כאשר כלי רכב בשרשרת האספקה קרובים ליעד שלהם | [גאוגריסות](./3-transport/lessons/4-geofences/README.md) | +| 15 | [ייצור](./4-manufacturing/README.md) | אימון גלאי איכות פרי | למדו על אימון מסווג תמונות בענן לזיהוי איכות פרי | [אימון גלאי איכות פרי](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | +| 16 | [ייצור](./4-manufacturing/README.md) | בדיקת איכות פרי ממכשיר IoT | למדו על השימוש בגלאי איכות פרי ממכשיר IoT | [בדיקת איכות פרי ממכשיר IoT](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | +| 17 | [ייצור](./4-manufacturing/README.md) | הרצת גלאי הפרי שלכם בקצה | למדו על הרצת גלאי הפרי שלכם במכשיר IoT בקצה | [הרצת גלאי הפרי שלכם בקצה](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | +| 18 | [ייצור](./4-manufacturing/README.md) | הפעלת זיהוי איכות פרי מחיישן | למדו כיצד להפעיל זיהוי איכות פרי מחיישן | [הפעלת זיהוי איכות פרי מחיישן](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | +| 19 | [קמעונאות](./5-retail/README.md) | אימון גלאי מלאי | למדו כיצד להשתמש בזיהוי עצמים לאימון גלאי מלאי לספירת מלאי בחנות | [אימון גלאי מלאי](./5-retail/lessons/1-train-stock-detector/README.md) | +| 20 | [קמעונאות](./5-retail/README.md) | בדיקת מלאי ממכשיר IoT | למדו כיצד לבדוק מלאי ממכשיר IoT באמצעות מודל זיהוי עצמים | [בדיקת מלאי ממכשיר IoT](./5-retail/lessons/2-check-stock-device/README.md) | +| 21 | [צרכן](./6-consumer/README.md) | זיהוי דיבור עם מכשיר IoT | למדו כיצד לזהות דיבור ממכשיר IoT ולבנות טיימר חכם | [זיהוי דיבור עם מכשיר IoT](./6-consumer/lessons/1-speech-recognition/README.md) | +| 22 | [צרכן](./6-consumer/README.md) | הבנת שפה | למדו כיצד להבין משפטים המדוברים למכשיר IoT | [הבנת שפה](./6-consumer/lessons/2-language-understanding/README.md) | +| 23 | [צרכן](./6-consumer/README.md) | הגדרת טיימר ומתן משוב מדיבור | למדו כיצד להגדיר טיימר במכשיר IoT ולספק משוב מדיבור מתי הטיימר הופעל ומתי הוא מסתיים | [הגדרת טיימר ומתן משוב מדיבור](./6-consumer/lessons/3-spoken-feedback/README.md) | +| 24 | [צרכן](./6-consumer/README.md) | תמיכה בשפות מרובות | למדו כיצד לתמוך בשפות מרובות, הן המדוברות אליכם והן בתגובות מהטיימר החכם שלכם | [תמיכה בשפות מרובות](./6-consumer/lessons/4-multiple-language-support/README.md) | ## גישה לא מקוונת -ניתן להריץ תיעוד זה במצב לא מקוון באמצעות [Docsify](https://docsify.js.org/#/). שיכפלו את המאגר, [התקינו את Docsify](https://docsify.js.org/#/quickstart) במחשב המקומי שלכם, ואז בתיקיית השורש של המאגר זה, הקלידו `docsify serve`. האתר ישוחרר על פורט 3000 במחשב המקומי שלכם: `localhost:3000`. +ניתן להריץ תיעוד זה באופן לא מקוון באמצעות [Docsify](https://docsify.js.org/#/). פתחו עותק של המאגר הזה, [התקינו את Docsify](https://docsify.js.org/#/quickstart) במחשב המקומי שלכם, ואז בתיקיית השורש של המאגר רשמו `docsify serve`. האתר יותחל על פורט 3000 ב-localhost שלכם: `localhost:3000`. ## חידון -תודה לקהילה על האירוח של חידון אינטראקטיבי הנבדק את הידע שלכם בכל אחד מהפרקים. תוכלו לבדוק את הידע שלכם [כאן](https://ff-quizzes.netlify.app/en/) +תודה לקהילה על אירוח החידון האינטראקטיבי הבודק את הידע שלכם בכל פרק. בדקו את הידע שלכם [כאן](https://ff-quizzes.netlify.app/en/) ### PDF -ניתן ליצור PDF של התוכן הזה לגישה לא מקוונת במידת הצורך. לשם כך וודאו כי התקנתם את [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) והריצו את הפקודות הבאות בתיקיית השורש של המאגר: +ניתן ליצור PDF של תוכן זה לגישה לא מקוונת במידת הצורך. לשם כך, ודאו שיש לכם [npm מותקן](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) והריצו את הפקודות הבאות בתיקיית השורש של המאגר: ```sh npm i npm run convert ``` -### שקפים +### מצגות -ישנם מצגות עבור חלק מהשיעורים בתיקיית [slides](../../slides). +יש ערכות מצגות לחלק מהשיעורים בתיקיית [slides](../../slides). -## תוכניות לימודים נוספות -הצוות שלנו מייצר תוכניות לימודים נוספות! בדקו: +## תכניות לימוד נוספות + +הצוות שלנו מייצר תכניות נוספות! בדקו: ### LangChain -[![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) -[![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) - +[![LangChain4j למתחילים](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) +[![LangChain.js למתחילים](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain למתחילים](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- ### Azure / Edge / MCP / Agents -[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AZD למתחילים](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Edge AI למתחילים](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![MCP למתחילים](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) [![סוכני AI למתחילים](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- @@ -185,28 +196,28 @@ npm run convert ### למידה בסיסית [![ML למתחילים](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Data Science למתחילים](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![מדעי הנתונים למתחילים](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) [![AI למתחילים](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![סייברסקיוריטי למתחילים](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![אבטחת סייבר למתחילים](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) [![פיתוח ווב למתחילים](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) [![IoT למתחילים](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) [![פיתוח XR למתחילים](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### סדרת Copilot -[![Copilot לתכנות משותף מבוסס AI](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![Copilot ל-C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![הרפתקת Copilot](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +### סדרת הקופילוט +[![קופילוט לתכנות AI משותף](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![קופילוט ל- C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![הרפתקה עם קופילוט](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) ## שיוכים לתמונות -אתה יכול למצוא את כל השיוכים לתמונות בהם נעשה שימוש בתוכנית הלימודים הזו במידת הצורך ב-[שיוכים](./attributions.md). +ניתן למצוא את כל השיוכים עבור התמונות בשימוש בתכנית הלימודים הזו במידת הצורך ב[שיוכים](./attributions.md). --- **כתב ויתור**: -מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדייק, יש להבין כי תרגומים ממוחשבים עלולים להכיל שגיאות או אי-דיוקים. המסמך המקורי בשפה המקורית שלו נחשב למקור הרשמי והאמין. למידע קריטי מומלץ להשתמש בתרגום מקצועי של אורגניזציה אנושית. אנו לא נישא באחריות לכל אי-הבנה או פרשנות שגויה הנובעות משימוש בתרגום זה. +מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). אף כי אנו שואפים לדיוק, יש לשים לב כי תרגומים אוטומטיים עלולים להכיל טעויות או אי דיוקים. יש להתייחס למסמך המקורי בשפת המקור כמקור מהימן ומוסמך. למידע קריטי מומלץ להשתמש בתרגום מקצועי של בני אדם. אנו לא נשאים באחריות לכל אי הבנה או פרשנות שגויה הנובעת משימוש בתרגום זה. \ No newline at end of file diff --git a/translations/he/hardware.md b/translations/he/hardware.md index 1abc38707..0d29ab670 100644 --- a/translations/he/hardware.md +++ b/translations/he/hardware.md @@ -26,7 +26,7 @@ Seeed Studios באדיבותם סיפקו את כל החומרה כערכות ק **[IoT למתחילים עם Seeed ו-Microsoft - ערכת התחלה של Raspberry Pi 4](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html)** -[![ערכת החומרה של Raspberry Pi Terminal](../../translated_images/he/pi-hardware-kit.26dbadaedb7dd44c73b0131d5d68ea29472ed0a9744f90d5866c6d82f2d16380.png)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) +[![ערכת החומרה של Raspberry Pi Terminal](../../translated_images/he/pi-hardware-kit.26dbadaedb7dd44c.webp)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) ## Arduino diff --git a/translations/hi/.co-op-translator.json b/translations/hi/.co-op-translator.json index 127ca318e..05352928f 100644 --- a/translations/hi/.co-op-translator.json +++ b/translations/hi/.co-op-translator.json @@ -738,8 +738,8 @@ "language_code": "hi" }, "README.md": { - "original_hash": "3fcc056cd3837e33d2bdf79f9c359fcf", - "translation_date": "2026-01-30T01:32:24+00:00", + "original_hash": "accf69391fa4450eadbf492ca024cccf", + "translation_date": "2026-04-06T16:51:20+00:00", "source_file": "README.md", "language_code": "hi" }, diff --git a/translations/hi/1-getting-started/lessons/1-introduction-to-iot/README.md b/translations/hi/1-getting-started/lessons/1-introduction-to-iot/README.md index 853560c67..cc1abec93 100644 --- a/translations/hi/1-getting-started/lessons/1-introduction-to-iot/README.md +++ b/translations/hi/1-getting-started/lessons/1-introduction-to-iot/README.md @@ -1,6 +1,6 @@ # IoT का परिचय -![इस पाठ का स्केच नोट](../../../../../translated_images/hi/lesson-1.2606670fa61ee904687da5d6fa4e726639d524d064c895117da1b95b9ff6251d.jpg) +![इस पाठ का स्केच नोट](../../../../../translated_images/hi/lesson-1.2606670fa61ee904.webp) > स्केच नोट [नित्या नरसिम्हन](https://github.com/nitya) द्वारा। बड़ी छवि देखने के लिए चित्र पर क्लिक करें। diff --git a/translations/hi/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md b/translations/hi/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md index 85ee5a289..e1d96cd6e 100644 --- a/translations/hi/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md +++ b/translations/hi/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md @@ -203,7 +203,7 @@ Python वर्चुअल एनवायरनमेंट कॉन्फ ऐप चलना शुरू करेगा और आपके वेब ब्राउज़र में खुलेगा: - ![ब्राउज़र में चल रहा Counter Fit ऐप](../../../../../translated_images/hi/counterfit-first-run.433326358b669b31d0e99c3513cb01bfbb13724d162c99cdcc8f51ecf5f9c779.png) + ![ब्राउज़र में चल रहा Counter Fit ऐप](../../../../../translated_images/hi/counterfit-first-run.433326358b669b31.webp) इसे *Disconnected* के रूप में चिह्नित किया जाएगा, और शीर्ष-दाएं कोने में LED बंद होगा। @@ -224,7 +224,7 @@ Python वर्चुअल एनवायरनमेंट कॉन्फ 1. इस नए टर्मिनल में, पहले की तरह `app.py` फ़ाइल चलाएं। CounterFit की स्थिति **Connected** में बदल जाएगी और LED जल उठेगा। - ![Counter Fit कनेक्टेड दिखा रहा है](../../../../../translated_images/hi/counterfit-connected.ed30b46d8f79b0921f3fc70be10366e596a89dca3f80c2224a9d9fc98fccf884.png) + ![Counter Fit कनेक्टेड दिखा रहा है](../../../../../translated_images/hi/counterfit-connected.ed30b46d8f79b092.webp) > 💁 आप इस कोड को [code/virtual-device](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/virtual-device) फ़ोल्डर में पा सकते हैं। diff --git a/translations/hi/1-getting-started/lessons/2-deeper-dive/README.md b/translations/hi/1-getting-started/lessons/2-deeper-dive/README.md index 84c8ad6df..575f1ae08 100644 --- a/translations/hi/1-getting-started/lessons/2-deeper-dive/README.md +++ b/translations/hi/1-getting-started/lessons/2-deeper-dive/README.md @@ -1,6 +1,6 @@ # IoT में गहराई से समझना -![इस पाठ का स्केच नोट अवलोकन](../../../../../translated_images/hi/lesson-2.324b0580d620c25e0a24fb7fddfc0b29a846dd4b82c08e7a9466d580ee78ce51.jpg) +![इस पाठ का स्केच नोट अवलोकन](../../../../../translated_images/hi/lesson-2.324b0580d620c25e.webp) > स्केच नोट [नित्या नरसिम्हन](https://github.com/nitya) द्वारा। बड़ी छवि देखने के लिए चित्र पर क्लिक करें। @@ -38,7 +38,7 @@ IoT में **चीज़** उस डिवाइस को संदर् ये डिवाइस भौतिक दुनिया के साथ इंटरैक्ट करते हैं, या तो सेंसर का उपयोग करके अपने आसपास से डेटा इकट्ठा करते हैं या आउटपुट या एक्टुएटर्स को नियंत्रित करके भौतिक परिवर्तन करते हैं। इसका एक सामान्य उदाहरण स्मार्ट थर्मोस्टेट है - एक डिवाइस जिसमें तापमान सेंसर होता है, एक डायल या टचस्क्रीन जैसे वांछित तापमान सेट करने का साधन होता है, और एक हीटिंग या कूलिंग सिस्टम से कनेक्शन होता है जिसे तब चालू किया जा सकता है जब पता लगाया गया तापमान वांछित सीमा से बाहर हो। तापमान सेंसर यह पता लगाता है कि कमरा बहुत ठंडा है और एक एक्टुएटर हीटिंग चालू कर देता है। -![एक डायग्राम जिसमें IoT डिवाइस के इनपुट के रूप में तापमान और डायल दिखाया गया है, और आउटपुट के रूप में हीटर का नियंत्रण](../../../../../translated_images/hi/basic-thermostat.a923217fd1f37e5a6f3390396a65c22a387419ea2dd17e518ec24315ba6ae9a8.png) +![एक डायग्राम जिसमें IoT डिवाइस के इनपुट के रूप में तापमान और डायल दिखाया गया है, और आउटपुट के रूप में हीटर का नियंत्रण](../../../../../translated_images/hi/basic-thermostat.a923217fd1f37e5a.webp) IoT डिवाइस के रूप में काम करने वाली चीज़ों की एक बड़ी विविधता है, जैसे कि एक समर्पित हार्डवेयर जो केवल एक चीज़ को सेंसर करता है, या सामान्य प्रयोजन डिवाइस, यहां तक कि आपका स्मार्टफोन भी! एक स्मार्टफोन सेंसर का उपयोग करके अपने आसपास की दुनिया का पता लगा सकता है और एक्टुएटर्स का उपयोग करके दुनिया के साथ इंटरैक्ट कर सकता है - उदाहरण के लिए, GPS सेंसर का उपयोग करके आपका स्थान पता लगाना और स्पीकर का उपयोग करके आपको गंतव्य तक नेविगेशन निर्देश देना। @@ -54,7 +54,7 @@ IoT एप्लिकेशन का **इंटरनेट** पक्ष स्मार्ट थर्मोस्टेट के उदाहरण में, थर्मोस्टेट होम वाईफाई का उपयोग करके क्लाउड में चल रही क्लाउड सेवा से कनेक्ट होगा। यह तापमान डेटा इस क्लाउड सेवा को भेजेगा, और वहां से इसे किसी प्रकार के डेटाबेस में लिखा जाएगा जिससे गृहस्वामी फोन ऐप का उपयोग करके वर्तमान और पिछले तापमान की जांच कर सके। क्लाउड में एक अन्य सेवा यह जानती होगी कि गृहस्वामी कौन सा तापमान चाहता है, और क्लाउड सेवा के माध्यम से IoT डिवाइस को संदेश भेजेगी ताकि हीटिंग सिस्टम को चालू या बंद किया जा सके। -![एक डायग्राम जिसमें IoT डिवाइस के इनपुट के रूप में तापमान और डायल दिखाया गया है, IoT डिवाइस और क्लाउड के बीच दो-तरफा संचार, और क्लाउड और फोन के बीच दो-तरफा संचार, और आउटपुट के रूप में हीटर का नियंत्रण](../../../../../translated_images/hi/mobile-controlled-thermostat.4a994010473d8d6a52ba68c67e5f02dc8928c717e93ca4b9bc55525aa75bbb60.png) +![एक डायग्राम जिसमें IoT डिवाइस के इनपुट के रूप में तापमान और डायल दिखाया गया है, IoT डिवाइस और क्लाउड के बीच दो-तरफा संचार, और क्लाउड और फोन के बीच दो-तरफा संचार, और आउटपुट के रूप में हीटर का नियंत्रण](../../../../../translated_images/hi/mobile-controlled-thermostat.4a994010473d8d6a.webp) एक और स्मार्ट संस्करण क्लाउड में AI का उपयोग कर सकता है, जो अन्य IoT डिवाइस जैसे कि ऑक्यूपेंसी सेंसर से जुड़े अन्य सेंसर से डेटा के साथ-साथ मौसम और यहां तक कि आपके कैलेंडर जैसे डेटा का उपयोग करके स्मार्ट तरीके से तापमान सेट करने के निर्णय ले सकता है। उदाहरण के लिए, यह आपके कैलेंडर से पढ़कर हीटिंग बंद कर सकता है यदि आप छुट्टी पर हैं, या कमरे के उपयोग के आधार पर कमरे-दर-कमरे हीटिंग बंद कर सकता है, डेटा से सीखते हुए समय के साथ अधिक सटीक होता जा सकता है। @@ -94,7 +94,7 @@ CPU एक घड़ी पर निर्भर करता है जो प > 💁 CPU प्रोग्राम को [फेच-डिकोड-एक्ज़ीक्यूट चक्र](https://wikipedia.org/wiki/Instruction_cycle) का उपयोग करके निष्पादित करता है। प्रत्येक घड़ी टिक के लिए, CPU मेमोरी से अगला निर्देश फेच करेगा, इसे डिकोड करेगा, फिर इसे निष्पादित करेगा जैसे कि दो संख्याओं को जोड़ने के लिए एक एरिथमेटिक लॉजिक यूनिट (ALU) का उपयोग करना। कुछ निष्पादन को चलाने में कई टिक लगते हैं, इसलिए अगला चक्र उस टिक पर चलेगा जब निर्देश पूरा हो जाएगा। -![फेच डिकोड एक्ज़ीक्यूट चक्र दिखाते हुए जिसमें RAM में संग्रहीत प्रोग्राम से एक निर्देश फेच किया जाता है, फिर CPU पर डिकोड और निष्पादित किया जाता है](../../../../../translated_images/hi/fetch-decode-execute.2fd6f150f6280392807f4475382319abd0cee0b90058e1735444d6baa6f2078c.png) +![फेच डिकोड एक्ज़ीक्यूट चक्र दिखाते हुए जिसमें RAM में संग्रहीत प्रोग्राम से एक निर्देश फेच किया जाता है, फिर CPU पर डिकोड और निष्पादित किया जाता है](../../../../../translated_images/hi/fetch-decode-execute.2fd6f150f6280392.webp) माइक्रोकंट्रोलर्स में डेस्कटॉप या लैपटॉप कंप्यूटर, या यहां तक कि अधिकांश स्मार्टफोन की तुलना में बहुत कम घड़ी की गति होती है। उदाहरण के लिए, Wio Terminal में एक CPU होता है जो 120MHz या 120,000,000 चक्र प्रति सेकंड पर चलता है। @@ -182,7 +182,7 @@ Arduino बोर्ड C या C++ में कोड किए जाते आप अपने सेटअप कोड को `setup` फंक्शन में लिखेंगे, जैसे WiFi और क्लाउड सेवाओं से कनेक्ट करना या इनपुट और आउटपुट के लिए पिन्स को इनिशियलाइज़ करना। आपका लूप कोड फिर प्रोसेसिंग कोड को शामिल करेगा, जैसे सेंसर से डेटा पढ़ना और इसे क्लाउड पर भेजना। आप आमतौर पर प्रत्येक लूप में एक देरी जोड़ेंगे, उदाहरण के लिए, यदि आप केवल हर 10 सेकंड में सेंसर डेटा भेजना चाहते हैं, तो आप लूप के अंत में 10 सेकंड की देरी जोड़ेंगे ताकि माइक्रोकंट्रोलर सो सके, पावर बचा सके, और फिर 10 सेकंड बाद जब आवश्यक हो तो लूप को फिर से चलाए। -![Arduino स्केच पहले setup चलाता है, फिर loop को बार-बार चलाता है](../../../../../translated_images/hi/arduino-sketch.79590cb837ff7a7c6a68d1afda6cab83fd53d3bb1bd9a8bf2eaf8d693a4d3ea6.png) +![Arduino स्केच पहले setup चलाता है, फिर loop को बार-बार चलाता है](../../../../../translated_images/hi/arduino-sketch.79590cb837ff7a7c.webp) ✅ इस प्रोग्राम आर्किटेक्चर को *इवेंट लूप* या *मैसेज लूप* के रूप में जाना जाता है। कई एप्लिकेशन इसे बैकग्राउंड में उपयोग करते हैं और यह अधिकांश डेस्कटॉप एप्लिकेशन के लिए मानक है जो Windows, macOS या Linux जैसे OS पर चलते हैं। `loop` यूजर इंटरफेस घटकों जैसे बटन, या कीबोर्ड जैसे उपकरणों से संदेशों को सुनता है और उनका जवाब देता है। आप इसके बारे में अधिक पढ़ सकते हैं इस [इवेंट लूप पर लेख](https://wikipedia.org/wiki/Event_loop) में। diff --git a/translations/hi/1-getting-started/lessons/3-sensors-and-actuators/README.md b/translations/hi/1-getting-started/lessons/3-sensors-and-actuators/README.md index 7feda3dec..b7d0c987f 100644 --- a/translations/hi/1-getting-started/lessons/3-sensors-and-actuators/README.md +++ b/translations/hi/1-getting-started/lessons/3-sensors-and-actuators/README.md @@ -1,6 +1,6 @@ # सेंसर और एक्ट्यूएटर्स के साथ भौतिक दुनिया से जुड़ें -![इस पाठ का स्केच नोट](../../../../../translated_images/hi/lesson-3.cc3b7b4cd646de598698cce043c0393fd62ef42bac2eaf60e61272cd844250f4.jpg) +![इस पाठ का स्केच नोट](../../../../../translated_images/hi/lesson-3.cc3b7b4cd646de59.webp) > स्केच नोट: [नित्या नरसिम्हन](https://github.com/nitya) द्वारा। बड़ी छवि देखने के लिए क्लिक करें। @@ -92,7 +92,7 @@ IoT डिवाइस डिजिटल होते हैं - वे एन सबसे सरल डिजिटल सेंसर एक बटन या स्विच है। यह एक सेंसर है जिसमें दो अवस्थाएँ होती हैं, चालू या बंद। -![एक बटन को 5 वोल्ट भेजा जा रहा है। जब दबाया नहीं जाता तो यह 0 वोल्ट लौटाता है, और जब दबाया जाता है तो यह 5 वोल्ट लौटाता है](../../../../../translated_images/hi/button.eadb560b77ac45e56f523d9d8876e40444f63b419e33eb820082d461fa79490b.png) +![एक बटन को 5 वोल्ट भेजा जा रहा है। जब दबाया नहीं जाता तो यह 0 वोल्ट लौटाता है, और जब दबाया जाता है तो यह 5 वोल्ट लौटाता है](../../../../../translated_images/hi/button.eadb560b77ac45e5.webp) IoT डिवाइस के पिन्स जैसे GPIO पिन्स इस संकेत को सीधे 0 या 1 के रूप में माप सकते हैं। यदि भेजा गया वोल्टेज लौटाए गए वोल्टेज के समान है, तो पढ़ा गया मान 1 होता है, अन्यथा पढ़ा गया मान 0 होता है। संकेत को परिवर्तित करने की आवश्यकता नहीं होती, यह केवल 1 या 0 हो सकता है। @@ -125,7 +125,7 @@ IoT डिवाइस के पिन्स जैसे GPIO पिन्स नीचे दिए गए संबंधित गाइड का पालन करें ताकि सेंसर द्वारा नियंत्रित एक्ट्यूएटर को अपने IoT डिवाइस में जोड़ सकें और IoT नाइटलाइट बना सकें। यह लाइट सेंसर से प्रकाश स्तरों को एकत्र करेगा और जब पता लगाया गया प्रकाश स्तर बहुत कम होगा तो LED के रूप में एक्ट्यूएटर का उपयोग करके प्रकाश उत्सर्जित करेगा। -![असाइनमेंट का फ्लो चार्ट, जिसमें प्रकाश स्तरों को पढ़ा और जांचा जा रहा है, और LED को नियंत्रित किया जा रहा है](../../../../../translated_images/hi/assignment-1-flow.7552a51acb1a5ec858dca6e855cdbb44206434006df8ba3799a25afcdab1665d.png) +![असाइनमेंट का फ्लो चार्ट, जिसमें प्रकाश स्तरों को पढ़ा और जांचा जा रहा है, और LED को नियंत्रित किया जा रहा है](../../../../../translated_images/hi/assignment-1-flow.7552a51acb1a5ec8.webp) * [Arduino - Wio Terminal](wio-terminal-actuator.md) * [सिंगल-बोर्ड कंप्यूटर - Raspberry Pi](pi-actuator.md) @@ -140,7 +140,7 @@ IoT डिवाइस के पिन्स जैसे GPIO पिन्स एनालॉग एक्ट्यूएटर एक एनालॉग संकेत लेते हैं और इसे किसी प्रकार के इंटरैक्शन में बदलते हैं, जहां इंटरैक्शन आपूर्ति किए गए वोल्टेज के आधार पर बदलता है। एक उदाहरण एक डिमेबल लाइट है, जैसे कि आपके घर में हो सकती है। लाइट को आपूर्ति किए गए वोल्टेज की मात्रा यह निर्धारित करती है कि यह कितनी उज्ज्वल है। -![कम वोल्टेज पर हल्की रोशनी और उच्च वोल्टेज पर तेज रोशनी](../../../../../translated_images/hi/dimmable-light.9ceffeb195dec1a849da718b2d71b32c35171ff7dfea9c07bbf82646a67acf6b.png) +![कम वोल्टेज पर हल्की रोशनी और उच्च वोल्टेज पर तेज रोशनी](../../../../../translated_images/hi/dimmable-light.9ceffeb195dec1a8.webp) सेंसर की तरह, असली IoT डिवाइस डिजिटल सिग्नल पर काम करता है, एनालॉग पर नहीं। इसका मतलब है कि एनालॉग सिग्नल भेजने के लिए, IoT डिवाइस को डिजिटल से एनालॉग कनवर्टर (DAC) की आवश्यकता होती है, जो या तो सीधे IoT डिवाइस पर या कनेक्टर बोर्ड पर होता है। यह IoT डिवाइस से 0s और 1s को एनालॉग वोल्टेज में बदल देगा जिसे एक्टुएटर उपयोग कर सकता है। @@ -187,7 +187,7 @@ IoT डिवाइस से डिजिटल सिग्नल को ए एक साधारण डिजिटल एक्टुएटर LED है। जब डिवाइस 1 का डिजिटल सिग्नल भेजता है, तो एक उच्च वोल्टेज भेजा जाता है जो LED को जलाता है। जब 0 का डिजिटल सिग्नल भेजा जाता है, तो वोल्टेज 0V तक गिर जाता है और LED बंद हो जाती है। -![0 वोल्ट पर LED बंद और 5V पर चालू](../../../../../translated_images/hi/led.ec6d94f66676a174ad06d9fa9ea49c2ee89beb18b312d5c6476467c66375b07f.png) +![0 वोल्ट पर LED बंद और 5V पर चालू](../../../../../translated_images/hi/led.ec6d94f66676a174.webp) ✅ आप और कौन से साधारण 2-स्टेट एक्टुएटर के बारे में सोच सकते हैं? एक उदाहरण है सोलोनॉइड, जो एक इलेक्ट्रोमैग्नेट है जिसे दरवाजे की कुंडी को लॉक/अनलॉक करने जैसे काम करने के लिए सक्रिय किया जा सकता है। diff --git a/translations/hi/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md b/translations/hi/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md index 3a78d299d..ade378f36 100644 --- a/translations/hi/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md +++ b/translations/hi/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md @@ -26,7 +26,7 @@ Otherwise एलईडी को कनेक्ट करें। -![एक ग्रोव एलईडी](../../../../../translated_images/hi/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![एक ग्रोव एलईडी](../../../../../translated_images/hi/grove-led.6c853be93f473cf2.webp) 1. अपनी पसंदीदा एलईडी चुनें और उसके पिन्स को एलईडी मॉड्यूल के दो छेदों में डालें। @@ -40,7 +40,7 @@ Otherwise 1. रास्पबेरी पाई को बंद करके, ग्रोव केबल के दूसरे सिरे को ग्रोव बेस हैट पर **D5** चिह्नित डिजिटल सॉकेट में कनेक्ट करें। यह सॉकेट GPIO पिन्स के पास वाले सॉकेट्स की पंक्ति में बाईं ओर से दूसरा है। -![ग्रोव एलईडी D5 सॉकेट से जुड़ी हुई](../../../../../translated_images/hi/pi-led.97f1d474981dc35d1c7996c7b17de355d3d0a6bc9606d79fa5f89df933415122.png) +![ग्रोव एलईडी D5 सॉकेट से जुड़ी हुई](../../../../../translated_images/hi/pi-led.97f1d474981dc35d.webp) ## नाइटलाइट को प्रोग्राम करें diff --git a/translations/hi/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md b/translations/hi/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md index a6f97b5d2..be9f4968b 100644 --- a/translations/hi/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md +++ b/translations/hi/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md @@ -16,13 +16,13 @@ लाइट सेंसर को कनेक्ट करें। -![एक Grove लाइट सेंसर](../../../../../translated_images/hi/grove-light-sensor.b8127b7c434e632d6bcdb57587a14e9ef69a268a22df95d08628f62b8fa5505c.png) +![एक Grove लाइट सेंसर](../../../../../translated_images/hi/grove-light-sensor.b8127b7c434e632d.webp) 1. Grove केबल के एक सिरे को लाइट सेंसर मॉड्यूल के सॉकेट में डालें। यह केवल एक ही दिशा में जाएगा। 1. रास्पबेरी पाई को बंद करके, Grove केबल के दूसरे सिरे को Grove Base हैट पर **A0** नामक एनालॉग सॉकेट में कनेक्ट करें। यह सॉकेट GPIO पिन के पास वाले सॉकेट की पंक्ति में दाईं ओर से दूसरा है। -![सॉकेट A0 से जुड़ा Grove लाइट सेंसर](../../../../../translated_images/hi/pi-light-sensor.66cc1e31fa48cd7d5f23400d4b2119aa41508275cb7c778053a7923b4e972d7e.png) +![सॉकेट A0 से जुड़ा Grove लाइट सेंसर](../../../../../translated_images/hi/pi-light-sensor.66cc1e31fa48cd7d.webp) ## लाइट सेंसर को प्रोग्राम करें diff --git a/translations/hi/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md b/translations/hi/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md index c8354523a..f58b748d1 100644 --- a/translations/hi/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md +++ b/translations/hi/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md @@ -36,11 +36,11 @@ CounterFit ऐप में LED जोड़ें। 1. **Add** बटन चुनें ताकि Pin 5 पर LED बनाई जा सके। - ![LED सेटिंग्स](../../../../../translated_images/hi/counterfit-create-led.ba9db1c9b8c622a635d6dfae5cdc4e70c2b250635bd4f0601c6cf0bd22b7ba46.png) + ![LED सेटिंग्स](../../../../../translated_images/hi/counterfit-create-led.ba9db1c9b8c622a6.webp) LED बनाई जाएगी और एक्टुएटर्स की सूची में दिखाई देगी। - ![बनी हुई LED](../../../../../translated_images/hi/counterfit-led.c0ab02de6d256ad84d9bad4d67a7faa709f0ea83e410cfe9b5561ef0cef30b1c.png) + ![बनी हुई LED](../../../../../translated_images/hi/counterfit-led.c0ab02de6d256ad8.webp) LED बनने के बाद, आप *Color* पिकर का उपयोग करके रंग बदल सकते हैं। रंग चुनने के बाद **Set** बटन चुनें। diff --git a/translations/hi/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md b/translations/hi/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md index a7f52efd2..15881419a 100644 --- a/translations/hi/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md +++ b/translations/hi/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md @@ -28,11 +28,11 @@ CounterFit ऐप में लाइट सेंसर जोड़ें। 1. **Add** बटन चुनें ताकि Pin 0 पर लाइट सेंसर बनाया जा सके। - ![लाइट सेंसर सेटिंग्स](../../../../../translated_images/hi/counterfit-create-light-sensor.9f36a5e0d4458d8d554d54b34d2c806d56093d6e49fddcda2d20f6fef7f5cce1.png) + ![लाइट सेंसर सेटिंग्स](../../../../../translated_images/hi/counterfit-create-light-sensor.9f36a5e0d4458d8d.webp) लाइट सेंसर बनाया जाएगा और सेंसर सूची में दिखाई देगा। - ![लाइट सेंसर बनाया गया](../../../../../translated_images/hi/counterfit-light-sensor.5d0f5584df56b90f6b2561910d9cb20dfbd73eeff2177c238d38f4de54aefae1.png) + ![लाइट सेंसर बनाया गया](../../../../../translated_images/hi/counterfit-light-sensor.5d0f5584df56b90f.webp) ## लाइट सेंसर को प्रोग्राम करें diff --git a/translations/hi/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md b/translations/hi/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md index 2a6b2917d..cf562c24b 100644 --- a/translations/hi/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md +++ b/translations/hi/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md @@ -26,7 +26,7 @@ Grove LED एक मॉड्यूल के रूप में आता ह LED को कनेक्ट करें। -![एक Grove LED](../../../../../translated_images/hi/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![एक Grove LED](../../../../../translated_images/hi/grove-led.6c853be93f473cf2.webp) 1. अपना पसंदीदा LED चुनें और उसके पैरों को LED मॉड्यूल के दो छेदों में डालें। diff --git a/translations/hi/1-getting-started/lessons/4-connect-internet/README.md b/translations/hi/1-getting-started/lessons/4-connect-internet/README.md index 629a4bc98..b78c4e2b0 100644 --- a/translations/hi/1-getting-started/lessons/4-connect-internet/README.md +++ b/translations/hi/1-getting-started/lessons/4-connect-internet/README.md @@ -1,6 +1,6 @@ # अपने डिवाइस को इंटरनेट से कनेक्ट करें -![इस पाठ का स्केच नोट अवलोकन](../../../../../translated_images/hi/lesson-4.7344e074ea68fa545fd320b12dce36d72dd62d28c3b4596cb26cf315f434b98f.jpg) +![इस पाठ का स्केच नोट अवलोकन](../../../../../translated_images/hi/lesson-4.7344e074ea68fa54.webp) > स्केच नोट [नित्या नरसिम्हन](https://github.com/nitya) द्वारा। बड़ी छवि देखने के लिए क्लिक करें। @@ -47,7 +47,7 @@ MQTT IoT डिवाइस के लिए सबसे लोकप्रि MQTT में एक ब्रॉकर और कई क्लाइंट होते हैं। सभी क्लाइंट ब्रॉकर से जुड़ते हैं, और ब्रॉकर संदेशों को संबंधित क्लाइंट्स तक पहुंचाता है। संदेशों को नामित टॉपिक्स का उपयोग करके रूट किया जाता है, बजाय इसके कि उन्हें सीधे किसी व्यक्तिगत क्लाइंट को भेजा जाए। एक क्लाइंट किसी टॉपिक पर प्रकाशित कर सकता है, और उस टॉपिक की सदस्यता लेने वाले सभी क्लाइंट्स को संदेश प्राप्त होगा। -![IoT डिवाइस /telemetry टॉपिक पर टेलीमेट्री प्रकाशित कर रहा है, और क्लाउड सेवा उस टॉपिक की सदस्यता ले रही है](../../../../../translated_images/hi/mqtt.cbf7f21d9adc3e17548b359444cc11bb4bf2010543e32ece9a47becf54438c23.png) +![IoT डिवाइस /telemetry टॉपिक पर टेलीमेट्री प्रकाशित कर रहा है, और क्लाउड सेवा उस टॉपिक की सदस्यता ले रही है](../../../../../translated_images/hi/mqtt.cbf7f21d9adc3e17.webp) ✅ शोध करें। यदि आपके पास बहुत सारे IoT डिवाइस हैं, तो आप कैसे सुनिश्चित कर सकते हैं कि आपका MQTT ब्रॉकर सभी संदेशों को संभाल सके? @@ -69,7 +69,7 @@ MQTT में एक ब्रॉकर और कई क्लाइंट ह > 💁 यह परीक्षण ब्रॉकर सार्वजनिक और असुरक्षित है। कोई भी आपके द्वारा प्रकाशित सामग्री को सुन सकता है, इसलिए इसे किसी भी निजी डेटा के साथ उपयोग नहीं किया जाना चाहिए। -![असाइनमेंट का फ्लो चार्ट जिसमें प्रकाश स्तर पढ़ा और जांचा जा रहा है, और LED नियंत्रित किया जा रहा है](../../../../../translated_images/hi/assignment-1-internet-flow.3256feab5f052fd273bf4e331157c574c2c3fa42e479836fc9c3586f41db35a5.png) +![असाइनमेंट का फ्लो चार्ट जिसमें प्रकाश स्तर पढ़ा और जांचा जा रहा है, और LED नियंत्रित किया जा रहा है](../../../../../translated_images/hi/assignment-1-internet-flow.3256feab5f052fd2.webp) MQTT ब्रॉकर से अपने डिवाइस को कनेक्ट करने के लिए नीचे दिए गए संबंधित चरण का पालन करें: @@ -350,7 +350,7 @@ Python वर्चुअल एनवायरनमेंट कॉन्फ IoT डिवाइस डिज़ाइनरों को यह भी विचार करना चाहिए कि क्या IoT डिवाइस इंटरनेट आउटेज या स्थान के कारण सिग्नल की हानि के दौरान उपयोग किया जा सकता है। एक स्मार्ट थर्मोस्टेट को कुछ सीमित निर्णय लेने में सक्षम होना चाहिए ताकि यदि यह क्लाउड को टेलीमेट्री नहीं भेज सकता है, तो भी हीटिंग को नियंत्रित किया जा सके। -[![यह फेरारी ब्रिक हो गया क्योंकि किसी ने इसे भूमिगत अपग्रेड करने की कोशिश की जहां कोई सेल रिसेप्शन नहीं था](../../../../../translated_images/hi/bricked-car.dc38f8efadc6c59d76211f981a521efb300939283dee468f79503aae3ec67615.png)](https://twitter.com/internetofshit/status/1315736960082808832) +[![यह फेरारी ब्रिक हो गया क्योंकि किसी ने इसे भूमिगत अपग्रेड करने की कोशिश की जहां कोई सेल रिसेप्शन नहीं था](../../../../../translated_images/hi/bricked-car.dc38f8efadc6c59d.webp)](https://twitter.com/internetofshit/status/1315736960082808832) MQTT के लिए कनेक्टिविटी के नुकसान को संभालने के लिए, डिवाइस और सर्वर कोड को यह सुनिश्चित करने की जिम्मेदारी लेनी होगी कि संदेश डिलीवरी आवश्यक होने पर सुनिश्चित हो, उदाहरण के लिए सभी भेजे गए संदेशों को एक रिप्लाई टॉपिक पर अतिरिक्त संदेशों द्वारा उत्तर देने की आवश्यकता हो, और यदि नहीं, तो उन्हें मैन्युअल रूप से कतारबद्ध किया जाए ताकि बाद में रिप्ले किया जा सके। @@ -358,7 +358,7 @@ MQTT के लिए कनेक्टिविटी के नुकसा कमांड वे संदेश हैं जो क्लाउड से डिवाइस को भेजे जाते हैं, उन्हें कुछ करने का निर्देश देते हैं। अधिकांश समय यह किसी प्रकार का आउटपुट देने के लिए एक एक्टुएटर के माध्यम से होता है, लेकिन यह डिवाइस के लिए एक निर्देश भी हो सकता है, जैसे कि रीबूट करना, या अतिरिक्त टेलीमेट्री एकत्र करना और इसे कमांड के उत्तर के रूप में वापस करना। -![एक इंटरनेट कनेक्टेड थर्मोस्टेट को हीटिंग चालू करने का कमांड प्राप्त हो रहा है](../../../../../translated_images/hi/commands.d6c06bbbb3a02cce95f2831a1c331daf6dedd4e470c4aa2b0ae54f332016e504.png) +![एक इंटरनेट कनेक्टेड थर्मोस्टेट को हीटिंग चालू करने का कमांड प्राप्त हो रहा है](../../../../../translated_images/hi/commands.d6c06bbbb3a02cce.webp) एक थर्मोस्टेट क्लाउड से हीटिंग चालू करने का कमांड प्राप्त कर सकता है। सभी सेंसरों से टेलीमेट्री डेटा के आधार पर, यदि क्लाउड सेवा ने तय किया है कि हीटिंग चालू होनी चाहिए, तो यह संबंधित कमांड भेजता है। diff --git a/translations/hi/2-farm/lessons/1-predict-plant-growth/README.md b/translations/hi/2-farm/lessons/1-predict-plant-growth/README.md index c2d9dc00a..1a6802298 100644 --- a/translations/hi/2-farm/lessons/1-predict-plant-growth/README.md +++ b/translations/hi/2-farm/lessons/1-predict-plant-growth/README.md @@ -1,6 +1,6 @@ ## पौधों की वृद्धि की भविष्यवाणी IoT के साथ -![इस पाठ का स्केच नोट](../../../../../translated_images/hi/lesson-5.42b234299279d263143148b88ab4583861a32ddb03110c6c1120e41bb88b2592.jpg) +![इस पाठ का स्केच नोट](../../../../../translated_images/hi/lesson-5.42b234299279d263.webp) > स्केच नोट [नित्या नरसिम्हन](https://github.com/nitya) द्वारा। बड़े संस्करण के लिए छवि पर क्लिक करें। @@ -102,7 +102,7 @@ उदाहरण के लिए, यदि दिन का सबसे अधिक तापमान 25°C है और सबसे कम 12°C: -![GDD = 25 + 12 को 2 से विभाजित करें, फिर परिणाम से 10 घटाएं, जिससे 8.5 प्राप्त होता है](../../../../../translated_images/hi/gdd-calculation-strawberries.59f57db94b22adb8ff6efb951ace33af104a1c6ccca3ffb0f8169c14cb160c90.png) +![GDD = 25 + 12 को 2 से विभाजित करें, फिर परिणाम से 10 घटाएं, जिससे 8.5 प्राप्त होता है](../../../../../translated_images/hi/gdd-calculation-strawberries.59f57db94b22adb8.webp) * 25 + 12 = 37 * 37 / 2 = 18.5 diff --git a/translations/hi/2-farm/lessons/1-predict-plant-growth/assignment.md b/translations/hi/2-farm/lessons/1-predict-plant-growth/assignment.md index 014272048..85f108d8b 100644 --- a/translations/hi/2-farm/lessons/1-predict-plant-growth/assignment.md +++ b/translations/hi/2-farm/lessons/1-predict-plant-growth/assignment.md @@ -33,7 +33,7 @@ जुपिटर शुरू होगा और आपके ब्राउज़र में नोटबुक खोल देगा। नोटबुक में दिए गए निर्देशों का पालन करें ताकि मापे गए तापमान को विज़ुअलाइज़ किया जा सके और ग्रोइंग डिग्री डेज़ की गणना की जा सके। - ![जुपिटर नोटबुक](../../../../../translated_images/hi/gdd-jupyter-notebook.c5b52cf21094f158a61f47f455490fd95f1729777ff90861a4521820bf354cdc.png) + ![जुपिटर नोटबुक](../../../../../translated_images/hi/gdd-jupyter-notebook.c5b52cf21094f158.webp) ## मूल्यांकन मानदंड diff --git a/translations/hi/2-farm/lessons/1-predict-plant-growth/pi-temp.md b/translations/hi/2-farm/lessons/1-predict-plant-growth/pi-temp.md index b9b099114..ae154def7 100644 --- a/translations/hi/2-farm/lessons/1-predict-plant-growth/pi-temp.md +++ b/translations/hi/2-farm/lessons/1-predict-plant-growth/pi-temp.md @@ -16,13 +16,13 @@ Grove तापमान सेंसर को रास्पबेरी प तापमान सेंसर को कनेक्ट करें -![एक Grove तापमान सेंसर](../../../../../translated_images/hi/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![एक Grove तापमान सेंसर](../../../../../translated_images/hi/grove-dht11.07f8eafceee17004.webp) 1. Grove केबल के एक सिरे को ह्यूमिडिटी और तापमान सेंसर के सॉकेट में डालें। यह केवल एक ही दिशा में जाएगा। 1. रास्पबेरी पाई को बंद करके, Grove केबल के दूसरे सिरे को Grove बेस हैट पर **D5** नामक डिजिटल सॉकेट में कनेक्ट करें, जो पाई से जुड़ा है। यह सॉकेट GPIO पिन के पास वाले सॉकेट की पंक्ति में बाईं ओर से दूसरा है। -![Grove तापमान सेंसर सॉकेट A0 से जुड़ा हुआ](../../../../../translated_images/hi/pi-temperature-sensor.3ff82fff672c8e565ef25a39d26d111de006b825a7e0867227ef4e7fbff8553c.png) +![Grove तापमान सेंसर सॉकेट A0 से जुड़ा हुआ](../../../../../translated_images/hi/pi-temperature-sensor.3ff82fff672c8e56.webp) ## तापमान सेंसर को प्रोग्राम करें diff --git a/translations/hi/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md b/translations/hi/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md index 21d091d0d..cabd26f74 100644 --- a/translations/hi/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md +++ b/translations/hi/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md @@ -38,11 +38,11 @@ CounterFit ऐप में आर्द्रता और तापमान 1. **Add** बटन का चयन करें ताकि पिन 5 पर आर्द्रता सेंसर बनाया जा सके। - ![आर्द्रता सेंसर सेटिंग्स](../../../../../translated_images/hi/counterfit-create-humidity-sensor.2750e27b6f30e09cf4e22101defd5252710717620816ab41ba688f91f757c49a.png) + ![आर्द्रता सेंसर सेटिंग्स](../../../../../translated_images/hi/counterfit-create-humidity-sensor.2750e27b6f30e09c.webp) आर्द्रता सेंसर बनाया जाएगा और सेंसर सूची में दिखाई देगा। - ![आर्द्रता सेंसर बनाया गया](../../../../../translated_images/hi/counterfit-humidity-sensor.7b12f7f339e430cb26c8211d2dba4ef75261b353a01da0932698b5bebd693f27.png) + ![आर्द्रता सेंसर बनाया गया](../../../../../translated_images/hi/counterfit-humidity-sensor.7b12f7f339e430cb.webp) 1. एक तापमान सेंसर बनाएं: @@ -54,11 +54,11 @@ CounterFit ऐप में आर्द्रता और तापमान 1. **Add** बटन का चयन करें ताकि पिन 6 पर तापमान सेंसर बनाया जा सके। - ![तापमान सेंसर सेटिंग्स](../../../../../translated_images/hi/counterfit-create-temperature-sensor.199350ed34f7343d79dccbe95eaf6c11d2121f03d1c35ab9613b330c23f39b29.png) + ![तापमान सेंसर सेटिंग्स](../../../../../translated_images/hi/counterfit-create-temperature-sensor.199350ed34f7343d.webp) तापमान सेंसर बनाया जाएगा और सेंसर सूची में दिखाई देगा। - ![तापमान सेंसर बनाया गया](../../../../../translated_images/hi/counterfit-temperature-sensor.f0560236c96a9016bafce7f6f792476fe3367bc6941a1f7d5811d144d4bcbfff.png) + ![तापमान सेंसर बनाया गया](../../../../../translated_images/hi/counterfit-temperature-sensor.f0560236c96a9016.webp) ## तापमान सेंसर ऐप प्रोग्राम करें diff --git a/translations/hi/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md b/translations/hi/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md index f7194a725..cd11921be 100644 --- a/translations/hi/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md +++ b/translations/hi/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md @@ -18,7 +18,7 @@ Grove तापमान सेंसर को Wio Terminal के डिजि तापमान सेंसर को कनेक्ट करें। -![एक Grove तापमान सेंसर](../../../../../translated_images/hi/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![एक Grove तापमान सेंसर](../../../../../translated_images/hi/grove-dht11.07f8eafceee17004.webp) 1. Grove केबल के एक सिरे को ह्यूमिडिटी और तापमान सेंसर के सॉकेट में डालें। यह केवल एक ही दिशा में जाएगा। diff --git a/translations/hi/2-farm/lessons/2-detect-soil-moisture/README.md b/translations/hi/2-farm/lessons/2-detect-soil-moisture/README.md index 615ac739c..a541c4224 100644 --- a/translations/hi/2-farm/lessons/2-detect-soil-moisture/README.md +++ b/translations/hi/2-farm/lessons/2-detect-soil-moisture/README.md @@ -13,7 +13,7 @@ I²C में 2 मुख्य तारों के साथ 2 पावर | VCC | वोल्टेज कॉमन कलेक्टर | डिवाइसों के लिए पावर सप्लाई। यह तार SDA और SCL तारों से जुड़ा होता है और एक पुल-अप रेसिस्टर के माध्यम से उनकी पावर प्रदान करता है, जो सिग्नल को तब बंद कर देता है जब कोई डिवाइस कंट्रोलर न हो। | | GND | ग्राउंड | यह इलेक्ट्रिकल सर्किट के लिए एक सामान्य ग्राउंड प्रदान करता है। | -![I2C बस जिसमें 3 डिवाइस SDA और SCL तारों से जुड़े हुए हैं, और एक सामान्य ग्राउंड तार साझा कर रहे हैं](../../../../../translated_images/hi/i2c.83da845dde02256bdd462dbe0d5145461416b74930571b89d1ae142841eeb584.png) +![I2C बस जिसमें 3 डिवाइस SDA और SCL तारों से जुड़े हुए हैं, और एक सामान्य ग्राउंड तार साझा कर रहे हैं](../../../../../translated_images/hi/i2c.83da845dde02256b.webp) डेटा भेजने के लिए, एक डिवाइस एक स्टार्ट कंडीशन जारी करेगा ताकि यह दिखा सके कि वह डेटा भेजने के लिए तैयार है। इसके बाद वह कंट्रोलर बन जाएगा। कंट्रोलर फिर उस डिवाइस का पता भेजता है जिससे वह संवाद करना चाहता है, साथ ही यह भी बताता है कि वह डेटा पढ़ना चाहता है या लिखना। डेटा ट्रांसमिट होने के बाद, कंट्रोलर एक स्टॉप कंडीशन भेजता है ताकि यह संकेत दे सके कि उसने काम पूरा कर लिया है। इसके बाद कोई अन्य डिवाइस कंट्रोलर बन सकता है और डेटा भेज या प्राप्त कर सकता है। diff --git a/translations/hi/2-farm/lessons/2-detect-soil-moisture/assignment.md b/translations/hi/2-farm/lessons/2-detect-soil-moisture/assignment.md index cec95841b..39869b721 100644 --- a/translations/hi/2-farm/lessons/2-detect-soil-moisture/assignment.md +++ b/translations/hi/2-farm/lessons/2-detect-soil-moisture/assignment.md @@ -20,14 +20,14 @@ ग्रेविमेट्रिक मिट्टी की नमी की गणना इस प्रकार की जाती है: -![मिट्टी की नमी % = गीली मिट्टी का वजन - सूखी मिट्टी का वजन, ÷ सूखी मिट्टी का वजन, × 100](../../../../../translated_images/hi/gsm-calculation.6da38c6201eec14e7573bb2647aa18892883193553d23c9d77e5dc681522dfb2.png) +![मिट्टी की नमी % = गीली मिट्टी का वजन - सूखी मिट्टी का वजन, ÷ सूखी मिट्टी का वजन, × 100](../../../../../translated_images/hi/gsm-calculation.6da38c6201eec14e.webp) * W - गीली मिट्टी का वजन * W - सूखी मिट्टी का वजन उदाहरण के लिए, मान लें कि आपके पास एक मिट्टी का नमूना है जिसका वजन गीला होने पर 212g और सूखा होने पर 197g है। -![गणना भरी हुई](../../../../../translated_images/hi/gsm-calculation-example.99f9803b4f29e97668e7c15412136c0c399ab12dbba0b89596fdae9d8aedb6fb.png) +![गणना भरी हुई](../../../../../translated_images/hi/gsm-calculation-example.99f9803b4f29e976.webp) * W = 212g * W = 197g diff --git a/translations/hi/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md b/translations/hi/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md index d5f0d23c3..6c74cd943 100644 --- a/translations/hi/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md +++ b/translations/hi/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md @@ -18,13 +18,13 @@ Grove मिट्टी नमी सेंसर को रास्पबे मिट्टी नमी सेंसर को कनेक्ट करें। -![एक Grove मिट्टी नमी सेंसर](../../../../../translated_images/hi/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![एक Grove मिट्टी नमी सेंसर](../../../../../translated_images/hi/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. Grove केबल के एक सिरे को मिट्टी नमी सेंसर के सॉकेट में डालें। यह केवल एक ही दिशा में जाएगा। 1. रास्पबेरी पाई को बंद करके, Grove केबल के दूसरे सिरे को Grove Base Hat पर **A0** चिह्नित एनालॉग सॉकेट में कनेक्ट करें। यह सॉकेट GPIO पिन्स के पास वाली पंक्ति में दाईं ओर से दूसरा है। -![A0 सॉकेट से जुड़ा Grove मिट्टी नमी सेंसर](../../../../../translated_images/hi/pi-soil-moisture-sensor.fdd7eb2393792cf6739cacf1985d9f55beda16d372f30d0b5a51d586f978a870.png) +![A0 सॉकेट से जुड़ा Grove मिट्टी नमी सेंसर](../../../../../translated_images/hi/pi-soil-moisture-sensor.fdd7eb2393792cf6.webp) 1. मिट्टी नमी सेंसर को मिट्टी में डालें। इसमें एक 'उच्चतम स्थिति रेखा' होती है - सेंसर पर एक सफेद रेखा। सेंसर को इस रेखा तक, लेकिन इससे आगे नहीं डालें। diff --git a/translations/hi/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md b/translations/hi/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md index f27b598cc..4e30f78d0 100644 --- a/translations/hi/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md +++ b/translations/hi/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md @@ -34,11 +34,11 @@ CounterFit ऐप में मिट्टी नमी सेंसर जो 1. **Add** बटन चुनें ताकि *Soil Moisture* सेंसर Pin 0 पर बनाया जा सके। - ![मिट्टी नमी सेंसर सेटिंग्स](../../../../../translated_images/hi/counterfit-create-soil-moisture-sensor.35266135a5e0ae68b29a684d7db0d2933a8098b2307d197f7c71577b724603aa.png) + ![मिट्टी नमी सेंसर सेटिंग्स](../../../../../translated_images/hi/counterfit-create-soil-moisture-sensor.35266135a5e0ae68.webp) मिट्टी नमी सेंसर बनाया जाएगा और सेंसर सूची में दिखाई देगा। - ![मिट्टी नमी सेंसर बनाया गया](../../../../../translated_images/hi/counterfit-soil-moisture-sensor.81742b2de0e9de60a3b3b9a2ff8ecc686d428eb6d71820f27a693be26e5aceee.png) + ![मिट्टी नमी सेंसर बनाया गया](../../../../../translated_images/hi/counterfit-soil-moisture-sensor.81742b2de0e9de60.webp) ## मिट्टी नमी सेंसर ऐप प्रोग्राम करें diff --git a/translations/hi/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md b/translations/hi/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md index 46f1d94aa..7229ce6d2 100644 --- a/translations/hi/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md +++ b/translations/hi/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md @@ -18,7 +18,7 @@ Grove मिट्टी नमी सेंसर को Wio Terminal के मिट्टी नमी सेंसर को कनेक्ट करें। -![Grove मिट्टी नमी सेंसर](../../../../../translated_images/hi/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![Grove मिट्टी नमी सेंसर](../../../../../translated_images/hi/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. Grove केबल के एक सिरे को मिट्टी नमी सेंसर के सॉकेट में डालें। यह केवल एक ही दिशा में जाएगा। diff --git a/translations/hi/2-farm/lessons/3-automated-plant-watering/README.md b/translations/hi/2-farm/lessons/3-automated-plant-watering/README.md index 66a7cead7..bf1399ec2 100644 --- a/translations/hi/2-farm/lessons/3-automated-plant-watering/README.md +++ b/translations/hi/2-farm/lessons/3-automated-plant-watering/README.md @@ -1,6 +1,6 @@ # स्वचालित पौधों की सिंचाई -![इस पाठ का एक स्केच नोट अवलोकन](../../../../../translated_images/hi/lesson-7.30b5f577d3cb8e031238751475cb519c7d6dbaea261b5df4643d086ffb2a03bb.jpg) +![इस पाठ का एक स्केच नोट अवलोकन](../../../../../translated_images/hi/lesson-7.30b5f577d3cb8e03.webp) > स्केच नोट [नित्या नरसिम्हन](https://github.com/nitya) द्वारा। बड़े संस्करण के लिए छवि पर क्लिक करें। @@ -32,7 +32,7 @@ IoT डिवाइस कम वोल्टेज का उपयोग क इसका समाधान यह है कि पंप को एक बाहरी पावर सप्लाई से जोड़ा जाए, और एक एक्ट्यूएटर का उपयोग करके पंप को चालू किया जाए, जैसे कि आप एक लाइट को चालू करने के लिए स्विच का उपयोग करते हैं। आपके उंगली से स्विच को फ्लिप करने के लिए बहुत कम ऊर्जा (आपके शरीर में ऊर्जा के रूप में) की आवश्यकता होती है, और यह लाइट को 110v/240v पर चलने वाली मुख्य बिजली से जोड़ता है। -![एक लाइट स्विच लाइट को पावर चालू करता है](../../../../../translated_images/hi/light-switch.760317ad6ab8bd6d611da5352dfe9c73a94a0822ccec7df3c8bae35da18e1658.png) +![एक लाइट स्विच लाइट को पावर चालू करता है](../../../../../translated_images/hi/light-switch.760317ad6ab8bd6d.webp) > 🎓 [मेन बिजली](https://wikipedia.org/wiki/Mains_electricity) का मतलब है वह बिजली जो दुनिया के कई हिस्सों में राष्ट्रीय बुनियादी ढांचे के माध्यम से घरों और व्यवसायों को दी जाती है। @@ -72,7 +72,7 @@ IoT डिवाइस कम वोल्टेज का उपयोग क इलेक्ट्रोमैग्नेट को सक्रिय करने और लीवर को खींचने के लिए बहुत अधिक पावर की आवश्यकता नहीं होती है, इसे 3.3V या 5V आउटपुट का उपयोग करके IoT डिवाइस से नियंत्रित किया जा सकता है। आउटपुट सर्किट बहुत अधिक पावर ले जा सकता है, रिले के आधार पर, जिसमें मुख्य वोल्टेज या यहां तक कि औद्योगिक उपयोग के लिए उच्च पावर स्तर शामिल हैं। इस तरह एक IoT डिवाइस एक सिंचाई प्रणाली को नियंत्रित कर सकता है, एक छोटे पौधे के लिए एक छोटे पंप से लेकर एक पूरे वाणिज्यिक खेत के लिए एक विशाल औद्योगिक प्रणाली तक। -![एक ग्रोव रिले जिसमें नियंत्रण सर्किट, आउटपुट सर्किट और रिले लेबल किए गए हैं](../../../../../translated_images/hi/grove-relay-labelled.293e068f5c3c2a199bd7892f2661fdc9e10c920b535cfed317fbd6d1d4ae1168.png) +![एक ग्रोव रिले जिसमें नियंत्रण सर्किट, आउटपुट सर्किट और रिले लेबल किए गए हैं](../../../../../translated_images/hi/grove-relay-labelled.293e068f5c3c2a19.webp) ऊपर दी गई छवि एक ग्रोव रिले दिखाती है। नियंत्रण सर्किट IoT डिवाइस से जुड़ता है और 3.3V या 5V का उपयोग करके रिले को चालू या बंद करता है। आउटपुट सर्किट में दो टर्मिनल होते हैं, जिनमें से कोई भी पावर या ग्राउंड हो सकता है। आउटपुट सर्किट 250V तक 10A संभाल सकता है, जो कई मुख्य पावर वाले उपकरणों के लिए पर्याप्त है। आप ऐसे रिले प्राप्त कर सकते हैं जो और भी उच्च पावर स्तर संभाल सकते हैं। diff --git a/translations/hi/2-farm/lessons/3-automated-plant-watering/pi-relay.md b/translations/hi/2-farm/lessons/3-automated-plant-watering/pi-relay.md index 943038053..d204a2d87 100644 --- a/translations/hi/2-farm/lessons/3-automated-plant-watering/pi-relay.md +++ b/translations/hi/2-farm/lessons/3-automated-plant-watering/pi-relay.md @@ -18,13 +18,13 @@ Grove रिले को रास्पबेरी पाई से जोड रिले को कनेक्ट करें। -![एक Grove रिले](../../../../../translated_images/hi/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) +![एक Grove रिले](../../../../../translated_images/hi/grove-relay.d426958ca210fbd0.webp) 1. Grove केबल के एक सिरे को रिले के सॉकेट में डालें। यह केवल एक ही दिशा में जाएगा। 1. रास्पबेरी पाई को बंद करके, Grove केबल के दूसरे सिरे को Grove Base Hat पर **D5** नामक डिजिटल सॉकेट में कनेक्ट करें। यह सॉकेट GPIO पिन के पास वाले सॉकेट की पंक्ति में बाईं ओर से दूसरा है। मिट्टी की नमी सेंसर को **A0** सॉकेट में कनेक्टेड रहने दें। -![Grove रिले D5 सॉकेट से कनेक्टेड और मिट्टी की नमी सेंसर A0 सॉकेट से कनेक्टेड](../../../../../translated_images/hi/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e69ec716cd2719ce117700bd1fc933eaf93476c103c57939b.png) +![Grove रिले D5 सॉकेट से कनेक्टेड और मिट्टी की नमी सेंसर A0 सॉकेट से कनेक्टेड](../../../../../translated_images/hi/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e.webp) 1. मिट्टी की नमी सेंसर को मिट्टी में डालें, अगर यह पहले से पिछले पाठ से मिट्टी में नहीं है। diff --git a/translations/hi/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md b/translations/hi/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md index 8169ab2e2..6d1f9dc3c 100644 --- a/translations/hi/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md +++ b/translations/hi/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md @@ -28,11 +28,11 @@ CounterFit ऐप में रिले जोड़ें। 1. **Add** बटन चुनें ताकि Pin 5 पर रिले बनाया जा सके। - ![रिले सेटिंग्स](../../../../../translated_images/hi/counterfit-create-relay.fa7c40fd0f2f6afc33b35ea94fcb235085be4861e14e3fe6b9b7bcfc82d1c888.png) + ![रिले सेटिंग्स](../../../../../translated_images/hi/counterfit-create-relay.fa7c40fd0f2f6afc.webp) रिले बनाया जाएगा और एक्टुएटर्स सूची में दिखाई देगा। - ![रिले बनाया गया](../../../../../translated_images/hi/counterfit-relay.bbf74c1dbdc8b9acd983367fcbd06703a402aefef6af54ddb28e11307ba8a12c.png) + ![रिले बनाया गया](../../../../../translated_images/hi/counterfit-relay.bbf74c1dbdc8b9ac.webp) ## रिले को प्रोग्राम करें diff --git a/translations/hi/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md b/translations/hi/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md index 8fe1ab233..d756f637d 100644 --- a/translations/hi/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md +++ b/translations/hi/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md @@ -1,6 +1,6 @@ # अपने पौधे को क्लाउड पर माइग्रेट करें -![इस पाठ का स्केच नोट](../../../../../translated_images/hi/lesson-8.3f21f3c11159e6a0a376351973ea5724d5de68fa23b4288853a174bed9ac48c3.jpg) +![इस पाठ का स्केच नोट](../../../../../translated_images/hi/lesson-8.3f21f3c11159e6a0.webp) > स्केच नोट [नित्या नरसिम्हन](https://github.com/nitya) द्वारा। बड़े संस्करण के लिए छवि पर क्लिक करें। @@ -46,8 +46,8 @@ IoT डिवाइस ने एक सार्वजनिक MQTT ब्र क्लाउड को अक्सर मजाक में 'किसी और का कंप्यूटर' कहा जाता है। प्रारंभिक विचार सरल था - कंप्यूटर खरीदने के बजाय, आप किसी और का कंप्यूटर किराए पर लें। कोई और, एक क्लाउड कंप्यूटिंग प्रदाता, विशाल डेटा सेंटर प्रबंधित करेगा। वे हार्डवेयर खरीदने और इंस्टॉल करने, पावर और कूलिंग प्रबंधित करने, नेटवर्किंग, इमारत की सुरक्षा, हार्डवेयर और सॉफ़्टवेयर अपडेट, सब कुछ के लिए जिम्मेदार होंगे। ग्राहक के रूप में, आप केवल उन कंप्यूटरों को किराए पर लेंगे जिनकी आपको आवश्यकता है, मांग बढ़ने पर अधिक किराए पर लेंगे, और मांग कम होने पर किराए को कम कर देंगे। ये क्लाउड डेटा सेंटर दुनिया भर में फैले हुए हैं। -![Microsoft क्लाउड डेटा सेंटर](../../../../../translated_images/hi/azure-region-existing.73f704604f2aa6cb9b5a49ed40e93d4fd81ae3f4e6af4a8ca504023902832f56.png) -![Microsoft क्लाउड डेटा सेंटर का नियोजित विस्तार](../../../../../translated_images/hi/azure-region-planned-expansion.a5074a1e8af74f156a73552d502429e5b126ea5019274d767ecb4b9afdad442b.png) +![Microsoft क्लाउड डेटा सेंटर](../../../../../translated_images/hi/azure-region-existing.73f704604f2aa6cb.webp) +![Microsoft क्लाउड डेटा सेंटर का नियोजित विस्तार](../../../../../translated_images/hi/azure-region-planned-expansion.a5074a1e8af74f15.webp) ये डेटा सेंटर कई वर्ग किलोमीटर के आकार के हो सकते हैं। ऊपर की छवियां कुछ साल पहले एक Microsoft क्लाउड डेटा सेंटर में ली गई थीं, और प्रारंभिक आकार के साथ-साथ नियोजित विस्तार को दिखाती हैं। विस्तार के लिए साफ किया गया क्षेत्र 5 वर्ग किलोमीटर से अधिक है। @@ -108,11 +108,11 @@ Azure के दो अलग-अलग प्रकार के मुफ् IoT डिवाइस या तो डिवाइस SDK (एक लाइब्रेरी जो सेवा की विशेषताओं के साथ काम करने के लिए कोड प्रदान करती है) का उपयोग करके, या सीधे MQTT या HTTP जैसे संचार प्रोटोकॉल के माध्यम से क्लाउड सेवा से कनेक्ट होते हैं। डिवाइस SDK आमतौर पर सबसे आसान तरीका होता है क्योंकि यह आपके लिए सब कुछ संभालता है, जैसे कि कौन से टॉपिक्स पर प्रकाशित करना है या सब्सक्राइब करना है, और सुरक्षा को कैसे संभालना है। -![डिवाइस डिवाइस SDK का उपयोग करके सेवा से कनेक्ट होते हैं। सर्वर कोड भी SDK के माध्यम से सेवा से कनेक्ट होता है](../../../../../translated_images/hi/iot-service-connectivity.7e873847921a5d6fd60d0ba3a943210194518cee0d4e362476624316443275c3.png) +![डिवाइस डिवाइस SDK का उपयोग करके सेवा से कनेक्ट होते हैं। सर्वर कोड भी SDK के माध्यम से सेवा से कनेक्ट होता है](../../../../../translated_images/hi/iot-service-connectivity.7e873847921a5d6f.webp) आपका डिवाइस तब आपके एप्लिकेशन के अन्य भागों के साथ इस सेवा के माध्यम से संवाद करता है - उसी तरह जैसे आपने MQTT के माध्यम से टेलीमेट्री भेजी और कमांड प्राप्त किए। यह आमतौर पर सेवा SDK या एक समान लाइब्रेरी का उपयोग करके किया जाता है। संदेश आपके डिवाइस से सेवा तक आते हैं, जहां आपके एप्लिकेशन के अन्य घटक उन्हें पढ़ सकते हैं, और संदेश आपके डिवाइस पर वापस भेजे जा सकते हैं। -![जिन डिवाइसों के पास वैध सीक्रेट की नहीं है, वे IoT सेवा से कनेक्ट नहीं हो सकते](../../../../../translated_images/hi/iot-service-allowed-denied-connection.818b0063ac213fb84204a7229303764d9b467ca430fb822b4ac2fca267d56726.png) +![जिन डिवाइसों के पास वैध सीक्रेट की नहीं है, वे IoT सेवा से कनेक्ट नहीं हो सकते](../../../../../translated_images/hi/iot-service-allowed-denied-connection.818b0063ac213fb8.webp) ये सेवाएं सुरक्षा को लागू करती हैं, यह जानकर कि कौन से डिवाइस कनेक्ट हो सकते हैं और डेटा भेज सकते हैं, या तो डिवाइस को सेवा के साथ पहले से पंजीकृत करके, या उन्हें सीक्रेट कीज़ या प्रमाणपत्र देकर जो वे पहली बार कनेक्ट होने पर सेवा के साथ खुद को पंजीकृत करने के लिए उपयोग कर सकते हैं। अज्ञात डिवाइस कनेक्ट नहीं हो सकते, यदि वे प्रयास करते हैं तो सेवा कनेक्शन को अस्वीकार कर देती है और उनके द्वारा भेजे गए संदेशों को अनदेखा कर देती है। @@ -124,7 +124,7 @@ IoT डिवाइस या तो डिवाइस SDK (एक लाइब अब जब आपके पास Azure सदस्यता है, तो आप IoT सेवा के लिए साइन अप कर सकते हैं। Microsoft की IoT सेवा को Azure IoT Hub कहा जाता है। -![Azure IoT Hub लोगो](../../../../../translated_images/hi/azure-iot-hub-logo.28a19de76d0a1932464d858f7558712bcdace3e5ec69c434d482ed7ce41c3a26.png) +![Azure IoT Hub लोगो](../../../../../translated_images/hi/azure-iot-hub-logo.28a19de76d0a1932.webp) नीचे दिया गया वीडियो Azure IoT Hub का संक्षिप्त परिचय देता है: diff --git a/translations/hi/2-farm/lessons/5-migrate-application-to-the-cloud/README.md b/translations/hi/2-farm/lessons/5-migrate-application-to-the-cloud/README.md index fa5ae31e8..93fc1b792 100644 --- a/translations/hi/2-farm/lessons/5-migrate-application-to-the-cloud/README.md +++ b/translations/hi/2-farm/lessons/5-migrate-application-to-the-cloud/README.md @@ -1,6 +1,6 @@ # अपनी एप्लिकेशन लॉजिक को क्लाउड में माइग्रेट करें -![इस पाठ का स्केच नोट](../../../../../translated_images/hi/lesson-9.dfe99c8e891f48e179724520da9f5794392cf9a625079281ccdcbf09bd85e1b6.jpg) +![इस पाठ का स्केच नोट](../../../../../translated_images/hi/lesson-9.dfe99c8e891f48e1.webp) > स्केच नोट [नित्या नरसिम्हन](https://github.com/nitya) द्वारा। बड़े संस्करण के लिए छवि पर क्लिक करें। @@ -28,7 +28,7 @@ सर्वरलेस, या सर्वरलेस कंप्यूटिंग, छोटे कोड ब्लॉक्स बनाने का तरीका है जो विभिन्न प्रकार की घटनाओं के जवाब में क्लाउड में चलते हैं। जब घटना होती है, तो आपका कोड चलता है और घटना के बारे में डेटा प्राप्त करता है। ये घटनाएं कई स्रोतों से हो सकती हैं, जैसे वेब अनुरोध, किसी कतार में डाले गए संदेश, डेटाबेस में डेटा में परिवर्तन, या IoT डिवाइस द्वारा IoT सेवा को भेजे गए संदेश। -![IoT सेवा से सर्वरलेस सेवा तक भेजे जा रहे संदेश, जो एक साथ कई फंक्शन्स द्वारा संसाधित किए जा रहे हैं](../../../../../translated_images/hi/iot-messages-to-serverless.0194da1cc0732bb7d0f823aed3fce54735c6b1ad3bf36089804d8aaefc0a774f.png) +![IoT सेवा से सर्वरलेस सेवा तक भेजे जा रहे संदेश, जो एक साथ कई फंक्शन्स द्वारा संसाधित किए जा रहे हैं](../../../../../translated_images/hi/iot-messages-to-serverless.0194da1cc0732bb7.webp) > 💁 यदि आपने पहले डेटाबेस ट्रिगर्स का उपयोग किया है, तो इसे उसी तरह समझ सकते हैं, जैसे कोड किसी घटना जैसे कि पंक्ति डालने पर ट्रिगर होता है। @@ -54,7 +54,7 @@ IoT डेवलपर के रूप में, सर्वरलेस म Microsoft का सर्वरलेस कंप्यूटिंग सेवा Azure Functions कहलाती है। -![Azure Functions का लोगो](../../../../../translated_images/hi/azure-functions-logo.1cfc8e3204c9c44aaf80fcf406fc8544d80d7f00f8d3e8ed6fed764563e17564.png) +![Azure Functions का लोगो](../../../../../translated_images/hi/azure-functions-logo.1cfc8e3204c9c44a.webp) नीचे दिया गया छोटा वीडियो Azure Functions का अवलोकन प्रदान करता है: diff --git a/translations/hi/2-farm/lessons/6-keep-your-plant-secure/README.md b/translations/hi/2-farm/lessons/6-keep-your-plant-secure/README.md index c58d69d5e..5d325d8f4 100644 --- a/translations/hi/2-farm/lessons/6-keep-your-plant-secure/README.md +++ b/translations/hi/2-farm/lessons/6-keep-your-plant-secure/README.md @@ -1,6 +1,6 @@ # अपने पौधे को सुरक्षित रखें -![इस पाठ का स्केच नोट](../../../../../translated_images/hi/lesson-10.829c86b80b9403bb770929ee553a1d293afe50dc23121aaf9be144673ae012cc.jpg) +![इस पाठ का स्केच नोट](../../../../../translated_images/hi/lesson-10.829c86b80b9403bb.webp) > स्केच नोट [नित्या नरसिम्हन](https://github.com/nitya) द्वारा। बड़े संस्करण के लिए छवि पर क्लिक करें। @@ -52,11 +52,11 @@ IoT सुरक्षा का मतलब है यह सुनिश् जब कोई डिवाइस IoT सेवा से कनेक्ट होता है, तो यह खुद को पहचानने के लिए एक आईडी का उपयोग करता है। समस्या यह है कि इस आईडी को क्लोन किया जा सकता है - एक हैकर एक दुर्भावनापूर्ण डिवाइस सेट कर सकता है जो एक असली डिवाइस की तरह ही आईडी का उपयोग करता है लेकिन गलत डेटा भेजता है। -![सही और दुर्भावनापूर्ण डिवाइस एक ही आईडी का उपयोग करके टेलीमेट्री भेज सकते हैं](../../../../../translated_images/hi/iot-device-and-hacked-device-connecting.e0671675df74d6d99eb1dedb5a670e606f698efa6202b1ad4c8ae548db299cc6.png) +![सही और दुर्भावनापूर्ण डिवाइस एक ही आईडी का उपयोग करके टेलीमेट्री भेज सकते हैं](../../../../../translated_images/hi/iot-device-and-hacked-device-connecting.e0671675df74d6d9.webp) इस समस्या का समाधान यह है कि भेजे जा रहे डेटा को एक गुप्त प्रारूप में बदल दिया जाए, जिसे केवल डिवाइस और क्लाउड ही जानते हों। इस प्रक्रिया को *एन्क्रिप्शन* कहा जाता है, और डेटा को एन्क्रिप्ट करने के लिए उपयोग किए जाने वाले मान को *एन्क्रिप्शन कुंजी* कहा जाता है। -![यदि एन्क्रिप्शन का उपयोग किया जाता है, तो केवल एन्क्रिप्टेड संदेश स्वीकार किए जाएंगे, अन्य अस्वीकार कर दिए जाएंगे](../../../../../translated_images/hi/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f979e46f2849b573564eeb4a4dc5b52f669f62745397492fb.png) +![यदि एन्क्रिप्शन का उपयोग किया जाता है, तो केवल एन्क्रिप्टेड संदेश स्वीकार किए जाएंगे, अन्य अस्वीकार कर दिए जाएंगे](../../../../../translated_images/hi/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f.webp) क्लाउड सेवा तब डेटा को एक पठनीय प्रारूप में बदल सकती है, जिसे *डिक्रिप्शन* कहा जाता है, और यह प्रक्रिया या तो उसी एन्क्रिप्शन कुंजी या एक *डिक्रिप्शन कुंजी* का उपयोग करके की जाती है। यदि एन्क्रिप्टेड संदेश को कुंजी द्वारा डिक्रिप्ट नहीं किया जा सकता है, तो डिवाइस हैक हो गया है और संदेश अस्वीकार कर दिया जाता है। diff --git a/translations/hi/3-transport/lessons/1-location-tracking/README.md b/translations/hi/3-transport/lessons/1-location-tracking/README.md index 0a53e67f8..97a069705 100644 --- a/translations/hi/3-transport/lessons/1-location-tracking/README.md +++ b/translations/hi/3-transport/lessons/1-location-tracking/README.md @@ -1,6 +1,6 @@ # स्थान ट्रैकिंग -![इस पाठ का स्केच नोट अवलोकन](../../../../../translated_images/hi/lesson-11.9fddbac4b664c6d50ab7ac9bb32f1fc3f945f03760e72f7f43938073762fb017.jpg) +![इस पाठ का स्केच नोट अवलोकन](../../../../../translated_images/hi/lesson-11.9fddbac4b664c6d5.webp) > स्केच नोट [नित्या नरसिम्हन](https://github.com/nitya) द्वारा। बड़े संस्करण के लिए छवि पर क्लिक करें। @@ -63,13 +63,13 @@ IoT माल परिवहन के तरीके को बदल रह > 💁 कोई वास्तव में नहीं जानता कि वृत्तों को 360 डिग्री में क्यों विभाजित किया गया। [डिग्री (कोण) पृष्ठ विकिपीडिया पर](https://wikipedia.org/wiki/Degree_(angle)) कुछ संभावित कारणों को कवर करता है। -![अक्षांश रेखाएं: उत्तरी ध्रुव पर 90°, भूमध्य रेखा और दक्षिणी ध्रुव के बीच](../../../../../translated_images/hi/latitude-lines.11d8d91dfb2014a57437272d7db7fd6607243098e8685f06e0c5f1ec984cb7eb.png) +![अक्षांश रेखाएं: उत्तरी ध्रुव पर 90°, भूमध्य रेखा और दक्षिणी ध्रुव के बीच](../../../../../translated_images/hi/latitude-lines.11d8d91dfb2014a5.webp) अक्षांश को रेखाओं का उपयोग करके मापा जाता है जो पृथ्वी को घेरती हैं और भूमध्य रेखा के समानांतर चलती हैं, उत्तरी और दक्षिणी गोलार्ध को 90° में विभाजित करती हैं। भूमध्य रेखा 0° पर है, उत्तरी ध्रुव 90° पर है, जिसे 90° उत्तर भी कहा जाता है, और दक्षिणी ध्रुव -90° पर है, जिसे 90° दक्षिण भी कहा जाता है। देशांतर को पूर्व और पश्चिम में मापी गई डिग्री की संख्या के रूप में मापा जाता है। देशांतर का 0° मूल बिंदु *प्राइम मेरिडियन* कहलाता है, जिसे 1884 में परिभाषित किया गया था कि यह एक रेखा है जो उत्तरी ध्रुव से दक्षिणी ध्रुव तक जाती है और [ब्रिटिश रॉयल ऑब्जर्वेटरी, ग्रीनविच, इंग्लैंड](https://wikipedia.org/wiki/Royal_Observatory,_Greenwich) से गुजरती है। -![देशांतर रेखाएं: प्राइम मेरिडियन के पश्चिम में -180°, प्राइम मेरिडियन पर 0°, और प्राइम मेरिडियन के पूर्व में 180°](../../../../../translated_images/hi/longitude-meridians.ab4ef1c91c064586b0185a3c8d39e585903696c6a7d28c098a93a629cddb5d20.png) +![देशांतर रेखाएं: प्राइम मेरिडियन के पश्चिम में -180°, प्राइम मेरिडियन पर 0°, और प्राइम मेरिडियन के पूर्व में 180°](../../../../../translated_images/hi/longitude-meridians.ab4ef1c91c064586.webp) > 🎓 मेरिडियन एक काल्पनिक सीधी रेखा है जो उत्तरी ध्रुव से दक्षिणी ध्रुव तक जाती है, एक अर्धवृत्त बनाती है। @@ -100,7 +100,7 @@ IoT माल परिवहन के तरीके को बदल रह * अक्षांश 47.6423109 (भूमध्य रेखा के उत्तर में 47.6423109 डिग्री) है। * देशांतर -122.1390293 (प्राइम मेरिडियन के पश्चिम में 122.1390293 डिग्री) है। -![माइक्रोसॉफ्ट कैंपस 47.6423109,-122.117198 पर](../../../../../translated_images/hi/microsoft-gps-location-world.a321d481b010f6adfcca139b2ba0adc53b79f58a540495b8e2ce7f779ea64bfe.png) +![माइक्रोसॉफ्ट कैंपस 47.6423109,-122.117198 पर](../../../../../translated_images/hi/microsoft-gps-location-world.a321d481b010f6ad.webp) ## ग्लोबल पोजिशनिंग सिस्टम (GPS) @@ -112,7 +112,7 @@ GPS सिस्टम इस प्रकार काम करते है > 💁 GPS सेंसर को रेडियो तरंगों का पता लगाने के लिए एंटीना की आवश्यकता होती है। ट्रकों और कारों में ऑन-बोर्ड GPS के साथ निर्मित एंटीना को अच्छी सिग्नल प्राप्त करने के लिए रखा जाता है, आमतौर पर विंडशील्ड या छत पर। यदि आप एक अलग GPS सिस्टम का उपयोग कर रहे हैं, जैसे स्मार्टफोन या IoT डिवाइस, तो आपको यह सुनिश्चित करना होगा कि GPS सिस्टम या फोन में निर्मित एंटीना का आकाश का स्पष्ट दृश्य हो, जैसे कि इसे विंडशील्ड पर माउंट करना। -![सेंसर से कई उपग्रहों की दूरी जानकर लोकेशन की गणना की जा सकती है](../../../../../translated_images/hi/gps-satellites.04acf1148fe25fbf1586bc2e8ba698e8d79b79a50c36824b38417dd13372b90f.png) +![सेंसर से कई उपग्रहों की दूरी जानकर लोकेशन की गणना की जा सकती है](../../../../../translated_images/hi/gps-satellites.04acf1148fe25fbf.webp) GPS उपग्रह पृथ्वी की परिक्रमा कर रहे हैं, सेंसर के ऊपर एक निश्चित बिंदु पर नहीं हैं, इसलिए लोकेशन डेटा में समुद्र तल से ऊंचाई के साथ-साथ अक्षांश और देशांतर भी शामिल होता है। diff --git a/translations/hi/3-transport/lessons/1-location-tracking/pi-gps-sensor.md b/translations/hi/3-transport/lessons/1-location-tracking/pi-gps-sensor.md index d34351cc7..08b5f351d 100644 --- a/translations/hi/3-transport/lessons/1-location-tracking/pi-gps-sensor.md +++ b/translations/hi/3-transport/lessons/1-location-tracking/pi-gps-sensor.md @@ -18,13 +18,13 @@ Grove GPS सेंसर को रास्पबेरी पाई से GPS सेंसर को कनेक्ट करें। -![एक Grove GPS सेंसर](../../../../../translated_images/hi/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![एक Grove GPS सेंसर](../../../../../translated_images/hi/grove-gps-sensor.247943bf69b03f0d.webp) 1. Grove केबल का एक सिरा GPS सेंसर के सॉकेट में डालें। यह केवल एक ही दिशा में जाएगा। 1. रास्पबेरी पाई को बंद करके, Grove केबल का दूसरा सिरा Grove बेस हैट पर **UART** नामक सॉकेट में कनेक्ट करें। यह सॉकेट मध्य पंक्ति में है, SD कार्ड स्लॉट के पास, USB पोर्ट्स और ईथरनेट सॉकेट के विपरीत दिशा में। - ![UART सॉकेट से जुड़ा Grove GPS सेंसर](../../../../../translated_images/hi/pi-gps-sensor.1f99ee2b2f6528915047ec78967bd362e0e4ee0ed594368a3837b9cf9cdaca64.png) + ![UART सॉकेट से जुड़ा Grove GPS सेंसर](../../../../../translated_images/hi/pi-gps-sensor.1f99ee2b2f652891.webp) 1. GPS सेंसर को इस तरह से रखें कि जुड़ा हुआ एंटीना आकाश को देख सके - आदर्श रूप से एक खुली खिड़की के पास या बाहर। एंटीना के रास्ते में कुछ भी न होने पर सिग्नल अधिक स्पष्ट रूप से प्राप्त होता है। diff --git a/translations/hi/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md b/translations/hi/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md index 08906e9aa..e54b11357 100644 --- a/translations/hi/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md +++ b/translations/hi/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md @@ -38,11 +38,11 @@ GPS सेंसर को CounterFit ऐप में जोड़ें। 1. **Add** बटन चुनें ताकि `/dev/ttyAMA0` पोर्ट पर GPS सेंसर बनाया जा सके। - ![GPS सेंसर सेटिंग्स](../../../../../translated_images/hi/counterfit-create-gps-sensor.6385dc9357d85ad1d47b4abb2525e7651fd498917d25eefc5a72feab09eedc70.png) + ![GPS सेंसर सेटिंग्स](../../../../../translated_images/hi/counterfit-create-gps-sensor.6385dc9357d85ad1.webp) GPS सेंसर बनाया जाएगा और सेंसर सूची में दिखाई देगा। - ![GPS सेंसर बनाया गया](../../../../../translated_images/hi/counterfit-gps-sensor.3fbb15af0a5367566f2f11324ef5a6f30861cdf2b497071a5e002b7aa473550e.png) + ![GPS सेंसर बनाया गया](../../../../../translated_images/hi/counterfit-gps-sensor.3fbb15af0a536756.webp) ## GPS सेंसर को प्रोग्राम करें @@ -102,17 +102,17 @@ GPS सेंसर ऐप को प्रोग्राम करें। * **Source** को `Lat/Lon` पर सेट करें, और एक स्पष्ट लैटिट्यूड, लॉन्गिट्यूड और GPS फिक्स प्राप्त करने के लिए उपयोग किए गए सैटेलाइट्स की संख्या सेट करें। यह मान केवल एक बार भेजा जाएगा, इसलिए **Repeat** बॉक्स को चेक करें ताकि डेटा हर सेकंड दोहराया जा सके। - ![GPS सेंसर लैट लॉन के साथ चुना गया](../../../../../translated_images/hi/counterfit-gps-sensor-latlon.008c867d75464fbe7f84107cc57040df565ac07cb57d2f21db37d087d470197d.png) + ![GPS सेंसर लैट लॉन के साथ चुना गया](../../../../../translated_images/hi/counterfit-gps-sensor-latlon.008c867d75464fbe.webp) * **Source** को `NMEA` पर सेट करें और कुछ NMEA वाक्य टेक्स्ट बॉक्स में जोड़ें। ये सभी मान भेजे जाएंगे, प्रत्येक नए GGA (पोजिशन फिक्स) वाक्य को पढ़ने से पहले 1 सेकंड की देरी होगी। - ![GPS सेंसर NMEA वाक्य के साथ सेट किया गया](../../../../../translated_images/hi/counterfit-gps-sensor-nmea.c62eea442171e17e19528b051b104cfcecdc9cd18db7bc72920f29821ae63f73.png) + ![GPS सेंसर NMEA वाक्य के साथ सेट किया गया](../../../../../translated_images/hi/counterfit-gps-sensor-nmea.c62eea442171e17e.webp) आप [nmeagen.org](https://www.nmeagen.org) जैसे टूल का उपयोग करके इन वाक्यों को मैप पर ड्रॉ करके जनरेट कर सकते हैं। ये मान केवल एक बार भेजे जाएंगे, इसलिए **Repeat** बॉक्स को चेक करें ताकि डेटा एक सेकंड बाद फिर से भेजा जा सके। * **Source** को GPX फ़ाइल पर सेट करें और ट्रैक लोकेशन के साथ एक GPX फ़ाइल अपलोड करें। आप [AllTrails](https://www.alltrails.com/) जैसे लोकप्रिय मैपिंग और हाइकिंग साइट्स से GPX फ़ाइलें डाउनलोड कर सकते हैं। इन फ़ाइलों में एक ट्रेल के रूप में कई GPS लोकेशन होती हैं, और GPS सेंसर प्रत्येक नई लोकेशन को 1 सेकंड के अंतराल पर लौटाएगा। - ![GPS सेंसर GPX फ़ाइल के साथ सेट किया गया](../../../../../translated_images/hi/counterfit-gps-sensor-gpxfile.8310b063ce8a425ccc8ebeec8306aeac5e8e55207f007d52c6e1194432a70cd9.png) + ![GPS सेंसर GPX फ़ाइल के साथ सेट किया गया](../../../../../translated_images/hi/counterfit-gps-sensor-gpxfile.8310b063ce8a425c.webp) ये मान केवल एक बार भेजे जाएंगे, इसलिए **Repeat** बॉक्स को चेक करें ताकि डेटा एक सेकंड बाद फिर से भेजा जा सके। diff --git a/translations/hi/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md b/translations/hi/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md index a64d7c5c2..976be9f93 100644 --- a/translations/hi/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md +++ b/translations/hi/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md @@ -18,7 +18,7 @@ Grove GPS सेंसर को Wio Terminal से जोड़ा जा स GPS सेंसर को कनेक्ट करें। -![एक Grove GPS सेंसर](../../../../../translated_images/hi/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![एक Grove GPS सेंसर](../../../../../translated_images/hi/grove-gps-sensor.247943bf69b03f0d.webp) 1. Grove केबल का एक सिरा GPS सेंसर के सॉकेट में डालें। यह केवल एक ही दिशा में जाएगा। diff --git a/translations/hi/3-transport/lessons/2-store-location-data/README.md b/translations/hi/3-transport/lessons/2-store-location-data/README.md index 076437434..b77fc4178 100644 --- a/translations/hi/3-transport/lessons/2-store-location-data/README.md +++ b/translations/hi/3-transport/lessons/2-store-location-data/README.md @@ -1,6 +1,6 @@ # स्टोर लोकेशन डेटा -![इस पाठ का स्केच नोट अवलोकन](../../../../../translated_images/hi/lesson-12.ca7f53039712a3ec14ad6474d8445361c84adab643edc53fa6269b77895606bb.jpg) +![इस पाठ का स्केच नोट अवलोकन](../../../../../translated_images/hi/lesson-12.ca7f53039712a3ec.webp) > स्केच नोट [नित्या नरसिम्हन](https://github.com/nitya) द्वारा। बड़े संस्करण के लिए छवि पर क्लिक करें। @@ -75,7 +75,7 @@ NoSQL डेटाबेस को NoSQL कहा जाता है क्य > 💁 उनके नाम के बावजूद, कुछ NoSQL डेटाबेस आपको SQL का उपयोग करके डेटा क्वेरी करने की अनुमति देते हैं। -![NoSQL डेटाबेस में फोल्डरों में डॉक्यूमेंट](../../../../../translated_images/hi/noqsl-database.62d24ccf5b73f60d35c245a8533f1c7147c0928e955b82cb290b2e184bb434df.png) +![NoSQL डेटाबेस में फोल्डरों में डॉक्यूमेंट](../../../../../translated_images/hi/noqsl-database.62d24ccf5b73f60d.webp) NoSQL डेटाबेस में पहले से परिभाषित स्कीमा नहीं होता जो डेटा को स्टोर करने के तरीके को सीमित करता है। इसके बजाय, आप किसी भी असंरचित डेटा को डाल सकते हैं, आमतौर पर JSON डॉक्यूमेंट का उपयोग करके। इन डॉक्यूमेंट को फोल्डरों में व्यवस्थित किया जा सकता है, जैसे आपके कंप्यूटर पर फाइलें। प्रत्येक डॉक्यूमेंट में अन्य डॉक्यूमेंट से अलग फील्ड हो सकते हैं - उदाहरण के लिए, यदि आप अपने खेत के वाहनों से IoT डेटा स्टोर कर रहे हैं, तो कुछ में एक्सेलेरोमीटर और गति डेटा के लिए फील्ड हो सकते हैं, जबकि अन्य में ट्रेलर के तापमान के लिए फील्ड हो सकते हैं। यदि आप एक नए ट्रक प्रकार को जोड़ते हैं, जैसे कि ऐसा ट्रक जिसमें उत्पाद के वजन को ट्रैक करने के लिए बिल्ट-इन स्केल हो, तो आपका IoT डिवाइस इस नए फील्ड को जोड़ सकता है और इसे डेटाबेस में बिना किसी बदलाव के स्टोर किया जा सकता है। @@ -89,7 +89,7 @@ NoSQL डेटाबेस में पहले से परिभाषि पिछले पाठ में आपने अपने IoT डिवाइस से जुड़े GPS सेंसर से GPS डेटा कैप्चर किया। इस IoT डेटा को क्लाउड में स्टोर करने के लिए, आपको इसे IoT सेवा पर भेजना होगा। एक बार फिर, आप Azure IoT Hub का उपयोग करेंगे, वही IoT क्लाउड सेवा जिसे आपने पिछले प्रोजेक्ट में उपयोग किया था। -![IoT डिवाइस से IoT हब तक GPS टेलीमेट्री भेजना](../../../../../translated_images/hi/gps-telemetry-iot-hub.8115335d51cd2c1285d20e9d1b18cf685e59a8e093e7797291ef173445af6f3d.png) +![IoT डिवाइस से IoT हब तक GPS टेलीमेट्री भेजना](../../../../../translated_images/hi/gps-telemetry-iot-hub.8115335d51cd2c12.webp) ### कार्य - GPS डेटा को IoT हब पर भेजें @@ -171,7 +171,7 @@ IoT डिवाइस से क्लाउड तक प्रवाहित एक बार जब डेटा आपके IoT हब में प्रवाहित हो रहा हो, तो आप कुछ सर्वरलेस कोड लिख सकते हैं जो इवेंट-हब संगत एंडपॉइंट पर प्रकाशित इवेंट्स को सुनता है। यह वॉर्म पाथ है - इस डेटा को स्टोर किया जाएगा और अगले पाठ में यात्रा की रिपोर्टिंग के लिए उपयोग किया जाएगा। -![IoT डिवाइस से IoT हब तक GPS टेलीमेट्री भेजना, फिर इवेंट हब ट्रिगर के माध्यम से Azure Functions तक](../../../../../translated_images/hi/gps-telemetry-iot-hub-functions.24d3fa5592455e9f4e2fe73856b40c3915a292b90263c31d652acfd976cfedd8.png) +![IoT डिवाइस से IoT हब तक GPS टेलीमेट्री भेजना, फिर इवेंट हब ट्रिगर के माध्यम से Azure Functions तक](../../../../../translated_images/hi/gps-telemetry-iot-hub-functions.24d3fa5592455e9f.webp) ### कार्य - GPS इवेंट्स को सर्वरलेस कोड का उपयोग करके हैंडल करें @@ -193,7 +193,7 @@ IoT डिवाइस से क्लाउड तक प्रवाहित ## Azure स्टोरेज अकाउंट्स -![Azure स्टोरेज लोगो](../../../../../translated_images/hi/azure-storage-logo.605c0f602c640d482a80f1b35a2629a32d595711b7ab1d7ceea843250615ff32.png) +![Azure स्टोरेज लोगो](../../../../../translated_images/hi/azure-storage-logo.605c0f602c640d48.webp) Azure स्टोरेज अकाउंट्स एक सामान्य उद्देश्य स्टोरेज सेवा है जो विभिन्न तरीकों से डेटा संग्रहीत कर सकती है। आप डेटा को ब्लॉब्स, कतारों, तालिकाओं, या फ़ाइलों के रूप में संग्रहीत कर सकते हैं, और यह सब एक साथ कर सकते हैं। diff --git a/translations/hi/3-transport/lessons/3-visualize-location-data/README.md b/translations/hi/3-transport/lessons/3-visualize-location-data/README.md index 6eff7916e..6be13050f 100644 --- a/translations/hi/3-transport/lessons/3-visualize-location-data/README.md +++ b/translations/hi/3-transport/lessons/3-visualize-location-data/README.md @@ -1,6 +1,6 @@ # स्थान डेटा का विज़ुअलाइज़ेशन -![इस पाठ का स्केच नोट अवलोकन](../../../../../translated_images/hi/lesson-13.a259db1485021be7d7c72e90842fbe0ab977529e8684c179b5fb1ea75e92b3ef.jpg) +![इस पाठ का स्केच नोट अवलोकन](../../../../../translated_images/hi/lesson-13.a259db1485021be7.webp) > स्केच नोट [नित्या नरसिम्हन](https://github.com/nitya) द्वारा। बड़े संस्करण के लिए छवि पर क्लिक करें। @@ -64,11 +64,11 @@ एक इंसान के लिए इस डेटा को समझना मुश्किल हो सकता है। यह केवल संख्याओं की एक दीवार है जिसमें कोई अर्थ नहीं है। इस डेटा को विज़ुअलाइज़ करने के पहले चरण के रूप में, इसे एक लाइन चार्ट पर प्लॉट किया जा सकता है: -![उपरोक्त डेटा का एक लाइन चार्ट](../../../../../translated_images/hi/chart-soil-moisture.fd6d9d0cdc0b5f75e78038ecb8945dfc84b38851359de99d84b16e3336d6d7c2.png) +![उपरोक्त डेटा का एक लाइन चार्ट](../../../../../translated_images/hi/chart-soil-moisture.fd6d9d0cdc0b5f75.webp) इसे और बेहतर बनाने के लिए एक रेखा जोड़ी जा सकती है जो यह दिखाती है कि स्वचालित सिंचाई प्रणाली कब मिट्टी की नमी के स्तर 450 पर चालू हुई: -![मिट्टी की नमी का चार्ट जिसमें 450 पर एक रेखा है](../../../../../translated_images/hi/chart-soil-moisture-relay.fbb391236d34a64d0abf1df396e9197e0a24df14150620b9cc820a64a55c9326.png) +![मिट्टी की नमी का चार्ट जिसमें 450 पर एक रेखा है](../../../../../translated_images/hi/chart-soil-moisture-relay.fbb391236d34a64d.webp) यह चार्ट बहुत जल्दी दिखाता है कि मिट्टी की नमी का स्तर क्या था और सिंचाई प्रणाली कब चालू हुई। @@ -84,7 +84,7 @@ GPS डेटा के साथ काम करते समय, सबसे मानचित्रों के साथ काम करना एक दिलचस्प अभ्यास है, और चुनने के लिए कई विकल्प हैं जैसे Bing Maps, Leaflet, Open Street Maps, और Google Maps। इस पाठ में, आप [Azure Maps](https://azure.microsoft.com/services/azure-maps/?WT.mc_id=academic-17441-jabenn) और उनके माध्यम से अपने GPS डेटा को प्रदर्शित करने के बारे में जानेंगे। -![Azure Maps का लोगो](../../../../../translated_images/hi/azure-maps-logo.35d01dcfbd81fe6140e94257aaa1538f785a58c91576d14e0ebe7a2f6c694b99.png) +![Azure Maps का लोगो](../../../../../translated_images/hi/azure-maps-logo.35d01dcfbd81fe61.webp) Azure Maps "भौगोलिक सेवाओं और SDKs का एक संग्रह है जो ताज़ा मानचित्र डेटा का उपयोग करके वेब और मोबाइल अनुप्रयोगों को भौगोलिक संदर्भ प्रदान करता है।" डेवलपर्स को सुंदर, इंटरैक्टिव मानचित्र बनाने के लिए उपकरण प्रदान किए जाते हैं जो ट्रैफ़िक मार्गों की सिफारिश करने, ट्रैफ़िक घटनाओं की जानकारी देने, इनडोर नेविगेशन, खोज क्षमताओं, ऊंचाई की जानकारी, मौसम सेवाओं और बहुत कुछ करने में सक्षम होते हैं। @@ -185,7 +185,7 @@ Azure Maps "भौगोलिक सेवाओं और SDKs का एक यदि आप अपने `index.html` पेज को वेब ब्राउज़र में खोलते हैं, तो आपको एक मानचित्र लोड होता हुआ दिखाई देगा, जो सिएटल क्षेत्र पर केंद्रित है। - ![सिएटल, वाशिंगटन राज्य, यूएसए का मानचित्र](../../../../../translated_images/hi/map-image.8fb2c53eb23ef39c1c0a4410a5282e879b3b452b707eb066ff04c5488d3d72b7.png) + ![सिएटल, वाशिंगटन राज्य, यूएसए का मानचित्र](../../../../../translated_images/hi/map-image.8fb2c53eb23ef39c.webp) ✅ अपने मानचित्र प्रदर्शन को बदलने के लिए ज़ूम और केंद्र पैरामीटर के साथ प्रयोग करें। आप अपने डेटा के अक्षांश और देशांतर के अनुरूप विभिन्न निर्देशांक जोड़ सकते हैं ताकि मानचित्र को पुनः केंद्रित किया जा सके। @@ -319,7 +319,7 @@ Azure Maps "भौगोलिक सेवाओं और SDKs का एक 1. HTML पेज को अपने ब्राउज़र में लोड करें। यह मानचित्र लोड करेगा, फिर स्टोरेज से सभी GPS डेटा लोड करेगा और इसे मानचित्र पर प्रदर्शित करेगा। - ![सिएटल के पास सेंट एडवर्ड स्टेट पार्क का एक मानचित्र, जिसमें पार्क के किनारे के चारों ओर एक पथ दिखाने वाले सर्कल हैं](../../../../../translated_images/hi/map-path.896832e72dc696ffe20650e4051027d4855442d955f93fdbb80bb417ca8a406f.png) + ![सिएटल के पास सेंट एडवर्ड स्टेट पार्क का एक मानचित्र, जिसमें पार्क के किनारे के चारों ओर एक पथ दिखाने वाले सर्कल हैं](../../../../../translated_images/hi/map-path.896832e72dc696ff.webp) > 💁 आप इस कोड को [code](../../../../../3-transport/lessons/3-visualize-location-data/code) फ़ोल्डर में पा सकते हैं। diff --git a/translations/hi/3-transport/lessons/4-geofences/README.md b/translations/hi/3-transport/lessons/4-geofences/README.md index b7b48419b..a816401ee 100644 --- a/translations/hi/3-transport/lessons/4-geofences/README.md +++ b/translations/hi/3-transport/lessons/4-geofences/README.md @@ -1,6 +1,6 @@ # जियोफेंस -![इस पाठ का स्केच नोट अवलोकन](../../../../../translated_images/hi/lesson-14.63980c5150ae3c153e770fb71d044c1845dce79248d86bed9fc525adf3ede73c.jpg) +![इस पाठ का स्केच नोट अवलोकन](../../../../../translated_images/hi/lesson-14.63980c5150ae3c15.webp) > स्केच नोट [नित्या नरसिम्हन](https://github.com/nitya) द्वारा। बड़े संस्करण के लिए छवि पर क्लिक करें। @@ -35,7 +35,7 @@ जियोफेंस वास्तविक दुनिया के भौगोलिक क्षेत्र के लिए एक आभासी परिधि है। जियोफेंस सर्कल हो सकते हैं, जो एक बिंदु और त्रिज्या के रूप में परिभाषित होते हैं (उदाहरण के लिए, किसी इमारत के चारों ओर 100 मीटर चौड़ा सर्कल), या एक बहुभुज जो किसी क्षेत्र को कवर करता है, जैसे स्कूल ज़ोन, शहर की सीमाएँ, या विश्वविद्यालय या कार्यालय परिसर। -![Microsoft कंपनी स्टोर के चारों ओर एक सर्कुलर जियोफेंस और Microsoft वेस्ट कैंपस के चारों ओर एक बहुभुज जियोफेंस के कुछ उदाहरण](../../../../../translated_images/hi/geofence-examples.172fbc534665769f6e1a1ddcf75e3b25183cd10354c80cc603ba44b635390e1a.png) +![Microsoft कंपनी स्टोर के चारों ओर एक सर्कुलर जियोफेंस और Microsoft वेस्ट कैंपस के चारों ओर एक बहुभुज जियोफेंस के कुछ उदाहरण](../../../../../translated_images/hi/geofence-examples.172fbc534665769f.webp) > 💁 आपने पहले से ही जियोफेंस का उपयोग किया हो सकता है, बिना इसे जाने। यदि आपने iOS रिमाइंडर्स ऐप या Google Keep में किसी स्थान के आधार पर रिमाइंडर सेट किया है, तो आपने जियोफेंस का उपयोग किया है। ये ऐप्स दिए गए स्थान के आधार पर जियोफेंस सेट करेंगे और जब आपका फोन जियोफेंस में प्रवेश करेगा तो आपको अलर्ट करेंगे। @@ -212,7 +212,7 @@ API कॉल से परिणाम लौटाए जाने पर, प उदाहरण के लिए, कल्पना करें कि GPS रीडिंग दिखाती है कि एक वाहन एक सड़क पर चल रहा था जो अंततः जियोफेंस के पास जाती है। यदि एक GPS मान गलत है और वाहन को जियोफेंस के अंदर रखता है, जबकि वहां कोई वाहन पहुंच नहीं है, तो इसे अनदेखा किया जा सकता है। -![GPS ट्रेल दिखा रहा है कि एक वाहन Microsoft कैंपस के पास 520 पर गुजर रहा है, जिसमें सड़क के साथ GPS रीडिंग हैं, सिवाय एक के जो कैंपस पर है, जियोफेंस के अंदर](../../../../../translated_images/hi/geofence-crossing-inaccurate-gps.6a3ed911202ad9cabb66d3964888cec03a42c61d5b8f536ad5bdc99716b370f5.png) +![GPS ट्रेल दिखा रहा है कि एक वाहन Microsoft कैंपस के पास 520 पर गुजर रहा है, जिसमें सड़क के साथ GPS रीडिंग हैं, सिवाय एक के जो कैंपस पर है, जियोफेंस के अंदर](../../../../../translated_images/hi/geofence-crossing-inaccurate-gps.6a3ed911202ad9ca.webp) ऊपर दी गई छवि में, Microsoft कैंपस के एक हिस्से पर एक जियोफेंस है। लाल रेखा एक ट्रक को 520 के साथ चलते हुए दिखाती है, जिसमें GPS रीडिंग्स को दिखाने के लिए वृत्त हैं। इनमें से अधिकांश सटीक हैं और 520 के साथ हैं, लेकिन एक गलत रीडिंग जियोफेंस के अंदर है। यह रीडिंग सही नहीं हो सकती - ट्रक के लिए 520 से अचानक कैंपस में मुड़ने और फिर वापस 520 पर जाने का कोई रास्ता नहीं है। जियोफेंस की जांच करने वाला कोड परिणामों पर कार्रवाई करने से पहले पिछली रीडिंग्स को ध्यान में रखना होगा। ✅ GPS रीडिंग को सही मानने के लिए आपको कौन सा अतिरिक्त डेटा जांचने की आवश्यकता होगी? @@ -284,7 +284,7 @@ API कॉल से परिणाम लौटाए जाने पर, प उत्तर है कि यह नहीं जान सकता! इसके बजाय आप इवेंट्स को पढ़ने के लिए कई अलग-अलग कनेक्शन परिभाषित कर सकते हैं, और प्रत्येक अप्रयुक्त संदेशों के पुन:प्ले का प्रबंधन कर सकता है। इन्हें *कंज्यूमर ग्रुप्स* कहा जाता है। जब आप एंडपॉइंट से कनेक्ट करते हैं, तो आप निर्दिष्ट कर सकते हैं कि आप किस कंज्यूमर ग्रुप से कनेक्ट करना चाहते हैं। आपके एप्लिकेशन का प्रत्येक घटक एक अलग कंज्यूमर ग्रुप से कनेक्ट होगा। -![एक IoT Hub जिसमें 3 कंज्यूमर ग्रुप्स एक ही संदेशों को 3 अलग-अलग Functions ऐप्स में वितरित कर रहे हैं](../../../../../translated_images/hi/consumer-groups.a3262e26fc27ba2092863678ad57af15c7223416e388a23f330c058cf4358630.png) +![एक IoT Hub जिसमें 3 कंज्यूमर ग्रुप्स एक ही संदेशों को 3 अलग-अलग Functions ऐप्स में वितरित कर रहे हैं](../../../../../translated_images/hi/consumer-groups.a3262e26fc27ba20.webp) सिद्धांत रूप में प्रत्येक कंज्यूमर ग्रुप से 5 एप्लिकेशन तक कनेक्ट हो सकते हैं, और वे सभी संदेश प्राप्त करेंगे जब वे आएंगे। यह सुनिश्चित करने के लिए कि सभी कतारबद्ध संदेश सही ढंग से संसाधित किए गए हैं, प्रत्येक कंज्यूमर ग्रुप तक केवल एक एप्लिकेशन की पहुंच होना सबसे अच्छा अभ्यास है। उदाहरण के लिए, यदि आपने अपने Functions ऐप को लोकली लॉन्च किया और इसे क्लाउड में भी चलाया, तो वे दोनों संदेशों को संसाधित करेंगे, जिससे स्टोरेज अकाउंट में डुप्लिकेट ब्लॉब्स संग्रहीत होंगे। diff --git a/translations/hi/4-manufacturing/lessons/1-train-fruit-detector/README.md b/translations/hi/4-manufacturing/lessons/1-train-fruit-detector/README.md index 2952c5982..d628b4c19 100644 --- a/translations/hi/4-manufacturing/lessons/1-train-fruit-detector/README.md +++ b/translations/hi/4-manufacturing/lessons/1-train-fruit-detector/README.md @@ -1,6 +1,6 @@ # फल गुणवत्ता डिटेक्टर को प्रशिक्षित करें -![इस पाठ का स्केच नोट अवलोकन](../../../../../translated_images/hi/lesson-15.843d21afdc6fb2bba70cd9db7b7d2f91598859fafda2078b0bdc44954194b6c0.jpg) +![इस पाठ का स्केच नोट अवलोकन](../../../../../translated_images/hi/lesson-15.843d21afdc6fb2bb.webp) > स्केच नोट [नित्या नरसिम्हन](https://github.com/nitya) द्वारा। बड़ी छवि देखने के लिए क्लिक करें। @@ -38,7 +38,7 @@ स्वचालित कटाई के उदय ने उत्पादों की छंटाई को कटाई से फैक्ट्री तक स्थानांतरित कर दिया। भोजन लंबी कन्वेयर बेल्ट पर यात्रा करता था, जहां लोगों की टीमें उत्पादों को छांटती थीं और जो गुणवत्ता मानकों पर खरा नहीं उतरता था उसे हटा देती थीं। मशीनरी के कारण कटाई सस्ती हो गई, लेकिन भोजन को मैन्युअल रूप से छांटने की लागत अभी भी बनी रही। -![यदि एक लाल टमाटर का पता चलता है तो वह बिना रुके अपनी यात्रा जारी रखता है। यदि एक हरे टमाटर का पता चलता है तो उसे एक लीवर द्वारा कचरे के डिब्बे में फेंक दिया जाता है](../../../../../translated_images/hi/optical-tomato-sorting.61aa134bdda4e5b1bfb16a212c1e35a6ef0c426cbb8b1c975f79d7bfbf48d068.png) +![यदि एक लाल टमाटर का पता चलता है तो वह बिना रुके अपनी यात्रा जारी रखता है। यदि एक हरे टमाटर का पता चलता है तो उसे एक लीवर द्वारा कचरे के डिब्बे में फेंक दिया जाता है](../../../../../translated_images/hi/optical-tomato-sorting.61aa134bdda4e5b1.webp) अगला विकास मशीनों का उपयोग करके छंटाई करना था, या तो हार्वेस्टर में निर्मित, या प्रसंस्करण संयंत्रों में। इन मशीनों की पहली पीढ़ी ने रंगों का पता लगाने के लिए ऑप्टिकल सेंसर का उपयोग किया, जो लीवर या हवा के झोंकों का उपयोग करके हरे टमाटरों को कचरे के डिब्बे में धकेलते थे, और लाल टमाटरों को कन्वेयर बेल्ट के नेटवर्क पर जारी रखते थे। @@ -62,7 +62,7 @@ > 🎓 ML मॉडल के परिणामों को *भविष्यवाणियां* कहा जाता है। -![2 केले, एक पका हुआ जिसमें 99.7% पका और 0.3% अधपका की भविष्यवाणी है, और एक अधपका जिसमें 1.4% पका और 98.6% अधपका की भविष्यवाणी है](../../../../../translated_images/hi/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50ece4e4589e724b142da0681f35470fe3db3f7d51240f69c85.png) +![2 केले, एक पका हुआ जिसमें 99.7% पका और 0.3% अधपका की भविष्यवाणी है, और एक अधपका जिसमें 1.4% पका और 98.6% अधपका की भविष्यवाणी है](../../../../../translated_images/hi/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50e.webp) ML मॉडल एक बाइनरी उत्तर नहीं देते, बल्कि संभावनाएं देते हैं। उदाहरण के लिए, एक मॉडल को एक केले की तस्वीर दी जा सकती है और यह `पका` को 99.7% और `अधपका` को 0.3% भविष्यवाणी कर सकता है। आपका कोड सबसे अच्छी भविष्यवाणी को चुनता है और तय करता है कि केला पका है। @@ -90,7 +90,7 @@ ML मॉडल एक बाइनरी उत्तर नहीं देत Custom Vision एक क्लाउड-आधारित उपकरण है जो छवि वर्गीकरणकर्ताओं को प्रशिक्षित करता है। यह आपको केवल कुछ छवियों का उपयोग करके एक वर्गीकरणकर्ता को प्रशिक्षित करने की अनुमति देता है। आप छवियों को वेब पोर्टल, वेब API या SDK के माध्यम से अपलोड कर सकते हैं, प्रत्येक छवि को एक *टैग* दे सकते हैं जो उस छवि का वर्गीकरण है। फिर आप मॉडल को प्रशिक्षित करते हैं और यह देखने के लिए परीक्षण करते हैं कि यह कितना अच्छा प्रदर्शन करता है। एक बार जब आप मॉडल से संतुष्ट हो जाते हैं, तो आप इसके संस्करण प्रकाशित कर सकते हैं जिन्हें वेब API या SDK के माध्यम से एक्सेस किया जा सकता है। -![Azure Custom Vision लोगो](../../../../../translated_images/hi/custom-vision-logo.d3d4e7c8a87ec9daf825e72e210576c3cbf60312577be7a139e22dd97ab7f1e6.png) +![Azure Custom Vision लोगो](../../../../../translated_images/hi/custom-vision-logo.d3d4e7c8a87ec9da.webp) > 💁 आप केवल 5 छवियों प्रति वर्गीकरण के साथ एक कस्टम विजन मॉडल को प्रशिक्षित कर सकते हैं, लेकिन अधिक बेहतर है। कम से कम 30 छवियों के साथ आपको बेहतर परिणाम मिल सकते हैं। @@ -146,7 +146,7 @@ Custom Vision का उपयोग करने के लिए, आपको जब आप अपना प्रोजेक्ट बनाते हैं, तो सुनिश्चित करें कि आप पहले बनाए गए `fruit-quality-detector-training` संसाधन का उपयोग कर रहे हैं। *Classification* प्रोजेक्ट प्रकार, *Multiclass* वर्गीकरण प्रकार, और *Food* डोमेन का उपयोग करें। - ![Custom Vision प्रोजेक्ट के लिए सेटिंग्स, नाम `fruit-quality-detector`, कोई विवरण नहीं, संसाधन `fruit-quality-detector-training`, प्रोजेक्ट प्रकार `classification`, वर्गीकरण प्रकार `multi class`, और डोमेन `food`](../../../../../translated_images/hi/custom-vision-create-project.cf46325b92d8b131089f6647cf5e07b664cb77850e106d66e3c057b6b69756c6.png) + ![Custom Vision प्रोजेक्ट के लिए सेटिंग्स, नाम `fruit-quality-detector`, कोई विवरण नहीं, संसाधन `fruit-quality-detector-training`, प्रोजेक्ट प्रकार `classification`, वर्गीकरण प्रकार `multi class`, और डोमेन `food`](../../../../../translated_images/hi/custom-vision-create-project.cf46325b92d8b131.webp) ✅ अपने छवि वर्गीकरणकर्ता के लिए Custom Vision UI का अन्वेषण करने के लिए कुछ समय लें। @@ -164,7 +164,7 @@ Custom Vision का उपयोग करने के लिए, आपको * 2 पके केले का उपयोग करते हुए, प्रत्येक का कुछ अलग-अलग कोणों से तस्वीरें लें, कम से कम 7 तस्वीरें (5 प्रशिक्षण के लिए, 2 परीक्षण के लिए), लेकिन आदर्श रूप से अधिक। - ![2 अलग-अलग केले की तस्वीरें](../../../../../translated_images/hi/banana-training-images.530eb203346d73bc23b8b990fb4609470bf4ff7c942ccc13d4cfffeed9be1ad4.png) + ![2 अलग-अलग केले की तस्वीरें](../../../../../translated_images/hi/banana-training-images.530eb203346d73bc.webp) * यही प्रक्रिया 2 कच्चे केले के साथ दोहराएं। @@ -174,7 +174,7 @@ Custom Vision का उपयोग करने के लिए, आपको 1. [Microsoft Docs पर क्लासिफायर क्विकस्टार्ट के "तस्वीरें अपलोड और टैग करें" अनुभाग](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` के रूप में टैग करें। - ![पके और कच्चे केले की तस्वीरें अपलोड करने वाले डायलॉग](../../../../../translated_images/hi/image-upload-bananas.0751639f3815e0ec42bdbc6254d1e4357a185834d1ae10c9948a0e7d6d336695.png) + ![पके और कच्चे केले की तस्वीरें अपलोड करने वाले डायलॉग](../../../../../translated_images/hi/image-upload-bananas.0751639f3815e0ec.webp) 1. [Microsoft Docs पर क्लासिफायर क्विकस्टार्ट के "क्लासिफायर को प्रशिक्षित करें" अनुभाग](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#train-the-classifier) का अनुसरण करें और अपनी अपलोड की गई तस्वीरों पर इमेज क्लासिफायर को प्रशिक्षित करें। @@ -192,7 +192,7 @@ Custom Vision का उपयोग करने के लिए, आपको 1. [Microsoft Docs पर "अपने मॉडल का परीक्षण करें" दस्तावेज़](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/test-your-model?WT.mc_id=academic-17441-jabenn#test-your-model) का अनुसरण करें और अपने इमेज क्लासिफायर का परीक्षण करें। उन परीक्षण तस्वीरों का उपयोग करें जो आपने पहले बनाई थीं, न कि वे तस्वीरें जो आपने प्रशिक्षण के लिए उपयोग की थीं। - ![एक कच्चे केले को 98.9% संभावना के साथ कच्चा और 1.1% संभावना के साथ पका हुआ वर्गीकृत किया गया](../../../../../translated_images/hi/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64886422438850ea14f0be6ac918c217ea3b255c685abfabe7.png) + ![एक कच्चे केले को 98.9% संभावना के साथ कच्चा और 1.1% संभावना के साथ पका हुआ वर्गीकृत किया गया](../../../../../translated_images/hi/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64.webp) 1. आपके पास उपलब्ध सभी परीक्षण तस्वीरों को आज़माएं और संभावनाओं का निरीक्षण करें। diff --git a/translations/hi/4-manufacturing/lessons/2-check-fruit-from-device/README.md b/translations/hi/4-manufacturing/lessons/2-check-fruit-from-device/README.md index 51f7bf0a1..af03ef7bc 100644 --- a/translations/hi/4-manufacturing/lessons/2-check-fruit-from-device/README.md +++ b/translations/hi/4-manufacturing/lessons/2-check-fruit-from-device/README.md @@ -1,6 +1,6 @@ # IoT डिवाइस से फलों की गुणवत्ता जांचें -![इस पाठ का स्केच नोट अवलोकन](../../../../../translated_images/hi/lesson-16.215daf18b00631fbdfd64c6fc2dc6044dff5d544288825d8076f9fb83d964c23.jpg) +![इस पाठ का स्केच नोट अवलोकन](../../../../../translated_images/hi/lesson-16.215daf18b00631fb.webp) > स्केच नोट [नित्या नरसिम्हन](https://github.com/nitya) द्वारा। बड़ी छवि देखने के लिए क्लिक करें। @@ -26,7 +26,7 @@ कैमरा सेंसर, जैसा कि नाम से पता चलता है, ऐसे कैमरे हैं जिन्हें आप अपने IoT डिवाइस से कनेक्ट कर सकते हैं। ये स्थिर छवियां ले सकते हैं या स्ट्रीमिंग वीडियो कैप्चर कर सकते हैं। कुछ कच्चे इमेज डेटा लौटाते हैं, जबकि अन्य इमेज डेटा को JPEG या PNG जैसे इमेज फाइल में संपीड़ित करते हैं। आमतौर पर IoT डिवाइस के साथ काम करने वाले कैमरे छोटे और कम रिज़ॉल्यूशन वाले होते हैं, लेकिन आप उच्च रिज़ॉल्यूशन वाले कैमरे प्राप्त कर सकते हैं जो उच्च गुणवत्ता वाले फोन के बराबर होते हैं। आप विभिन्न प्रकार के इंटरचेंजेबल लेंस, मल्टीपल कैमरा सेटअप, इंफ्रारेड थर्मल कैमरे, या UV कैमरे प्राप्त कर सकते हैं। -![एक दृश्य से प्रकाश लेंस के माध्यम से गुजरता है और CMOS सेंसर पर केंद्रित होता है](../../../../../translated_images/hi/cmos-sensor.75f9cd74decb137149a4c9ea825251a4549497d67c0ae2776159e6102bb53aa9.png) +![एक दृश्य से प्रकाश लेंस के माध्यम से गुजरता है और CMOS सेंसर पर केंद्रित होता है](../../../../../translated_images/hi/cmos-sensor.75f9cd74decb1371.webp) अधिकांश कैमरा सेंसर इमेज सेंसर का उपयोग करते हैं जहां प्रत्येक पिक्सेल एक फोटो डायोड होता है। एक लेंस छवि को इमेज सेंसर पर केंद्रित करता है, और हजारों या लाखों फोटो डायोड प्रत्येक पर पड़ने वाले प्रकाश का पता लगाते हैं और इसे पिक्सेल डेटा के रूप में रिकॉर्ड करते हैं। @@ -74,7 +74,7 @@ 1. पुनरावृत्ति के लिए **Publish** बटन का चयन करें। - ![पब्लिश बटन](../../../../../translated_images/hi/custom-vision-publish-button.b7174e1977b0c33b8b72d4e5b1326c779e0af196f3849d09985ee2d7d5493a39.png) + ![पब्लिश बटन](../../../../../translated_images/hi/custom-vision-publish-button.b7174e1977b0c33b.webp) 1. *Publish Model* डायलॉग में, *Prediction resource* को उस `fruit-quality-detector-prediction` संसाधन पर सेट करें जिसे आपने पिछले पाठ में बनाया था। नाम को `Iteration2` के रूप में छोड़ दें और **Publish** बटन का चयन करें। @@ -88,7 +88,7 @@ *Prediction-Key* मान की भी एक प्रति लें। यह एक सुरक्षित कुंजी है जिसे आपको मॉडल को कॉल करते समय पास करना होगा। केवल वे एप्लिकेशन जो इस कुंजी को पास करते हैं, मॉडल का उपयोग करने की अनुमति प्राप्त करते हैं, अन्य सभी एप्लिकेशन अस्वीकार कर दिए जाते हैं। - ![भविष्यवाणी API डायलॉग जिसमें URL और कुंजी दिख रही है](../../../../../translated_images/hi/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![भविष्यवाणी API डायलॉग जिसमें URL और कुंजी दिख रही है](../../../../../translated_images/hi/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ जब एक नई पुनरावृत्ति प्रकाशित होती है, तो इसका नाम अलग होता है। आप कैसे सोचते हैं कि आप IoT डिवाइस द्वारा उपयोग की जा रही पुनरावृत्ति को बदलेंगे? @@ -109,7 +109,7 @@ एक इमेज क्लासिफायर के लिए सर्वोत्तम परिणाम प्राप्त करने के लिए, आप चाहते हैं कि मॉडल को उन छवियों के साथ प्रशिक्षित किया जाए जो भविष्यवाणियों के लिए उपयोग की जाने वाली छवियों के जितना संभव हो उतना समान हों। उदाहरण के लिए, यदि आपने प्रशिक्षण के लिए अपने फोन कैमरे का उपयोग करके छवियां कैप्चर की हैं, तो छवि गुणवत्ता, तीक्ष्णता, और रंग IoT डिवाइस से जुड़े कैमरे से अलग होंगे। -![2 केले की तस्वीरें, एक IoT डिवाइस से खराब रोशनी और कम रिज़ॉल्यूशन वाली, और दूसरी फोन से अच्छी रोशनी और उच्च रिज़ॉल्यूशन वाली](../../../../../translated_images/hi/banana-picture-compare.174df164dc326a42cf7fb051a7497e6113c620e91552d92ca914220305d47d9a.png) +![2 केले की तस्वीरें, एक IoT डिवाइस से खराब रोशनी और कम रिज़ॉल्यूशन वाली, और दूसरी फोन से अच्छी रोशनी और उच्च रिज़ॉल्यूशन वाली](../../../../../translated_images/hi/banana-picture-compare.174df164dc326a42.webp) ऊपर दी गई छवि में, बाईं ओर का केला चित्र Raspberry Pi कैमरे का उपयोग करके लिया गया था, और दाईं ओर का चित्र उसी केले का उसी स्थान पर iPhone का उपयोग करके लिया गया था। गुणवत्ता में एक स्पष्ट अंतर है - iPhone चित्र अधिक तीक्ष्ण है, उज्जवल रंगों और अधिक कंट्रास्ट के साथ। diff --git a/translations/hi/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md b/translations/hi/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md index 135386e7f..2b2e2a18d 100644 --- a/translations/hi/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md +++ b/translations/hi/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md @@ -16,7 +16,7 @@ ### कार्य - कैमरा कनेक्ट करें -![रास्पबेरी पाई कैमरा](../../../../../translated_images/hi/pi-camera-module.4278753c31bd6e757aa2b858be97d72049f71616278cefe4fb5abb485b40a078.png) +![रास्पबेरी पाई कैमरा](../../../../../translated_images/hi/pi-camera-module.4278753c31bd6e75.webp) 1. पाई को बंद करें। @@ -24,17 +24,17 @@ आप [रास्पबेरी पाई गेटिंग स्टार्टेड विद कैमरा मॉड्यूल डाक्यूमेंटेशन](https://projects.raspberrypi.org/en/projects/getting-started-with-picamera/2) पर क्लिप खोलने और केबल डालने का एक एनीमेशन देख सकते हैं। - ![कैमरा मॉड्यूल में डाली गई रिबन केबल](../../../../../translated_images/hi/pi-camera-ribbon-cable.0bf82acd251611c21ac616f082849413e2b322a261d0e4f8fec344248083b07e.png) + ![कैमरा मॉड्यूल में डाली गई रिबन केबल](../../../../../translated_images/hi/pi-camera-ribbon-cable.0bf82acd251611c2.webp) 1. पाई से ग्रोव बेस हैट को हटा दें। 1. रिबन केबल को ग्रोव बेस हैट के कैमरा स्लॉट से पास करें। सुनिश्चित करें कि केबल की नीली साइड एनालॉग पोर्ट्स **A0**, **A1** आदि की ओर हो। - ![ग्रोव बेस हैट से गुजरती रिबन केबल](../../../../../translated_images/hi/grove-base-hat-ribbon-cable.501fed202fcf73b11b2b68f6d246189f7d15d3e4423c572ddee79d77b4632b47.png) + ![ग्रोव बेस हैट से गुजरती रिबन केबल](../../../../../translated_images/hi/grove-base-hat-ribbon-cable.501fed202fcf73b1.webp) 1. रिबन केबल को पाई के कैमरा पोर्ट में डालें। फिर से, काले प्लास्टिक की क्लिप को ऊपर खींचें, केबल डालें, और फिर क्लिप को वापस धकेलें। केबल की नीली साइड USB और ईथरनेट पोर्ट्स की ओर होनी चाहिए। - ![पाई के कैमरा सॉकेट में जुड़ी रिबन केबल](../../../../../translated_images/hi/pi-camera-socket-ribbon-cable.a18309920b11800911082ed7aa6fb28e6d9be3a022e4079ff990016cae3fca10.png) + ![पाई के कैमरा सॉकेट में जुड़ी रिबन केबल](../../../../../translated_images/hi/pi-camera-socket-ribbon-cable.a18309920b118009.webp) 1. ग्रोव बेस हैट को फिर से फिट करें। @@ -101,7 +101,7 @@ `camera.rotation = 0` लाइन इमेज की रोटेशन सेट करती है। रिबन केबल कैमरे के नीचे से आती है, लेकिन यदि आपका कैमरा उस वस्तु की ओर आसानी से इंगित करने के लिए घुमाया गया है जिसे आप क्लासिफाई करना चाहते हैं, तो आप इस लाइन को रोटेशन के डिग्री के अनुसार बदल सकते हैं। - ![ड्रिंक कैन के ऊपर लटका कैमरा](../../../../../translated_images/hi/pi-camera-upside-down.5376961ba31459883362124152ad6b823d5ac5fc14e85f317e22903bd681c2b6.png) + ![ड्रिंक कैन के ऊपर लटका कैमरा](../../../../../translated_images/hi/pi-camera-upside-down.5376961ba3145988.webp) उदाहरण के लिए, यदि आप रिबन केबल को किसी वस्तु के ऊपर लटकाते हैं ताकि वह कैमरे के शीर्ष पर हो, तो रोटेशन को 180 पर सेट करें: diff --git a/translations/hi/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md b/translations/hi/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md index ac36d8171..9209fa98c 100644 --- a/translations/hi/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md +++ b/translations/hi/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md @@ -84,7 +84,7 @@ आप देख पाएंगे कि ली गई छवि और ये मान **Predictions** टैब में कस्टम विजन में दिखाई देंगे। - ![कस्टम विजन में एक केला, 56.8% पर पका हुआ और 43.1% पर कच्चा भविष्यवाणी की गई](../../../../../translated_images/hi/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![कस्टम विजन में एक केला, 56.8% पर पका हुआ और 43.1% पर कच्चा भविष्यवाणी की गई](../../../../../translated_images/hi/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 आप इस कोड को [code-classify/pi](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/pi) या [code-classify/virtual-iot-device](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/virtual-iot-device) फ़ोल्डर में पा सकते हैं। diff --git a/translations/hi/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md b/translations/hi/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md index 37afc7c9a..0c496e411 100644 --- a/translations/hi/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md +++ b/translations/hi/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md @@ -34,11 +34,11 @@ CounterFit ऐप में कैमरा जोड़ें। 1. कैमरा बनाने के लिए **Add** बटन चुनें। - ![कैमरा सेटिंग्स](../../../../../translated_images/hi/counterfit-create-camera.a5de97f59c0bd3cbe0416d7e89a3cfe86d19fbae05c641c53a91286412af0a34.png) + ![कैमरा सेटिंग्स](../../../../../translated_images/hi/counterfit-create-camera.a5de97f59c0bd3cb.webp) कैमरा बनाया जाएगा और सेंसर सूची में दिखाई देगा। - ![कैमरा बनाया गया](../../../../../translated_images/hi/counterfit-camera.001ec52194c8ee5d3f617173da2c79e1df903d10882adc625cbfc493525125d4.png) + ![कैमरा बनाया गया](../../../../../translated_images/hi/counterfit-camera.001ec52194c8ee5d.webp) ## कैमरा प्रोग्राम करें @@ -103,7 +103,7 @@ CounterFit ऐप में कैमरा जोड़ें। 1. उस छवि को कॉन्फ़िगर करें जिसे CounterFit में कैमरा कैप्चर करेगा। आप या तो *Source* को *File* पर सेट कर सकते हैं, फिर एक छवि फाइल अपलोड करें, या *Source* को *WebCam* पर सेट कर सकते हैं, और छवियां आपके वेबकैम से कैप्चर की जाएंगी। सुनिश्चित करें कि आपने एक तस्वीर चुनने या अपने वेबकैम का चयन करने के बाद **Set** बटन चुना है। - ![CounterFit में एक फाइल को इमेज स्रोत के रूप में सेट किया गया है, और एक वेबकैम सेट किया गया है जिसमें एक व्यक्ति को केले के साथ दिखाया गया है](../../../../../translated_images/hi/counterfit-camera-options.eb3bd5150a8e7dffbf24bc5bcaba0cf2cdef95fbe6bbe393695d173817d6b8df.png) + ![CounterFit में एक फाइल को इमेज स्रोत के रूप में सेट किया गया है, और एक वेबकैम सेट किया गया है जिसमें एक व्यक्ति को केले के साथ दिखाया गया है](../../../../../translated_images/hi/counterfit-camera-options.eb3bd5150a8e7dff.webp) 1. एक छवि कैप्चर की जाएगी और वर्तमान फ़ोल्डर में `image.jpg` के रूप में सेव की जाएगी। आप इस फाइल को VS Code एक्सप्लोरर में देखेंगे। छवि देखने के लिए फाइल का चयन करें। यदि इसे रोटेशन की आवश्यकता है, तो `camera.rotation = 0` लाइन को आवश्यकतानुसार अपडेट करें और एक और तस्वीर लें। diff --git a/translations/hi/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md b/translations/hi/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md index 4a2cd8f9d..4f1a05373 100644 --- a/translations/hi/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md +++ b/translations/hi/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md @@ -208,7 +208,7 @@ Custom Vision सेवा में एक REST API है जिसे आप आप वह छवि देख पाएंगे जो ली गई थी, और ये मान Custom Vision के **Predictions** टैब में देख पाएंगे। - ![Custom Vision में एक केला, 56.8% पर पका हुआ और 43.1% पर कच्चा भविष्यवाणी की गई](../../../../../translated_images/hi/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![Custom Vision में एक केला, 56.8% पर पका हुआ और 43.1% पर कच्चा भविष्यवाणी की गई](../../../../../translated_images/hi/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 आप इस कोड को [code-classify/wio-terminal](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/wio-terminal) फोल्डर में पा सकते हैं। diff --git a/translations/hi/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md b/translations/hi/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md index c05fd018c..c9911f382 100644 --- a/translations/hi/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md +++ b/translations/hi/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md @@ -1,6 +1,6 @@ # अपने फल डिटेक्टर को एज पर चलाएं -![इस पाठ का एक स्केच नोट अवलोकन](../../../../../translated_images/hi/lesson-17.bc333c3c35ba8e42cce666cfffa82b915f787f455bd94e006aea2b6f2722421a.jpg) +![इस पाठ का एक स्केच नोट अवलोकन](../../../../../translated_images/hi/lesson-17.bc333c3c35ba8e42.webp) > स्केच नोट [नित्या नरसिम्हन](https://github.com/nitya) द्वारा। बड़े संस्करण के लिए छवि पर क्लिक करें। @@ -33,11 +33,11 @@ एज कंप्यूटिंग का मतलब है कि IoT डेटा को वहीं प्रोसेस करना जहां डेटा उत्पन्न होता है। क्लाउड में प्रोसेसिंग करने के बजाय, इसे क्लाउड के किनारे पर ले जाया जाता है - यानी आपके आंतरिक नेटवर्क पर। -![एक आर्किटेक्चर डायग्राम जिसमें क्लाउड में इंटरनेट सेवाएं और एक लोकल नेटवर्क पर IoT डिवाइस दिखाए गए हैं](../../../../../translated_images/hi/cloud-without-edge.b4da641f6022c95ed6b91fde8b5323abd2f94e0d52073ad54172ae8f5dac90e9.png) +![एक आर्किटेक्चर डायग्राम जिसमें क्लाउड में इंटरनेट सेवाएं और एक लोकल नेटवर्क पर IoT डिवाइस दिखाए गए हैं](../../../../../translated_images/hi/cloud-without-edge.b4da641f6022c95e.webp) अब तक के पाठों में, आपने डेटा इकट्ठा करने और उसे क्लाउड में भेजने वाले डिवाइस का उपयोग किया है, जहां डेटा का विश्लेषण किया जाता है, जैसे कि क्लाउड में सर्वरलेस फंक्शन या AI मॉडल चलाना। -![एक आर्किटेक्चर डायग्राम जिसमें IoT डिवाइस लोकल नेटवर्क पर एज डिवाइस से जुड़ते हैं, और वे एज डिवाइस क्लाउड से जुड़ते हैं](../../../../../translated_images/hi/cloud-with-edge.1e26462c62c126fe150bd15a5714ddf0be599f09bacbad08b85be02b76ea1ae1.png) +![एक आर्किटेक्चर डायग्राम जिसमें IoT डिवाइस लोकल नेटवर्क पर एज डिवाइस से जुड़ते हैं, और वे एज डिवाइस क्लाउड से जुड़ते हैं](../../../../../translated_images/hi/cloud-with-edge.1e26462c62c126fe.webp) एज कंप्यूटिंग में कुछ क्लाउड सेवाओं को क्लाउड से हटाकर IoT डिवाइस के समान नेटवर्क पर चलने वाले कंप्यूटरों पर ले जाया जाता है, और केवल आवश्यकता होने पर क्लाउड से संपर्क किया जाता है। उदाहरण के लिए, आप एज डिवाइस पर AI मॉडल चला सकते हैं ताकि फलों की पकी अवस्था का विश्लेषण किया जा सके, और केवल एनालिटिक्स को क्लाउड पर भेजा जा सके, जैसे कि पके और कच्चे फलों की संख्या। @@ -85,7 +85,7 @@ IoT सिस्टम के लिए, आप अक्सर क्लाउ ## Azure IoT Edge -![Azure IoT Edge का लोगो](../../../../../translated_images/hi/azure-iot-edge-logo.c1c076749b5cba2e8755262fadc2f19ca1146b948d76990b1229199ac2292d79.png) +![Azure IoT Edge का लोगो](../../../../../translated_images/hi/azure-iot-edge-logo.c1c076749b5cba2e.webp) Azure IoT Edge एक सेवा है जो आपको वर्कलोड को क्लाउड से हटाकर एज पर ले जाने में मदद कर सकती है। आप एक डिवाइस को एज डिवाइस के रूप में सेट करते हैं, और क्लाउड से उस एज डिवाइस पर कोड तैनात कर सकते हैं। यह आपको क्लाउड और एज की क्षमताओं को मिलाने की अनुमति देता है। @@ -99,7 +99,7 @@ IoT Edge IoT हब में बनाया गया है, इसलिए IoT Edge *कंटेनरों* से कोड चलाता है - स्व-निहित एप्लिकेशन जो आपके कंप्यूटर पर अन्य एप्लिकेशन से अलग-थलग चलाए जाते हैं। जब आप एक कंटेनर चलाते हैं, तो यह आपके कंप्यूटर के अंदर एक अलग कंप्यूटर की तरह कार्य करता है, जिसमें इसका अपना सॉफ़्टवेयर, सेवाएं और एप्लिकेशन चलते हैं। अधिकांश समय कंटेनर आपके कंप्यूटर पर कुछ भी एक्सेस नहीं कर सकते जब तक आप फ़ोल्डर जैसी चीज़ों को साझा करने का विकल्प नहीं चुनते। कंटेनर तब एक खुले पोर्ट के माध्यम से सेवाओं को उजागर करता है जिसे आप कनेक्ट कर सकते हैं या अपने नेटवर्क पर उजागर कर सकते हैं। -![एक वेब अनुरोध को एक कंटेनर पर पुनर्निर्देशित किया गया](../../../../../translated_images/hi/container-web-browser.4ee81dd4f0d8838ce622b2a0d600b6a4322b5d4fe43159facd87b7b34f84d66a.png) +![एक वेब अनुरोध को एक कंटेनर पर पुनर्निर्देशित किया गया](../../../../../translated_images/hi/container-web-browser.4ee81dd4f0d8838c.webp) उदाहरण के लिए, आप एक कंटेनर में एक वेबसाइट चला सकते हैं जो पोर्ट 80 पर चल रही है, जो डिफ़ॉल्ट HTTP पोर्ट है, और आप इसे अपने कंप्यूटर से भी पोर्ट 80 पर उजागर कर सकते हैं। @@ -195,11 +195,11 @@ IoT Edge डिवाइस का उपयोग करने के लिए ## अपने कंटेनर को डिप्लॉयमेंट के लिए तैयार करें -![कंटेनर बनाए जाते हैं, फिर कंटेनर रजिस्ट्री में पुश किए जाते हैं, और फिर IoT Edge का उपयोग करके कंटेनर रजिस्ट्री से edge device पर डिप्लॉय किए जाते हैं](../../../../../translated_images/hi/container-edge-flow.c246050dd60ceefdb6ace026a4ce5c6aa4112bb5898ae23fbb2ab4be29ae3e1b.png) +![कंटेनर बनाए जाते हैं, फिर कंटेनर रजिस्ट्री में पुश किए जाते हैं, और फिर IoT Edge का उपयोग करके कंटेनर रजिस्ट्री से edge device पर डिप्लॉय किए जाते हैं](../../../../../translated_images/hi/container-edge-flow.c246050dd60ceefd.webp) एक बार जब आपने अपना मॉडल डाउनलोड कर लिया है, तो इसे कंटेनर में बनाया जाना चाहिए, फिर कंटेनर रजिस्ट्री में पुश किया जाना चाहिए - एक ऑनलाइन स्थान जहां आप कंटेनरों को स्टोर कर सकते हैं। IoT Edge फिर रजिस्ट्री से कंटेनर डाउनलोड कर सकता है और इसे आपके डिवाइस पर पुश कर सकता है। -![Azure Container Registry लोगो](../../../../../translated_images/hi/azure-container-registry-logo.09494206991d4b295025ebff7d4e2900325e527a59184ffbc8464b6ab59654be.png) +![Azure Container Registry लोगो](../../../../../translated_images/hi/azure-container-registry-logo.09494206991d4b29.webp) इस पाठ के लिए आप जो कंटेनर रजिस्ट्री उपयोग करेंगे वह Azure Container Registry है। यह एक मुफ्त सेवा नहीं है, इसलिए पैसे बचाने के लिए सुनिश्चित करें कि आप [अपने प्रोजेक्ट को साफ करें](../../../clean-up.md) जब आप इसे समाप्त कर लें। diff --git a/translations/hi/4-manufacturing/lessons/4-trigger-fruit-detector/README.md b/translations/hi/4-manufacturing/lessons/4-trigger-fruit-detector/README.md index 1249eb957..b26e8dd7a 100644 --- a/translations/hi/4-manufacturing/lessons/4-trigger-fruit-detector/README.md +++ b/translations/hi/4-manufacturing/lessons/4-trigger-fruit-detector/README.md @@ -1,6 +1,6 @@ # सेंसर से फल की गुणवत्ता का पता लगाना शुरू करें -![इस पाठ का स्केच नोट](../../../../../translated_images/hi/lesson-18.92c32ed1d354caa5a54baa4032cf0b172d4655e8e326ad5d46c558a0def15365.jpg) +![इस पाठ का स्केच नोट](../../../../../translated_images/hi/lesson-18.92c32ed1d354caa5.webp) > स्केच नोट [नित्या नरसिम्हन](https://github.com/nitya) द्वारा। बड़े संस्करण के लिए छवि पर क्लिक करें। @@ -39,7 +39,7 @@ IoT एप्लिकेशन को *चीजें* (डिवाइस) ### संदर्भ IoT आर्किटेक्चर -![एक संदर्भ IoT आर्किटेक्चर](../../../../../translated_images/hi/iot-reference-architecture.2278b98b55c6d4e89bde18eada3688d893861d43507641804dd2f9d3079cfaa0.png) +![एक संदर्भ IoT आर्किटेक्चर](../../../../../translated_images/hi/iot-reference-architecture.2278b98b55c6d4e8.webp) ऊपर दिया गया आरेख एक संदर्भ IoT आर्किटेक्चर दिखाता है। @@ -49,7 +49,7 @@ IoT एप्लिकेशन को *चीजें* (डिवाइस) * **इनसाइट्स** सर्वरलेस एप्लिकेशन से आते हैं, या संग्रहीत डेटा पर चलाए गए एनालिटिक्स से। * **एक्शन** डिवाइस को भेजे गए कमांड हो सकते हैं, या डेटा का विज़ुअलाइज़ेशन जो मनुष्यों को निर्णय लेने की अनुमति देता है। -![एक संदर्भ IoT आर्किटेक्चर](../../../../../translated_images/hi/iot-reference-architecture-azure.0b8d2161af924cb18ae48a8558a19541cca47f27264851b5b7e56d7b8bb372ac.png) +![एक संदर्भ IoT आर्किटेक्चर](../../../../../translated_images/hi/iot-reference-architecture-azure.0b8d2161af924cb1.webp) ऊपर दिया गया आरेख इन पाठों में अब तक कवर किए गए कुछ घटकों और सेवाओं को दिखाता है और वे संदर्भ IoT आर्किटेक्चर में कैसे जुड़े हुए हैं। @@ -89,7 +89,7 @@ IoT एप्लिकेशन को *चीजें* (डिवाइस) ### अपने एप्लिकेशन का प्रोटोटाइप बनाना -![फल गुणवत्ता जांच के लिए संदर्भ IoT आर्किटेक्चर](../../../../../translated_images/hi/iot-reference-architecture-fruit-quality.cc705f121c3b6fa71c800d9630935ac34bc08223a04601e35f41d5e9b5dd5207.png) +![फल गुणवत्ता जांच के लिए संदर्भ IoT आर्किटेक्चर](../../../../../translated_images/hi/iot-reference-architecture-fruit-quality.cc705f121c3b6fa7.webp) ऊपर दिया गया आरेख इस प्रोटोटाइप एप्लिकेशन के लिए संदर्भ आर्किटेक्चर दिखाता है। @@ -124,7 +124,7 @@ IoT डिवाइस को किसी प्रकार के ट्र प्रोटोटाइप फल डिटेक्टर में कई घटक एक-दूसरे के साथ संवाद करते हैं। -![एक-दूसरे के साथ संवाद करने वाले घटक](../../../../../translated_images/hi/fruit-quality-detector-message-flow.adf2a65da8fd8741ac7af11361574de89adc126785d67606bb4d2ec00467e380.png) +![एक-दूसरे के साथ संवाद करने वाले घटक](../../../../../translated_images/hi/fruit-quality-detector-message-flow.adf2a65da8fd8741.webp) * प्रॉक्सिमिटी सेंसर जो फल से दूरी मापता है और इसे IoT हब को भेजता है * कैमरा डिवाइस को नियंत्रित करने का कमांड IoT हब से आता है diff --git a/translations/hi/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md b/translations/hi/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md index 73fd32a1f..4f4625e56 100644 --- a/translations/hi/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md +++ b/translations/hi/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md @@ -20,7 +20,7 @@ Grove टाइम ऑफ फ्लाइट सेंसर को रास् टाइम ऑफ फ्लाइट सेंसर को कनेक्ट करें। -![एक Grove टाइम ऑफ फ्लाइट सेंसर](../../../../../translated_images/hi/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![एक Grove टाइम ऑफ फ्लाइट सेंसर](../../../../../translated_images/hi/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. Grove केबल के एक सिरे को टाइम ऑफ फ्लाइट सेंसर के सॉकेट में डालें। यह केवल एक ही दिशा में जाएगा। diff --git a/translations/hi/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md b/translations/hi/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md index 154ee04f7..cd086c4ee 100644 --- a/translations/hi/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md +++ b/translations/hi/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md @@ -36,11 +36,11 @@ CounterFit ऐप में दूरी सेंसर जोड़ें। 1. दूरी सेंसर बनाने के लिए **Add** बटन चुनें। - ![दूरी सेंसर सेटिंग्स](../../../../../translated_images/hi/counterfit-create-distance-sensor.967c9fb98f27888d95920c9784d004c972490eb71f70397fe13bd70a79a879a3.png) + ![दूरी सेंसर सेटिंग्स](../../../../../translated_images/hi/counterfit-create-distance-sensor.967c9fb98f27888d.webp) दूरी सेंसर बनाया जाएगा और सेंसर सूची में दिखाई देगा। - ![दूरी सेंसर बनाया गया](../../../../../translated_images/hi/counterfit-distance-sensor.079eefeeea0b68afc36431ce8fcbe2f09a7e4916ed1cd5cb30e696db53bc18fa.png) + ![दूरी सेंसर बनाया गया](../../../../../translated_images/hi/counterfit-distance-sensor.079eefeeea0b68af.webp) ## दूरी सेंसर प्रोग्राम करें diff --git a/translations/hi/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md b/translations/hi/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md index fe12516c9..79c97185e 100644 --- a/translations/hi/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md +++ b/translations/hi/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md @@ -20,7 +20,7 @@ Grove टाइम ऑफ फ्लाइट सेंसर को Wio Terminal टाइम ऑफ फ्लाइट सेंसर को कनेक्ट करें। -![एक Grove टाइम ऑफ फ्लाइट सेंसर](../../../../../translated_images/hi/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![एक Grove टाइम ऑफ फ्लाइट सेंसर](../../../../../translated_images/hi/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. Grove केबल के एक सिरे को टाइम ऑफ फ्लाइट सेंसर के सॉकेट में डालें। यह केवल एक ही दिशा में जाएगा। diff --git a/translations/hi/5-retail/lessons/1-train-stock-detector/README.md b/translations/hi/5-retail/lessons/1-train-stock-detector/README.md index 5e0e5f7ff..3b138fd3e 100644 --- a/translations/hi/5-retail/lessons/1-train-stock-detector/README.md +++ b/translations/hi/5-retail/lessons/1-train-stock-detector/README.md @@ -1,6 +1,6 @@ # स्टॉक डिटेक्टर को प्रशिक्षित करें -![इस पाठ का स्केच नोट अवलोकन](../../../../../translated_images/hi/lesson-19.cf6973cecadf080c4b526310620dc4d6f5994c80fb0139c6f378cc9ca2d435cd.jpg) +![इस पाठ का स्केच नोट अवलोकन](../../../../../translated_images/hi/lesson-19.cf6973cecadf080c.webp) > स्केच नोट [नित्या नरसिम्हन](https://github.com/nitya) द्वारा। बड़े संस्करण के लिए छवि पर क्लिक करें। @@ -36,7 +36,7 @@ इमेज क्लासिफिकेशन का उद्देश्य पूरी छवि को वर्गीकृत करना है - यह अनुमान लगाना कि पूरी छवि प्रत्येक टैग से कितनी मेल खाती है। आपको मॉडल को प्रशिक्षित करने के लिए उपयोग किए गए प्रत्येक टैग के लिए संभावनाएं मिलती हैं। -![काजू और टमाटर पेस्ट की इमेज क्लासिफिकेशन](../../../../../translated_images/hi/image-classifier-cashews-tomato.bc2e16ab8f05cf9ac0f59f73e32efc4227f9a5b601b90b2c60f436694547a965.png) +![काजू और टमाटर पेस्ट की इमेज क्लासिफिकेशन](../../../../../translated_images/hi/image-classifier-cashews-tomato.bc2e16ab8f05cf9a.webp) ऊपर दिए गए उदाहरण में, दो छवियों को एक मॉडल का उपयोग करके वर्गीकृत किया गया है जिसे काजू के डिब्बे या टमाटर पेस्ट के कैन को वर्गीकृत करने के लिए प्रशिक्षित किया गया है। पहली छवि काजू के डिब्बे की है, और इमेज क्लासिफायर से दो परिणाम प्राप्त होते हैं: @@ -60,7 +60,7 @@ > 🎓 *बॉन्डिंग बॉक्स* वे बॉक्स होते हैं जो किसी वस्तु के चारों ओर होते हैं। -![काजू और टमाटर पेस्ट की ऑब्जेक्ट डिटेक्शन](../../../../../translated_images/hi/object-detector-cashews-tomato.1af7c26686b4db0e709754aeb196f4e73271f54e2085db3bcccb70d4a0d84d97.png) +![काजू और टमाटर पेस्ट की ऑब्जेक्ट डिटेक्शन](../../../../../translated_images/hi/object-detector-cashews-tomato.1af7c26686b4db0e.webp) ऊपर दी गई छवि में काजू का एक डिब्बा और टमाटर पेस्ट के तीन कैन हैं। ऑब्जेक्ट डिटेक्टर ने काजू का पता लगाया, और उस बॉन्डिंग बॉक्स को लौटाया जिसमें काजू है, और यह संभावना है कि बॉक्स में वस्तु है, इस मामले में 97.6%। ऑब्जेक्ट डिटेक्टर ने टमाटर पेस्ट के तीन कैन का भी पता लगाया है, और प्रत्येक कैन के लिए तीन अलग-अलग बॉन्डिंग बॉक्स प्रदान किए हैं, और प्रत्येक के पास यह संभावना है कि बॉक्स में टमाटर पेस्ट का कैन है। @@ -111,7 +111,7 @@ जब आप अपना प्रोजेक्ट बनाएं, तो सुनिश्चित करें कि आपने पहले बनाए गए `stock-detector-training` संसाधन का उपयोग किया है। *Object Detection* प्रोजेक्ट प्रकार और *Products on Shelves* डोमेन का उपयोग करें। - ![Custom Vision प्रोजेक्ट के लिए सेटिंग्स, नाम fruit-quality-detector, कोई विवरण नहीं, संसाधन fruit-quality-detector-training, प्रोजेक्ट प्रकार classification, classification प्रकार multi class और डोमेन food पर सेट](../../../../../translated_images/hi/custom-vision-create-object-detector-project.32d4fb9aa8e7e7375f8a799bfce517aca970f2cb65e42d4245c5e635c734ab29.png) + ![Custom Vision प्रोजेक्ट के लिए सेटिंग्स, नाम fruit-quality-detector, कोई विवरण नहीं, संसाधन fruit-quality-detector-training, प्रोजेक्ट प्रकार classification, classification प्रकार multi class और डोमेन food पर सेट](../../../../../translated_images/hi/custom-vision-create-object-detector-project.32d4fb9aa8e7e737.webp) ✅ *Products on Shelves* डोमेन विशेष रूप से स्टोर शेल्फ पर स्टॉक का पता लगाने के लिए लक्षित है। [Microsoft Docs पर Select a domain दस्तावेज़](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/select-domain?WT.mc_id=academic-17441-jabenn#object-detection) में विभिन्न डोमेन के बारे में और पढ़ें। @@ -133,11 +133,11 @@ 1. [Microsoft Docs पर Build an object detector quickstart के Upload and tag images सेक्शन](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/get-started-build-detector?WT.mc_id=academic-17441-jabenn#upload-and-tag-images) का पालन करें ताकि अपनी प्रशिक्षण छवियां अपलोड की जा सकें। उन वस्तुओं के प्रकारों के आधार पर प्रासंगिक टैग बनाएं जिन्हें आप पहचानना चाहते हैं। - ![पके और कच्चे केले की तस्वीरें अपलोड करने का संवाद](../../../../../translated_images/hi/image-upload-object-detector.77c7892c3093cb59b79018edecd678749a75d71a099bc8a2d2f2f76320f88a5b.png) + ![पके और कच्चे केले की तस्वीरें अपलोड करने का संवाद](../../../../../translated_images/hi/image-upload-object-detector.77c7892c3093cb59.webp) जब आप वस्तुओं के लिए बॉन्डिंग बॉक्स बनाएं, तो उन्हें वस्तु के चारों ओर कसकर रखें। सभी छवियों को आउटलाइन करने में समय लग सकता है, लेकिन टूल यह पता लगाएगा कि उसे क्या लगता है कि बॉन्डिंग बॉक्स हैं, जिससे यह तेज़ हो जाएगा। - ![टमाटर पेस्ट को टैग करना](../../../../../translated_images/hi/object-detector-tag-tomato-paste.f47c362fb0f0eb582f3bc68cf3855fb43a805106395358d41896a269c210b7b4.png) + ![टमाटर पेस्ट को टैग करना](../../../../../translated_images/hi/object-detector-tag-tomato-paste.f47c362fb0f0eb58.webp) > 💁 यदि आपके पास प्रत्येक वस्तु के लिए 15 से अधिक छवियां हैं, तो आप 15 के बाद प्रशिक्षण कर सकते हैं और **Suggested tags** सुविधा का उपयोग कर सकते हैं। यह बिना टैग वाली छवि में वस्तुओं का पता लगाने के लिए प्रशिक्षित मॉडल का उपयोग करेगा। आप फिर पता लगी वस्तुओं की पुष्टि कर सकते हैं, या बॉन्डिंग बॉक्स को अस्वीकार और पुनः खींच सकते हैं। यह *बहुत* समय बचा सकता है। @@ -155,7 +155,7 @@ 1. **Quick Test** बटन का उपयोग करके परीक्षण छवियां अपलोड करें और सत्यापित करें कि वस्तुओं का पता लगाया गया है। उन परीक्षण छवियों का उपयोग करें जिन्हें आपने पहले बनाया था, न कि उन छवियों का जिन्हें आपने प्रशिक्षण के लिए उपयोग किया था। - ![टमाटर पेस्ट के 3 कैन का पता लगाया गया, जिनकी संभावनाएं 38%, 35.5% और 34.6% हैं](../../../../../translated_images/hi/object-detector-detected-tomato-paste.52656fe87af4c37b4ee540526d63e73ed075da2e54a9a060aa528e0c562fb1b6.png) + ![टमाटर पेस्ट के 3 कैन का पता लगाया गया, जिनकी संभावनाएं 38%, 35.5% और 34.6% हैं](../../../../../translated_images/hi/object-detector-detected-tomato-paste.52656fe87af4c37b.webp) 1. आपके पास जितनी भी परीक्षण छवियां हैं, उनका उपयोग करें और संभावनाओं का अवलोकन करें। diff --git a/translations/hi/5-retail/lessons/2-check-stock-device/README.md b/translations/hi/5-retail/lessons/2-check-stock-device/README.md index c4e951f71..6a109c2df 100644 --- a/translations/hi/5-retail/lessons/2-check-stock-device/README.md +++ b/translations/hi/5-retail/lessons/2-check-stock-device/README.md @@ -1,6 +1,6 @@ # IoT डिवाइस से स्टॉक चेक करें -![इस पाठ का स्केच नोट](../../../../../translated_images/hi/lesson-20.0211df9551a8abb300fc8fcf7dc2789468dea2eabe9202273ac077b0ba37f15e.jpg) +![इस पाठ का स्केच नोट](../../../../../translated_images/hi/lesson-20.0211df9551a8abb3.webp) > स्केच नोट [नित्या नरसिम्हन](https://github.com/nitya) द्वारा। बड़े संस्करण के लिए छवि पर क्लिक करें। @@ -62,7 +62,7 @@ 1. संस्करण के लिए **Publish** बटन चुनें। - ![पब्लिश बटन](../../../../../translated_images/hi/custom-vision-object-detector-publish-button.34ee379fc650ccb9856c3868d0003f413b9529f102fc73c37168c98d721cc293.png) + ![पब्लिश बटन](../../../../../translated_images/hi/custom-vision-object-detector-publish-button.34ee379fc650ccb9.webp) 1. *Publish Model* डायलॉग में, *Prediction resource* को उस `stock-detector-prediction` संसाधन पर सेट करें जिसे आपने पिछले पाठ में बनाया था। नाम को `Iteration2` के रूप में छोड़ दें, और **Publish** बटन चुनें। @@ -76,7 +76,7 @@ *Prediction-Key* मान की भी एक प्रति लें। यह एक सुरक्षित कुंजी है जिसे आपको मॉडल को कॉल करते समय पास करना होगा। केवल वे एप्लिकेशन जो इस कुंजी को पास करते हैं, मॉडल का उपयोग करने की अनुमति प्राप्त करते हैं, अन्य सभी एप्लिकेशन अस्वीकार कर दिए जाते हैं। - ![भविष्यवाणी API डायलॉग जिसमें URL और कुंजी दिख रही है](../../../../../translated_images/hi/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![भविष्यवाणी API डायलॉग जिसमें URL और कुंजी दिख रही है](../../../../../translated_images/hi/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ जब एक नया संस्करण प्रकाशित होता है, तो उसका नाम अलग होता है। आप कैसे सोचते हैं कि आप IoT डिवाइस द्वारा उपयोग किए जा रहे संस्करण को बदलेंगे? @@ -95,7 +95,7 @@ कस्टम विजन में **Predictions** टैब में भविष्यवाणी के परिणामों में उस छवि पर बाउंडिंग बॉक्स खींचे जाते हैं जिसे भविष्यवाणी के लिए भेजा गया था। -![शेल्फ पर 4 टमाटर पेस्ट के डिब्बे, 35.8%, 33.5%, 25.7% और 16.6% की भविष्यवाणी के साथ](../../../../../translated_images/hi/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) +![शेल्फ पर 4 टमाटर पेस्ट के डिब्बे, 35.8%, 33.5%, 25.7% और 16.6% की भविष्यवाणी के साथ](../../../../../translated_images/hi/custom-vision-stock-prediction.942266ab1bcca341.webp) ऊपर दी गई छवि में, 4 टमाटर पेस्ट के डिब्बे का पता लगाया गया। परिणामों में प्रत्येक ऑब्जेक्ट के लिए एक लाल वर्ग छवि पर ओवरले किया गया है, जो छवि के लिए बाउंडिंग बॉक्स को इंगित करता है। @@ -103,7 +103,7 @@ बाउंडिंग बॉक्स को 4 मानों के साथ परिभाषित किया जाता है - शीर्ष, बायां, ऊंचाई और चौड़ाई। ये मान 0-1 के पैमाने पर होते हैं, जो छवि के आकार के प्रतिशत के रूप में स्थिति को दर्शाते हैं। मूल (0,0 स्थिति) छवि का शीर्ष बायां है, इसलिए शीर्ष मान शीर्ष से दूरी है, और बाउंडिंग बॉक्स का निचला भाग शीर्ष प्लस ऊंचाई है। -![टमाटर पेस्ट के डिब्बे के चारों ओर एक बाउंडिंग बॉक्स](../../../../../translated_images/hi/bounding-box.1420a7ea0d3d15f71e1ffb5cf4b2271d184fac051f990abc541975168d163684.png) +![टमाटर पेस्ट के डिब्बे के चारों ओर एक बाउंडिंग बॉक्स](../../../../../translated_images/hi/bounding-box.1420a7ea0d3d15f7.webp) ऊपर दी गई छवि 600 पिक्सल चौड़ी और 800 पिक्सल लंबी है। बाउंडिंग बॉक्स 320 पिक्सल नीचे शुरू होता है, जिससे शीर्ष निर्देशांक 0.4 (800 x 0.4 = 320) होता है। बाएं से, बाउंडिंग बॉक्स 240 पिक्सल चौड़ा शुरू होता है, जिससे बाएं निर्देशांक 0.4 (600 x 0.4 = 240) होता है। बाउंडिंग बॉक्स की ऊंचाई 240 पिक्सल है, जिससे ऊंचाई मान 0.3 (800 x 0.3 = 240) होता है। बाउंडिंग बॉक्स की चौड़ाई 120 पिक्सल है, जिससे चौड़ाई मान 0.2 (600 x 0.2 = 120) होता है। @@ -118,7 +118,7 @@ आप बाउंडिंग बॉक्स को संभावनाओं के साथ जोड़कर यह मूल्यांकन कर सकते हैं कि डिटेक्शन कितना सटीक है। उदाहरण के लिए, एक ऑब्जेक्ट डिटेक्टर कई ऑब्जेक्ट्स का पता लगा सकता है जो ओवरलैप करते हैं, जैसे कि एक डिब्बा दूसरे के अंदर। आपका कोड बाउंडिंग बॉक्स को देख सकता है, समझ सकता है कि यह असंभव है, और उन ऑब्जेक्ट्स को अनदेखा कर सकता है जिनका अन्य ऑब्जेक्ट्स के साथ महत्वपूर्ण ओवरलैप है। -![टमाटर पेस्ट के डिब्बे पर दो बाउंडिंग बॉक्स ओवरलैप करते हुए](../../../../../translated_images/hi/overlap-object-detection.d431e03cae75072a2760430eca7f2c5fdd43045bfd72dadcbf12711f7cd6c2ae.png) +![टमाटर पेस्ट के डिब्बे पर दो बाउंडिंग बॉक्स ओवरलैप करते हुए](../../../../../translated_images/hi/overlap-object-detection.d431e03cae75072a.webp) ऊपर दिए गए उदाहरण में, एक बाउंडिंग बॉक्स ने 78.3% की संभावना के साथ टमाटर पेस्ट के डिब्बे का पता लगाया। दूसरा बाउंडिंग बॉक्स थोड़ा छोटा है, और पहले बाउंडिंग बॉक्स के अंदर है जिसकी संभावना 64.3% है। आपका कोड बाउंडिंग बॉक्स की जांच कर सकता है, देख सकता है कि वे पूरी तरह से ओवरलैप करते हैं, और कम संभावना को अनदेखा कर सकता है क्योंकि एक डिब्बा दूसरे के अंदर नहीं हो सकता। diff --git a/translations/hi/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md b/translations/hi/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md index 5b4816b16..2c7fb33bf 100644 --- a/translations/hi/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md +++ b/translations/hi/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md @@ -67,7 +67,7 @@ आप ली गई इमेज और इन मानों को Custom Vision के **Predictions** टैब में देख पाएंगे। - ![शेल्फ पर रखे टमाटर पेस्ट के 4 कैन, जिनके लिए 4 डिटेक्शन्स के प्रेडिक्शन्स 35.8%, 33.5%, 25.7% और 16.6% हैं](../../../../../translated_images/hi/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![शेल्फ पर रखे टमाटर पेस्ट के 4 कैन, जिनके लिए 4 डिटेक्शन्स के प्रेडिक्शन्स 35.8%, 33.5%, 25.7% और 16.6% हैं](../../../../../translated_images/hi/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 आप इस कोड को [code-detect/pi](../../../../../5-retail/lessons/2-check-stock-device/code-detect/pi) या [code-detect/virtual-iot-device](../../../../../5-retail/lessons/2-check-stock-device/code-detect/virtual-iot-device) फ़ोल्डर में पा सकते हैं। diff --git a/translations/hi/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md b/translations/hi/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md index fd09f7047..051123b7c 100644 --- a/translations/hi/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md +++ b/translations/hi/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md @@ -95,7 +95,7 @@ आप ली गई इमेज और इन मानों को Custom Vision के **Predictions** टैब में देख पाएंगे। - ![शेल्फ पर रखे टमाटर पेस्ट के 4 कैन और उनके 4 डिटेक्शन के लिए 35.8%, 33.5%, 25.7% और 16.6% की संभावना](../../../../../translated_images/hi/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![शेल्फ पर रखे टमाटर पेस्ट के 4 कैन और उनके 4 डिटेक्शन के लिए 35.8%, 33.5%, 25.7% और 16.6% की संभावना](../../../../../translated_images/hi/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 आप इस कोड को [code-detect/wio-terminal](../../../../../5-retail/lessons/2-check-stock-device/code-detect/wio-terminal) फोल्डर में पा सकते हैं। diff --git a/translations/hi/6-consumer/lessons/1-speech-recognition/README.md b/translations/hi/6-consumer/lessons/1-speech-recognition/README.md index d9efa00ab..1664a7e67 100644 --- a/translations/hi/6-consumer/lessons/1-speech-recognition/README.md +++ b/translations/hi/6-consumer/lessons/1-speech-recognition/README.md @@ -1,6 +1,6 @@ # IoT डिवाइस के साथ भाषण को पहचानें -![इस पाठ का स्केच नोट अवलोकन](../../../../../translated_images/hi/lesson-21.e34de51354d6606fb5ee08d8c89d0222eea0a2a7aaf744a8805ae847c4f69dc4.jpg) +![इस पाठ का स्केच नोट अवलोकन](../../../../../translated_images/hi/lesson-21.e34de51354d6606f.webp) > स्केच नोट [नित्या नरसिम्हन](https://github.com/nitya) द्वारा। बड़े संस्करण के लिए छवि पर क्लिक करें। @@ -51,7 +51,7 @@ डायनामिक माइक्रोफोन को काम करने के लिए बिजली की आवश्यकता नहीं होती, विद्युत संकेत पूरी तरह से माइक्रोफोन से उत्पन्न होता है। - ![पैटी स्मिथ श्योर SM58 (डायनामिक कार्डियोइड प्रकार) माइक्रोफोन में गाते हुए](../../../../../translated_images/hi/dynamic-mic.8babac890a2d80dfb0874b5bf37d4b851fe2aeb9da6fd72945746176978bf3bb.jpg) + ![पैटी स्मिथ श्योर SM58 (डायनामिक कार्डियोइड प्रकार) माइक्रोफोन में गाते हुए](../../../../../translated_images/hi/dynamic-mic.8babac890a2d80df.webp) * रिबन - रिबन माइक्रोफोन डायनामिक माइक्रोफोन के समान होते हैं, लेकिन इनमें डायाफ्राम के बजाय एक धातु रिबन होता है। यह रिबन चुंबकीय क्षेत्र में हिलता है और विद्युत धारा उत्पन्न करता है। डायनामिक माइक्रोफोन की तरह, रिबन माइक्रोफोन को काम करने के लिए बिजली की आवश्यकता नहीं होती। @@ -59,11 +59,11 @@ * कंडेंसर - कंडेंसर माइक्रोफोन में एक पतला धातु डायाफ्राम और एक स्थिर धातु बैकप्लेट होता है। इन दोनों पर बिजली लगाई जाती है और जैसे ही डायाफ्राम हिलता है, प्लेटों के बीच स्थिर चार्ज बदलता है और एक संकेत उत्पन्न करता है। कंडेंसर माइक्रोफोन को काम करने के लिए बिजली की आवश्यकता होती है - जिसे *फैंटम पावर* कहा जाता है। - ![AKG Acoustics द्वारा C451B छोटे डायाफ्राम कंडेंसर माइक्रोफोन](../../../../../translated_images/hi/condenser-mic.6f6ed5b76ca19e0ec3fd0c544601542d4479a6cb7565db336de49fbbf69f623e.jpg) + ![AKG Acoustics द्वारा C451B छोटे डायाफ्राम कंडेंसर माइक्रोफोन](../../../../../translated_images/hi/condenser-mic.6f6ed5b76ca19e0e.webp) * MEMS - माइक्रोइलेक्ट्रोमैकेनिकल सिस्टम माइक्रोफोन, या MEMS, चिप पर माइक्रोफोन होते हैं। इनमें सिलिकॉन चिप पर दबाव-संवेदनशील डायाफ्राम होता है, और यह कंडेंसर माइक्रोफोन के समान काम करता है। ये माइक्रोफोन बहुत छोटे हो सकते हैं और सर्किटरी में एकीकृत हो सकते हैं। - ![सर्किट बोर्ड पर MEMS माइक्रोफोन](../../../../../translated_images/hi/mems-microphone.80574019e1f5e4d9ee72fed720ecd25a39fc2969c91355d17ebb24ba4159e4c4.png) + ![सर्किट बोर्ड पर MEMS माइक्रोफोन](../../../../../translated_images/hi/mems-microphone.80574019e1f5e4d9.webp) ऊपर दी गई छवि में, **LEFT** लेबल वाला चिप एक MEMS माइक्रोफोन है, जिसमें एक छोटा डायाफ्राम है जो एक मिलीमीटर से भी कम चौड़ा है। @@ -159,7 +159,7 @@ ML मॉडल हमेशा हर बार समान आकार क ## स्पीच को टेक्स्ट में बदलें -![स्पीच सर्विसेज लोगो](../../../../../translated_images/hi/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![स्पीच सर्विसेज लोगो](../../../../../translated_images/hi/azure-speech-logo.a1f08c4befb0159f.webp) जैसे कि एक पहले प्रोजेक्ट में इमेज क्लासिफिकेशन के साथ किया गया था, वैसे ही कुछ प्री-बिल्ट AI सेवाएं हैं जो ऑडियो फाइल के रूप में स्पीच को टेक्स्ट में बदल सकती हैं। ऐसी ही एक सेवा है स्पीच सर्विस, जो Cognitive Services का हिस्सा है, प्री-बिल्ट AI सेवाएं जिन्हें आप अपने ऐप्स में उपयोग कर सकते हैं। diff --git a/translations/hi/6-consumer/lessons/1-speech-recognition/pi-audio.md b/translations/hi/6-consumer/lessons/1-speech-recognition/pi-audio.md index 011d98cd8..cb3b14842 100644 --- a/translations/hi/6-consumer/lessons/1-speech-recognition/pi-audio.md +++ b/translations/hi/6-consumer/lessons/1-speech-recognition/pi-audio.md @@ -16,13 +16,13 @@ #### कार्य - बटन कनेक्ट करें -![एक ग्रोव बटन](../../../../../translated_images/hi/grove-button.a70cfbb809a8563681003250cf5b06d68cdcc68624f9e2f493d5a534ae2da1e5.png) +![एक ग्रोव बटन](../../../../../translated_images/hi/grove-button.a70cfbb809a85636.webp) 1. ग्रोव केबल के एक सिरे को बटन मॉड्यूल के सॉकेट में डालें। यह केवल एक ही दिशा में जाएगा। 1. रास्पबेरी पाई को बंद करके, ग्रोव केबल के दूसरे सिरे को ग्रोव बेस HAT पर **D5** नामक डिजिटल सॉकेट में कनेक्ट करें। यह सॉकेट GPIO पिन के पास वाले सॉकेट की पंक्ति में बाईं ओर से दूसरा है। -![ग्रोव बटन D5 सॉकेट से जुड़ा हुआ](../../../../../translated_images/hi/pi-button.c7a1a4f55943341ce1baf1057658e9a205804d4131d258e820c93f951df0abf3.png) +![ग्रोव बटन D5 सॉकेट से जुड़ा हुआ](../../../../../translated_images/hi/pi-button.c7a1a4f55943341c.webp) ## ऑडियो कैप्चर करें diff --git a/translations/hi/6-consumer/lessons/1-speech-recognition/pi-microphone.md b/translations/hi/6-consumer/lessons/1-speech-recognition/pi-microphone.md index 7b2e23dad..7a4f58623 100644 --- a/translations/hi/6-consumer/lessons/1-speech-recognition/pi-microphone.md +++ b/translations/hi/6-consumer/lessons/1-speech-recognition/pi-microphone.md @@ -34,7 +34,7 @@ 1. यदि आप ReSpeaker 2-Mics Pi HAT का उपयोग कर रहे हैं, तो आप Grove बेस हैट को हटा सकते हैं और उसकी जगह ReSpeaker हैट को फिट कर सकते हैं। - ![ReSpeaker हैट के साथ एक रास्पबेरी पाई](../../../../../translated_images/hi/pi-respeaker-hat.f00fabe7dd039a93e2e0aa0fc946c9af0c6a9eb17c32fa1ca097fb4e384f69f0.png) + ![ReSpeaker हैट के साथ एक रास्पबेरी पाई](../../../../../translated_images/hi/pi-respeaker-hat.f00fabe7dd039a93.webp) आपको इस पाठ में बाद में एक Grove बटन की आवश्यकता होगी, लेकिन यह इस हैट में पहले से ही बिल्ट-इन है, इसलिए Grove बेस हैट की आवश्यकता नहीं है। diff --git a/translations/hi/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md b/translations/hi/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md index cef6eb36c..f9eb6dcf4 100644 --- a/translations/hi/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md +++ b/translations/hi/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md @@ -10,7 +10,7 @@ ✅ DMA के बारे में अधिक पढ़ें [Wikipedia पर डायरेक्ट मेमोरी एक्सेस पेज](https://wikipedia.org/wiki/Direct_memory_access) पर। -![माइक्रोफोन से ऑडियो ADC में जाता है और फिर DMAC में। यह एक बफर में लिखता है। जब यह बफर भर जाता है, तो इसे प्रोसेस किया जाता है और DMAC दूसरे बफर में लिखता है](../../../../../translated_images/hi/dmac-adc-buffers.4509aee49145c90bc2e1be472b8ed2ddfcb2b6a81ad3e559114aca55f5fff759.png) +![माइक्रोफोन से ऑडियो ADC में जाता है और फिर DMAC में। यह एक बफर में लिखता है। जब यह बफर भर जाता है, तो इसे प्रोसेस किया जाता है और DMAC दूसरे बफर में लिखता है](../../../../../translated_images/hi/dmac-adc-buffers.4509aee49145c90b.webp) DMAC ADC से ऑडियो को निश्चित अंतराल पर कैप्चर कर सकता है, जैसे 16KHz ऑडियो के लिए प्रति सेकंड 16,000 बार। यह कैप्चर किए गए डेटा को एक प्री-अलोकेटेड मेमोरी बफर में लिख सकता है, और जब यह भर जाता है, तो इसे प्रोसेस करने के लिए आपके कोड को उपलब्ध कराता है। इस मेमोरी का उपयोग ऑडियो कैप्चर में देरी कर सकता है, लेकिन आप कई बफर सेट कर सकते हैं। DMAC बफर 1 में लिखता है, फिर जब यह भर जाता है, तो आपके कोड को बफर 1 को प्रोसेस करने के लिए सूचित करता है, जबकि DMAC बफर 2 में लिखता है। जब बफर 2 भर जाता है, तो यह आपके कोड को सूचित करता है, और फिर बफर 1 में लिखने के लिए वापस जाता है। इस तरह, जब तक आप प्रत्येक बफर को भरने में लगने वाले समय से कम समय में प्रोसेस करते हैं, आप कोई डेटा नहीं खोएंगे। diff --git a/translations/hi/6-consumer/lessons/2-language-understanding/README.md b/translations/hi/6-consumer/lessons/2-language-understanding/README.md index 9c4b58e9a..8f7cf1be9 100644 --- a/translations/hi/6-consumer/lessons/2-language-understanding/README.md +++ b/translations/hi/6-consumer/lessons/2-language-understanding/README.md @@ -1,6 +1,6 @@ # भाषा को समझें -![इस पाठ का एक स्केच नोट अवलोकन](../../../../../translated_images/hi/lesson-22.6148ea28500d9e00c396aaa2649935fb6641362c8f03d8e5e90a676977ab01dd.jpg) +![इस पाठ का एक स्केच नोट अवलोकन](../../../../../translated_images/hi/lesson-22.6148ea28500d9e00.webp) > स्केच नोट [नित्या नरसिम्हन](https://github.com/nitya) द्वारा। बड़े संस्करण के लिए छवि पर क्लिक करें। @@ -46,7 +46,7 @@ ## भाषा समझने का मॉडल बनाएं -![LUIS लोगो](../../../../../translated_images/hi/luis-logo.5cb4f3e88c020ee6df4f614e8831f4a4b6809a7247bf52085fb48d629ef9be52.png) +![LUIS लोगो](../../../../../translated_images/hi/luis-logo.5cb4f3e88c020ee6.webp) आप LUIS (Language Understanding Intelligent Service) का उपयोग करके भाषा समझने वाले मॉडल बना सकते हैं, जो Microsoft की एक सेवा है और Cognitive Services का हिस्सा है। @@ -169,7 +169,7 @@ LUIS पोर्टल का उपयोग करने के निर् 1. प्रत्येक उदाहरण दर्ज करते समय, LUIS इकाइयों का पता लगाना शुरू कर देगा और किसी भी पाए गए इकाई को रेखांकित और लेबल करेगा। - ![LUIS द्वारा रेखांकित उदाहरण](../../../../../translated_images/hi/luis-intent-examples.25716580b2d2723cf1bafdf277d015c7f046d8cfa20f27bddf3a0873ec45fab7.png) + ![LUIS द्वारा रेखांकित उदाहरण](../../../../../translated_images/hi/luis-intent-examples.25716580b2d2723c.webp) ### कार्य - मॉडल को प्रशिक्षित और परीक्षण करें diff --git a/translations/hi/6-consumer/lessons/3-spoken-feedback/README.md b/translations/hi/6-consumer/lessons/3-spoken-feedback/README.md index 4f5743836..7fbc25847 100644 --- a/translations/hi/6-consumer/lessons/3-spoken-feedback/README.md +++ b/translations/hi/6-consumer/lessons/3-spoken-feedback/README.md @@ -1,6 +1,6 @@ # टाइमर सेट करें और मौखिक प्रतिक्रिया दें -![इस पाठ का स्केच नोट](../../../../../translated_images/hi/lesson-23.f38483e1d4df4828990d3f02d60e46c978b075d384ae7cb4f7bab738e107c850.jpg) +![इस पाठ का स्केच नोट](../../../../../translated_images/hi/lesson-23.f38483e1d4df4828.webp) > स्केच नोट [नित्या नरसिम्हन](https://github.com/nitya) द्वारा। बड़ी छवि देखने के लिए क्लिक करें। diff --git a/translations/hi/6-consumer/lessons/4-multiple-language-support/README.md b/translations/hi/6-consumer/lessons/4-multiple-language-support/README.md index c134d83cd..e63a9116e 100644 --- a/translations/hi/6-consumer/lessons/4-multiple-language-support/README.md +++ b/translations/hi/6-consumer/lessons/4-multiple-language-support/README.md @@ -1,6 +1,6 @@ # कई भाषाओं का समर्थन करें -![इस पाठ का स्केच नोट अवलोकन](../../../../../translated_images/hi/lesson-24.4246968ed058510ab275052e87ef9aa89c7b2f938915d103c605c04dc6cd5bb7.jpg) +![इस पाठ का स्केच नोट अवलोकन](../../../../../translated_images/hi/lesson-24.4246968ed058510a.webp) > स्केच नोट [नित्या नरसिम्हन](https://github.com/nitya) द्वारा। बड़ी छवि देखने के लिए क्लिक करें। @@ -74,7 +74,7 @@ ### कॉग्निटिव सेवाएं स्पीच सेवा -![स्पीच सेवा लोगो](../../../../../translated_images/hi/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![स्पीच सेवा लोगो](../../../../../translated_images/hi/azure-speech-logo.a1f08c4befb0159f.webp) पिछले कुछ पाठों में आपने जिस स्पीच सेवा का उपयोग किया है उसमें स्पीच पहचान के लिए अनुवाद क्षमताएं हैं। जब आप स्पीच को पहचानते हैं, तो आप न केवल उसी भाषा में स्पीच का टेक्स्ट, बल्कि अन्य भाषाओं में भी अनुरोध कर सकते हैं। @@ -82,7 +82,7 @@ ### कॉग्निटिव सेवाएं अनुवादक सेवा -![अनुवादक सेवा लोगो](../../../../../translated_images/hi/azure-translator-logo.c6ed3a4a433edfd2f11577eca105412c50b8396b194cbbd730723dd1d0793bcd.png) +![अनुवादक सेवा लोगो](../../../../../translated_images/hi/azure-translator-logo.c6ed3a4a433edfd2.webp) अनुवादक सेवा एक समर्पित अनुवाद सेवा है जो टेक्स्ट को एक भाषा से एक या अधिक लक्षित भाषाओं में अनुवाद कर सकती है। अनुवाद के अलावा, यह कई अतिरिक्त सुविधाओं का समर्थन करती है, जिसमें अश्लीलता को छिपाना शामिल है। यह आपको किसी विशेष शब्द या वाक्य के लिए एक विशिष्ट अनुवाद प्रदान करने की अनुमति भी देती है, उन शब्दों के साथ काम करने के लिए जिन्हें आप अनुवादित नहीं करना चाहते हैं, या एक विशिष्ट प्रसिद्ध अनुवाद के साथ। diff --git a/translations/hi/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md b/translations/hi/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md index acaa452ff..a4032a0e9 100644 --- a/translations/hi/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md +++ b/translations/hi/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md @@ -25,7 +25,7 @@ > > उदाहरण के लिए, यदि आप LUIS को अंग्रेजी में प्रशिक्षित करते हैं, लेकिन उपयोगकर्ता भाषा के रूप में फ्रेंच का उपयोग करना चाहते हैं, तो आप "set a 2 minute and 27 second timer" जैसे वाक्य को Bing Translate का उपयोग करके अंग्रेजी से फ्रेंच में अनुवाद कर सकते हैं, फिर **Listen translation** बटन का उपयोग करके अनुवाद को अपने माइक्रोफोन में बोल सकते हैं। > - > ![Bing Translate पर Listen translation बटन](../../../../../translated_images/hi/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Bing Translate पर Listen translation बटन](../../../../../translated_images/hi/bing-translate.348aa796d6efe2a9.webp) 1. `speech_api_key` के नीचे अनुवादक API कुंजी जोड़ें: diff --git a/translations/hi/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md b/translations/hi/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md index 1bd8d7ba6..cc0687ddb 100644 --- a/translations/hi/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md +++ b/translations/hi/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md @@ -37,7 +37,7 @@ > > उदाहरण के लिए, यदि आप LUIS को अंग्रेजी में प्रशिक्षित करते हैं, लेकिन उपयोगकर्ता भाषा के रूप में फ्रेंच का उपयोग करना चाहते हैं, तो आप "set a 2 minute and 27 second timer" जैसे वाक्यों को Bing Translate का उपयोग करके अंग्रेजी से फ्रेंच में अनुवाद कर सकते हैं, फिर **Listen translation** बटन का उपयोग करके अनुवाद को अपने माइक्रोफोन में बोल सकते हैं। > - > ![Bing Translate पर Listen translation बटन](../../../../../translated_images/hi/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Bing Translate पर Listen translation बटन](../../../../../translated_images/hi/bing-translate.348aa796d6efe2a9.webp) 1. `recognizer_config` और `recognizer` घोषणाओं को निम्नलिखित से बदलें: diff --git a/translations/hi/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md b/translations/hi/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md index 1f43a5b48..66b6fb0af 100644 --- a/translations/hi/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md +++ b/translations/hi/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md @@ -105,7 +105,7 @@ > > उदाहरण के लिए, यदि आप LUIS को अंग्रेजी में प्रशिक्षित करते हैं, लेकिन उपयोगकर्ता भाषा के रूप में फ्रेंच का उपयोग करना चाहते हैं, तो आप Bing Translate का उपयोग करके "set a 2 minute and 27 second timer" जैसे वाक्यों को अंग्रेजी से फ्रेंच में अनुवाद कर सकते हैं, फिर **Listen translation** बटन का उपयोग करके अनुवाद को अपने माइक्रोफोन में बोल सकते हैं। > - > ![Bing Translate पर Listen translation बटन](../../../../../translated_images/hi/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Bing Translate पर Listen translation बटन](../../../../../translated_images/hi/bing-translate.348aa796d6efe2a9.webp) 1. `SPEECH_LOCATION` के नीचे अनुवादक API कुंजी और स्थान जोड़ें: diff --git a/translations/hi/README.md b/translations/hi/README.md index 84b1f9fe7..6152f3fb6 100644 --- a/translations/hi/README.md +++ b/translations/hi/README.md @@ -1,212 +1,203 @@ -[![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/) - ### Azure AI Foundry समुदाय में शामिल हों -यदि आप अटक जाते हैं या AI ऐप्स बनाने के बारे में कोई सवाल है। MCP के बारे में बातचीत में साथी शिक्षार्थियों और अनुभवी डेवलपर्स से जुड़ें। यह एक सहायक समुदाय है जहाँ प्रश्नों का स्वागत है और ज्ञान स्वतंत्र रूप से साझा किया जाता है। - -[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) +यदि आप फंस जाते हैं या AI ऐप बनाने के बारे में कोई सवाल है। MCP के बारे में चर्चा में साथी शिक्षार्थियों और अनुभवी डेवलपर्स से जुड़ें। यह एक सहायक समुदाय है जहां प्रश्नों का स्वागत है और ज्ञान स्वतंत्र रूप से साझा किया जाता है। -यदि आपके पास उत्पाद प्रतिक्रिया या निर्माण के दौरान त्रुटियाँ हों तो यहां जाएं: - -[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) - -इन संसाधनों का उपयोग शुरू करने के लिए निम्न चरणों का पालन करें: -1. **रिपॉजिटरी फ़орк करें**: क्लिक करें [![GitHub forks](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) -2. **रिपॉजिटरी क्लोन करें**: `git clone https://github.com/microsoft/IoT-For-Beginners.git` -3. [**Microsoft Foundry Discord में शामिल हों और विशेषज्ञों तथा साथियों से मिलें**](https://discord.com/invite/ByRwuEEgH4) +यदि आपके पास उत्पाद प्रतिक्रिया या निर्माण के दौरान त्रुटियां हैं तो यहाँ जाएं: +इन संसाधनों का उपयोग शुरू करने के लिए इन चरणों का पालन करें: +1. **रिपॉजिटरी से फोर्क करें**: क्लिक करें [![GitHub forks](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) +2. **रिपॉजिटरी क्लोन करें**: `git clone https://github.com/microsoft/IoT-For-Beginners.git` +3. [**Microsoft Foundry Discord में शामिल हों और विशेषज्ञों तथा सह डेवलपर्स से मिलें**](https://discord.com/invite/ByRwuEEgH4) ### 🌐 बहुभाषी समर्थन -#### GitHub Action के माध्यम से समर्थित (स्वचालित और हमेशा अपडेटेड) - - -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](./README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +#### GitHub क्रिया के माध्यम से समर्थित (स्वचालित और हमेशा अद्यतित) -> **स्थानीय रूप से क्लोन करना पसंद करते हैं?** - -> इस रिपॉजिटरी में 50+ भाषा अनुवाद शामिल हैं जो डाउनलोड आकार को काफी बढ़ा देते हैं। बिना अनुवाद के क्लोन करने के लिए, sparse checkout का उपयोग करें: +> **स्थानीय रूप से क्लोन करना पसंद है?** +> +> इस रिपॉजिटरी में 50+ भाषा अनुवाद शामिल हैं जो डाउनलोड आकार को बहुत बढ़ा देते हैं। बिना अनुवाद के क्लोन करने के लिए sparse checkout का उपयोग करें: +> +> **Bash / macOS / Linux:** > ```bash > git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git > cd IoT-For-Beginners > git sparse-checkout set --no-cone '/*' '!translations' '!translated_images' > ``` -> इससे आपको पूरे पाठ्यक्रम को पूरा करने के लिए आवश्यक सब कुछ बहुत तेज़ डाउनलोड के साथ मिल जाएगा। - +> +> **CMD (Windows):** +> ```cmd +> git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git +> cd IoT-For-Beginners +> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" +> ``` +> +> यह आपको पाठ्यक्रम को पूरा करने के लिए आवश्यक सब कुछ देता है और डाउनलोड बहुत तेज़ होता है। -# शुरुआती लोगों के लिए IoT - एक पाठ्यक्रम +# IoT शुरुआती लोगों के लिए - एक पाठ्यक्रम -Microsoft के Azure Cloud Advocates गर्व के साथ एक 12-सप्ताह, 24-पाठ का पाठ्यक्रम पेश कर रहे हैं जो पूरी तरह से IoT मूल बातें के बारे में है। प्रत्येक पाठ में पूर्व और पश्चात क्विज़ शामिल हैं, पाठ पूरा करने के लिए लिखित निर्देश, एक समाधान, असाइनमेंट और बहुत कुछ। हमारी परियोजना-आधारित शिक्षण पद्धति आपको निर्माण करते हुए सीखने की अनुमति देती है, जो नई क्षमताओं को 'टिकाए रखने' का bewezen तरीका है। +माइक्रोसॉफ्ट के Azure क्लाउड अधिवक्ताओं को IoT मूल बातें सिखाने वाला 12 सप्ताह, 24-लक्ष्य वाला पाठ्यक्रम प्रस्तुत करते हुए खुशी हो रही है। प्रत्येक पाठ में पूर्व और पश्चात क्विज, लिखित निर्देश, समाधान, असाइनमेंट और अधिक शामिल हैं। हमारी परियोजना-आधारित शिक्षण पद्धति आपको बनाते हुए सीखने देती है, जो नई कौशल को अच्छे से सीखने का एक प्रमाणित तरीका है। -परियोजनाएं भोजन के खेत से तालिका तक यात्रा को कवर करती हैं। इसमें खेती, लॉजिस्टिक्स, विनिर्माण, रिटेल और उपभोक्ता शामिल हैं — सभी IoT उपकरणों के लिए लोकप्रिय उद्योग क्षेत्र। +परियोजनाएं खाद्य यात्रा को खेत से मेज तक कवर करती हैं। इसमें खेती, लॉजिस्टिक्स, निर्माण, रिटेल और उपभोक्ता शामिल हैं – ये सभी IoT उपकरणों के लिए लोकप्रिय उद्योग क्षेत्र हैं। -![पाठ्यक्रम के लिए रोड मैप जो 24 पाठों को आवरण करता है जिनमें इंट्रो, खेती, परिवहन, प्रसंस्करण, रिटेल और खाना पकाने शामिल हैं](../../translated_images/hi/Roadmap.bb1dec285dda0eda.webp) +![पाठ्यक्रम के लिए 24 पाठों का रोडमैप जो परिचय, खेती, परिवहन, प्रसंस्करण, रिटेल और खाना पकाने को कवर करता है](../../translated_images/hi/Roadmap.bb1dec285dda0eda.webp) -> स्केचनोट द्वारा [Nitya Narasimhan](https://github.com/nitya)। बड़ी छवि के लिए चित्र पर क्लिक करें। +> स्केच नोट [Nitya Narasimhan](https://github.com/nitya) द्वारा। बड़ी प्रति के लिए चित्र पर क्लिक करें। -**हमारे लेखकों [Jen Fox](https://github.com/jenfoxbot), [Jen Looper](https://github.com/jlooper), [Jim Bennett](https://github.com/jimbobbennett), और हमारे स्केचनोट कलाकार [Nitya Narasimhan](https://github.com/nitya) को हार्दिक धन्यवाद।** +**हमारे लेखकों [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), [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/)।** +**साथ ही हमारे [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/)।** टीम से मिलिए! -[![Promo video](../../images/IOT.gif)](https://youtu.be/-wippUJRi5k) +[![प्रमो वीडियो](../../images/IOT.gif)](https://youtu.be/-wippUJRi5k) **Gif द्वारा** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 परियोजना के बारे में वीडियो के लिए ऊपर की छवि पर क्लिक करें! +> 🎥 वीडियो के लिए ऊपर दिए चित्र पर क्लिक करें! -> **शिक्षकों** के लिए, हमने इस पाठ्यक्रम के उपयोग पर कुछ सुझाव [शामिल किए हैं](for-teachers.md)। यदि आप अपने खुद के पाठ बनाना चाहते हैं, तो हमने एक [पाठ टेम्पलेट](lesson-template/README.md) भी शामिल किया है। +> **शिक्षकों**, हमने इस पाठ्यक्रम के लिए [कुछ सुझाव शामिल किए हैं](for-teachers.md). यदि आप अपने स्वयं के पाठ बनाना चाहते हैं, तो हमने एक [पाठ टेम्पलेट](lesson-template/README.md) भी शामिल किया है। -> **[छात्रों](https://aka.ms/student-page)**, इस पाठ्यक्रम का उपयोग अपने आप करने के लिए, पूरी रिपॉजिटरी फ़орк करें और अभ्यास खुद करें, प्रारंभ में पूर्व-व्याख्यान क्विज़ के साथ, फिर व्याख्यान पढ़ें और बाकी गतिविधियों को पूरा करें। परियोजनाओं को समाधान कोड को कॉपी करने के बजाय पाठों को समझकर बनाने का प्रयास करें; हालाँकि वह कोड प्रत्येक परियोजना-आधारित पाठ में /solutions फ़ोल्डर में उपलब्ध है। एक अन्य विचार यह हो सकता है कि दोस्तों के साथ एक अध्ययन समूह बनाएं और सामग्रियों को एक साथ पढ़ें। आगे के अध्ययन के लिए, हम [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn) की सिफारिश करते हैं। +> **[छात्रों](https://aka.ms/student-page)**, यदि आप यह पाठ्यक्रम स्वयं उपयोग करना चाहते हैं, तो पूरे रिपॉजिटरी को फोर्क करें और अभ्यास स्वयं पूरा करें, एक पूर्व-लेक्चर क्विज़ से शुरू करें, फिर व्याख्यान पढ़ें और बाकी गतिविधियां पूर्ण करें। प्रयास करें कि समाधान कोड की नकल करने के बजाय पाठ को समझकर परियोजनाएं बनाएं; हालांकि यह कोड प्रत्येक परियोजना-केन्द्रित पाठ में /solutions फ़ोल्डर में उपलब्ध है। एक अन्य विचार यह है कि दोस्तों के साथ अध्ययन समूह बनाएं और सामग्री साथ में पढ़ें। आगे अध्ययन के लिए, हम [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn) की अनुशंसा करते हैं। -इस कोर्स का वीडियो अवलोकन देखने के लिए, यह वीडियो देखें: +इस पाठ्यक्रम का वीडियो अवलोकन देखने के लिए यह वीडियो देखें: -[![Promo video](https://img.youtube.com/vi/bccEMm8gRuc/0.jpg)](https://youtube.com/watch?v=bccEMm8gRuc "Promo video") +[![प्रमो वीडियो](https://img.youtube.com/vi/bccEMm8gRuc/0.jpg)](https://youtube.com/watch?v=bccEMm8gRuc "प्रमो वीडियो") -> 🎥 परियोजना के बारे में वीडियो के लिए ऊपर की छवि पर क्लिक करें! +> 🎥 वीडियो के लिए ऊपर दिए चित्र पर क्लिक करें! -## शिक्षाशास्त्र +## शिक्षण पद्धति -इस पाठ्यक्रम को बनाते समय हमने दो शिक्षाशास्त्र के सिद्धांत चुने हैं: यह सुनिश्चित करना कि यह परियोजना-आधारित हो और इसमें बार-बार क्विज़ शामिल हों। इस श्रृंखला के अंत तक, छात्र एक पौधे की निगरानी और पानी देने वाली प्रणाली, एक वाहन ट्रैकर, खाद्य निगरानी और जांच के लिए एक स्मार्ट फैक्ट्री सेटअप, और एक आवाज नियंत्रित खाना पकाने वाला टाइमर बनाएंगे, और इंटरनेट ऑफ़ थिंग्स के मूल सिद्धांत सीखेंगे जिसमें उपकरण कोड लिखना, क्लाउड से कनेक्ट करना, टेलीमेट्री का विश्लेषण करना और एज पर AI चलाना शामिल है। +इस पाठ्यक्रम को बनाते समय हमने दो शिक्षण सिद्धांत चुने हैं: इसे परियोजना-आधारित रखना और नियमित क्विज़ शामिल करना। इस श्रृंखला के अंत तक, छात्र एक पौधा निगरानी और पानी देने की प्रणाली, एक वाहन ट्रैकर, खाद्य निगरानी और जाँच के लिए स्मार्ट फैक्ट्री सेटअप, और एक आवाज़-नियंत्रित खाना पकाने वाला टाइमर बनाएंगे, साथ ही IoT की मूल बातें सीखेंगे जैसे कि डिवाइस कोड लिखना, क्लाउड से कनेक्ट करना, टेलीमेट्री विश्लेषण करना और एज पर AI चलाना। -सामग्री को परियोजनाओं के अनुसार संरेखित करके, प्रक्रिया छात्रों के लिए अधिक रोचक बनती है और अवधारणाओं की पकड़ बढ़ती है। +इस बात को सुनिश्चित करके कि सामग्री परियोजनाओं के अनुरूप हो, प्रक्रिया छात्रों के लिए और अधिक आकर्षक बनती है और अवधारणाओं को बेहतर बनाए रखने में मदद मिलती है। -इसके अतिरिक्त, कक्षा से पहले एक हल्का क्विज़ छात्र की सीखने की मंशा तय करता है, जबकि कक्षा के बाद दूसरा क्विज़ अधिक अवधारण सुनिश्चित करता है। यह पाठ्यक्रम लचीला और मजेदार बनाने के लिए डिज़ाइन किया गया है और इसे पूरी तरह या आंशिक रूप से लिया जा सकता है। परियोजनाएं छोटी शुरू होती हैं और 12-सप्ताह की अवधि के अंत तक धीरे-धीरे जटिल होती जाती हैं। +इसके अलावा, कक्षा से पहले एक कम-दबाव वाला क्विज़ छात्र को विषय सीखने की मंशा सेट करता है, जबकि कक्षा के बाद दूसरा क्विज़ और अधिक अवधारणाओं के विरूपण को सुनिश्चित करता है। यह पाठ्यक्रम लचीला और मज़ेदार बनाया गया है और इसे पूरी तरह या आंशिक रूप में लिया जा सकता है। परियोजनाएं छोटी शुरू होती हैं और 12 सप्ताह के चक्र के अंत तक धीरे-धीरे जटिल होती जाती हैं। -प्रत्येक परियोजना वास्तविक-विश्व हार्डवेयर पर आधारित है जो छात्रों और शौकियों के लिए उपलब्ध है। प्रत्येक परियोजना में संबंधित पृष्ठभूमि ज्ञान प्रदान किया जाता है ताकि वे IoT समाधान और अध्ययन को उस प्रकार की वास्तविक दुनिया की समस्या के संदर्भ में सोच सकें जिसे उन्हें IoT डेवलपर के रूप में हल करने के लिए कहा जा सकता है। छात्र वे समाधान क्यों बना रहे हैं यह सीखते हैं, और अंतिम उपयोगकर्ता की सराहना करते हैं। +प्रत्येक परियोजना वास्तविक दुनिया के हार्डवेयर पर आधारित होती है जो छात्रों और शौकिया लोगों के लिए उपलब्ध है। प्रत्येक परियोजना अपने विशिष्ट डोमेन का अध्ययन करती है, जिससे प्रासंगिक पृष्ठभूमि ज्ञान प्रदान होता है। सफल डेवलपर बनने के लिए अपने समाधान के क्षेत्र को समझना मददगार होता है, और यह पृष्ठभूमि ज्ञान छात्रों को उनके IoT समाधानों और उनके अध्ययन को उस प्रकार की वास्तविक समस्या के संदर्भ में सोचने में मदद करता है, जिसे एक IoT डेवलपर के रूप में हल करने के लिए कहा जा सकता है। छात्र उन समाधानों के 'क्यों' को समझते हैं जो वे बना रहे हैं, और अंतिम उपयोगकर्ता के लिए एक सराहना प्राप्त करते हैं। ## हार्डवेयर +हम परियोजनाओं के लिए व्यक्तिगत पसंद, प्रोग्रामिंग भाषा ज्ञान या प्राथमिकताओं, सीखने के लक्ष्यों और उपलब्धता के आधार पर उपयोग करने के लिए दो प्रकार के IoT हार्डवेयर विकल्प रखते हैं। हमने उन लोगों के लिए एक 'वर्चुअल हार्डवेयर' संस्करण भी प्रदान किया है जिनके पास हार्डवेयर तक पहुंच नहीं है, या जो खरीदारी करने से पहले अधिक सीखना चाहते हैं। आप [hardware page](./hardware.md) पर अधिक पढ़ सकते हैं और एक 'शॉपिंग लिस्ट' पा सकते हैं, जिसमें हमारे मित्र Seeed Studio से पूर्ण किट खरीदने के लिंक भी शामिल हैं। -हमारे पास परियोजनाओं के लिए दो IoT हार्डवेयर विकल्प हैं, जो व्यक्तिगत पसंद, प्रोग्रामिंग भाषा ज्ञान या प्राथमिकताओं, सीखने के उद्देश्यों और उपलब्धता पर निर्भर करते हैं। हम उन लोगों के लिए एक 'वर्चुअल हार्डवेयर' संस्करण भी प्रदान करते हैं जिनके पास हार्डवेयर तक पहुंच नहीं है, या जो खरीदारी से पहले अधिक सीखना चाहते हैं। आप [hardware page](./hardware.md) पर और पढ़ सकते हैं और 'शॉपिंग सूची' पा सकते हैं, जिसमें हमारे दोस्तों Seeed Studio से पूर्ण किट खरीदने के लिंक शामिल हैं। -> 💁 हमारे [आचार संहिता](CODE_OF_CONDUCT.md), [योगदान](CONTRIBUTING.md), और [अनुवाद](TRANSLATIONS.md) दिशानिर्देश देखें। हम आपकी रचनात्मक प्रतिक्रिया का स्वागत करते हैं! -> -> 🔧 समस्या आ रही है? सामान्य समस्याओं के समाधान के लिए हमारी [समस्या निवारण गाइड](TROUBLESHOOTING.md) देखें। +> 💁 हमारे [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), और [Translation](TRANSLATIONS.md) दिशानिर्देश देखें। हम आपकी रचनात्मक प्रतिक्रिया का स्वागत करते हैं! +> +> 🔧 समस्या आ रही है? आम समस्याओं के समाधान के लिए हमारे [Troubleshooting Guide](TROUBLESHOOTING.md) को देखें। ## प्रत्येक पाठ में शामिल हैं: -- स्केचनोट -- वैकल्पिक पूरक वीडियो -- प्री-लेसन वार्मअप क्विज़ -- लिखित पाठ -- प्रोजेक्ट-आधारित पाठों के लिए, प्रोजेक्ट बनाने के चरण-दर-चरण गाइड -- ज्ञान जांच -- एक चुनौती -- पूरक पढ़ाई -- असाइनमेंट -- [पोस्ट-लेसन क्विज़](https://ff-quizzes.netlify.app/en/) +- स्केचनोट +- वैकल्पिक पूरक वीडियो +- पूर्व-पाठ वार्मअप क्विज़ +- लिखित पाठ +- परियोजना-आधारित पाठों के लिए, परियोजना बनाने के लिए चरण-दर-चरण मार्गदर्शिका +- ज्ञान जांच +- एक चुनौती +- पूरक पठन +- असाइनमेंट +- [पाठ के बाद क्विज़](https://ff-quizzes.netlify.app/en/) -> **क्विज़ के बारे में एक नोट**: सभी क्विज़ क्विज़-एप फोल्डर में होते हैं, जिसमें 48 कुल क्विज़ हैं, प्रत्येक में तीन प्रश्न होते हैं। वे पाठों के भीतर लिंक किए गए हैं, लेकिन क्विज़ ऐप को लोकली चला सकते हैं या Azure पर डिप्लॉय कर सकते हैं; `quiz-app` फोल्डर में निर्देशों का पालन करें। इन्हें धीरे-धीरे स्थानीयकृत किया जा रहा है। +> **क्विज़ के बारे में एक नोट**: सभी क्विज़ quiz-app फ़ोल्डर में संचित हैं, जिनमें कुल 48 क्विज़ हैं, प्रत्येक में तीन प्रश्न। वे पाठों के भीतर लिंक किए गए हैं लेकिन quiz app को स्थानीय रूप से चलाया जा सकता है या Azure पर डिप्लॉय किया जा सकता है; 'quiz-app' फ़ोल्डर में दिए गए निर्देशों का पालन करें। इन्हें धीरे-धीरे स्थानीयकृत किया जा रहा है। ## पाठ -| | परियोजना नाम | सिखाए गए अवधारणाएं | सीखने के उद्देश्य | लिंक्ड पाठ | -| :---: | :------------------------------------: | :---------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------: | -| 01 | [शुरुआत करना](./1-getting-started/README.md) | IoT का परिचय | IoT के मूल सिद्धांत सीखें और IoT समाधानों के मूलभूत घटकों जैसे सेंसर और क्लाउड सेवाओं के बारे में जानें जब आप अपना पहला IoT उपकरण सेट कर रहे हों | [IoT का परिचय](./1-getting-started/lessons/1-introduction-to-iot/README.md) | -| 02 | [शुरुआत करना](./1-getting-started/README.md) | IoT में गहराई से जाना | एक IoT सिस्टम के घटकों के बारे में अधिक जानें, साथ ही माइक्रोकंट्रोलर और सिंगल-बोर्ड कंप्यूटर्स के बारे में | [IoT में गहराई से जाना](./1-getting-started/lessons/2-deeper-dive/README.md) | -| 03 | [शुरुआत करना](./1-getting-started/README.md) | सेंसर और एक्ट्यूएटर्स के साथ भौतिक दुनिया के साथ इंटरैक्ट करें | भौतिक दुनिया से डेटा इकट्ठा करने के लिए सेंसर और प्रतिक्रिया भेजने के लिए एक्ट्यूएटर्स के बारे में जानें, जब आप एक नाइटलाइट बना रहे हों | [सेंसर और एक्ट्यूएटर्स के साथ भौतिक दुनिया के साथ इंटरैक्ट करें](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | -| 04 | [शुरुआत करना](./1-getting-started/README.md) | अपने डिवाइस को इंटरनेट से कनेक्ट करें | अपने नाइटलाइट को एक MQTT ब्रोकर से जोड़कर IoT उपकरण को इंटरनेट से कनेक्ट करने के बारे में जानें ताकि संदेश भेजें और प्राप्त करें | [अपने डिवाइस को इंटरनेट से कनेक्ट करें](./1-getting-started/lessons/4-connect-internet/README.md) | -| 05 | [फार्म](./2-farm/README.md) | पौधों की वृद्धि का पूर्वानुमान | IoT डिवाइस द्वारा कब्जा किए गए तापमान डेटा का उपयोग करके पौधों की वृद्धि का पूर्वानुमान लगाना | [पौधों की वृद्धि का पूर्वानुमान](./2-farm/lessons/1-predict-plant-growth/README.md) | -| 06 | [फार्म](./2-farm/README.md) | मिट्टी की नमी का पता लगाएं | मिट्टी की नमी का पता लगाने और मिट्टी नमी सेंसर को कैलिब्रेट करने के बारे में जानें | [मिट्टी की नमी का पता लगाएं](./2-farm/lessons/2-detect-soil-moisture/README.md) | -| 07 | [फार्म](./2-farm/README.md) | स्वचालित पौधों को पानी देना | रिले और MQTT का उपयोग करके पानी देने को स्वचालित और टाइमिंग करना सीखें | [स्वचालित पौधों को पानी देना](./2-farm/lessons/3-automated-plant-watering/README.md) | -| 08 | [फार्म](./2-farm/README.md) | अपने पौधे को क्लाउड में माइग्रेट करें | क्लाउड और क्लाउड-होस्टेड IoT सेवाओं के बारे में जानें और अपने पौधे को एक सार्वजनिक MQTT ब्रोकर के बजाय इनमें से किसी से कनेक्ट करना | [अपने पौधे को क्लाउड में माइग्रेट करें](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | -| 09 | [फार्म](./2-farm/README.md) | अपने एप्लिकेशन लॉजिक को क्लाउड में माइग्रेट करें | क्लाउड में ऐसा एप्लिकेशन लॉजिक लिखने के बारे में जानें जो IoT संदेशों पर प्रतिक्रिया देता हो | [अपने एप्लिकेशन लॉजिक को क्लाउड में माइग्रेट करें](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | -| 10 | [फार्म](./2-farm/README.md) | अपने पौधे को सुरक्षित रखें | IoT के साथ सुरक्षा और अपने पौधे को कुंजियों और प्रमाणपत्रों के साथ सुरक्षित रखने के बारे में जानें | [अपने पौधे को सुरक्षित रखें](./2-farm/lessons/6-keep-your-plant-secure/README.md) | -| 11 | [परिवहन](./3-transport/README.md) | स्थान ट्रैकिंग | IoT उपकरणों के लिए GPS स्थान ट्रैकिंग के बारे में जानें | [स्थान ट्रैकिंग](./3-transport/lessons/1-location-tracking/README.md) | -| 12 | [परिवहन](./3-transport/README.md) | स्थान डेटा संग्रहीत करें | बाद में विज़ुअलाइज़ या विश्लेषण के लिए IoT डेटा संग्रहीत करने के बारे में जानें | [स्थान डेटा संग्रहीत करें](./3-transport/lessons/2-store-location-data/README.md) | -| 13 | [परिवहन](./3-transport/README.md) | स्थान डेटा विज़ुअलाइज़ करें | मानचित्र पर स्थान डेटा का विज़ुअलाइज़ेशन और मानचित्र कैसे वास्तविक 3डी दुनिया का 2 आयामी रूप दिखाते हैं, इसके बारे में जानें | [स्थान डेटा विज़ुअलाइज़ करें](./3-transport/lessons/3-visualize-location-data/README.md) | -| 14 | [परिवहन](./3-transport/README.md) | जियोफेन्स | जियोफेन्स के बारे में जानें, और वे कैसे सप्लाई चैन में वाहनों के उनके गंतव्य के करीब आने पर अलर्ट देने के लिए उपयोग किए जा सकते हैं | [जियोफेन्स](./3-transport/lessons/4-geofences/README.md) | -| 15 | [उत्पादन](./4-manufacturing/README.md) | एक फल गुणवत्ता डिटेक्टर प्रशिक्षित करें | क्लाउड में एक इमेज क्लासिफायर को प्रशिक्षित करने के बारे में जानें जो फल की गुणवत्ता का पता लगाता है | [एक फल गुणवत्ता डिटेक्टर प्रशिक्षित करें](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | -| 16 | [उत्पादन](./4-manufacturing/README.md) | IoT डिवाइस से फल गुणवत्ता जांचें | अपने फल गुणवत्ता डिटेक्टर को एक IoT डिवाइस से उपयोग करने के बारे में जानें | [IoT डिवाइस से फल गुणवत्ता जांचें](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | -| 17 | [उत्पादन](./4-manufacturing/README.md) | एज पर अपना फल डिटेक्टर चलाएं | एज पर IoT डिवाइस पर अपना फल डिटेक्टर चलाने के बारे में जानें | [एज पर अपना फल डिटेक्टर चलाएं](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | -| 18 | [उत्पादन](./4-manufacturing/README.md) | सेंसर से फल गुणवत्ता डिटेक्शन को ट्रिगर करें | सेंसर से फल गुणवत्ता डिटेक्शन को ट्रिगर करने के बारे में जानें | [सेंसर से फल गुणवत्ता डिटेक्शन को ट्रिगर करें](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | -| 19 | [रिटेल](./5-retail/README.md) | स्टॉक डिटेक्टर ट्रेन करें | वस्तु पहचान का उपयोग करके एक स्टॉक डिटेक्टर को प्रशिक्षित करना सीखें जो दुकान में स्टॉक की गिनती करता है | [स्टॉक डिटेक्टर ट्रेन करें](./5-retail/lessons/1-train-stock-detector/README.md) | -| 20 | [रिटेल](./5-retail/README.md) | IoT डिवाइस से स्टॉक जांचें | वस्तु पहचान मॉडल का उपयोग करके IoT डिवाइस से स्टॉक जांचने के बारे में जानें | [IoT डिवाइस से स्टॉक जांचें](./5-retail/lessons/2-check-stock-device/README.md) | -| 21 | [उपभोक्ता](./6-consumer/README.md) | IoT डिवाइस से भाषण की पहचान करें | IoT डिवाइस से भाषण की पहचान कैसे करें यह सीखें ताकि एक स्मार्ट टाइमर बनाया जा सके | [IoT डिवाइस से भाषण की पहचान करें](./6-consumer/lessons/1-speech-recognition/README.md) | -| 22 | [उपभोक्ता](./6-consumer/README.md) | भाषा को समझें | IoT डिवाइस को बोले गए वाक्यों को समझने के बारे में जानें | [भाषा को समझें](./6-consumer/lessons/2-language-understanding/README.md) | -| 23 | [उपभोक्ता](./6-consumer/README.md) | टाइमर सेट करें और बोले गए फीडबैक प्रदान करें | IoT डिवाइस पर टाइमर कैसे सेट करें और जब टाइमर सेट होता है और समाप्त होता है तो बोले गए फीडबैक कैसे दें, यह सीखें | [टाइमर सेट करें और बोले गए फीडबैक दें](./6-consumer/lessons/3-spoken-feedback/README.md) | -| 24 | [उपभोक्ता](./6-consumer/README.md) | कई भाषाओं का समर्थन करें | कई भाषाओं का समर्थन कैसे करें, दोनों बोले जाने वाले और आपके स्मार्ट टाइमर से प्रतिक्रियाओं में | [कई भाषाओं का समर्थन करें](./6-consumer/lessons/4-multiple-language-support/README.md) | - -## ऑफलाइन पहुँच - -आप इस दस्तावेज़ को ऑफलाइन चला सकते हैं [Docsify](https://docsify.js.org/#/) का उपयोग करके। इस रेपो को फ़ोर्क करें, अपने स्थानीय मशीन पर [Docsify इंस्टॉल करें](https://docsify.js.org/#/quickstart), और फिर इस रेपो के रूट फ़ोल्डर में `docsify serve` टाइप करें। वेबसाइट आपके लोकलहोस्ट पर पोर्ट 3000 पर सर्व की जाएगी: `localhost:3000`। +| | परियोजना का नाम | सिखाए गए अवधारणाएँ | सीखने के उद्देश्य | लिंक किया गया पाठ | +| :---: | :------------------------------------: | :---------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------: | +| 01 | [शुरुआत करना](./1-getting-started/README.md) | IoT का परिचय | IoT के मूल सिद्धांतों और IoT समाधानों के बुनियादी घटकों जैसे सेंसर्स और क्लाउड सेवाओं को सीखें, जब आप अपना पहला IoT डिवाइस सेटअप कर रहे हों | [IoT का परिचय](./1-getting-started/lessons/1-introduction-to-iot/README.md) | +| 02 | [शुरुआत करना](./1-getting-started/README.md) | IoT में गहरा गोता | IoT सिस्टम के घटकों के बारे में अधिक जानें, साथ ही माइक्रोकंट्रोलर और सिंगल-बोर्ड कंप्यूटर के बारे में | [IoT में गहरा गोता](./1-getting-started/lessons/2-deeper-dive/README.md) | +| 03 | [शुरुआत करना](./1-getting-started/README.md) | सेंसर्स और एक्ट्यूएटर्स के साथ भौतिक दुनिया के साथ इंटरैक्ट करें | भौतिक दुनिया से डेटा इकट्ठा करने के लिए सेंसर्स और प्रतिक्रिया भेजने के लिए एक्ट्यूएटर्स के बारे में जानें, साथ ही एक नाइटलाइट बनाएं | [सेंसर्स और एक्ट्यूएटर्स के साथ भौतिक दुनिया के साथ इंटरैक्ट करें](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | +| 04 | [शुरुआत करना](./1-getting-started/README.md) | अपने डिवाइस को इंटरनेट से कनेक्ट करें | इंटरनेट से संदेश भेजने और प्राप्त करने के लिए अपने नाइटलाइट को MQTT ब्रोकरेज से कनेक्ट करते हुए IoT डिवाइस को इंटरनेट से कनेक्ट करने के बारे में जानें | [अपने डिवाइस को इंटरनेट से कनेक्ट करें](./1-getting-started/lessons/4-connect-internet/README.md) | +| 05 | [फार्म](./2-farm/README.md) | पौधे की 성장 की भविष्यवाणी | IoT डिवाइस द्वारा कैप्चर किए गए तापमान डेटा का उपयोग करके पौधे की वृद्धि की भविष्यवाणी कैसे करें सीखें | [पौधे की वृद्धि की भविष्यवाणी](./2-farm/lessons/1-predict-plant-growth/README.md) | +| 06 | [फार्म](./2-farm/README.md) | मिट्टी की नमी का पता लगाएं | मिट्टी की नमी को कैसे पता करें और मिट्टी की नमी सेंसर को कैलिब्रेट करें | [मिट्टी की नमी का पता लगाएं](./2-farm/lessons/2-detect-soil-moisture/README.md) | +| 07 | [फार्म](./2-farm/README.md) | पौधों को स्वचालित रूप से पानी देना | रिले और MQTT का उपयोग करके पानी देने को स्वचालित और समयबद्ध कैसे करें | [स्वचालित पौधों को पानी देना](./2-farm/lessons/3-automated-plant-watering/README.md) | +| 08 | [फार्म](./2-farm/README.md) | अपने पौधे को क्लाउड में स्थानांतरित करें | क्लाउड और क्लाउड-होस्टेड IoT सेवाओं के बारे में जानें और जनसाधारण MQTT ब्रोकरेज की बजाय अपने पौधे को इनमें से किसी एक से कैसे जोड़ा जाता है | [अपने पौधे को क्लाउड में स्थानांतरित करें](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | +| 09 | [फार्म](./2-farm/README.md) | अपने एप्लिकेशन लॉजिक को क्लाउड में स्थानांतरित करें | क्लाउड में एप्लिकेशन लॉजिक कैसे लिखें जो IoT संदेशों का जवाब देता है | [अपने एप्लिकेशन लॉजिक को क्लाउड में स्थानांतरित करें](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | +| 10 | [फार्म](./2-farm/README.md) | अपने पौधे को सुरक्षित रखें | IoT सुरक्षा के बारे में जानें और कुंजियाँ और प्रमाणपत्रों के साथ अपने पौधे को सुरक्षित रखने के तरीके | [अपने पौधे को सुरक्षित रखें](./2-farm/lessons/6-keep-your-plant-secure/README.md) | +| 11 | [ट्रांसपोर्ट](./3-transport/README.md) | स्थान ट्रैकिंग | IoT डिवाइस के लिए GPS स्थान ट्रैकिंग के बारे में जानें | [स्थान ट्रैकिंग](./3-transport/lessons/1-location-tracking/README.md) | +| 12 | [ट्रांसपोर्ट](./3-transport/README.md) | स्थान डेटा संग्रहीत करें | बाद में दिखाने या विश्लेषण के लिए IoT डेटा कैसे संग्रहित करें | [स्थान डेटा संग्रहीत करें](./3-transport/lessons/2-store-location-data/README.md) | +| 13 | [ट्रांसपोर्ट](./3-transport/README.md) | स्थान डेटा का दृश्य बनाएं | एक नक्शे पर स्थान डेटा की दृश्यता के बारे में जानें, और कैसे नक्शे वास्तविक 3D दुनिया को 2 आयामों में दर्शाते हैं | [स्थान डेटा का दृश्य बनाएं](./3-transport/lessons/3-visualize-location-data/README.md) | +| 14 | [ट्रांसपोर्ट](./3-transport/README.md) | जिओफेंसिंग | जिओफेंसिंग के बारे में जानें, और वे आपूर्ति श्रृंखला में वाहनों को उनके गंतव्य के नजदीक होने पर चेतावनी देने के लिए कैसे उपयोग किए जा सकते हैं | [जिओफेंसिंग](./3-transport/lessons/4-geofences/README.md) | +| 15 | [निर्माण](./4-manufacturing/README.md) | फल गुणवत्ता डिटेक्टर का प्रशिक्षण | क्लाउड में छवि वर्गीकर्ता का प्रशिक्षण देकर फल गुणवत्ता का पता लगाने के बारे में जानें | [फल गुणवत्ता डिटेक्टर का प्रशिक्षण](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | +| 16 | [निर्माण](./4-manufacturing/README.md) | IoT डिवाइस से फल गुणवत्ता की जांच | IoT डिवाइस से अपने फल गुणवत्ता डिटेक्टर का उपयोग कैसे करें यह जानें | [IoT डिवाइस से फल गुणवत्ता की जांच](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | +| 17 | [निर्माण](./4-manufacturing/README.md) | एज पर अपने फल डिटेक्टर को चलाएं | एज पर IoT डिवाइस पर अपने फल डिटेक्टर को चलाने के बारे में जानें | [एज पर अपने फल डिटेक्टर को चलाएं](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | +| 18 | [निर्माण](./4-manufacturing/README.md) | सेंसर से फल गुणवत्ता का पता लगाना चालित करें | सेंसर से फल गुणवत्ता पता लगाने को ट्रिगर करने के बारे में जानें | [सेंसर से फल गुणवत्ता का पता लगाना चालित करें](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | +| 19 | [रिटेल](./5-retail/README.md) | स्टॉक डिटेक्टर का प्रशिक्षण | वस्तु पहचान का उपयोग करके दुकान में स्टॉक की गिनती के लिए स्टॉक डिटेक्टर का प्रशिक्षण कैसे करें सीखें | [स्टॉक डिटेक्टर का प्रशिक्षण](./5-retail/lessons/1-train-stock-detector/README.md) | +| 20 | [रिटेल](./5-retail/README.md) | IoT डिवाइस से स्टॉक जांचें | वस्तु पहचान मॉडल का उपयोग करके IoT डिवाइस से स्टॉक कैसे जांचें यह जानें | [IoT डिवाइस से स्टॉक जांचें](./5-retail/lessons/2-check-stock-device/README.md) | +| 21 | [उपभोक्ता](./6-consumer/README.md) | IoT डिवाइस के साथ भाषण पहचान | एक स्मार्ट टाइमर बनाने के लिए IoT डिवाइस से भाषण को पहचानने के बारे में जानें | [IoT डिवाइस के साथ भाषण पहचान](./6-consumer/lessons/1-speech-recognition/README.md) | +| 22 | [उपभोक्ता](./6-consumer/README.md) | भाषा को समझें | IoT डिवाइस से बोले गए वाक्यों को समझने के बारे में जानें | [भाषा को समझें](./6-consumer/lessons/2-language-understanding/README.md) | +| 23 | [उपभोक्ता](./6-consumer/README.md) | टाइमर सेट करें और बोले गए फीडबैक को प्रदान करें | IoT डिवाइस पर टाइमर सेट करना और टाइमर सेट होने और समाप्त होने पर बोले गए फीडबैक को देना सीखें | [टाइमर सेट करें और बोले गए फीडबैक को प्रदान करें](./6-consumer/lessons/3-spoken-feedback/README.md) | +| 24 | [उपभोक्ता](./6-consumer/README.md) | कई भाषाओं का समर्थन करें | बोली जाने वाली और आपके स्मार्ट टाइमर से प्रतिक्रियाओं दोनों भाषाओं का समर्थन करना सीखें | [कई भाषाओं का समर्थन करें](./6-consumer/lessons/4-multiple-language-support/README.md) | + +## ऑफलाइन एक्सेस + +आप इस दस्तावेज़ को ऑफलाइन [Docsify](https://docsify.js.org/#/) का उपयोग करके चला सकते हैं। इस रिपो को फोर्क करें, अपने स्थानीय मशीन पर [Docsify इंस्टॉल करें](https://docsify.js.org/#/quickstart), और फिर इस रिपो के रूट फोल्डर में टाइप करें `docsify serve`। वेबसाइट आपके लोकलहोस्ट पर पोर्ट 3000 पर चलती है: `localhost:3000`। ## क्विज़ -प्रत्येक अध्याय पर आपकी ज्ञान परीक्षा लेने के लिए इंटरेक्टिव क्विज़ की मेजबानी करने के लिए समुदाय का धन्यवाद। आप अपनी जानकारी [यहाँ](https://ff-quizzes.netlify.app/en/) पर परीक्षा ले सकते हैं। +प्रत्येक अध्याय पर आपके ज्ञान का परीक्षण करने वाले इंटरैक्टिव क्विज़ की मेजबानी करने के लिए समुदाय का धन्यवाद। आप यहाँ पर अपना ज्ञान जाँच सकते हैं [यहाँ](https://ff-quizzes.netlify.app/en/) -### पीडीएफ +### PDF -आप आवश्यक होने पर इस सामग्री का ऑफलाइन उपयोग के लिए पीडीएफ बना सकते हैं। ऐसा करने के लिए, सुनिश्चित करें कि आपके पास [npm इंस्टॉल है](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) और इस रेपो के रूट फ़ोल्डर में निम्न कमांड चलाएं: +आप इस सामग्री का PDF ऑफलाइन एक्सेस के लिए जेनरेट कर सकते हैं यदि आवश्यक हो। ऐसा करने के लिए, सुनिश्चित करें कि आपके पास [npm इंस्टॉल है](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) और इस रिपोजिटरी के रूट फोल्डर में निम्नलिखित कमांड चलाएँ: ```sh npm i npm run convert ``` - -### स्लाइड्स -कुछ पाठों के लिए स्लाइड डेक [slides](../../slides) फ़ोल्डर में उपलब्ध हैं। +### स्लाइड + +कुछ पाठों के लिए स्लाइड डेक [slides](../../slides) फ़ोल्डर में हैं। ## अन्य पाठ्यक्रम हमारी टीम अन्य पाठ्यक्रम भी बनाती है! देखें: -### LangChain -[![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) +### LangChain +[![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) [![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) - +[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- -### Azure / Edge / MCP / Agents -[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![शुरुआती के लिए AI एजेंट](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +### Azure / Edge / MCP / Agents +[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) +[![शुरुआत के लिए एज AI](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![शुरुआत के लिए MCP](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![शुरुआत के लिए AI एजेंट्स](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### जनरेटिव AI श्रृंखला -[![शुरुआती के लिए जनरेटिव AI](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +### जनरेटिव AI सीरीज +[![शुरुआत के लिए जनरेटिव AI](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) [![जनरेटिव AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) [![जनरेटिव AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) [![जनरेटिव AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- -### मुख्य शिक्षण -[![शुरुआती के लिए ML](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![शुरुआती के लिए डेटा साइंस](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![शुरुआती के लिए AI](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![शुरुआती के लिए साइबर सुरक्षा](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![शुरुआती के लिए वेब विकास](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![शुरुआती के लिए IoT](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![शुरुआती के लिए XR विकास](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +### कोर लर्निंग +[![शुरुआत के लिए एमएल](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![शुरुआत के लिए डेटा साइंस](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![शुरुआत के लिए एआई](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![शुरुआत के लिए साइबर सुरक्षा](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![शुरुआत के लिए वेब डेवलपमेंट](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![शुरुआत के लिए IoT](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![शुरुआत के लिए XR डेवलपमेंट](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Copilot श्रृंखला -[![AI जोड़े प्रोग्रामिंग के लिए Copilot](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![C#/.NET के लिए Copilot](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![Copilot साहसिक कार्य](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +### कोपायलट सीरीज +[![AI जोड़ी प्रोग्रामिंग के लिए कोपायलट](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![C#/.NET के लिए कोपायलट](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![कोपायलट एडवेंचर](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## छवि श्रेय +## छवि संदर्भ -आप इस पाठ्यक्रम में उपयोग की गई छवियों के सभी श्रेय वहाँ पा सकते हैं जहाँ आवश्यकता हो [Attributions](./attributions.md) में। +आप इस पाठ्यक्रम में उपयोग की गई छवियों के सभी संदर्भ [Attributions](./attributions.md) में आवश्यकतानुसार पा सकते हैं। --- **अस्वीकरण**: -इस दस्तावेज़ का अनुवाद AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) का उपयोग करके किया गया है। जबकि हम सटीकता के लिए प्रयास करते हैं, कृपया ध्यान दें कि स्वचालित अनुवादों में त्रुटियाँ या अशुद्धियाँ हो सकती हैं। मूल भाषा में दस्तावेज़ को प्राधिकृत स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सिफारिश की जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम उत्तरदायी नहीं हैं। +इस दस्तावेज़ का अनुवाद AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) का उपयोग करके किया गया है। जबकि हम सटीकता के लिए प्रयासरत हैं, कृपया इस बात से अवगत रहें कि स्वचालित अनुवादों में त्रुटियाँ या असंगतियाँ हो सकती हैं। मूल भाषा में उपलब्ध दस्तावेज़ को अधिकारिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए पेशेवर मानव अनुवाद की सिफारिश की जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम जिम्मेदार नहीं हैं। \ No newline at end of file diff --git a/translations/hi/hardware.md b/translations/hi/hardware.md index 50a0489cb..4e2365ec5 100644 --- a/translations/hi/hardware.md +++ b/translations/hi/hardware.md @@ -26,7 +26,7 @@ Seeed Studios ने बहुत ही उदारता से सभी ह **[Seeed और Microsoft के साथ शुरुआती IoT - Raspberry Pi 4 स्टार्टर किट](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html)** -[![Raspberry Pi टर्मिनल हार्डवेयर किट](../../translated_images/hi/pi-hardware-kit.26dbadaedb7dd44c73b0131d5d68ea29472ed0a9744f90d5866c6d82f2d16380.png)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) +[![Raspberry Pi टर्मिनल हार्डवेयर किट](../../translated_images/hi/pi-hardware-kit.26dbadaedb7dd44c.webp)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) ## Arduino diff --git a/translations/hr/.co-op-translator.json b/translations/hr/.co-op-translator.json index aa0817bc6..a01a309be 100644 --- a/translations/hr/.co-op-translator.json +++ b/translations/hr/.co-op-translator.json @@ -738,8 +738,8 @@ "language_code": "hr" }, "README.md": { - "original_hash": "3fcc056cd3837e33d2bdf79f9c359fcf", - "translation_date": "2026-01-30T02:40:24+00:00", + "original_hash": "accf69391fa4450eadbf492ca024cccf", + "translation_date": "2026-04-06T17:53:37+00:00", "source_file": "README.md", "language_code": "hr" }, diff --git a/translations/hr/1-getting-started/lessons/1-introduction-to-iot/README.md b/translations/hr/1-getting-started/lessons/1-introduction-to-iot/README.md index 62119acf7..402e47db2 100644 --- a/translations/hr/1-getting-started/lessons/1-introduction-to-iot/README.md +++ b/translations/hr/1-getting-started/lessons/1-introduction-to-iot/README.md @@ -1,6 +1,6 @@ # Uvod u IoT -![Pregled lekcije u obliku sketchnotea](../../../../../translated_images/hr/lesson-1.2606670fa61ee904687da5d6fa4e726639d524d064c895117da1b95b9ff6251d.jpg) +![Pregled lekcije u obliku sketchnotea](../../../../../translated_images/hr/lesson-1.2606670fa61ee904.webp) > Sketchnote autorice [Nitya Narasimhan](https://github.com/nitya). Kliknite na sliku za veću verziju. diff --git a/translations/hr/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md b/translations/hr/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md index c9965902b..47981e457 100644 --- a/translations/hr/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md +++ b/translations/hr/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md @@ -203,7 +203,7 @@ Kao drugi korak 'Hello World', pokrenut ćete CounterFit aplikaciju i povezati s Aplikacija će se pokrenuti i otvoriti u vašem web pregledniku: - ![Counter Fit aplikacija pokrenuta u pregledniku](../../../../../translated_images/hr/counterfit-first-run.433326358b669b31d0e99c3513cb01bfbb13724d162c99cdcc8f51ecf5f9c779.png) + ![Counter Fit aplikacija pokrenuta u pregledniku](../../../../../translated_images/hr/counterfit-first-run.433326358b669b31.webp) Bit će označena kao *Disconnected*, s LED-icom u gornjem desnom kutu isključenom. @@ -224,7 +224,7 @@ Kao drugi korak 'Hello World', pokrenut ćete CounterFit aplikaciju i povezati s 1. U ovom novom terminalu pokrenite datoteku `app.py` kao i prije. Status CounterFit-a promijenit će se u **Connected** i LED-ica će se upaliti. - ![Counter Fit prikazuje status povezan](../../../../../translated_images/hr/counterfit-connected.ed30b46d8f79b0921f3fc70be10366e596a89dca3f80c2224a9d9fc98fccf884.png) + ![Counter Fit prikazuje status povezan](../../../../../translated_images/hr/counterfit-connected.ed30b46d8f79b092.webp) > 💁 Ovaj kod možete pronaći u mapi [code/virtual-device](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/virtual-device). diff --git a/translations/hr/1-getting-started/lessons/2-deeper-dive/README.md b/translations/hr/1-getting-started/lessons/2-deeper-dive/README.md index f0897d756..a8660aa51 100644 --- a/translations/hr/1-getting-started/lessons/2-deeper-dive/README.md +++ b/translations/hr/1-getting-started/lessons/2-deeper-dive/README.md @@ -1,6 +1,6 @@ # Dublje istraživanje IoT-a -![Sketchnote pregled ove lekcije](../../../../../translated_images/hr/lesson-2.324b0580d620c25e0a24fb7fddfc0b29a846dd4b82c08e7a9466d580ee78ce51.jpg) +![Sketchnote pregled ove lekcije](../../../../../translated_images/hr/lesson-2.324b0580d620c25e.webp) > Sketchnote autorice [Nitya Narasimhan](https://github.com/nitya). Kliknite na sliku za veću verziju. @@ -38,7 +38,7 @@ Dvije glavne komponente IoT aplikacije su *Internet* i *stvar*. Pogledajmo ove d Ovi uređaji komuniciraju s fizičkim svijetom, bilo pomoću senzora za prikupljanje podataka iz okoline ili kontroliranjem izlaza ili aktuatora za fizičke promjene. Tipičan primjer je pametni termostat - uređaj koji ima senzor temperature, način za postavljanje željene temperature poput kotačića ili zaslona osjetljivog na dodir, i vezu s grijanjem ili hlađenjem koje se može uključiti kada je detektirana temperatura izvan željenog raspona. Senzor temperature detektira da je prostorija prehladna, a aktuator uključuje grijanje. -![Dijagram koji prikazuje temperaturu i kotačić kao ulaze u IoT uređaj, te kontrolu grijalice kao izlaz](../../../../../translated_images/hr/basic-thermostat.a923217fd1f37e5a6f3390396a65c22a387419ea2dd17e518ec24315ba6ae9a8.png) +![Dijagram koji prikazuje temperaturu i kotačić kao ulaze u IoT uređaj, te kontrolu grijalice kao izlaz](../../../../../translated_images/hr/basic-thermostat.a923217fd1f37e5a.webp) Postoji ogroman raspon različitih stvari koje mogu djelovati kao IoT uređaji, od specijaliziranog hardvera koji detektira jednu stvar, do uređaja opće namjene, pa čak i vašeg pametnog telefona! Pametni telefon može koristiti senzore za detekciju svijeta oko sebe i aktuatora za interakciju sa svijetom - na primjer, koristeći GPS senzor za detekciju vaše lokacije i zvučnik za davanje uputa za navigaciju do odredišta. @@ -54,7 +54,7 @@ Uređaji također ne moraju uvijek izravno povezivati na Internet putem WiFi-a i U primjeru pametnog termostata, termostat bi se povezao putem kućnog WiFi-a na cloud servis. Poslao bi podatke o temperaturi ovom cloud servisu, a odatle bi se ti podaci zapisali u neku vrstu baze podataka, omogućujući vlasniku kuće da provjeri trenutne i prošle temperature putem aplikacije na telefonu. Drugi servis u oblaku znao bi željenu temperaturu vlasnika kuće i slao poruke natrag IoT uređaju putem cloud servisa kako bi rekao sustavu grijanja da se uključi ili isključi. -![Dijagram koji prikazuje temperaturu i kotačić kao ulaze u IoT uređaj, IoT uređaj s dvosmjernom komunikacijom s oblakom, koji zauzvrat ima dvosmjernu komunikaciju s telefonom, te kontrolu grijalice kao izlaz iz IoT uređaja](../../../../../translated_images/hr/mobile-controlled-thermostat.4a994010473d8d6a52ba68c67e5f02dc8928c717e93ca4b9bc55525aa75bbb60.png) +![Dijagram koji prikazuje temperaturu i kotačić kao ulaze u IoT uređaj, IoT uređaj s dvosmjernom komunikacijom s oblakom, koji zauzvrat ima dvosmjernu komunikaciju s telefonom, te kontrolu grijalice kao izlaz iz IoT uređaja](../../../../../translated_images/hr/mobile-controlled-thermostat.4a994010473d8d6a.webp) Još pametnija verzija mogla bi koristiti AI u oblaku s podacima iz drugih senzora povezanih s drugim IoT uređajima, poput senzora prisutnosti koji detektiraju koje su prostorije u upotrebi, kao i podatke poput vremenske prognoze ili čak vašeg kalendara, za donošenje odluka o tome kako pametno postaviti temperaturu. Na primjer, mogla bi isključiti grijanje ako iz vašeg kalendara pročita da ste na odmoru, ili isključiti grijanje po sobama ovisno o tome koje prostorije koristite, učeći iz podataka kako bi s vremenom postajala sve preciznija. @@ -94,7 +94,7 @@ CPU-ovi se oslanjaju na sat koji otkucava milijune ili milijarde puta u sekundi. > 💁 CPU-ovi izvršavaju programe koristeći [ciklus dohvaćanja-dekodiranja-izvršavanja](https://wikipedia.org/wiki/Instruction_cycle). Za svaki otkucaj sata, CPU će dohvatiti sljedeću instrukciju iz memorije, dekodirati je, a zatim je izvršiti, poput korištenja aritmetičko-logičke jedinice (ALU) za zbrajanje 2 broja. Neka izvršenja će trajati više otkucaja, pa će sljedeći ciklus započeti nakon što se instrukcija dovrši. -![Ciklus dohvaćanja-dekodiranja-izvršavanja koji prikazuje dohvaćanje instrukcije iz programa pohranjenog u RAM-u, zatim dekodiranje i izvršavanje na CPU-u](../../../../../translated_images/hr/fetch-decode-execute.2fd6f150f6280392807f4475382319abd0cee0b90058e1735444d6baa6f2078c.png) +![Ciklus dohvaćanja-dekodiranja-izvršavanja koji prikazuje dohvaćanje instrukcije iz programa pohranjenog u RAM-u, zatim dekodiranje i izvršavanje na CPU-u](../../../../../translated_images/hr/fetch-decode-execute.2fd6f150f6280392.webp) Mikrokontroleri imaju mnogo niže brzine sata od stolnih ili prijenosnih računala, pa čak i većine pametnih telefona. Na primjer, Wio Terminal ima CPU koji radi na 120MHz ili 120.000.000 ciklusa u sekundi. @@ -182,7 +182,7 @@ Arduino ploče programiraju se u C ili C++. Korištenje C/C++ omogućuje da vaš U funkciji `setup` napisali biste kod za inicijalizaciju, poput povezivanja na WiFi i cloud usluge ili inicijalizacije pinova za ulaz i izlaz. Vaš kod u funkciji `loop` sadržavao bi obradu, poput čitanja sa senzora i slanja vrijednosti u oblak. Obično biste uključili odgodu u svaku petlju, na primjer, ako želite da se podaci senzora šalju svakih 10 sekundi, dodali biste odgodu od 10 sekundi na kraju petlje kako bi mikrokontroler mogao spavati, štedeći energiju, a zatim ponovno pokrenuti petlju kada je potrebno. -![Arduino skica koja prvo pokreće setup, a zatim kontinuirano pokreće loop](../../../../../translated_images/hr/arduino-sketch.79590cb837ff7a7c6a68d1afda6cab83fd53d3bb1bd9a8bf2eaf8d693a4d3ea6.png) +![Arduino skica koja prvo pokreće setup, a zatim kontinuirano pokreće loop](../../../../../translated_images/hr/arduino-sketch.79590cb837ff7a7c.webp) ✅ Ova arhitektura programa poznata je kao *petlja događaja* ili *petlja poruka*. Mnoge aplikacije koriste ovo u pozadini i to je standard za većinu desktop aplikacija koje rade na OS-ima poput Windowsa, macOS-a ili Linuxa. `Loop` osluškuje poruke od korisničkih sučelja poput tipki ili uređaja poput tipkovnice i reagira na njih. Više možete pročitati u ovom [članku o petlji događaja](https://wikipedia.org/wiki/Event_loop). diff --git a/translations/hr/1-getting-started/lessons/3-sensors-and-actuators/README.md b/translations/hr/1-getting-started/lessons/3-sensors-and-actuators/README.md index 4d1c82a91..e0cf20b73 100644 --- a/translations/hr/1-getting-started/lessons/3-sensors-and-actuators/README.md +++ b/translations/hr/1-getting-started/lessons/3-sensors-and-actuators/README.md @@ -1,6 +1,6 @@ # Interakcija s fizičkim svijetom pomoću senzora i aktuatora -![Pregled lekcije u obliku sketchnotea](../../../../../translated_images/hr/lesson-3.cc3b7b4cd646de598698cce043c0393fd62ef42bac2eaf60e61272cd844250f4.jpg) +![Pregled lekcije u obliku sketchnotea](../../../../../translated_images/hr/lesson-3.cc3b7b4cd646de59.webp) > Sketchnote autorice [Nitya Narasimhan](https://github.com/nitya). Kliknite na sliku za veću verziju. @@ -92,7 +92,7 @@ Digitalni senzori, poput analognih senzora, opažaju svijet oko sebe koristeći Najjednostavniji digitalni senzor je tipka ili prekidač. To je senzor s dva stanja, uključen ili isključen. -![Tipka prima 5 volti. Kada nije pritisnuta vraća 0 volti, kada je pritisnuta vraća 5 volti](../../../../../translated_images/hr/button.eadb560b77ac45e56f523d9d8876e40444f63b419e33eb820082d461fa79490b.png) +![Tipka prima 5 volti. Kada nije pritisnuta vraća 0 volti, kada je pritisnuta vraća 5 volti](../../../../../translated_images/hr/button.eadb560b77ac45e5.webp) Pinovi na IoT uređajima poput GPIO pinova mogu izravno mjeriti ovaj signal kao 0 ili 1. Ako je napon poslan isti kao napon vraćen, očitana vrijednost je 1, inače je očitana vrijednost 0. Nema potrebe za pretvorbom signala, može biti samo 1 ili 0. @@ -125,7 +125,7 @@ Neki uobičajeni aktuatori uključuju: Slijedite odgovarajući vodič kako biste dodali aktuator svom IoT uređaju, kontroliran senzorom, za izradu IoT noćnog svjetla. Ono će prikupljati razine svjetla iz senzora svjetla i koristiti aktuator u obliku LED-a za emitiranje svjetla kada je detektirana razina svjetla preniska. -![Dijagram toka zadatka koji prikazuje očitavanje i provjeru razina svjetla te kontrolu LED-a](../../../../../translated_images/hr/assignment-1-flow.7552a51acb1a5ec858dca6e855cdbb44206434006df8ba3799a25afcdab1665d.png) +![Dijagram toka zadatka koji prikazuje očitavanje i provjeru razina svjetla te kontrolu LED-a](../../../../../translated_images/hr/assignment-1-flow.7552a51acb1a5ec8.webp) * [Arduino - Wio Terminal](wio-terminal-actuator.md) * [Jednoplani računalo - Raspberry Pi](pi-actuator.md) @@ -140,7 +140,7 @@ Kao i senzori, aktuatori mogu biti analogni ili digitalni. Analogni aktuatori uzimaju analogni signal i pretvaraju ga u neku vrstu interakcije, gdje se interakcija mijenja ovisno o naponu koji se isporučuje. Jedan primjer je svjetlo koje se može prigušiti, poput onih koje možda imate u svom domu. Količina napona isporučena svjetlu određuje koliko jako svijetli. -![Svjetlo prigušeno na niskom naponu i svjetlije na višem naponu](../../../../../translated_images/hr/dimmable-light.9ceffeb195dec1a849da718b2d71b32c35171ff7dfea9c07bbf82646a67acf6b.png) +![Svjetlo prigušeno na niskom naponu i svjetlije na višem naponu](../../../../../translated_images/hr/dimmable-light.9ceffeb195dec1a8.webp) Kao i kod senzora, stvarni IoT uređaj radi na digitalnim signalima, a ne analognim. To znači da za slanje analognog signala IoT uređaj treba digitalno-analogni pretvarač (DAC), bilo direktno na IoT uređaju ili na priključnoj ploči. Ovo će pretvoriti 0 i 1 iz IoT uređaja u analogni napon koji aktuator može koristiti. @@ -187,7 +187,7 @@ Digitalni aktuatori, poput digitalnih senzora, imaju ili dva stanja koja se kont Jedan jednostavan digitalni aktuator je LED. Kada uređaj pošalje digitalni signal 1, šalje se visoki napon koji pali LED. Kada se pošalje digitalni signal 0, napon pada na 0V i LED se gasi. -![LED je ugašen na 0 volti i upaljen na 5V](../../../../../translated_images/hr/led.ec6d94f66676a174ad06d9fa9ea49c2ee89beb18b312d5c6476467c66375b07f.png) +![LED je ugašen na 0 volti i upaljen na 5V](../../../../../translated_images/hr/led.ec6d94f66676a174.webp) ✅ Koje druge jednostavne aktuatore s 2 stanja možete zamisliti? Jedan primjer je solenoid, koji je elektromagnet koji se može aktivirati za obavljanje stvari poput pomicanja zasuna vrata za zaključavanje/otključavanje vrata. diff --git a/translations/hr/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md b/translations/hr/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md index de3726035..494511ca5 100644 --- a/translations/hr/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md +++ b/translations/hr/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md @@ -26,7 +26,7 @@ Grove LED dolazi kao modul s izborom LED-ova, omogućujući vam da odaberete boj Povežite LED. -![Grove LED](../../../../../translated_images/hr/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![Grove LED](../../../../../translated_images/hr/grove-led.6c853be93f473cf2.webp) 1. Odaberite svoj omiljeni LED i umetnite nogice u dvije rupe na LED modulu. @@ -40,7 +40,7 @@ Povežite LED. 1. Dok je Raspberry Pi isključen, povežite drugi kraj Grove kabela s digitalnom utičnicom označenom **D5** na Grove Base hatu pričvršćenom na Pi. Ova utičnica je druga s lijeva, u redu utičnica pored GPIO pinova. -![Grove LED povezan s utičnicom D5](../../../../../translated_images/hr/pi-led.97f1d474981dc35d1c7996c7b17de355d3d0a6bc9606d79fa5f89df933415122.png) +![Grove LED povezan s utičnicom D5](../../../../../translated_images/hr/pi-led.97f1d474981dc35d.webp) ## Programirajte noćno svjetlo diff --git a/translations/hr/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md b/translations/hr/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md index 143dd5513..35c16824c 100644 --- a/translations/hr/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md +++ b/translations/hr/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md @@ -16,13 +16,13 @@ Grove senzor svjetla koji se koristi za detekciju razine svjetla mora biti povez Povežite senzor svjetla. -![Grove senzor svjetla](../../../../../translated_images/hr/grove-light-sensor.b8127b7c434e632d6bcdb57587a14e9ef69a268a22df95d08628f62b8fa5505c.png) +![Grove senzor svjetla](../../../../../translated_images/hr/grove-light-sensor.b8127b7c434e632d.webp) 1. Umetnite jedan kraj Grove kabela u utičnicu na modulu senzora svjetla. Kabel će ući samo na jedan način. 1. Dok je Raspberry Pi isključen, povežite drugi kraj Grove kabela s analognom utičnicom označenom **A0** na Grove Base hatu pričvršćenom na Pi. Ova utičnica je druga s desna, u redu utičnica pored GPIO pinova. -![Grove senzor svjetla povezan na utičnicu A0](../../../../../translated_images/hr/pi-light-sensor.66cc1e31fa48cd7d5f23400d4b2119aa41508275cb7c778053a7923b4e972d7e.png) +![Grove senzor svjetla povezan na utičnicu A0](../../../../../translated_images/hr/pi-light-sensor.66cc1e31fa48cd7d.webp) ## Programirajte senzor svjetla diff --git a/translations/hr/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md b/translations/hr/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md index 7f75ed755..281c47d0e 100644 --- a/translations/hr/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md +++ b/translations/hr/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md @@ -36,11 +36,11 @@ Dodajte LED u CounterFit aplikaciju. 1. Kliknite na gumb **Add** za kreiranje LED-a na pinu 5. - ![Postavke LED-a](../../../../../translated_images/hr/counterfit-create-led.ba9db1c9b8c622a635d6dfae5cdc4e70c2b250635bd4f0601c6cf0bd22b7ba46.png) + ![Postavke LED-a](../../../../../translated_images/hr/counterfit-create-led.ba9db1c9b8c622a6.webp) LED će biti kreiran i pojavit će se na popisu aktuatora. - ![Kreirani LED](../../../../../translated_images/hr/counterfit-led.c0ab02de6d256ad84d9bad4d67a7faa709f0ea83e410cfe9b5561ef0cef30b1c.png) + ![Kreirani LED](../../../../../translated_images/hr/counterfit-led.c0ab02de6d256ad8.webp) Nakon što je LED kreiran, možete promijeniti boju koristeći *Color* alat za odabir boje. Kliknite na gumb **Set** za promjenu boje nakon što je odabrana. diff --git a/translations/hr/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md b/translations/hr/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md index df3d84b3b..95e3318ad 100644 --- a/translations/hr/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md +++ b/translations/hr/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md @@ -28,11 +28,11 @@ Dodajte senzor svjetla u aplikaciju CounterFit. 1. Kliknite na gumb **Add** kako biste kreirali senzor svjetla na pinu 0. - ![Postavke senzora svjetla](../../../../../translated_images/hr/counterfit-create-light-sensor.9f36a5e0d4458d8d554d54b34d2c806d56093d6e49fddcda2d20f6fef7f5cce1.png) + ![Postavke senzora svjetla](../../../../../translated_images/hr/counterfit-create-light-sensor.9f36a5e0d4458d8d.webp) Senzor svjetla će biti kreiran i pojavit će se na popisu senzora. - ![Kreirani senzor svjetla](../../../../../translated_images/hr/counterfit-light-sensor.5d0f5584df56b90f6b2561910d9cb20dfbd73eeff2177c238d38f4de54aefae1.png) + ![Kreirani senzor svjetla](../../../../../translated_images/hr/counterfit-light-sensor.5d0f5584df56b90f.webp) ## Programiranje senzora svjetla diff --git a/translations/hr/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md b/translations/hr/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md index a668333f3..59c056df3 100644 --- a/translations/hr/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md +++ b/translations/hr/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md @@ -26,7 +26,7 @@ Grove LED dolazi kao modul s izborom LED-ova, omogućujući vam da odaberete boj Spojite LED. -![Grove LED](../../../../../translated_images/hr/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![Grove LED](../../../../../translated_images/hr/grove-led.6c853be93f473cf2.webp) 1. Odaberite svoj omiljeni LED i umetnite njegove nožice u dvije rupe na LED modulu. diff --git a/translations/hr/1-getting-started/lessons/4-connect-internet/README.md b/translations/hr/1-getting-started/lessons/4-connect-internet/README.md index fd87f0f28..578d5c119 100644 --- a/translations/hr/1-getting-started/lessons/4-connect-internet/README.md +++ b/translations/hr/1-getting-started/lessons/4-connect-internet/README.md @@ -1,6 +1,6 @@ # Povežite svoj uređaj s internetom -![Pregled lekcije u obliku sketchnotea](../../../../../translated_images/hr/lesson-4.7344e074ea68fa545fd320b12dce36d72dd62d28c3b4596cb26cf315f434b98f.jpg) +![Pregled lekcije u obliku sketchnotea](../../../../../translated_images/hr/lesson-4.7344e074ea68fa54.webp) > Sketchnote autorice [Nitya Narasimhan](https://github.com/nitya). Kliknite na sliku za veću verziju. @@ -47,7 +47,7 @@ MQTT je najpopularniji komunikacijski protokol za IoT uređaje i obrađen je u o MQTT ima jednog posrednika i više klijenata. Svi klijenti povezuju se s posrednikom, a posrednik usmjerava poruke relevantnim klijentima. Poruke se usmjeravaju pomoću imenovanih tema, umjesto da se šalju izravno pojedinom klijentu. Klijent može objaviti poruku na temu, a svi klijenti pretplaćeni na tu temu primit će poruku. -![IoT uređaj objavljuje telemetriju na temu /telemetry, a usluga u oblaku pretplaćena je na tu temu](../../../../../translated_images/hr/mqtt.cbf7f21d9adc3e17548b359444cc11bb4bf2010543e32ece9a47becf54438c23.png) +![IoT uređaj objavljuje telemetriju na temu /telemetry, a usluga u oblaku pretplaćena je na tu temu](../../../../../translated_images/hr/mqtt.cbf7f21d9adc3e17.webp) ✅ Istražite. Ako imate mnogo IoT uređaja, kako možete osigurati da vaš MQTT posrednik može obraditi sve poruke? @@ -69,7 +69,7 @@ Umjesto da se bavite složenostima postavljanja MQTT posrednika kao dijela ovog > 💁 Ovaj testni posrednik je javan i nije siguran. Svatko može slušati što objavljujete, stoga ga nemojte koristiti za podatke koji trebaju ostati privatni. -![Dijagram toka zadatka koji prikazuje očitavanje i provjeru razine svjetlosti te upravljanje LED-om](../../../../../translated_images/hr/assignment-1-internet-flow.3256feab5f052fd273bf4e331157c574c2c3fa42e479836fc9c3586f41db35a5.png) +![Dijagram toka zadatka koji prikazuje očitavanje i provjeru razine svjetlosti te upravljanje LED-om](../../../../../translated_images/hr/assignment-1-internet-flow.3256feab5f052fd2.webp) Slijedite odgovarajući korak u nastavku kako biste povezali svoj uređaj s MQTT posrednikom: @@ -350,7 +350,7 @@ Za strojeve možda želite zadržati podatke, pogotovo ako se koriste za tražen Dizajneri IoT uređaja također bi trebali razmotriti može li se IoT uređaj koristiti tijekom prekida interneta ili gubitka signala uzrokovanog lokacijom. Pametni termostat trebao bi moći donositi neke ograničene odluke za kontrolu grijanja ako ne može poslati telemetriju u oblak zbog prekida. -[![Ovaj Ferrari je postao neupotrebljiv jer je netko pokušao nadograditi softver pod zemljom gdje nema mobilnog signala](../../../../../translated_images/hr/bricked-car.dc38f8efadc6c59d76211f981a521efb300939283dee468f79503aae3ec67615.png)](https://twitter.com/internetofshit/status/1315736960082808832) +[![Ovaj Ferrari je postao neupotrebljiv jer je netko pokušao nadograditi softver pod zemljom gdje nema mobilnog signala](../../../../../translated_images/hr/bricked-car.dc38f8efadc6c59d.webp)](https://twitter.com/internetofshit/status/1315736960082808832) Za MQTT, uređaj i kod za server moraju biti odgovorni za osiguranje isporuke poruka ako je to potrebno, na primjer zahtijevanjem da se na sve poslane poruke odgovori dodatnim porukama na povratnoj temi, a ako ne, one se ručno stavljaju u red za ponovno slanje kasnije. @@ -358,7 +358,7 @@ Za MQTT, uređaj i kod za server moraju biti odgovorni za osiguranje isporuke po Naredbe su poruke koje šalje oblak uređaju, upućujući ga da nešto učini. Većinu vremena to uključuje davanje nekog izlaza putem aktuatora, ali to može biti i instrukcija za sam uređaj, poput ponovnog pokretanja ili prikupljanja dodatne telemetrije i vraćanja kao odgovora na naredbu. -![Internet povezan termostat prima naredbu za uključivanje grijanja](../../../../../translated_images/hr/commands.d6c06bbbb3a02cce95f2831a1c331daf6dedd4e470c4aa2b0ae54f332016e504.png) +![Internet povezan termostat prima naredbu za uključivanje grijanja](../../../../../translated_images/hr/commands.d6c06bbbb3a02cce.webp) Termostat bi mogao primiti naredbu iz oblaka za uključivanje grijanja. Na temelju telemetrijskih podataka sa svih senzora, ako je oblačna usluga odlučila da grijanje treba biti uključeno, šalje odgovarajuću naredbu. diff --git a/translations/hr/2-farm/lessons/1-predict-plant-growth/README.md b/translations/hr/2-farm/lessons/1-predict-plant-growth/README.md index bce67e07d..075186c4c 100644 --- a/translations/hr/2-farm/lessons/1-predict-plant-growth/README.md +++ b/translations/hr/2-farm/lessons/1-predict-plant-growth/README.md @@ -1,6 +1,6 @@ ## Predvidite rast biljaka pomoću IoT-a -![Sketchnote pregled ove lekcije](../../../../../translated_images/hr/lesson-5.42b234299279d263143148b88ab4583861a32ddb03110c6c1120e41bb88b2592.jpg) +![Sketchnote pregled ove lekcije](../../../../../translated_images/hr/lesson-5.42b234299279d263.webp) > Sketchnote od [Nitya Narasimhan](https://github.com/nitya). Kliknite na sliku za veću verziju. @@ -102,7 +102,7 @@ Koraci za ručni izračun su: Na primjer, ako je najviša temperatura za dan 25°C, a najniža 12°C: -![GDD = 25 + 12 podijeljeno s 2, zatim oduzmite 10 iz rezultata, što daje 8.5](../../../../../translated_images/hr/gdd-calculation-strawberries.59f57db94b22adb8ff6efb951ace33af104a1c6ccca3ffb0f8169c14cb160c90.png) +![GDD = 25 + 12 podijeljeno s 2, zatim oduzmite 10 iz rezultata, što daje 8.5](../../../../../translated_images/hr/gdd-calculation-strawberries.59f57db94b22adb8.webp) * 25 + 12 = 37 * 37 / 2 = 18.5 diff --git a/translations/hr/2-farm/lessons/1-predict-plant-growth/assignment.md b/translations/hr/2-farm/lessons/1-predict-plant-growth/assignment.md index d75c3a5fd..b0ed5a457 100644 --- a/translations/hr/2-farm/lessons/1-predict-plant-growth/assignment.md +++ b/translations/hr/2-farm/lessons/1-predict-plant-growth/assignment.md @@ -33,7 +33,7 @@ Kada imate temperaturne podatke, možete koristiti Jupyter Notebook u ovom repoz Jupyter će se pokrenuti i otvoriti notebook u vašem pregledniku. Prođite kroz upute u notebooku kako biste vizualizirali izmjerene temperature i izračunali dane rasta (GDD). - ![Jupyter notebook](../../../../../translated_images/hr/gdd-jupyter-notebook.c5b52cf21094f158a61f47f455490fd95f1729777ff90861a4521820bf354cdc.png) + ![Jupyter notebook](../../../../../translated_images/hr/gdd-jupyter-notebook.c5b52cf21094f158.webp) ## Rubrika diff --git a/translations/hr/2-farm/lessons/1-predict-plant-growth/pi-temp.md b/translations/hr/2-farm/lessons/1-predict-plant-growth/pi-temp.md index 2e40b80ba..84b282815 100644 --- a/translations/hr/2-farm/lessons/1-predict-plant-growth/pi-temp.md +++ b/translations/hr/2-farm/lessons/1-predict-plant-growth/pi-temp.md @@ -16,13 +16,13 @@ Grove senzor temperature može se povezati s Raspberry Pi-jem. Povežite senzor temperature. -![Grove senzor temperature](../../../../../translated_images/hr/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![Grove senzor temperature](../../../../../translated_images/hr/grove-dht11.07f8eafceee17004.webp) 1. Umetnite jedan kraj Grove kabela u utičnicu na senzoru za vlagu i temperaturu. Kabel će ući samo na jedan način. 1. Dok je Raspberry Pi isključen, spojite drugi kraj Grove kabela na digitalnu utičnicu označenu **D5** na Grove Base hat-u koji je povezan s Pi-jem. Ova utičnica je druga s lijeva, u redu utičnica pored GPIO pinova. -![Grove senzor temperature povezan na utičnicu A0](../../../../../translated_images/hr/pi-temperature-sensor.3ff82fff672c8e565ef25a39d26d111de006b825a7e0867227ef4e7fbff8553c.png) +![Grove senzor temperature povezan na utičnicu A0](../../../../../translated_images/hr/pi-temperature-sensor.3ff82fff672c8e56.webp) ## Programiranje senzora temperature diff --git a/translations/hr/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md b/translations/hr/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md index 7fd0c4a38..475512862 100644 --- a/translations/hr/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md +++ b/translations/hr/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md @@ -38,11 +38,11 @@ Dodajte senzore vlage i temperature u CounterFit aplikaciju. 1. Odaberite gumb **Add** za kreiranje senzora vlage na pinu 5. - ![Postavke senzora vlage](../../../../../translated_images/hr/counterfit-create-humidity-sensor.2750e27b6f30e09cf4e22101defd5252710717620816ab41ba688f91f757c49a.png) + ![Postavke senzora vlage](../../../../../translated_images/hr/counterfit-create-humidity-sensor.2750e27b6f30e09c.webp) Senzor vlage će biti kreiran i pojavit će se na popisu senzora. - ![Kreirani senzor vlage](../../../../../translated_images/hr/counterfit-humidity-sensor.7b12f7f339e430cb26c8211d2dba4ef75261b353a01da0932698b5bebd693f27.png) + ![Kreirani senzor vlage](../../../../../translated_images/hr/counterfit-humidity-sensor.7b12f7f339e430cb.webp) 1. Kreirajte senzor temperature: @@ -54,11 +54,11 @@ Dodajte senzore vlage i temperature u CounterFit aplikaciju. 1. Odaberite gumb **Add** za kreiranje senzora temperature na pinu 6. - ![Postavke senzora temperature](../../../../../translated_images/hr/counterfit-create-temperature-sensor.199350ed34f7343d79dccbe95eaf6c11d2121f03d1c35ab9613b330c23f39b29.png) + ![Postavke senzora temperature](../../../../../translated_images/hr/counterfit-create-temperature-sensor.199350ed34f7343d.webp) Senzor temperature će biti kreiran i pojavit će se na popisu senzora. - ![Kreirani senzor temperature](../../../../../translated_images/hr/counterfit-temperature-sensor.f0560236c96a9016bafce7f6f792476fe3367bc6941a1f7d5811d144d4bcbfff.png) + ![Kreirani senzor temperature](../../../../../translated_images/hr/counterfit-temperature-sensor.f0560236c96a9016.webp) ## Programiranje aplikacije za senzor temperature diff --git a/translations/hr/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md b/translations/hr/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md index dd4b30409..2f3ab7859 100644 --- a/translations/hr/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md +++ b/translations/hr/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md @@ -18,7 +18,7 @@ Grove senzor temperature može se povezati na digitalni port Wio Terminala. Povežite senzor temperature. -![Grove senzor temperature](../../../../../translated_images/hr/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![Grove senzor temperature](../../../../../translated_images/hr/grove-dht11.07f8eafceee17004.webp) 1. Umetnite jedan kraj Grove kabela u utičnicu na senzoru za vlagu i temperaturu. Kabel će se moći umetnuti samo na jedan način. diff --git a/translations/hr/2-farm/lessons/2-detect-soil-moisture/README.md b/translations/hr/2-farm/lessons/2-detect-soil-moisture/README.md index 3e901f6be..cda8588f1 100644 --- a/translations/hr/2-farm/lessons/2-detect-soil-moisture/README.md +++ b/translations/hr/2-farm/lessons/2-detect-soil-moisture/README.md @@ -13,7 +13,7 @@ I²C ima sabirnicu sastavljenu od 2 glavne žice, uz 2 žice za napajanje: | VCC | Zajednički kolektor napona | Napajanje za uređaje. Ovo je povezano s SDA i SCL žicama kako bi im osiguralo napajanje putem pull-up otpornika koji isključuje signal kada nijedan uređaj nije kontroler. | | GND | Zemlja | Ovo osigurava zajedničku zemlju za električni krug. | -![I2C sabirnica s 3 uređaja povezana na SDA i SCL žice, dijeleći zajedničku zemlju](../../../../../translated_images/hr/i2c.83da845dde02256bdd462dbe0d5145461416b74930571b89d1ae142841eeb584.png) +![I2C sabirnica s 3 uređaja povezana na SDA i SCL žice, dijeleći zajedničku zemlju](../../../../../translated_images/hr/i2c.83da845dde02256b.webp) Za slanje podataka, jedan uređaj će izdati početni uvjet kako bi pokazao da je spreman za slanje podataka. Tada postaje kontroler. Kontroler zatim šalje adresu uređaja s kojim želi komunicirati, zajedno s informacijom želi li čitati ili pisati podatke. Nakon što su podaci preneseni, kontroler šalje završni uvjet kako bi naznačio da je završio. Nakon toga drugi uređaj može postati kontroler i slati ili primati podatke. diff --git a/translations/hr/2-farm/lessons/2-detect-soil-moisture/assignment.md b/translations/hr/2-farm/lessons/2-detect-soil-moisture/assignment.md index a8ec9ff66..8ae70d2fa 100644 --- a/translations/hr/2-farm/lessons/2-detect-soil-moisture/assignment.md +++ b/translations/hr/2-farm/lessons/2-detect-soil-moisture/assignment.md @@ -20,14 +20,14 @@ Ove korake trebate ponoviti više puta kako biste dobili potrebna očitanja, sva Gravimetrijska vlaga tla izračunava se kao: -![postotak vlage tla je težina mokrog tla minus težina suhog tla, podijeljeno s težinom suhog tla, pomnoženo sa 100](../../../../../translated_images/hr/gsm-calculation.6da38c6201eec14e7573bb2647aa18892883193553d23c9d77e5dc681522dfb2.png) +![postotak vlage tla je težina mokrog tla minus težina suhog tla, podijeljeno s težinom suhog tla, pomnoženo sa 100](../../../../../translated_images/hr/gsm-calculation.6da38c6201eec14e.webp) * W - težina mokrog tla * W - težina suhog tla Na primjer, recimo da imate uzorak tla koji teži 212g mokar i 197g suh. -![Primjer izračuna](../../../../../translated_images/hr/gsm-calculation-example.99f9803b4f29e97668e7c15412136c0c399ab12dbba0b89596fdae9d8aedb6fb.png) +![Primjer izračuna](../../../../../translated_images/hr/gsm-calculation-example.99f9803b4f29e976.webp) * W = 212g * W = 197g diff --git a/translations/hr/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md b/translations/hr/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md index a7b8f54a6..2b0b7a7d3 100644 --- a/translations/hr/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md +++ b/translations/hr/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md @@ -18,13 +18,13 @@ Grove senzor vlažnosti tla može se spojiti na Raspberry Pi. Spojite senzor vlažnosti tla. -![Grove senzor vlažnosti tla](../../../../../translated_images/hr/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![Grove senzor vlažnosti tla](../../../../../translated_images/hr/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. Umetnite jedan kraj Grove kabela u utičnicu na senzoru vlažnosti tla. Kabel će ući samo na jedan način. 1. Dok je Raspberry Pi isključen, spojite drugi kraj Grove kabela na analogni priključak označen **A0** na Grove Base Hat-u pričvršćenom na Pi. Ovaj priključak je drugi s desne strane, u redu priključaka pored GPIO pinova. -![Grove senzor vlažnosti tla spojen na A0 priključak](../../../../../translated_images/hr/pi-soil-moisture-sensor.fdd7eb2393792cf6739cacf1985d9f55beda16d372f30d0b5a51d586f978a870.png) +![Grove senzor vlažnosti tla spojen na A0 priključak](../../../../../translated_images/hr/pi-soil-moisture-sensor.fdd7eb2393792cf6.webp) 1. Umetnite senzor vlažnosti tla u tlo. Na senzoru postoji oznaka 'najviša pozicija' - bijela linija preko senzora. Umetnite senzor do te linije, ali ne preko nje. diff --git a/translations/hr/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md b/translations/hr/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md index 7a40fb530..1d155cde2 100644 --- a/translations/hr/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md +++ b/translations/hr/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md @@ -34,11 +34,11 @@ Dodajte senzor vlažnosti tla u CounterFit aplikaciju. 1. Kliknite gumb **Add** za kreiranje senzora *Soil Moisture* na pinu 0. - ![Postavke senzora vlažnosti tla](../../../../../translated_images/hr/counterfit-create-soil-moisture-sensor.35266135a5e0ae68b29a684d7db0d2933a8098b2307d197f7c71577b724603aa.png) + ![Postavke senzora vlažnosti tla](../../../../../translated_images/hr/counterfit-create-soil-moisture-sensor.35266135a5e0ae68.webp) Senzor vlažnosti tla bit će kreiran i pojavit će se na popisu senzora. - ![Kreirani senzor vlažnosti tla](../../../../../translated_images/hr/counterfit-soil-moisture-sensor.81742b2de0e9de60a3b3b9a2ff8ecc686d428eb6d71820f27a693be26e5aceee.png) + ![Kreirani senzor vlažnosti tla](../../../../../translated_images/hr/counterfit-soil-moisture-sensor.81742b2de0e9de60.webp) ## Programiranje aplikacije za senzor vlažnosti tla diff --git a/translations/hr/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md b/translations/hr/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md index 6057c22eb..55ff132c0 100644 --- a/translations/hr/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md +++ b/translations/hr/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md @@ -18,7 +18,7 @@ Grove senzor vlažnosti tla može se povezati na Wio Terminalov konfigurabilni a Povežite senzor vlažnosti tla. -![Grove senzor vlažnosti tla](../../../../../translated_images/hr/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![Grove senzor vlažnosti tla](../../../../../translated_images/hr/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. Umetnite jedan kraj Grove kabela u utičnicu na senzoru vlažnosti tla. Kabel će ući samo na jedan način. diff --git a/translations/hr/2-farm/lessons/3-automated-plant-watering/README.md b/translations/hr/2-farm/lessons/3-automated-plant-watering/README.md index 37a512034..9b2b2e00d 100644 --- a/translations/hr/2-farm/lessons/3-automated-plant-watering/README.md +++ b/translations/hr/2-farm/lessons/3-automated-plant-watering/README.md @@ -1,6 +1,6 @@ # Automatsko zalijevanje biljaka -![Sketchnote pregled ove lekcije](../../../../../translated_images/hr/lesson-7.30b5f577d3cb8e031238751475cb519c7d6dbaea261b5df4643d086ffb2a03bb.jpg) +![Sketchnote pregled ove lekcije](../../../../../translated_images/hr/lesson-7.30b5f577d3cb8e03.webp) > Sketchnote autorice [Nitya Narasimhan](https://github.com/nitya). Kliknite na sliku za veću verziju. @@ -32,7 +32,7 @@ IoT uređaji koriste napon niske razine. Iako je to dovoljno za senzore i aktuat Rješenje za ovo je povezivanje pumpe na vanjski izvor napajanja i korištenje aktuatora za uključivanje pumpe, slično kao što biste uključili svjetlo. Potrebna je mala količina energije (u obliku energije vašeg tijela) da prstom pritisnete prekidač, čime se svjetlo povezuje s mrežnim napajanjem od 110V/240V. -![Prekidač uključuje napajanje za svjetlo](../../../../../translated_images/hr/light-switch.760317ad6ab8bd6d611da5352dfe9c73a94a0822ccec7df3c8bae35da18e1658.png) +![Prekidač uključuje napajanje za svjetlo](../../../../../translated_images/hr/light-switch.760317ad6ab8bd6d.webp) > 🎓 [Mrežna struja](https://wikipedia.org/wiki/Mains_electricity) odnosi se na električnu energiju koja se isporučuje kućama i poslovnim prostorima putem nacionalne infrastrukture u mnogim dijelovima svijeta. @@ -72,7 +72,7 @@ Kada se poluga pomiče, obično možete čuti kako stvara kontakt s elektromagne Elektromagnetu nije potrebno puno energije za aktivaciju i povlačenje poluge, može se kontrolirati pomoću 3.3V ili 5V izlaza s IoT razvojnog kompleta. Izlazni krug može nositi puno više energije, ovisno o releju, uključujući mrežni napon ili čak veće razine snage za industrijsku upotrebu. Na taj način IoT razvojni komplet može kontrolirati sustav za navodnjavanje, od male pumpe za jednu biljku do masivnog industrijskog sustava za cijelu komercijalnu farmu. -![Grove relej s označenim kontrolnim krugom, izlaznim krugom i relejem](../../../../../translated_images/hr/grove-relay-labelled.293e068f5c3c2a199bd7892f2661fdc9e10c920b535cfed317fbd6d1d4ae1168.png) +![Grove relej s označenim kontrolnim krugom, izlaznim krugom i relejem](../../../../../translated_images/hr/grove-relay-labelled.293e068f5c3c2a19.webp) Slika iznad prikazuje Grove relej. Kontrolni krug povezuje se s IoT uređajem i uključuje ili isključuje relej koristeći 3.3V ili 5V. Izlazni krug ima dva terminala, bilo koji može biti napajanje ili uzemljenje. Izlazni krug može podnijeti do 250V pri 10A, što je dovoljno za niz uređaja na mrežno napajanje. Možete nabaviti releje koji mogu podnijeti još veće razine snage. diff --git a/translations/hr/2-farm/lessons/3-automated-plant-watering/pi-relay.md b/translations/hr/2-farm/lessons/3-automated-plant-watering/pi-relay.md index f321515fa..826c624d6 100644 --- a/translations/hr/2-farm/lessons/3-automated-plant-watering/pi-relay.md +++ b/translations/hr/2-farm/lessons/3-automated-plant-watering/pi-relay.md @@ -18,13 +18,13 @@ Grove relej može se povezati s Raspberry Pi-jem. Povežite relej. -![Grove relej](../../../../../translated_images/hr/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) +![Grove relej](../../../../../translated_images/hr/grove-relay.d426958ca210fbd0.webp) 1. Umetnite jedan kraj Grove kabela u utičnicu na releju. Kabel će ući samo na jedan način. 1. Dok je Raspberry Pi isključen, spojite drugi kraj Grove kabela na digitalnu utičnicu označenu **D5** na Grove Base Hat-u pričvršćenom na Pi. Ova utičnica je druga s lijeva, u redu utičnica pored GPIO pinova. Ostavite senzor vlažnosti tla povezan na utičnicu **A0**. -![Grove relej povezan na utičnicu D5, a senzor vlažnosti tla povezan na utičnicu A0](../../../../../translated_images/hr/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e69ec716cd2719ce117700bd1fc933eaf93476c103c57939b.png) +![Grove relej povezan na utičnicu D5, a senzor vlažnosti tla povezan na utičnicu A0](../../../../../translated_images/hr/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e.webp) 1. Umetnite senzor vlažnosti tla u tlo, ako već nije iz prethodne lekcije. diff --git a/translations/hr/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md b/translations/hr/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md index 494d86306..a76717ff5 100644 --- a/translations/hr/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md +++ b/translations/hr/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md @@ -28,11 +28,11 @@ Dodajte relej u CounterFit aplikaciju. 1. Kliknite gumb **Add** za kreiranje releja na pinu 5. - ![Postavke releja](../../../../../translated_images/hr/counterfit-create-relay.fa7c40fd0f2f6afc33b35ea94fcb235085be4861e14e3fe6b9b7bcfc82d1c888.png) + ![Postavke releja](../../../../../translated_images/hr/counterfit-create-relay.fa7c40fd0f2f6afc.webp) Relej će biti kreiran i pojavit će se na popisu aktuatora. - ![Kreirani relej](../../../../../translated_images/hr/counterfit-relay.bbf74c1dbdc8b9acd983367fcbd06703a402aefef6af54ddb28e11307ba8a12c.png) + ![Kreirani relej](../../../../../translated_images/hr/counterfit-relay.bbf74c1dbdc8b9ac.webp) ## Programiranje releja diff --git a/translations/hr/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md b/translations/hr/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md index cc23bc69c..625997a52 100644 --- a/translations/hr/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md +++ b/translations/hr/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md @@ -18,7 +18,7 @@ Grove relej može se povezati na digitalni port Wio Terminala. Povežite relej. -![Grove relej](../../../../../translated_images/hr/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) +![Grove relej](../../../../../translated_images/hr/grove-relay.d426958ca210fbd0.webp) 1. Umetnite jedan kraj Grove kabela u utičnicu na releju. Kabel će ući samo na jedan način. diff --git a/translations/hr/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md b/translations/hr/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md index 4e1f7100f..329aae9ce 100644 --- a/translations/hr/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md +++ b/translations/hr/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md @@ -1,6 +1,6 @@ # Premjestite svoju biljku u oblak -![Sketchnote pregled ove lekcije](../../../../../translated_images/hr/lesson-8.3f21f3c11159e6a0a376351973ea5724d5de68fa23b4288853a174bed9ac48c3.jpg) +![Sketchnote pregled ove lekcije](../../../../../translated_images/hr/lesson-8.3f21f3c11159e6a0.webp) > Sketchnote autorice [Nitya Narasimhan](https://github.com/nitya). Kliknite na sliku za veću verziju. @@ -46,8 +46,8 @@ Ovo je moglo biti vrlo skupo, zahtijevati širok spektar stručnih zaposlenika i Oblak se često u šali naziva "računalom nekog drugog". Početna ideja bila je jednostavna - umjesto kupnje računala, unajmite računalo nekog drugog. Netko drugi, pružatelj usluga računalstva u oblaku, upravljao bi ogromnim podatkovnim centrima. Oni bi bili odgovorni za kupnju i instalaciju hardvera, upravljanje napajanjem i hlađenjem, umrežavanje, sigurnost zgrade, ažuriranja hardvera i softvera, sve. Kao korisnik, unajmljujete računala koja su vam potrebna, unajmljujete više kada potražnja raste, a smanjujete broj kada potražnja opada. Ovi podatkovni centri nalaze se diljem svijeta. -![Microsoftov podatkovni centar u oblaku](../../../../../translated_images/hr/azure-region-existing.73f704604f2aa6cb9b5a49ed40e93d4fd81ae3f4e6af4a8ca504023902832f56.png) -![Planirano proširenje Microsoftovog podatkovnog centra u oblaku](../../../../../translated_images/hr/azure-region-planned-expansion.a5074a1e8af74f156a73552d502429e5b126ea5019274d767ecb4b9afdad442b.png) +![Microsoftov podatkovni centar u oblaku](../../../../../translated_images/hr/azure-region-existing.73f704604f2aa6cb.webp) +![Planirano proširenje Microsoftovog podatkovnog centra u oblaku](../../../../../translated_images/hr/azure-region-planned-expansion.a5074a1e8af74f15.webp) Ovi podatkovni centri mogu biti veličine nekoliko četvornih kilometara. Gornje slike snimljene su prije nekoliko godina u Microsoftovom podatkovnom centru u oblaku i prikazuju početnu veličinu, zajedno s planiranim proširenjem. Površina očišćena za proširenje veća je od 5 četvornih kilometara. @@ -108,11 +108,11 @@ IoT usluge u oblaku rješavaju ove probleme. Njima upravljaju veliki pružatelji IoT uređaji povezuju se s uslugom u oblaku ili pomoću SDK-a za uređaje (biblioteke koja pruža kod za rad s značajkama usluge) ili izravno putem komunikacijskog protokola poput MQTT-a ili HTTP-a. SDK za uređaje obično je najlakši put jer automatski upravlja svime, poput znanja o tome koje teme objaviti ili pretplatiti se, te kako upravljati sigurnošću. -![Uređaji se povezuju s uslugom pomoću SDK-a za uređaje. Serverski kod također se povezuje s uslugom putem SDK-a](../../../../../translated_images/hr/iot-service-connectivity.7e873847921a5d6fd60d0ba3a943210194518cee0d4e362476624316443275c3.png) +![Uređaji se povezuju s uslugom pomoću SDK-a za uređaje. Serverski kod također se povezuje s uslugom putem SDK-a](../../../../../translated_images/hr/iot-service-connectivity.7e873847921a5d6f.webp) Vaš uređaj tada komunicira s drugim dijelovima vaše aplikacije putem ove usluge - slično kao što ste slali telemetriju i primali naredbe putem MQTT-a. To se obično radi pomoću SDK-a za usluge ili slične biblioteke. Poruke dolaze s vašeg uređaja na uslugu gdje ih drugi dijelovi vaše aplikacije mogu pročitati, a poruke se mogu poslati natrag na vaš uređaj. -![Uređaji bez valjanog tajnog ključa ne mogu se povezati s IoT uslugom](../../../../../translated_images/hr/iot-service-allowed-denied-connection.818b0063ac213fb84204a7229303764d9b467ca430fb822b4ac2fca267d56726.png) +![Uređaji bez valjanog tajnog ključa ne mogu se povezati s IoT uslugom](../../../../../translated_images/hr/iot-service-allowed-denied-connection.818b0063ac213fb8.webp) Ove usluge implementiraju sigurnost tako što znaju za sve uređaje koji se mogu povezati i slati podatke, bilo da su uređaji unaprijed registrirani s uslugom ili im se daju tajni ključevi ili certifikati koje mogu koristiti za registraciju pri prvom povezivanju. Nepoznati uređaji ne mogu se povezati; ako pokušaju, usluga odbija vezu i ignorira poruke koje šalju. @@ -124,7 +124,7 @@ Ostali dijelovi vaše aplikacije mogu se povezati s IoT uslugom i saznati sve o Sada kada imate Azure pretplatu, možete se prijaviti za IoT uslugu. IoT usluga od Microsofta zove se Azure IoT Hub. -![Logotip Azure IoT Hub](../../../../../translated_images/hr/azure-iot-hub-logo.28a19de76d0a1932464d858f7558712bcdace3e5ec69c434d482ed7ce41c3a26.png) +![Logotip Azure IoT Hub](../../../../../translated_images/hr/azure-iot-hub-logo.28a19de76d0a1932.webp) Video ispod daje kratak pregled Azure IoT Hub-a: diff --git a/translations/hr/2-farm/lessons/5-migrate-application-to-the-cloud/README.md b/translations/hr/2-farm/lessons/5-migrate-application-to-the-cloud/README.md index c79175c4e..dcafc70a8 100644 --- a/translations/hr/2-farm/lessons/5-migrate-application-to-the-cloud/README.md +++ b/translations/hr/2-farm/lessons/5-migrate-application-to-the-cloud/README.md @@ -1,6 +1,6 @@ # Premjestite logiku svoje aplikacije u oblak -![Sketchnote pregled ove lekcije](../../../../../translated_images/hr/lesson-9.dfe99c8e891f48e179724520da9f5794392cf9a625079281ccdcbf09bd85e1b6.jpg) +![Sketchnote pregled ove lekcije](../../../../../translated_images/hr/lesson-9.dfe99c8e891f48e1.webp) > Sketchnote autorice [Nitya Narasimhan](https://github.com/nitya). Kliknite na sliku za veću verziju. @@ -28,7 +28,7 @@ U ovoj lekciji obradit ćemo: Serverless, ili serverless računarstvo, uključuje kreiranje malih blokova koda koji se izvršavaju u oblaku kao odgovor na različite vrste događaja. Kada se dogodi događaj, vaš kod se pokreće i dobiva podatke o tom događaju. Ti događaji mogu dolaziti iz različitih izvora, uključujući web zahtjeve, poruke stavljene u red, promjene podataka u bazi podataka ili poruke koje IoT uređaji šalju IoT usluzi. -![Događaji koji se šalju iz IoT usluge u serverless uslugu, svi se obrađuju istovremeno pomoću više funkcija koje se pokreću](../../../../../translated_images/hr/iot-messages-to-serverless.0194da1cc0732bb7d0f823aed3fce54735c6b1ad3bf36089804d8aaefc0a774f.png) +![Događaji koji se šalju iz IoT usluge u serverless uslugu, svi se obrađuju istovremeno pomoću više funkcija koje se pokreću](../../../../../translated_images/hr/iot-messages-to-serverless.0194da1cc0732bb7.webp) > 💁 Ako ste prije koristili okidače u bazama podataka, ovo možete zamisliti kao sličan koncept - kod koji se pokreće događajem, poput umetanja retka. @@ -54,7 +54,7 @@ Kao IoT programer, serverless model je idealan. Možete napisati funkciju koja s Microsoftova usluga za serverless računarstvo zove se Azure Functions. -![Logo Azure Functions](../../../../../translated_images/hr/azure-functions-logo.1cfc8e3204c9c44aaf80fcf406fc8544d80d7f00f8d3e8ed6fed764563e17564.png) +![Logo Azure Functions](../../../../../translated_images/hr/azure-functions-logo.1cfc8e3204c9c44a.webp) Kratki video ispod daje pregled Azure Functions. diff --git a/translations/hr/2-farm/lessons/6-keep-your-plant-secure/README.md b/translations/hr/2-farm/lessons/6-keep-your-plant-secure/README.md index ec15b40f4..8ff251ed3 100644 --- a/translations/hr/2-farm/lessons/6-keep-your-plant-secure/README.md +++ b/translations/hr/2-farm/lessons/6-keep-your-plant-secure/README.md @@ -1,6 +1,6 @@ # Osigurajte svoju biljku -![Pregled lekcije u obliku sketchnotea](../../../../../translated_images/hr/lesson-10.829c86b80b9403bb770929ee553a1d293afe50dc23121aaf9be144673ae012cc.jpg) +![Pregled lekcije u obliku sketchnotea](../../../../../translated_images/hr/lesson-10.829c86b80b9403bb.webp) > Sketchnote autor [Nitya Narasimhan](https://github.com/nitya). Kliknite na sliku za veću verziju. @@ -52,11 +52,11 @@ Ovo su scenariji iz stvarnog svijeta i događaju se stalno. Neki primjeri su nav Kada se uređaj povezuje s IoT uslugom, koristi ID za identifikaciju. Problem je što se taj ID može klonirati - haker bi mogao postaviti zlonamjerni uređaj koji koristi isti ID kao pravi uređaj, ali šalje lažne podatke. -![I pravi i zlonamjerni uređaji mogli bi koristiti isti ID za slanje telemetrije](../../../../../translated_images/hr/iot-device-and-hacked-device-connecting.e0671675df74d6d99eb1dedb5a670e606f698efa6202b1ad4c8ae548db299cc6.png) +![I pravi i zlonamjerni uređaji mogli bi koristiti isti ID za slanje telemetrije](../../../../../translated_images/hr/iot-device-and-hacked-device-connecting.e0671675df74d6d9.webp) Rješenje za ovo je pretvaranje podataka koji se šalju u šifrirani format, koristeći neku vrijednost poznatu samo uređaju i oblaku. Ovaj proces se naziva *šifriranje*, a vrijednost koja se koristi za šifriranje podataka naziva se *ključ za šifriranje*. -![Ako se koristi šifriranje, tada će biti prihvaćene samo šifrirane poruke, ostale će biti odbijene](../../../../../translated_images/hr/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f979e46f2849b573564eeb4a4dc5b52f669f62745397492fb.png) +![Ako se koristi šifriranje, tada će biti prihvaćene samo šifrirane poruke, ostale će biti odbijene](../../../../../translated_images/hr/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f.webp) Usluga u oblaku tada može pretvoriti podatke natrag u čitljiv format, koristeći proces nazvan *dešifriranje*, koristeći ili isti ključ za šifriranje ili *ključ za dešifriranje*. Ako se šifrirana poruka ne može dešifrirati pomoću ključa, uređaj je hakiran i poruka se odbija. diff --git a/translations/hr/3-transport/lessons/1-location-tracking/README.md b/translations/hr/3-transport/lessons/1-location-tracking/README.md index 4f0045628..29dfab46f 100644 --- a/translations/hr/3-transport/lessons/1-location-tracking/README.md +++ b/translations/hr/3-transport/lessons/1-location-tracking/README.md @@ -1,6 +1,6 @@ # Praćenje lokacije -![Sketchnote pregled ove lekcije](../../../../../translated_images/hr/lesson-11.9fddbac4b664c6d50ab7ac9bb32f1fc3f945f03760e72f7f43938073762fb017.jpg) +![Sketchnote pregled ove lekcije](../../../../../translated_images/hr/lesson-11.9fddbac4b664c6d5.webp) > Sketchnote autorice [Nitya Narasimhan](https://github.com/nitya). Kliknite na sliku za veću verziju. @@ -63,13 +63,13 @@ Zemlja je sfera - trodimenzionalni krug. Zbog toga se točke definiraju dijeljen > 💁 Nitko zapravo ne zna izvorni razlog zašto su krugovi podijeljeni na 360 stupnjeva. [Stranica o stupnjevima (kut) na Wikipediji](https://wikipedia.org/wiki/Degree_(angle)) pokriva neke od mogućih razloga. -![Linije geografske širine od 90° na Sjevernom polu, 45° na pola puta između Sjevernog pola i ekvatora, 0° na ekvatoru, -45° na pola puta između ekvatora i Južnog pola, i -90° na Južnom polu](../../../../../translated_images/hr/latitude-lines.11d8d91dfb2014a57437272d7db7fd6607243098e8685f06e0c5f1ec984cb7eb.png) +![Linije geografske širine od 90° na Sjevernom polu, 45° na pola puta između Sjevernog pola i ekvatora, 0° na ekvatoru, -45° na pola puta između ekvatora i Južnog pola, i -90° na Južnom polu](../../../../../translated_images/hr/latitude-lines.11d8d91dfb2014a5.webp) Geografska širina mjeri se pomoću linija koje kruže Zemljom i paralelne su s ekvatorom, dijeleći sjevernu i južnu hemisferu na po 90°. Ekvator je na 0°, Sjeverni pol na 90°, također poznat kao 90° sjeverno, a Južni pol na -90°, ili 90° južno. Geografska dužina mjeri se kao broj stupnjeva prema istoku i zapadu. Početna točka od 0° geografske dužine naziva se *Glavni meridijan* i definirana je 1884. godine kao linija od Sjevernog do Južnog pola koja prolazi kroz [Kraljevski opservatorij u Greenwichu, Engleska](https://wikipedia.org/wiki/Royal_Observatory,_Greenwich). -![Linije geografske dužine koje idu od -180° zapadno od Glavnog meridijana, do 0° na Glavnom meridijanu, do 180° istočno od Glavnog meridijana](../../../../../translated_images/hr/longitude-meridians.ab4ef1c91c064586b0185a3c8d39e585903696c6a7d28c098a93a629cddb5d20.png) +![Linije geografske dužine koje idu od -180° zapadno od Glavnog meridijana, do 0° na Glavnom meridijanu, do 180° istočno od Glavnog meridijana](../../../../../translated_images/hr/longitude-meridians.ab4ef1c91c064586.webp) > 🎓 Meridijan je zamišljena ravna linija koja ide od Sjevernog do Južnog pola, tvoreći polukrug. @@ -100,7 +100,7 @@ Koordinate za točku uvijek se daju kao `geografska širina, geografska dužina` * Geografsku širinu od 47.6423109 (47.6423109 stupnjeva sjeverno od ekvatora) * Geografsku dužinu od -122.1390293 (122.1390293 stupnjeva zapadno od Glavnog meridijana). -![Microsoftov kampus na 47.6423109,-122.117198](../../../../../translated_images/hr/microsoft-gps-location-world.a321d481b010f6adfcca139b2ba0adc53b79f58a540495b8e2ce7f779ea64bfe.png) +![Microsoftov kampus na 47.6423109,-122.117198](../../../../../translated_images/hr/microsoft-gps-location-world.a321d481b010f6ad.webp) ## Globalni pozicijski sustavi (GPS) @@ -112,7 +112,7 @@ GPS sustavi rade tako što imaju niz satelita koji šalju signal s trenutnom poz > 💁 GPS senzori trebaju antene za detekciju radio valova. Antene ugrađene u kamione i automobile s ugrađenim GPS-om postavljene su tako da imaju dobar signal, obično na vjetrobranskom staklu ili krovu. Ako koristite zaseban GPS sustav, poput pametnog telefona ili IoT uređaja, trebate osigurati da antena ugrađena u GPS sustav ili telefon ima jasan pogled na nebo, poput postavljanja na vjetrobransko staklo. -![Pozicija se može izračunati znajući udaljenost od senzora do više satelita](../../../../../translated_images/hr/gps-satellites.04acf1148fe25fbf1586bc2e8ba698e8d79b79a50c36824b38417dd13372b90f.png) +![Pozicija se može izračunati znajući udaljenost od senzora do više satelita](../../../../../translated_images/hr/gps-satellites.04acf1148fe25fbf.webp) GPS sateliti kruže oko Zemlje, nisu na fiksnoj točki iznad senzora, pa podaci o lokaciji uključuju nadmorsku visinu iznad razine mora, kao i geografsku širinu i dužinu. diff --git a/translations/hr/3-transport/lessons/1-location-tracking/pi-gps-sensor.md b/translations/hr/3-transport/lessons/1-location-tracking/pi-gps-sensor.md index e38028372..2cf0818d2 100644 --- a/translations/hr/3-transport/lessons/1-location-tracking/pi-gps-sensor.md +++ b/translations/hr/3-transport/lessons/1-location-tracking/pi-gps-sensor.md @@ -18,13 +18,13 @@ Grove GPS senzor može se povezati s Raspberry Pi-jem. Povežite GPS senzor. -![Grove GPS senzor](../../../../../translated_images/hr/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![Grove GPS senzor](../../../../../translated_images/hr/grove-gps-sensor.247943bf69b03f0d.webp) 1. Umetnite jedan kraj Grove kabela u utičnicu na GPS senzoru. Kabel će ući samo na jedan način. 1. Dok je Raspberry Pi isključen, povežite drugi kraj Grove kabela s UART utičnicom označenom **UART** na Grove Base hatu pričvršćenom na Pi. Ova utičnica nalazi se u srednjem redu, na strani najbližoj utoru za SD karticu, na suprotnoj strani od USB portova i ethernet utičnice. - ![Grove GPS senzor povezan s UART utičnicom](../../../../../translated_images/hr/pi-gps-sensor.1f99ee2b2f6528915047ec78967bd362e0e4ee0ed594368a3837b9cf9cdaca64.png) + ![Grove GPS senzor povezan s UART utičnicom](../../../../../translated_images/hr/pi-gps-sensor.1f99ee2b2f652891.webp) 1. Postavite GPS senzor tako da povezana antena ima vidljivost prema nebu - idealno pored otvorenog prozora ili vani. Lakše je dobiti jasniji signal bez prepreka između antene i neba. diff --git a/translations/hr/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md b/translations/hr/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md index 3f75d753b..517d0ceb6 100644 --- a/translations/hr/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md +++ b/translations/hr/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md @@ -38,11 +38,11 @@ Dodajte GPS senzor u CounterFit aplikaciju. 1. Odaberite gumb **Add** za kreiranje GPS senzora na portu `/dev/ttyAMA0`. - ![Postavke GPS senzora](../../../../../translated_images/hr/counterfit-create-gps-sensor.6385dc9357d85ad1d47b4abb2525e7651fd498917d25eefc5a72feab09eedc70.png) + ![Postavke GPS senzora](../../../../../translated_images/hr/counterfit-create-gps-sensor.6385dc9357d85ad1.webp) GPS senzor će biti kreiran i pojavit će se na popisu senzora. - ![Kreirani GPS senzor](../../../../../translated_images/hr/counterfit-gps-sensor.3fbb15af0a5367566f2f11324ef5a6f30861cdf2b497071a5e002b7aa473550e.png) + ![Kreirani GPS senzor](../../../../../translated_images/hr/counterfit-gps-sensor.3fbb15af0a536756.webp) ## Programiranje GPS senzora @@ -102,17 +102,17 @@ Programirajte aplikaciju za GPS senzor. * Postavite **Source** na `Lat/Lon`, i postavite eksplicitnu geografsku širinu, dužinu i broj satelita korištenih za GPS fiks. Ova vrijednost će biti poslana samo jednom, pa označite **Repeat** okvir kako bi se podaci ponavljali svake sekunde. - ![GPS senzor s odabranim lat lon](../../../../../translated_images/hr/counterfit-gps-sensor-latlon.008c867d75464fbe7f84107cc57040df565ac07cb57d2f21db37d087d470197d.png) + ![GPS senzor s odabranim lat lon](../../../../../translated_images/hr/counterfit-gps-sensor-latlon.008c867d75464fbe.webp) * Postavite **Source** na `NMEA` i dodajte neke NMEA rečenice u tekstualni okvir. Sve ove vrijednosti će biti poslane, s odgodom od 1 sekunde prije svake nove GGA (pozicijski fiks) rečenice koja se može pročitati. - ![GPS senzor s postavljenim NMEA rečenicama](../../../../../translated_images/hr/counterfit-gps-sensor-nmea.c62eea442171e17e19528b051b104cfcecdc9cd18db7bc72920f29821ae63f73.png) + ![GPS senzor s postavljenim NMEA rečenicama](../../../../../translated_images/hr/counterfit-gps-sensor-nmea.c62eea442171e17e.webp) Možete koristiti alat poput [nmeagen.org](https://www.nmeagen.org) za generiranje ovih rečenica crtanjem na karti. Ove vrijednosti će biti poslane samo jednom, pa označite **Repeat** okvir kako bi se podaci ponavljali jednu sekundu nakon što su svi poslani. * Postavite **Source** na GPX datoteku i učitajte GPX datoteku s lokacijama staza. GPX datoteke možete preuzeti s brojnih popularnih stranica za kartografiju i planinarenje, poput [AllTrails](https://www.alltrails.com/). Ove datoteke sadrže više GPS lokacija kao stazu, a GPS senzor će vraćati svaku novu lokaciju u intervalima od 1 sekunde. - ![GPS senzor s postavljenom GPX datotekom](../../../../../translated_images/hr/counterfit-gps-sensor-gpxfile.8310b063ce8a425ccc8ebeec8306aeac5e8e55207f007d52c6e1194432a70cd9.png) + ![GPS senzor s postavljenom GPX datotekom](../../../../../translated_images/hr/counterfit-gps-sensor-gpxfile.8310b063ce8a425c.webp) Ove vrijednosti će biti poslane samo jednom, pa označite **Repeat** okvir kako bi se podaci ponavljali jednu sekundu nakon što su svi poslani. diff --git a/translations/hr/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md b/translations/hr/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md index 7de3744af..705de588c 100644 --- a/translations/hr/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md +++ b/translations/hr/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md @@ -18,7 +18,7 @@ Grove GPS senzor može se povezati s Wio Terminalom. Povežite GPS senzor. -![Grove GPS senzor](../../../../../translated_images/hr/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![Grove GPS senzor](../../../../../translated_images/hr/grove-gps-sensor.247943bf69b03f0d.webp) 1. Umetnite jedan kraj Grove kabela u utičnicu na GPS senzoru. Kabel će ući samo na jedan način. diff --git a/translations/hr/3-transport/lessons/2-store-location-data/README.md b/translations/hr/3-transport/lessons/2-store-location-data/README.md index e45b6d1a7..08e11676b 100644 --- a/translations/hr/3-transport/lessons/2-store-location-data/README.md +++ b/translations/hr/3-transport/lessons/2-store-location-data/README.md @@ -1,6 +1,6 @@ # Podaci o lokaciji trgovine -![Sketchnote pregled ove lekcije](../../../../../translated_images/hr/lesson-12.ca7f53039712a3ec14ad6474d8445361c84adab643edc53fa6269b77895606bb.jpg) +![Sketchnote pregled ove lekcije](../../../../../translated_images/hr/lesson-12.ca7f53039712a3ec.webp) > Sketchnote od [Nitya Narasimhan](https://github.com/nitya). Kliknite na sliku za veću verziju. @@ -75,7 +75,7 @@ NoSQL baze podataka nazivaju se NoSQL jer nemaju istu krutu strukturu kao SQL ba > 💁 Unatoč njihovom nazivu, neke NoSQL baze podataka omogućuju korištenje SQL-a za upite podataka. -![Dokumenti u mapama u NoSQL bazi podataka](../../../../../translated_images/hr/noqsl-database.62d24ccf5b73f60d35c245a8533f1c7147c0928e955b82cb290b2e184bb434df.png) +![Dokumenti u mapama u NoSQL bazi podataka](../../../../../translated_images/hr/noqsl-database.62d24ccf5b73f60d.webp) NoSQL baze podataka nemaju unaprijed definiranu shemu koja ograničava način pohrane podataka, umjesto toga možete umetnuti bilo koje nestrukturirane podatke, obično koristeći JSON dokumente. Ovi dokumenti mogu se organizirati u mape, slično datotekama na vašem računalu. Svaki dokument može imati različita polja od drugih dokumenata - na primjer, ako pohranjujete IoT podatke s vaših poljoprivrednih vozila, neki mogu imati polja za podatke akcelerometra i brzine, drugi mogu imati polja za temperaturu u prikolici. Ako biste dodali novu vrstu kamiona, poput onog s ugrađenim vagama za praćenje težine prevezenih proizvoda, vaš IoT uređaj mogao bi dodati ovo novo polje i ono bi se moglo pohraniti bez ikakvih promjena u bazi podataka. @@ -89,7 +89,7 @@ U ovoj lekciji koristit ćete NoSQL pohranu za pohranu IoT podataka. U prethodnoj lekciji ste prikupili GPS podatke s GPS senzora povezanog s vašim IoT uređajem. Da biste pohranili ove IoT podatke u oblaku, morate ih poslati IoT usluzi. Ponovno ćete koristiti Azure IoT Hub, istu IoT uslugu u oblaku koju ste koristili u prethodnom projektu. -![Slanje GPS telemetrije s IoT uređaja u IoT Hub](../../../../../translated_images/hr/gps-telemetry-iot-hub.8115335d51cd2c1285d20e9d1b18cf685e59a8e093e7797291ef173445af6f3d.png) +![Slanje GPS telemetrije s IoT uređaja u IoT Hub](../../../../../translated_images/hr/gps-telemetry-iot-hub.8115335d51cd2c12.webp) ### Zadatak - slanje GPS podataka u IoT Hub @@ -171,7 +171,7 @@ Podaci hladnog puta pohranjuju se u skladištima podataka - bazama podataka diza Kada podaci teku u vaš IoT Hub, možete napisati serverless kod za slušanje događaja objavljenih na Event-Hub kompatibilnom endpointu. Ovo je topli put - ovi podaci će se pohraniti i koristiti u sljedećoj lekciji za izvještavanje o putovanju. -![Slanje GPS telemetrije s IoT uređaja u IoT Hub, zatim u Azure Functions putem okidača event hub-a](../../../../../translated_images/hr/gps-telemetry-iot-hub-functions.24d3fa5592455e9f4e2fe73856b40c3915a292b90263c31d652acfd976cfedd8.png) +![Slanje GPS telemetrije s IoT uređaja u IoT Hub, zatim u Azure Functions putem okidača event hub-a](../../../../../translated_images/hr/gps-telemetry-iot-hub-functions.24d3fa5592455e9f.webp) ### Zadatak - obrada GPS događaja pomoću serverless koda @@ -193,7 +193,7 @@ Kada podaci teku u vaš IoT Hub, možete napisati serverless kod za slušanje do ## Azure Storage računi -![Logo Azure Storage-a](../../../../../translated_images/hr/azure-storage-logo.605c0f602c640d482a80f1b35a2629a32d595711b7ab1d7ceea843250615ff32.png) +![Logo Azure Storage-a](../../../../../translated_images/hr/azure-storage-logo.605c0f602c640d48.webp) Azure Storage računi su univerzalna usluga za pohranu koja može pohranjivati podatke na različite načine. Možete pohranjivati podatke kao blobove, u redovima, u tablicama ili kao datoteke, i sve to istovremeno. diff --git a/translations/hr/3-transport/lessons/3-visualize-location-data/README.md b/translations/hr/3-transport/lessons/3-visualize-location-data/README.md index f119d693a..31a584767 100644 --- a/translations/hr/3-transport/lessons/3-visualize-location-data/README.md +++ b/translations/hr/3-transport/lessons/3-visualize-location-data/README.md @@ -1,6 +1,6 @@ # Vizualizacija podataka o lokaciji -![Sketchnote pregled ove lekcije](../../../../../translated_images/hr/lesson-13.a259db1485021be7d7c72e90842fbe0ab977529e8684c179b5fb1ea75e92b3ef.jpg) +![Sketchnote pregled ove lekcije](../../../../../translated_images/hr/lesson-13.a259db1485021be7.webp) > Sketchnote autorice [Nitya Narasimhan](https://github.com/nitya). Kliknite na sliku za veću verziju. @@ -64,11 +64,11 @@ Uzmimo jednostavan primjer - u projektu farme prikupljali ste podatke o vlažnos Kao ljudima, razumijevanje ovih podataka može biti teško. To je zid brojeva bez ikakvog značenja. Kao prvi korak u vizualizaciji ovih podataka, mogu se iscrtati na linijskom grafikonu: -![Linijski grafikon gore navedenih podataka](../../../../../translated_images/hr/chart-soil-moisture.fd6d9d0cdc0b5f75e78038ecb8945dfc84b38851359de99d84b16e3336d6d7c2.png) +![Linijski grafikon gore navedenih podataka](../../../../../translated_images/hr/chart-soil-moisture.fd6d9d0cdc0b5f75.webp) Ovo se može dodatno poboljšati dodavanjem linije koja označava kada je automatski sustav za zalijevanje uključen pri očitanju vlažnosti tla od 450: -![Linijski grafikon vlažnosti tla s linijom na 450](../../../../../translated_images/hr/chart-soil-moisture-relay.fbb391236d34a64d0abf1df396e9197e0a24df14150620b9cc820a64a55c9326.png) +![Linijski grafikon vlažnosti tla s linijom na 450](../../../../../translated_images/hr/chart-soil-moisture-relay.fbb391236d34a64d.webp) Ovaj grafikon vrlo brzo pokazuje ne samo razine vlažnosti tla, već i točke kada je sustav za zalijevanje uključen. @@ -84,7 +84,7 @@ Kada radite s GPS podacima, najjasnija vizualizacija može biti iscrtavanje poda Rad s kartama je zanimljiv zadatak, a postoji mnogo opcija poput Bing Maps, Leaflet, Open Street Maps i Google Maps. U ovoj lekciji naučit ćete o [Azure Maps](https://azure.microsoft.com/services/azure-maps/?WT.mc_id=academic-17441-jabenn) i kako oni mogu prikazati vaše GPS podatke. -![Azure Maps logo](../../../../../translated_images/hr/azure-maps-logo.35d01dcfbd81fe6140e94257aaa1538f785a58c91576d14e0ebe7a2f6c694b99.png) +![Azure Maps logo](../../../../../translated_images/hr/azure-maps-logo.35d01dcfbd81fe61.webp) Azure Maps je "zbirka geoprostornih usluga i SDK-ova koji koriste svježe podatke o kartama kako bi pružili geografski kontekst za web i mobilne aplikacije." Programerima su dostupni alati za stvaranje lijepih, interaktivnih karata koje mogu, primjerice, pružiti preporučene prometne rute, informacije o prometnim incidentima, unutarnju navigaciju, mogućnosti pretraživanja, informacije o nadmorskoj visini, vremenske usluge i još mnogo toga. @@ -185,7 +185,7 @@ Sada možete prijeći na sljedeći korak, a to je prikazivanje karte na web stra Ako otvorite svoju `index.html` stranicu u web pregledniku, trebali biste vidjeti kartu učitanu i fokusiranu na područje Seattlea. - ![Karta koja prikazuje Seattle, grad u saveznoj državi Washington, SAD](../../../../../translated_images/hr/map-image.8fb2c53eb23ef39c1c0a4410a5282e879b3b452b707eb066ff04c5488d3d72b7.png) + ![Karta koja prikazuje Seattle, grad u saveznoj državi Washington, SAD](../../../../../translated_images/hr/map-image.8fb2c53eb23ef39c.webp) ✅ Eksperimentirajte s parametrima za zumiranje i centriranje kako biste promijenili prikaz karte. Možete dodati različite koordinate koje odgovaraju širini i dužini vaših podataka kako biste ponovno centrirali kartu. @@ -319,7 +319,7 @@ Ako pokušate pristupiti svojoj pohrani kako biste dohvatili podatke, mogli bist 1. Učitajte HTML stranicu u svoj preglednik. Stranica će učitati kartu, zatim učitati sve GPS podatke iz pohrane i prikazati ih na karti. - ![Karta Saint Edward State Parka blizu Seattlea, s krugovima koji prikazuju put oko ruba parka](../../../../../translated_images/hr/map-path.896832e72dc696ffe20650e4051027d4855442d955f93fdbb80bb417ca8a406f.png) + ![Karta Saint Edward State Parka blizu Seattlea, s krugovima koji prikazuju put oko ruba parka](../../../../../translated_images/hr/map-path.896832e72dc696ff.webp) > 💁 Ovaj kod možete pronaći u [code](../../../../../3-transport/lessons/3-visualize-location-data/code) mapi. diff --git a/translations/hr/3-transport/lessons/4-geofences/README.md b/translations/hr/3-transport/lessons/4-geofences/README.md index fe502b134..b34c6d7b5 100644 --- a/translations/hr/3-transport/lessons/4-geofences/README.md +++ b/translations/hr/3-transport/lessons/4-geofences/README.md @@ -1,6 +1,6 @@ # Geoograde -![Pregled lekcije u obliku sketchnotea](../../../../../translated_images/hr/lesson-14.63980c5150ae3c153e770fb71d044c1845dce79248d86bed9fc525adf3ede73c.jpg) +![Pregled lekcije u obliku sketchnotea](../../../../../translated_images/hr/lesson-14.63980c5150ae3c15.webp) > Sketchnote od [Nitya Narasimhan](https://github.com/nitya). Kliknite na sliku za veću verziju. @@ -35,7 +35,7 @@ U ovoj lekciji obradit ćemo: Geooograda je virtualni perimetar za stvarnu geografsku regiju. Geooograde mogu biti krugovi definirani kao točka i radijus (na primjer, krug širine 100m oko zgrade) ili poligon koji pokriva područje poput školske zone, granica grada, sveučilišnog ili uredskog kampusa. -![Primjeri geooograda koji prikazuju kružnu geooogradu oko Microsoftove trgovine i poligonsku geooogradu oko zapadnog kampusa Microsofta](../../../../../translated_images/hr/geofence-examples.172fbc534665769f6e1a1ddcf75e3b25183cd10354c80cc603ba44b635390e1a.png) +![Primjeri geooograda koji prikazuju kružnu geooogradu oko Microsoftove trgovine i poligonsku geooogradu oko zapadnog kampusa Microsofta](../../../../../translated_images/hr/geofence-examples.172fbc534665769f.webp) > 💁 Možda ste već koristili geooograde, a da to niste znali. Ako ste postavili podsjetnik pomoću aplikacije iOS Reminders ili Google Keep na temelju lokacije, koristili ste geooogradu. Te aplikacije postavljaju geooogradu na temelju zadane lokacije i obavještavaju vas kada vaš telefon uđe u geooogradu. @@ -212,7 +212,7 @@ Važno je znati udaljenost do ruba geooograde i kombinirati je s drugim informac Na primjer, zamislite GPS očitanja koja pokazuju da je vozilo vozilo cestom koja završava uz geooogradu. Ako jedno GPS očitanje nije točno i postavi vozilo unutar geooograde, unatoč tome što nema pristupa vozilima, tada se može zanemariti. -![GPS trag koji pokazuje vozilo koje prolazi Microsoft kampusom na 520, s GPS očitanjima duž ceste osim jednog na kampusu, unutar geooograde](../../../../../translated_images/hr/geofence-crossing-inaccurate-gps.6a3ed911202ad9cabb66d3964888cec03a42c61d5b8f536ad5bdc99716b370f5.png) +![GPS trag koji pokazuje vozilo koje prolazi Microsoft kampusom na 520, s GPS očitanjima duž ceste osim jednog na kampusu, unutar geooograde](../../../../../translated_images/hr/geofence-crossing-inaccurate-gps.6a3ed911202ad9ca.webp) Na gornjoj slici prikazan je geofence preko dijela Microsoft kampusa. Crvena linija prikazuje kamion koji vozi duž autoceste 520, s krugovima koji označavaju GPS očitanja. Većina tih očitanja je točna i nalazi se duž autoceste 520, dok jedno netočno očitanje pokazuje lokaciju unutar geofencea. Nema načina da to očitanje bude ispravno - nema cesta koje bi omogućile kamionu da iznenada skrene s autoceste 520 na kampus, a zatim se vrati na autocestu 520. Kod koji provjerava ovaj geofence morat će uzeti u obzir prethodna očitanja prije nego što djeluje na rezultate testa geofencea. ✅ Koje dodatne podatke biste trebali provjeriti kako biste utvrdili može li se GPS očitanje smatrati točnim? @@ -284,7 +284,7 @@ Kao što se sjećate iz prethodnih lekcija, IoT Hub omogućuje ponovno reproduci Odgovor je da ne može! Umjesto toga, možete definirati više odvojenih veza za čitanje događaja, a svaka od njih može upravljati reprodukcijom nepročitanih poruka. To se zove *potrošačke grupe*. Kada se povežete s krajnjom točkom, možete odrediti koju potrošačku grupu želite koristiti. Svaka komponenta vaše aplikacije povezat će se s različitom potrošačkom grupom. -![Jedan IoT Hub s 3 potrošačke grupe koje distribuiraju iste poruke na 3 različite Functions aplikacije](../../../../../translated_images/hr/consumer-groups.a3262e26fc27ba2092863678ad57af15c7223416e388a23f330c058cf4358630.png) +![Jedan IoT Hub s 3 potrošačke grupe koje distribuiraju iste poruke na 3 različite Functions aplikacije](../../../../../translated_images/hr/consumer-groups.a3262e26fc27ba20.webp) Teoretski, do 5 aplikacija može se povezati s svakom potrošačkom grupom, i sve će primati poruke kada stignu. Najbolja praksa je imati samo jednu aplikaciju koja pristupa svakoj potrošačkoj grupi kako bi se izbjeglo dupliciranje obrade poruka i osiguralo da se prilikom ponovnog pokretanja sve poruke u redu obrađuju ispravno. Na primjer, ako pokrenete svoju Functions aplikaciju lokalno, kao i u oblaku, obje bi obrađivale poruke, što bi dovelo do dupliciranja blobova pohranjenih u storage računu. diff --git a/translations/hr/4-manufacturing/lessons/1-train-fruit-detector/README.md b/translations/hr/4-manufacturing/lessons/1-train-fruit-detector/README.md index 4fcd702f4..490ff33fd 100644 --- a/translations/hr/4-manufacturing/lessons/1-train-fruit-detector/README.md +++ b/translations/hr/4-manufacturing/lessons/1-train-fruit-detector/README.md @@ -1,6 +1,6 @@ # Trenirajte detektor kvalitete voća -![Pregled lekcije u obliku sketchnotea](../../../../../translated_images/hr/lesson-15.843d21afdc6fb2bba70cd9db7b7d2f91598859fafda2078b0bdc44954194b6c0.jpg) +![Pregled lekcije u obliku sketchnotea](../../../../../translated_images/hr/lesson-15.843d21afdc6fb2bb.webp) > Sketchnote od [Nitya Narasimhan](https://github.com/nitya). Kliknite na sliku za veću verziju. @@ -38,7 +38,7 @@ Ne sazrijevaju svi usjevi ravnomjerno. Na primjer, rajčice mogu imati još zele Porast automatizirane berbe premjestio je sortiranje proizvoda s berbe na tvornicu. Hrana bi putovala na dugim pokretnim trakama s timovima ljudi koji pregledavaju proizvode i uklanjaju sve što ne zadovoljava potrebne standarde kvalitete. Berba je bila jeftinija zahvaljujući strojevima, ali još uvijek je postojao trošak ručnog sortiranja hrane. -![Ako se otkrije crvena rajčica, nastavlja svoj put neometano. Ako se otkrije zelena rajčica, poluga je izbacuje u otpadnu posudu](../../../../../translated_images/hr/optical-tomato-sorting.61aa134bdda4e5b1bfb16a212c1e35a6ef0c426cbb8b1c975f79d7bfbf48d068.png) +![Ako se otkrije crvena rajčica, nastavlja svoj put neometano. Ako se otkrije zelena rajčica, poluga je izbacuje u otpadnu posudu](../../../../../translated_images/hr/optical-tomato-sorting.61aa134bdda4e5b1.webp) Sljedeća evolucija bila je korištenje strojeva za sortiranje, bilo ugrađenih u berač ili u pogonima za obradu. Prva generacija ovih strojeva koristila je optičke senzore za otkrivanje boja, kontrolirajući aktuatore koji su gurali zelene rajčice u otpadnu posudu pomoću poluga ili mlazova zraka, ostavljajući crvene rajčice da nastave na mreži pokretnih traka. @@ -62,7 +62,7 @@ Na primjer, mogli biste dati modelu milijune slika nezrelih banana kao ulazne po > 🎓 Rezultati ML modela nazivaju se *predikcije* -![2 banane, jedna zrela s predikcijom od 99.7% zrelo, 0.3% nezrelo, i jedna nezrela s predikcijom od 1.4% zrelo, 98.6% nezrelo](../../../../../translated_images/hr/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50ece4e4589e724b142da0681f35470fe3db3f7d51240f69c85.png) +![2 banane, jedna zrela s predikcijom od 99.7% zrelo, 0.3% nezrelo, i jedna nezrela s predikcijom od 1.4% zrelo, 98.6% nezrelo](../../../../../translated_images/hr/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50e.webp) ML modeli ne daju binarni odgovor, već daju vjerojatnosti. Na primjer, model može dobiti sliku banane i predvidjeti `zrelo` s 99.7% i `nezrelo` s 0.3%. Vaš kod bi tada odabrao najbolju predikciju i odlučio da je banana zrela. @@ -90,7 +90,7 @@ Postoji širok raspon alata koji vam mogu pomoći u tome, uključujući usluge t Custom Vision je alat temeljen na oblaku za obuku klasifikatora slika. Omogućuje vam obuku klasifikatora koristeći samo mali broj slika. Možete učitati slike putem web portala, web API-ja ili SDK-a, dajući svakoj slici *oznaku* koja predstavlja klasifikaciju te slike. Zatim obučavate model i testirate ga kako biste vidjeli koliko dobro radi. Kada ste zadovoljni modelom, možete objaviti njegove verzije koje se mogu koristiti putem web API-ja ili SDK-a. -![Logotip Azure Custom Vision](../../../../../translated_images/hr/custom-vision-logo.d3d4e7c8a87ec9daf825e72e210576c3cbf60312577be7a139e22dd97ab7f1e6.png) +![Logotip Azure Custom Vision](../../../../../translated_images/hr/custom-vision-logo.d3d4e7c8a87ec9da.webp) > 💁 Možete obučiti model Custom Vision s samo 5 slika po klasifikaciji, ali više je bolje. Možete dobiti bolje rezultate s barem 30 slika. @@ -146,7 +146,7 @@ Da biste koristili Custom Vision, prvo morate kreirati dva resursa za kognitivne Kada kreirate svoj projekt, obavezno koristite resurs `fruit-quality-detector-training` koji ste ranije kreirali. Koristite *Classification* kao tip projekta, *Multiclass* kao tip klasifikacije i *Food* kao domen. - ![Postavke za projekt Custom Vision s nazivom postavljenim na fruit-quality-detector, bez opisa, resursom postavljenim na fruit-quality-detector-training, tipom projekta postavljenim na classification, tipom klasifikacije postavljenim na multi class i domenom postavljenom na food](../../../../../translated_images/hr/custom-vision-create-project.cf46325b92d8b131089f6647cf5e07b664cb77850e106d66e3c057b6b69756c6.png) + ![Postavke za projekt Custom Vision s nazivom postavljenim na fruit-quality-detector, bez opisa, resursom postavljenim na fruit-quality-detector-training, tipom projekta postavljenim na classification, tipom klasifikacije postavljenim na multi class i domenom postavljenom na food](../../../../../translated_images/hr/custom-vision-create-project.cf46325b92d8b131.webp) ✅ Odvojite malo vremena za istraživanje Custom Vision UI-ja za vaš klasifikator slika. @@ -164,7 +164,7 @@ Klasifikatori slika rade na vrlo niskoj rezoluciji. Na primjer, Custom Vision mo * Koristeći 2 zrele banane, snimite nekoliko slika svake iz različitih kutova, snimajući najmanje 7 slika (5 za treniranje, 2 za testiranje), ali idealno više. - ![Fotografije 2 različite banane](../../../../../translated_images/hr/banana-training-images.530eb203346d73bc23b8b990fb4609470bf4ff7c942ccc13d4cfffeed9be1ad4.png) + ![Fotografije 2 različite banane](../../../../../translated_images/hr/banana-training-images.530eb203346d73bc.webp) * Ponovite isti postupak koristeći 2 nezrele banane. @@ -174,7 +174,7 @@ Klasifikatori slika rade na vrlo niskoj rezoluciji. Na primjer, Custom Vision mo 1. Slijedite [odjeljak za učitavanje i označavanje slika u vodiču za izradu klasifikatora na Microsoft dokumentaciji](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) kako biste učitali slike za treniranje. Označite zrelo voće kao `ripe`, a nezrelo voće kao `unripe`. - ![Dijalozi za učitavanje koji prikazuju učitavanje slika zrelih i nezrelih banana](../../../../../translated_images/hr/image-upload-bananas.0751639f3815e0ec42bdbc6254d1e4357a185834d1ae10c9948a0e7d6d336695.png) + ![Dijalozi za učitavanje koji prikazuju učitavanje slika zrelih i nezrelih banana](../../../../../translated_images/hr/image-upload-bananas.0751639f3815e0ec.webp) 1. Slijedite [odjeljak za treniranje klasifikatora u vodiču za izradu klasifikatora na Microsoft dokumentaciji](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#train-the-classifier) kako biste trenirali klasifikator slika na učitanim slikama. @@ -192,7 +192,7 @@ Nakon što je vaš klasifikator treniran, možete ga testirati tako da mu date n 1. Slijedite [dokumentaciju za testiranje modela na Microsoft dokumentaciji](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/test-your-model?WT.mc_id=academic-17441-jabenn#test-your-model) kako biste testirali svoj klasifikator slika. Koristite slike za testiranje koje ste ranije stvorili, a ne slike koje ste koristili za treniranje. - ![Nezrela banana predviđena kao nezrela s 98.9% vjerojatnosti, zrela s 1.1% vjerojatnosti](../../../../../translated_images/hr/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64886422438850ea14f0be6ac918c217ea3b255c685abfabe7.png) + ![Nezrela banana predviđena kao nezrela s 98.9% vjerojatnosti, zrela s 1.1% vjerojatnosti](../../../../../translated_images/hr/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64.webp) 1. Isprobajte sve slike za testiranje koje imate i promatrajte vjerojatnosti. diff --git a/translations/hr/4-manufacturing/lessons/2-check-fruit-from-device/README.md b/translations/hr/4-manufacturing/lessons/2-check-fruit-from-device/README.md index b8f5fea32..ad0629ff6 100644 --- a/translations/hr/4-manufacturing/lessons/2-check-fruit-from-device/README.md +++ b/translations/hr/4-manufacturing/lessons/2-check-fruit-from-device/README.md @@ -1,6 +1,6 @@ # Provjera kvalitete voća pomoću IoT uređaja -![Pregled lekcije u obliku sketchnotea](../../../../../translated_images/hr/lesson-16.215daf18b00631fbdfd64c6fc2dc6044dff5d544288825d8076f9fb83d964c23.jpg) +![Pregled lekcije u obliku sketchnotea](../../../../../translated_images/hr/lesson-16.215daf18b00631fb.webp) > Sketchnote autorice [Nitya Narasimhan](https://github.com/nitya). Kliknite na sliku za veću verziju. @@ -26,7 +26,7 @@ U ovoj lekciji obradit ćemo: Senzori kamera, kako ime sugerira, su kamere koje možete povezati s vašim IoT uređajem. Oni mogu snimati statične slike ili streaming video. Neki će vraćati sirove podatke slike, dok će drugi komprimirati podatke slike u datoteku poput JPEG-a ili PNG-a. Obično su kamere koje rade s IoT uređajima mnogo manje i niže rezolucije nego što ste navikli, ali možete nabaviti kamere visoke rezolucije koje se mogu usporediti s vrhunskim telefonima. Dostupni su razni izmjenjivi objektivi, višestruki setovi kamera, infracrvene termalne kamere ili UV kamere. -![Svjetlost iz scene prolazi kroz objektiv i fokusira se na CMOS senzor](../../../../../translated_images/hr/cmos-sensor.75f9cd74decb137149a4c9ea825251a4549497d67c0ae2776159e6102bb53aa9.png) +![Svjetlost iz scene prolazi kroz objektiv i fokusira se na CMOS senzor](../../../../../translated_images/hr/cmos-sensor.75f9cd74decb1371.webp) Većina senzora kamera koristi senzore slike gdje je svaki piksel fotodioda. Objektiv fokusira sliku na senzor slike, a tisuće ili milijuni fotodioda detektiraju svjetlost koja pada na svaku od njih i bilježe to kao podatke piksela. @@ -74,7 +74,7 @@ Iteracije se objavljuju iz portala Custom Vision. 1. Kliknite gumb **Publish** za iteraciju. - ![Gumb za objavljivanje](../../../../../translated_images/hr/custom-vision-publish-button.b7174e1977b0c33b8b72d4e5b1326c779e0af196f3849d09985ee2d7d5493a39.png) + ![Gumb za objavljivanje](../../../../../translated_images/hr/custom-vision-publish-button.b7174e1977b0c33b.webp) 1. U dijalogu *Publish Model*, postavite *Prediction resource* na resurs `fruit-quality-detector-prediction` koji ste kreirali u prethodnoj lekciji. Ostavite naziv kao `Iteration2` i kliknite gumb **Publish**. @@ -88,7 +88,7 @@ Iteracije se objavljuju iz portala Custom Vision. Također kopirajte vrijednost *Prediction-Key*. Ovo je sigurnosni ključ koji morate proslijediti prilikom pozivanja modela. Samo aplikacije koje proslijede ovaj ključ smiju koristiti model, sve ostale aplikacije bit će odbijene. - ![Dijalog API-ja za predikciju koji prikazuje URL i ključ](../../../../../translated_images/hr/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![Dijalog API-ja za predikciju koji prikazuje URL i ključ](../../../../../translated_images/hr/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ Kada se objavi nova iteracija, imat će drugačiji naziv. Kako mislite da biste promijenili iteraciju koju IoT uređaj koristi? @@ -109,7 +109,7 @@ Možda ćete primijetiti da rezultati koje dobijete prilikom korištenja kamere Da biste dobili najbolje rezultate za klasifikator slika, želite trenirati model s slikama koje su što sličnije slikama koje se koriste za predikcije. Ako ste koristili kameru telefona za snimanje slika za trening, na primjer, kvaliteta slike, oštrina i boja bit će drugačiji od kamere povezane s IoT uređajem. -![2 slike banana, jedna niske rezolucije s lošim osvjetljenjem s IoT uređaja, i jedna visoke rezolucije s dobrim osvjetljenjem s telefona](../../../../../translated_images/hr/banana-picture-compare.174df164dc326a42cf7fb051a7497e6113c620e91552d92ca914220305d47d9a.png) +![2 slike banana, jedna niske rezolucije s lošim osvjetljenjem s IoT uređaja, i jedna visoke rezolucije s dobrim osvjetljenjem s telefona](../../../../../translated_images/hr/banana-picture-compare.174df164dc326a42.webp) Na slici iznad, slika banane s lijeve strane snimljena je pomoću Raspberry Pi kamere, dok je slika s desne strane snimljena istog banana na istom mjestu pomoću iPhonea. Primjetna je razlika u kvaliteti - slika s iPhonea je oštrija, s svjetlijim bojama i većim kontrastom. diff --git a/translations/hr/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md b/translations/hr/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md index a197eea41..a1b0f25e4 100644 --- a/translations/hr/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md +++ b/translations/hr/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md @@ -16,7 +16,7 @@ Kamera se može povezati s Raspberry Pi-jem pomoću vrpčastog kabela. ### Zadatak - povezivanje kamere -![Raspberry Pi kamera](../../../../../translated_images/hr/pi-camera-module.4278753c31bd6e757aa2b858be97d72049f71616278cefe4fb5abb485b40a078.png) +![Raspberry Pi kamera](../../../../../translated_images/hr/pi-camera-module.4278753c31bd6e75.webp) 1. Isključite napajanje Pi-ja. @@ -24,17 +24,17 @@ Kamera se može povezati s Raspberry Pi-jem pomoću vrpčastog kabela. Animaciju koja prikazuje kako otvoriti kopču i umetnuti kabel možete pronaći u [Raspberry Pi dokumentaciji za početak rada s modulom kamere](https://projects.raspberrypi.org/en/projects/getting-started-with-picamera/2). - ![Vrpčasti kabel umetnut u modul kamere](../../../../../translated_images/hr/pi-camera-ribbon-cable.0bf82acd251611c21ac616f082849413e2b322a261d0e4f8fec344248083b07e.png) + ![Vrpčasti kabel umetnut u modul kamere](../../../../../translated_images/hr/pi-camera-ribbon-cable.0bf82acd251611c2.webp) 1. Uklonite Grove Base Hat s Pi-ja. 1. Provucite vrpčasti kabel kroz utor za kameru na Grove Base Hat-u. Provjerite je li plava strana kabela okrenuta prema analognim priključcima označenim **A0**, **A1** itd. - ![Vrpčasti kabel prolazi kroz Grove Base Hat](../../../../../translated_images/hr/grove-base-hat-ribbon-cable.501fed202fcf73b11b2b68f6d246189f7d15d3e4423c572ddee79d77b4632b47.png) + ![Vrpčasti kabel prolazi kroz Grove Base Hat](../../../../../translated_images/hr/grove-base-hat-ribbon-cable.501fed202fcf73b1.webp) 1. Umetnite vrpčasti kabel u priključak za kameru na Pi-ju. Ponovno, povucite crnu plastičnu kopču prema gore, umetnite kabel, a zatim gurnite kopču natrag. Plava strana kabela trebala bi biti okrenuta prema USB i Ethernet priključcima. - ![Vrpčasti kabel povezan s priključkom za kameru na Pi-ju](../../../../../translated_images/hr/pi-camera-socket-ribbon-cable.a18309920b11800911082ed7aa6fb28e6d9be3a022e4079ff990016cae3fca10.png) + ![Vrpčasti kabel povezan s priključkom za kameru na Pi-ju](../../../../../translated_images/hr/pi-camera-socket-ribbon-cable.a18309920b118009.webp) 1. Ponovno postavite Grove Base Hat. @@ -101,7 +101,7 @@ Programirajte uređaj. Linija `camera.rotation = 0` postavlja rotaciju slike. Vrpčasti kabel ulazi na dno kamere, ali ako je vaša kamera rotirana kako bi lakše usmjerila predmet koji želite klasificirati, možete promijeniti ovu liniju na broj stupnjeva rotacije. - ![Kamera visi iznad limenke pića](../../../../../translated_images/hr/pi-camera-upside-down.5376961ba31459883362124152ad6b823d5ac5fc14e85f317e22903bd681c2b6.png) + ![Kamera visi iznad limenke pića](../../../../../translated_images/hr/pi-camera-upside-down.5376961ba3145988.webp) Na primjer, ako objesite vrpčasti kabel iznad nečega tako da je na vrhu kamere, postavite rotaciju na 180: diff --git a/translations/hr/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md b/translations/hr/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md index a3937fb7d..d039de3e5 100644 --- a/translations/hr/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md +++ b/translations/hr/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md @@ -84,7 +84,7 @@ Usluga Custom Vision ima Python SDK koji možete koristiti za klasifikaciju slik Moći ćete vidjeti sliku koja je snimljena, i ove vrijednosti u **Predictions** kartici u Custom Vision. - ![Banana u Custom Visionu predviđena kao zrela s 56.8% i nezrela s 43.1%](../../../../../translated_images/hr/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![Banana u Custom Visionu predviđena kao zrela s 56.8% i nezrela s 43.1%](../../../../../translated_images/hr/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 Ovaj kod možete pronaći u mapi [code-classify/pi](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/pi) ili [code-classify/virtual-iot-device](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/virtual-iot-device). diff --git a/translations/hr/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md b/translations/hr/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md index f23614857..6342129ef 100644 --- a/translations/hr/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md +++ b/translations/hr/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md @@ -34,11 +34,11 @@ Dodajte kameru u aplikaciju CounterFit. 1. Odaberite gumb **Add** za kreiranje kamere. - ![Postavke kamere](../../../../../translated_images/hr/counterfit-create-camera.a5de97f59c0bd3cbe0416d7e89a3cfe86d19fbae05c641c53a91286412af0a34.png) + ![Postavke kamere](../../../../../translated_images/hr/counterfit-create-camera.a5de97f59c0bd3cb.webp) Kamera će biti kreirana i pojavit će se na popisu senzora. - ![Kreirana kamera](../../../../../translated_images/hr/counterfit-camera.001ec52194c8ee5d3f617173da2c79e1df903d10882adc625cbfc493525125d4.png) + ![Kreirana kamera](../../../../../translated_images/hr/counterfit-camera.001ec52194c8ee5d.webp) ## Programiranje kamere @@ -103,7 +103,7 @@ Programirajte uređaj. 1. Konfigurirajte sliku koju će kamera u CounterFit snimiti. Možete postaviti *Source* na *File*, zatim učitati datoteku slike, ili postaviti *Source* na *WebCam*, i slike će se snimati s vaše web kamere. Pobrinite se da odaberete gumb **Set** nakon odabira slike ili web kamere. - ![CounterFit s datotekom postavljenom kao izvor slike i web kamerom koja prikazuje osobu koja drži bananu u pregledu web kamere](../../../../../translated_images/hr/counterfit-camera-options.eb3bd5150a8e7dffbf24bc5bcaba0cf2cdef95fbe6bbe393695d173817d6b8df.png) + ![CounterFit s datotekom postavljenom kao izvor slike i web kamerom koja prikazuje osobu koja drži bananu u pregledu web kamere](../../../../../translated_images/hr/counterfit-camera-options.eb3bd5150a8e7dff.webp) 1. Slika će biti snimljena i spremljena kao `image.jpg` u trenutnoj mapi. Vidjet ćete ovu datoteku u exploreru VS Code-a. Odaberite datoteku za pregled slike. Ako je potrebna rotacija, ažurirajte liniju `camera.rotation = 0` prema potrebi i snimite novu sliku. diff --git a/translations/hr/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md b/translations/hr/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md index 52401262b..14c1f75d6 100644 --- a/translations/hr/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md +++ b/translations/hr/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md @@ -16,7 +16,7 @@ ArduCam nema Grove priključak, već se povezuje na SPI i I2C sabirnice putem GP Povežite kameru. -![Senzor ArduCam](../../../../../translated_images/hr/arducam.20e4e4cbb268296570b5914e20d6c349fc42ddac9ed4e1b9deba2188204eebae.png) +![Senzor ArduCam](../../../../../translated_images/hr/arducam.20e4e4cbb2682965.webp) 1. Pinovi na bazi ArduCam-a trebaju biti povezani na GPIO pinove na Wio Terminalu. Kako biste lakše pronašli odgovarajuće pinove, zalijepite naljepnicu s GPIO pinovima koja dolazi uz Wio Terminal oko pinova: @@ -35,7 +35,7 @@ Povežite kameru. | SDA | 3 (I2C1_SDA) | I2C serijski podaci | | SCL | 5 (I2C1_SCL) | I2C serijski sat | - ![Wio Terminal povezan s ArduCam-om pomoću žica](../../../../../translated_images/hr/arducam-wio-terminal-connections.a4d5a4049bdb5ab800a2877389fc6ecf5e4ff307e6451ff56c517e6786467d0a.png) + ![Wio Terminal povezan s ArduCam-om pomoću žica](../../../../../translated_images/hr/arducam-wio-terminal-connections.a4d5a4049bdb5ab8.webp) GND i VCC veze osiguravaju napajanje od 5V za ArduCam. Kamera radi na 5V, za razliku od Grove senzora koji rade na 3V. Ovo napajanje dolazi direktno iz USB-C priključka koji napaja uređaj. @@ -456,7 +456,7 @@ Wio Terminal podržava samo microSD kartice do 16GB. Ako imate veću SD karticu, 1. Isključite microSD karticu i izvadite je laganim pritiskom i otpuštanjem, te će iskočiti. Možda ćete morati koristiti tanki alat za ovo. Priključite microSD karticu na svoje računalo kako biste pregledali slike. - ![Slika banane snimljena pomoću ArduCam-a](../../../../../translated_images/hr/banana-arducam.be1b32d4267a8194b0fd042362e56faa431da9cd4af172051b37243ea9be0256.jpg) + ![Slika banane snimljena pomoću ArduCam-a](../../../../../translated_images/hr/banana-arducam.be1b32d4267a8194.webp) 💁 Možda će biti potrebno nekoliko slika da se bijela ravnoteža kamere prilagodi. Primijetit ćete to na temelju boje snimljenih slika, prve nekoliko mogu izgledati neispravno u boji. Uvijek možete zaobići ovo promjenom koda kako biste snimili nekoliko slika koje se ignoriraju u funkciji `setup`. diff --git a/translations/hr/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md b/translations/hr/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md index e78c2aafc..d7a3fd7c4 100644 --- a/translations/hr/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md +++ b/translations/hr/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md @@ -208,7 +208,7 @@ Ovi certifikati sadrže javne ključeve i ne moraju biti čuvani u tajnosti. Mo Moći ćete vidjeti sliku koja je snimljena i ove vrijednosti na kartici **Predictions** u Custom Visionu. - ![Banana u Custom Visionu predviđena kao zrela s 56.8% i nezrela s 43.1%](../../../../../translated_images/hr/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![Banana u Custom Visionu predviđena kao zrela s 56.8% i nezrela s 43.1%](../../../../../translated_images/hr/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 Ovaj kod možete pronaći u mapi [code-classify/wio-terminal](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/wio-terminal). diff --git a/translations/hr/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md b/translations/hr/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md index 7a4d6277c..6c92558bd 100644 --- a/translations/hr/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md +++ b/translations/hr/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md @@ -1,6 +1,6 @@ # Pokrenite svoj detektor voća na rubu -![Pregled lekcije u obliku sketchnotea](../../../../../translated_images/hr/lesson-17.bc333c3c35ba8e42cce666cfffa82b915f787f455bd94e006aea2b6f2722421a.jpg) +![Pregled lekcije u obliku sketchnotea](../../../../../translated_images/hr/lesson-17.bc333c3c35ba8e42.webp) > Sketchnote od [Nitya Narasimhan](https://github.com/nitya). Kliknite na sliku za veću verziju. @@ -33,11 +33,11 @@ U ovoj lekciji obradit ćemo: Rubno računalstvo uključuje korištenje računala koja obrađuju IoT podatke što bliže mjestu gdje se ti podaci generiraju. Umjesto da se obrada odvija u oblaku, ona se premješta na rub oblaka - vašu internu mrežu. -![Dijagram arhitekture koji prikazuje internetske usluge u oblaku i IoT uređaje na lokalnoj mreži](../../../../../translated_images/hr/cloud-without-edge.b4da641f6022c95ed6b91fde8b5323abd2f94e0d52073ad54172ae8f5dac90e9.png) +![Dijagram arhitekture koji prikazuje internetske usluge u oblaku i IoT uređaje na lokalnoj mreži](../../../../../translated_images/hr/cloud-without-edge.b4da641f6022c95e.webp) U dosadašnjim lekcijama, imali ste uređaje koji prikupljaju podatke i šalju ih u oblak na analizu, pokrećući funkcije bez poslužitelja ili AI modele u oblaku. -![Dijagram arhitekture koji prikazuje IoT uređaje na lokalnoj mreži povezane s rubnim uređajima, a ti rubni uređaji povezani su s oblakom](../../../../../translated_images/hr/cloud-with-edge.1e26462c62c126fe150bd15a5714ddf0be599f09bacbad08b85be02b76ea1ae1.png) +![Dijagram arhitekture koji prikazuje IoT uređaje na lokalnoj mreži povezane s rubnim uređajima, a ti rubni uređaji povezani su s oblakom](../../../../../translated_images/hr/cloud-with-edge.1e26462c62c126fe.webp) Rubno računalstvo uključuje premještanje nekih usluga iz oblaka na računala koja rade na istoj mreži kao i IoT uređaji, komunicirajući s oblakom samo kada je to potrebno. Na primjer, možete pokretati AI modele na rubnim uređajima za analizu zrelosti voća, a u oblak slati samo analitiku, poput broja zrelih i nezrelih komada voća. @@ -85,7 +85,7 @@ Za IoT sustave, često ćete željeti kombinaciju računalstva u oblaku i na rub ## Azure IoT Edge -![Logotip Azure IoT Edge](../../../../../translated_images/hr/azure-iot-edge-logo.c1c076749b5cba2e8755262fadc2f19ca1146b948d76990b1229199ac2292d79.png) +![Logotip Azure IoT Edge](../../../../../translated_images/hr/azure-iot-edge-logo.c1c076749b5cba2e.webp) Azure IoT Edge je usluga koja vam može pomoći da premjestite radne zadatke iz oblaka na rub. Postavljate uređaj kao rubni uređaj, a iz oblaka možete implementirati kod na taj rubni uređaj. To vam omogućuje kombiniranje mogućnosti oblaka i ruba. @@ -99,7 +99,7 @@ IoT Edge je ugrađen u IoT Hub, tako da možete upravljati rubnim uređajima kor IoT Edge pokreće kod iz *kontejnera* - samostalnih aplikacija koje se pokreću izolirano od ostatka aplikacija na vašem računalu. Kada pokrenete kontejner, on djeluje kao zasebno računalo koje radi unutar vašeg računala, sa svojim vlastitim softverom, uslugama i aplikacijama. Većinu vremena kontejneri ne mogu pristupiti ničemu na vašem računalu osim ako ne odlučite dijeliti stvari poput mape s kontejnerom. Kontejner tada izlaže usluge putem otvorenog porta kojem možete pristupiti ili ga izložiti svojoj mreži. -![Web zahtjev preusmjeren na kontejner](../../../../../translated_images/hr/container-web-browser.4ee81dd4f0d8838ce622b2a0d600b6a4322b5d4fe43159facd87b7b34f84d66a.png) +![Web zahtjev preusmjeren na kontejner](../../../../../translated_images/hr/container-web-browser.4ee81dd4f0d8838c.webp) Na primjer, možete imati kontejner s web stranicom koja radi na portu 80, zadani HTTP port, i možete ga izložiti sa svog računala također na portu 80. @@ -195,11 +195,11 @@ Nakon što je model treniran, potrebno ga je izvesti kao kontejner. ## Priprema kontejnera za implementaciju -![Kontejneri se kreiraju, zatim šalju u registry kontejnera, a potom se implementiraju na edge uređaj koristeći IoT Edge](../../../../../translated_images/hr/container-edge-flow.c246050dd60ceefdb6ace026a4ce5c6aa4112bb5898ae23fbb2ab4be29ae3e1b.png) +![Kontejneri se kreiraju, zatim šalju u registry kontejnera, a potom se implementiraju na edge uređaj koristeći IoT Edge](../../../../../translated_images/hr/container-edge-flow.c246050dd60ceefd.webp) Nakon što ste preuzeli svoj model, potrebno ga je izgraditi u kontejner, a zatim poslati u registry kontejnera - online lokaciju za pohranu kontejnera. IoT Edge može zatim preuzeti kontejner iz registryja i poslati ga na vaš uređaj. -![Logo Azure Container Registry](../../../../../translated_images/hr/azure-container-registry-logo.09494206991d4b295025ebff7d4e2900325e527a59184ffbc8464b6ab59654be.png) +![Logo Azure Container Registry](../../../../../translated_images/hr/azure-container-registry-logo.09494206991d4b29.webp) Registry kontejnera koji ćete koristiti za ovu lekciju je Azure Container Registry. Ovo nije besplatna usluga, pa kako biste uštedjeli novac, pobrinite se da [očistite svoj projekt](../../../clean-up.md) nakon što završite. diff --git a/translations/hr/4-manufacturing/lessons/4-trigger-fruit-detector/README.md b/translations/hr/4-manufacturing/lessons/4-trigger-fruit-detector/README.md index 7ebe4e1a5..4e6a1b743 100644 --- a/translations/hr/4-manufacturing/lessons/4-trigger-fruit-detector/README.md +++ b/translations/hr/4-manufacturing/lessons/4-trigger-fruit-detector/README.md @@ -1,6 +1,6 @@ # Pokretanje detekcije kvalitete voća pomoću senzora -![Pregled lekcije u obliku sketchnotea](../../../../../translated_images/hr/lesson-18.92c32ed1d354caa5a54baa4032cf0b172d4655e8e326ad5d46c558a0def15365.jpg) +![Pregled lekcije u obliku sketchnotea](../../../../../translated_images/hr/lesson-18.92c32ed1d354caa5.webp) > Sketchnote autorice [Nitya Narasimhan](https://github.com/nitya). Kliknite na sliku za veću verziju. @@ -39,7 +39,7 @@ IoT aplikacije mogu se opisati kao *stvari* (uređaji) koje šalju podatke koji ### Referentna IoT arhitektura -![Referentna IoT arhitektura](../../../../../translated_images/hr/iot-reference-architecture.2278b98b55c6d4e89bde18eada3688d893861d43507641804dd2f9d3079cfaa0.png) +![Referentna IoT arhitektura](../../../../../translated_images/hr/iot-reference-architecture.2278b98b55c6d4e8.webp) Gornji dijagram prikazuje referentnu IoT arhitekturu. @@ -49,7 +49,7 @@ Gornji dijagram prikazuje referentnu IoT arhitekturu. * **Uvidi** dolaze iz serverless aplikacija ili iz analize pohranjenih podataka. * **Akcije** mogu biti naredbe poslane uređajima ili vizualizacija podataka koja omogućuje ljudima donošenje odluka. -![Referentna IoT arhitektura](../../../../../translated_images/hr/iot-reference-architecture-azure.0b8d2161af924cb18ae48a8558a19541cca47f27264851b5b7e56d7b8bb372ac.png) +![Referentna IoT arhitektura](../../../../../translated_images/hr/iot-reference-architecture-azure.0b8d2161af924cb1.webp) Gornji dijagram prikazuje neke od komponenti i usluga obrađenih u ovim lekcijama i kako se povezuju u referentnoj IoT arhitekturi. @@ -89,7 +89,7 @@ Morate izgraditi sustav gdje se voće detektira čim stigne na pokretnu traku, z ### Prototipiranje aplikacije -![Referentna IoT arhitektura za provjeru kvalitete voća](../../../../../translated_images/hr/iot-reference-architecture-fruit-quality.cc705f121c3b6fa71c800d9630935ac34bc08223a04601e35f41d5e9b5dd5207.png) +![Referentna IoT arhitektura za provjeru kvalitete voća](../../../../../translated_images/hr/iot-reference-architecture-fruit-quality.cc705f121c3b6fa7.webp) Gornji dijagram prikazuje referentnu arhitekturu za ovu prototip aplikaciju. @@ -124,7 +124,7 @@ Prođite kroz odgovarajući vodič za korištenje senzora blizine za detekciju o Prototip detektora voća ima više komponenti koje međusobno komuniciraju. -![Komponente koje međusobno komuniciraju](../../../../../translated_images/hr/fruit-quality-detector-message-flow.adf2a65da8fd8741ac7af11361574de89adc126785d67606bb4d2ec00467e380.png) +![Komponente koje međusobno komuniciraju](../../../../../translated_images/hr/fruit-quality-detector-message-flow.adf2a65da8fd8741.webp) * Senzor blizine mjeri udaljenost do komada voća i šalje to u IoT Hub * Naredba za upravljanje kamerom dolazi iz IoT Hub-a prema uređaju s kamerom diff --git a/translations/hr/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md b/translations/hr/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md index e28ade353..5e83f7679 100644 --- a/translations/hr/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md +++ b/translations/hr/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md @@ -20,7 +20,7 @@ Grove Time of Flight senzor može se povezati s Raspberry Pi-jem. Povežite senzor Time of Flight. -![Grove Time of Flight senzor](../../../../../translated_images/hr/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![Grove Time of Flight senzor](../../../../../translated_images/hr/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. Umetnite jedan kraj Grove kabela u utičnicu na senzoru Time of Flight. Kabel će se umetnuti samo na jedan način. diff --git a/translations/hr/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md b/translations/hr/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md index 6b0cae24d..10887ef93 100644 --- a/translations/hr/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md +++ b/translations/hr/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md @@ -36,11 +36,11 @@ Dodajte senzor udaljenosti u CounterFit aplikaciju. 1. Kliknite na gumb **Add** za kreiranje senzora udaljenosti. - ![Postavke senzora udaljenosti](../../../../../translated_images/hr/counterfit-create-distance-sensor.967c9fb98f27888d95920c9784d004c972490eb71f70397fe13bd70a79a879a3.png) + ![Postavke senzora udaljenosti](../../../../../translated_images/hr/counterfit-create-distance-sensor.967c9fb98f27888d.webp) Senzor udaljenosti će biti kreiran i pojavit će se na popisu senzora. - ![Kreirani senzor udaljenosti](../../../../../translated_images/hr/counterfit-distance-sensor.079eefeeea0b68afc36431ce8fcbe2f09a7e4916ed1cd5cb30e696db53bc18fa.png) + ![Kreirani senzor udaljenosti](../../../../../translated_images/hr/counterfit-distance-sensor.079eefeeea0b68af.webp) ## Programiranje senzora udaljenosti diff --git a/translations/hr/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md b/translations/hr/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md index 0c92c30be..25e3b5c26 100644 --- a/translations/hr/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md +++ b/translations/hr/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md @@ -20,7 +20,7 @@ Grove senzor Time of Flight može se povezati s Wio Terminalom. Povežite senzor Time of Flight. -![Grove senzor Time of Flight](../../../../../translated_images/hr/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![Grove senzor Time of Flight](../../../../../translated_images/hr/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. Umetnite jedan kraj Grove kabela u priključak na senzoru Time of Flight. Kabel će ući samo na jedan način. diff --git a/translations/hr/5-retail/lessons/1-train-stock-detector/README.md b/translations/hr/5-retail/lessons/1-train-stock-detector/README.md index 38d78d449..478856c2e 100644 --- a/translations/hr/5-retail/lessons/1-train-stock-detector/README.md +++ b/translations/hr/5-retail/lessons/1-train-stock-detector/README.md @@ -1,6 +1,6 @@ # Trenirajte detektor zaliha -![Sketchnote pregled ove lekcije](../../../../../translated_images/hr/lesson-19.cf6973cecadf080c4b526310620dc4d6f5994c80fb0139c6f378cc9ca2d435cd.jpg) +![Sketchnote pregled ove lekcije](../../../../../translated_images/hr/lesson-19.cf6973cecadf080c.webp) > Sketchnote autorice [Nitya Narasimhan](https://github.com/nitya). Kliknite na sliku za veću verziju. @@ -36,7 +36,7 @@ Prepoznavanje objekata uključuje detekciju objekata na slikama pomoću AI-a. Za Klasifikacija slika odnosi se na klasifikaciju cijele slike - koje su vjerojatnosti da cijela slika odgovara svakoj oznaci. Dobivate natrag vjerojatnosti za svaku oznaku korištenu za treniranje modela. -![Klasifikacija slika indijskih oraščića i paste od rajčice](../../../../../translated_images/hr/image-classifier-cashews-tomato.bc2e16ab8f05cf9ac0f59f73e32efc4227f9a5b601b90b2c60f436694547a965.png) +![Klasifikacija slika indijskih oraščića i paste od rajčice](../../../../../translated_images/hr/image-classifier-cashews-tomato.bc2e16ab8f05cf9a.webp) U gornjem primjeru, dvije slike su klasificirane pomoću modela treniranog za klasifikaciju posuda s indijskim oraščićima ili konzervi paste od rajčice. Prva slika prikazuje posudu s indijskim oraščićima i ima dva rezultata iz klasifikatora slika: @@ -60,7 +60,7 @@ Kada ga zatim koristite za predviđanje slika, umjesto da dobijete popis oznaka > 🎓 *Okviri* su pravokutnici oko objekta. -![Prepoznavanje objekata indijskih oraščića i paste od rajčice](../../../../../translated_images/hr/object-detector-cashews-tomato.1af7c26686b4db0e709754aeb196f4e73271f54e2085db3bcccb70d4a0d84d97.png) +![Prepoznavanje objekata indijskih oraščića i paste od rajčice](../../../../../translated_images/hr/object-detector-cashews-tomato.1af7c26686b4db0e.webp) Gornja slika sadrži i posudu s indijskim oraščićima i tri konzerve paste od rajčice. Detektor objekata detektirao je indijske oraščiće, vraćajući okvir koji sadrži indijske oraščiće s postotkom vjerojatnosti da okvir sadrži objekt, u ovom slučaju 97.6%. Detektor objekata također je detektirao tri konzerve paste od rajčice i pruža tri odvojena okvira, po jedan za svaku detektiranu konzervu, a svaki ima postotak vjerojatnosti da okvir sadrži konzervu paste od rajčice. @@ -109,7 +109,7 @@ Možete trenirati detektor objekata koristeći Custom Vision, na sličan način Kada kreirate svoj projekt, obavezno koristite resurs `stock-detector-training` koji ste ranije kreirali. Koristite tip projekta *Object Detection* i domenu *Products on Shelves*. - ![Postavke za Custom Vision projekt s nazivom postavljenim na fruit-quality-detector, bez opisa, resursom postavljenim na fruit-quality-detector-training, tipom projekta postavljenim na classification, vrstama klasifikacije postavljenim na multi class i domenama postavljenim na food](../../../../../translated_images/hr/custom-vision-create-object-detector-project.32d4fb9aa8e7e7375f8a799bfce517aca970f2cb65e42d4245c5e635c734ab29.png) + ![Postavke za Custom Vision projekt s nazivom postavljenim na fruit-quality-detector, bez opisa, resursom postavljenim na fruit-quality-detector-training, tipom projekta postavljenim na classification, vrstama klasifikacije postavljenim na multi class i domenama postavljenim na food](../../../../../translated_images/hr/custom-vision-create-object-detector-project.32d4fb9aa8e7e737.webp) ✅ Domena *Products on Shelves* posebno je usmjerena na detekciju zaliha na policama trgovina. Pročitajte više o različitim domenama u [dokumentaciji o odabiru domena na Microsoft Docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/select-domain?WT.mc_id=academic-17441-jabenn#object-detection). @@ -131,11 +131,11 @@ Za treniranje modela trebat će vam skup slika koje sadrže objekte koje želite 1. Slijedite [odjeljak Upload i označavanje slika u vodiču za brzi početak na Microsoft dokumentaciji](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/get-started-build-detector?WT.mc_id=academic-17441-jabenn#upload-and-tag-images) kako biste učitali svoje slike za treniranje. Kreirajte relevantne oznake ovisno o vrstama objekata koje želite detektirati. - ![Dijalozi za upload koji prikazuju upload slika zrelih i nezrelih banana](../../../../../translated_images/hr/image-upload-object-detector.77c7892c3093cb59b79018edecd678749a75d71a099bc8a2d2f2f76320f88a5b.png) + ![Dijalozi za upload koji prikazuju upload slika zrelih i nezrelih banana](../../../../../translated_images/hr/image-upload-object-detector.77c7892c3093cb59.webp) Kada crtate okvire za objekte, držite ih čvrsto oko objekta. Može potrajati neko vrijeme da označite sve slike, ali alat će detektirati ono što misli da su okviri, čineći proces bržim. - ![Označavanje paste od rajčice](../../../../../translated_images/hr/object-detector-tag-tomato-paste.f47c362fb0f0eb582f3bc68cf3855fb43a805106395358d41896a269c210b7b4.png) + ![Označavanje paste od rajčice](../../../../../translated_images/hr/object-detector-tag-tomato-paste.f47c362fb0f0eb58.webp) > 💁 Ako imate više od 15 slika za svaki objekt, možete trenirati nakon 15, a zatim koristiti značajku **Predložene oznake**. Ovo će koristiti trenirani model za detekciju objekata na neoznačenim slikama. Zatim možete potvrditi detektirane objekte ili odbaciti i ponovno nacrtati okvire. Ovo može uštedjeti *puno* vremena. @@ -153,7 +153,7 @@ Kada je vaš detektor objekata treniran, možete ga testirati dajući mu nove sl 1. Koristite gumb **Quick Test** za upload testnih slika i provjeru jesu li objekti detektirani. Koristite testne slike koje ste ranije kreirali, a ne bilo koju od slika koje ste koristili za treniranje. - ![3 konzerve paste od rajčice detektirane s vjerojatnostima od 38%, 35.5% i 34.6%](../../../../../translated_images/hr/object-detector-detected-tomato-paste.52656fe87af4c37b4ee540526d63e73ed075da2e54a9a060aa528e0c562fb1b6.png) + ![3 konzerve paste od rajčice detektirane s vjerojatnostima od 38%, 35.5% i 34.6%](../../../../../translated_images/hr/object-detector-detected-tomato-paste.52656fe87af4c37b.webp) 1. Isprobajte sve testne slike koje imate i promatrajte vjerojatnosti. diff --git a/translations/hr/5-retail/lessons/2-check-stock-device/README.md b/translations/hr/5-retail/lessons/2-check-stock-device/README.md index c0b2e20bc..21081c650 100644 --- a/translations/hr/5-retail/lessons/2-check-stock-device/README.md +++ b/translations/hr/5-retail/lessons/2-check-stock-device/README.md @@ -1,6 +1,6 @@ # Provjera zaliha s IoT uređajem -![Sketchnote pregled ove lekcije](../../../../../translated_images/hr/lesson-20.0211df9551a8abb300fc8fcf7dc2789468dea2eabe9202273ac077b0ba37f15e.jpg) +![Sketchnote pregled ove lekcije](../../../../../translated_images/hr/lesson-20.0211df9551a8abb3.webp) > Sketchnote autorice [Nitya Narasimhan](https://github.com/nitya). Kliknite na sliku za veću verziju. @@ -62,7 +62,7 @@ Iteracije se objavljuju putem Custom Vision portala. 1. Kliknite gumb **Publish** za iteraciju. - ![Gumb za objavu](../../../../../translated_images/hr/custom-vision-object-detector-publish-button.34ee379fc650ccb9856c3868d0003f413b9529f102fc73c37168c98d721cc293.png) + ![Gumb za objavu](../../../../../translated_images/hr/custom-vision-object-detector-publish-button.34ee379fc650ccb9.webp) 1. U dijaloškom okviru *Publish Model*, postavite *Prediction resource* na resurs `stock-detector-prediction` koji ste stvorili u prethodnoj lekciji. Ostavite naziv kao `Iteration2` i kliknite gumb **Publish**. @@ -76,7 +76,7 @@ Iteracije se objavljuju putem Custom Vision portala. Također kopirajte vrijednost *Prediction-Key*. Ovo je sigurnosni ključ koji morate proslijediti prilikom pozivanja modela. Samo aplikacije koje proslijede ovaj ključ mogu koristiti model, sve ostale aplikacije bit će odbijene. - ![Dijaloški okvir za API predikcije koji prikazuje URL i ključ](../../../../../translated_images/hr/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![Dijaloški okvir za API predikcije koji prikazuje URL i ključ](../../../../../translated_images/hr/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ Kada se objavi nova iteracija, imat će drugačiji naziv. Kako mislite da biste promijenili iteraciju koju koristi IoT uređaj? @@ -95,7 +95,7 @@ Kada koristite detektor objekata, ne dobivate samo prepoznate objekte s njihovim Rezultati predikcije u kartici **Predictions** u Custom Visionu imaju ograničavajuće okvire nacrtane na slici koja je poslana na predikciju. -![4 konzerve rajčice na polici s predikcijama za 4 detekcije od 35.8%, 33.5%, 25.7% i 16.6%](../../../../../translated_images/hr/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) +![4 konzerve rajčice na polici s predikcijama za 4 detekcije od 35.8%, 33.5%, 25.7% i 16.6%](../../../../../translated_images/hr/custom-vision-stock-prediction.942266ab1bcca341.webp) Na slici iznad, prepoznate su 4 konzerve rajčice. U rezultatima je crveni kvadrat prekriven za svaki objekt koji je prepoznat na slici, označavajući ograničavajući okvir za sliku. @@ -103,7 +103,7 @@ Na slici iznad, prepoznate su 4 konzerve rajčice. U rezultatima je crveni kvadr Ograničavajući okviri definirani su s 4 vrijednosti - top, left, height i width. Ove vrijednosti su na skali od 0-1, predstavljajući pozicije kao postotak veličine slike. Ishodište (pozicija 0,0) je gornji lijevi kut slike, tako da je top vrijednost udaljenost od vrha, a dno ograničavajućeg okvira je top plus height. -![Ograničavajući okvir oko konzerve rajčice](../../../../../translated_images/hr/bounding-box.1420a7ea0d3d15f71e1ffb5cf4b2271d184fac051f990abc541975168d163684.png) +![Ograničavajući okvir oko konzerve rajčice](../../../../../translated_images/hr/bounding-box.1420a7ea0d3d15f7.webp) Slika iznad je široka 600 piksela i visoka 800 piksela. Ograničavajući okvir počinje na 320 piksela od vrha, dajući top koordinatu od 0.4 (800 x 0.4 = 320). S lijeve strane, okvir počinje na 240 piksela, dajući left koordinatu od 0.4 (600 x 0.4 = 240). Visina okvira je 240 piksela, dajući height vrijednost od 0.3 (800 x 0.3 = 240). Širina okvira je 120 piksela, dajući width vrijednost od 0.2 (600 x 0.2 = 120). @@ -118,7 +118,7 @@ Korištenje postotnih vrijednosti od 0-1 znači da bez obzira na veličinu slike Možete koristiti ograničavajuće okvire u kombinaciji s vjerojatnostima za procjenu točnosti detekcije. Na primjer, detektor objekata može prepoznati više objekata koji se preklapaju, primjerice prepoznati jednu konzervu unutar druge. Vaš kod može provjeriti ograničavajuće okvire, shvatiti da je to nemoguće, i ignorirati sve objekte koji se značajno preklapaju s drugim objektima. -![Dva ograničavajuća okvira preklapaju konzervu rajčice](../../../../../translated_images/hr/overlap-object-detection.d431e03cae75072a2760430eca7f2c5fdd43045bfd72dadcbf12711f7cd6c2ae.png) +![Dva ograničavajuća okvira preklapaju konzervu rajčice](../../../../../translated_images/hr/overlap-object-detection.d431e03cae75072a.webp) U primjeru iznad, jedan ograničavajući okvir označava predviđenu konzervu rajčice s 78.3%. Drugi okvir je nešto manji i nalazi se unutar prvog okvira s vjerojatnošću od 64.3%. Vaš kod može provjeriti ograničavajuće okvire, vidjeti da se potpuno preklapaju i ignorirati nižu vjerojatnost jer nije moguće da jedna konzerva bude unutar druge. diff --git a/translations/hr/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md b/translations/hr/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md index 7251d3fc5..e9ddbf702 100644 --- a/translations/hr/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md +++ b/translations/hr/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md @@ -67,7 +67,7 @@ Kod koji ste koristili za klasifikaciju slika vrlo je sličan kodu za detekciju Moći ćete vidjeti sliku koja je snimljena i ove vrijednosti u kartici **Predictions** u Custom Vision. - ![4 limenke paste od rajčice na polici s predikcijama za 4 detekcije od 35.8%, 33.5%, 25.7% i 16.6%](../../../../../translated_images/hr/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![4 limenke paste od rajčice na polici s predikcijama za 4 detekcije od 35.8%, 33.5%, 25.7% i 16.6%](../../../../../translated_images/hr/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 Ovaj kod možete pronaći u mapi [code-detect/pi](../../../../../5-retail/lessons/2-check-stock-device/code-detect/pi) ili [code-detect/virtual-iot-device](../../../../../5-retail/lessons/2-check-stock-device/code-detect/virtual-iot-device). diff --git a/translations/hr/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md b/translations/hr/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md index 17ed42e1d..6f216980e 100644 --- a/translations/hr/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md +++ b/translations/hr/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md @@ -95,7 +95,7 @@ Kod koji ste koristili za klasifikaciju slika vrlo je sličan kodu za detekciju Moći ćete vidjeti sliku koja je snimljena, kao i ove vrijednosti na kartici **Predictions** u Custom Vision. - ![4 konzerve paste od rajčice na polici s predikcijama za 4 detekcije od 35.8%, 33.5%, 25.7% i 16.6%](../../../../../translated_images/hr/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![4 konzerve paste od rajčice na polici s predikcijama za 4 detekcije od 35.8%, 33.5%, 25.7% i 16.6%](../../../../../translated_images/hr/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 Ovaj kod možete pronaći u mapi [code-detect/wio-terminal](../../../../../5-retail/lessons/2-check-stock-device/code-detect/wio-terminal). diff --git a/translations/hr/6-consumer/lessons/1-speech-recognition/README.md b/translations/hr/6-consumer/lessons/1-speech-recognition/README.md index 982e5de1f..b49f66a2a 100644 --- a/translations/hr/6-consumer/lessons/1-speech-recognition/README.md +++ b/translations/hr/6-consumer/lessons/1-speech-recognition/README.md @@ -1,6 +1,6 @@ # Prepoznajte govor pomoću IoT uređaja -![Sketchnote pregled ove lekcije](../../../../../translated_images/hr/lesson-21.e34de51354d6606fb5ee08d8c89d0222eea0a2a7aaf744a8805ae847c4f69dc4.jpg) +![Sketchnote pregled ove lekcije](../../../../../translated_images/hr/lesson-21.e34de51354d6606f.webp) > Sketchnote od [Nitya Narasimhan](https://github.com/nitya). Kliknite na sliku za veću verziju. @@ -51,7 +51,7 @@ Mikrofoni dolaze u raznim vrstama: Dinamički mikrofoni ne trebaju napajanje za rad, električni signal se stvara isključivo iz mikrofona. - ![Patti Smith pjeva u Shure SM58 (dinamički kardioidni tip) mikrofon](../../../../../translated_images/hr/dynamic-mic.8babac890a2d80dfb0874b5bf37d4b851fe2aeb9da6fd72945746176978bf3bb.jpg) + ![Patti Smith pjeva u Shure SM58 (dinamički kardioidni tip) mikrofon](../../../../../translated_images/hr/dynamic-mic.8babac890a2d80df.webp) * Trakasti - Trakasti mikrofoni slični su dinamičkim mikrofonima, osim što imaju metalnu traku umjesto membrane. Ova traka se pomiče u magnetskom polju stvarajući električnu struju. Kao i dinamički mikrofoni, trakasti mikrofoni ne trebaju napajanje za rad. @@ -59,11 +59,11 @@ Mikrofoni dolaze u raznim vrstama: * Kondenzatorski - Kondenzatorski mikrofoni imaju tanku metalnu membranu i fiksnu metalnu stražnju ploču. Elektricitet se primjenjuje na obje ove komponente, a kako membrana vibrira, statički naboj između ploča se mijenja generirajući signal. Kondenzatorski mikrofoni trebaju napajanje za rad - nazvano *Phantom power*. - ![C451B mali kondenzatorski mikrofon s membranom od AKG Acoustics](../../../../../translated_images/hr/condenser-mic.6f6ed5b76ca19e0ec3fd0c544601542d4479a6cb7565db336de49fbbf69f623e.jpg) + ![C451B mali kondenzatorski mikrofon s membranom od AKG Acoustics](../../../../../translated_images/hr/condenser-mic.6f6ed5b76ca19e0e.webp) * MEMS - Mikroelektromehanički sustavi mikrofona, ili MEMS, su mikrofoni na čipu. Imaju dijafragmu osjetljivu na pritisak ugraviranu na silicijski čip i rade slično kondenzatorskom mikrofonu. Ovi mikrofoni mogu biti vrlo mali i integrirani u elektroničke sklopove. - ![MEMS mikrofon na pločici](../../../../../translated_images/hr/mems-microphone.80574019e1f5e4d9ee72fed720ecd25a39fc2969c91355d17ebb24ba4159e4c4.png) + ![MEMS mikrofon na pločici](../../../../../translated_images/hr/mems-microphone.80574019e1f5e4d9.webp) Na slici iznad, čip označen **LEFT** je MEMS mikrofon, s dijafragmom manjom od jednog milimetra. @@ -159,7 +159,7 @@ Kako biste izbjegli složenost treniranja i korištenja modela za budnu riječ, ## Pretvorba govora u tekst -![Logotip govorne usluge](../../../../../translated_images/hr/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![Logotip govorne usluge](../../../../../translated_images/hr/azure-speech-logo.a1f08c4befb0159f.webp) Kao i kod klasifikacije slika u ranijem projektu, postoje unaprijed izgrađene AI usluge koje mogu uzeti govor kao audio datoteku i pretvoriti ga u tekst. Jedna od takvih usluga je Govorna usluga, dio Cognitive Services, unaprijed izgrađenih AI usluga koje možete koristiti u svojim aplikacijama. diff --git a/translations/hr/6-consumer/lessons/1-speech-recognition/pi-audio.md b/translations/hr/6-consumer/lessons/1-speech-recognition/pi-audio.md index 7b7376dae..79b365f4f 100644 --- a/translations/hr/6-consumer/lessons/1-speech-recognition/pi-audio.md +++ b/translations/hr/6-consumer/lessons/1-speech-recognition/pi-audio.md @@ -16,13 +16,13 @@ Gumb se može spojiti na Grove bazni HAT. #### Zadatak - spojite gumb -![Grove gumb](../../../../../translated_images/hr/grove-button.a70cfbb809a8563681003250cf5b06d68cdcc68624f9e2f493d5a534ae2da1e5.png) +![Grove gumb](../../../../../translated_images/hr/grove-button.a70cfbb809a85636.webp) 1. Umetnite jedan kraj Grove kabela u utičnicu na modulu gumba. Kabel će ući samo na jedan način. 1. S isključenim Raspberry Pi uređajem, spojite drugi kraj Grove kabela na digitalnu utičnicu označenu **D5** na Grove baznom HAT-u pričvršćenom na Pi. Ova utičnica je druga s lijeva, u redu utičnica pored GPIO pinova. -![Grove gumb spojen na utičnicu D5](../../../../../translated_images/hr/pi-button.c7a1a4f55943341ce1baf1057658e9a205804d4131d258e820c93f951df0abf3.png) +![Grove gumb spojen na utičnicu D5](../../../../../translated_images/hr/pi-button.c7a1a4f55943341c.webp) ## Snimanje zvuka diff --git a/translations/hr/6-consumer/lessons/1-speech-recognition/pi-microphone.md b/translations/hr/6-consumer/lessons/1-speech-recognition/pi-microphone.md index ccbefa859..2585ee753 100644 --- a/translations/hr/6-consumer/lessons/1-speech-recognition/pi-microphone.md +++ b/translations/hr/6-consumer/lessons/1-speech-recognition/pi-microphone.md @@ -34,7 +34,7 @@ Mikrofon i zvučnici moraju biti povezani i konfigurirani. 1. Ako koristite ReSpeaker 2-Mics Pi HAT, možete ukloniti Grove osnovni hat, a zatim postaviti ReSpeaker hat na njegovo mjesto. - ![Raspberry Pi s ReSpeaker hatom](../../../../../translated_images/hr/pi-respeaker-hat.f00fabe7dd039a93e2e0aa0fc946c9af0c6a9eb17c32fa1ca097fb4e384f69f0.png) + ![Raspberry Pi s ReSpeaker hatom](../../../../../translated_images/hr/pi-respeaker-hat.f00fabe7dd039a93.webp) Kasnije u ovoj lekciji trebat će vam Grove gumb, ali jedan je ugrađen u ovaj hat, pa Grove osnovni hat nije potreban. diff --git a/translations/hr/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md b/translations/hr/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md index 4d9ec550f..23827a9b9 100644 --- a/translations/hr/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md +++ b/translations/hr/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md @@ -10,7 +10,7 @@ Ugrađeni mikrofon snima analogni signal, koji se zatim pretvara u digitalni sig ✅ Pročitajte više o DMA na [stranici o izravnom pristupu memoriji na Wikipediji](https://wikipedia.org/wiki/Direct_memory_access). -![Zvuk s mikrofona ide u ADC, zatim u DMAC. DMAC zapisuje u jedan međuspremnik. Kada se taj međuspremnik napuni, obrađuje se, a DMAC zapisuje u drugi međuspremnik](../../../../../translated_images/hr/dmac-adc-buffers.4509aee49145c90bc2e1be472b8ed2ddfcb2b6a81ad3e559114aca55f5fff759.png) +![Zvuk s mikrofona ide u ADC, zatim u DMAC. DMAC zapisuje u jedan međuspremnik. Kada se taj međuspremnik napuni, obrađuje se, a DMAC zapisuje u drugi međuspremnik](../../../../../translated_images/hr/dmac-adc-buffers.4509aee49145c90b.webp) DMAC može snimati zvuk s ADC-a u fiksnim intervalima, primjerice 16.000 puta u sekundi za zvuk od 16 kHz. Može zapisivati te snimljene podatke u unaprijed dodijeljeni memorijski međuspremnik, a kada se on napuni, obavještava vaš kod da ga obradi. Korištenje ovog međuspremnika može odgoditi snimanje zvuka, ali možete postaviti više međuspremnika. DMAC zapisuje u međuspremnik 1, a kada se on napuni, obavještava vaš kod da obradi međuspremnik 1, dok DMAC zapisuje u međuspremnik 2. Kada se međuspremnik 2 napuni, obavještava vaš kod i vraća se na zapisivanje u međuspremnik 1. Na taj način, sve dok obrađujete svaki međuspremnik u kraćem vremenu nego što je potrebno da se jedan napuni, nećete izgubiti podatke. diff --git a/translations/hr/6-consumer/lessons/2-language-understanding/README.md b/translations/hr/6-consumer/lessons/2-language-understanding/README.md index e2bda3028..692d636b7 100644 --- a/translations/hr/6-consumer/lessons/2-language-understanding/README.md +++ b/translations/hr/6-consumer/lessons/2-language-understanding/README.md @@ -1,6 +1,6 @@ # Razumijevanje jezika -![Sketchnote pregled ove lekcije](../../../../../translated_images/hr/lesson-22.6148ea28500d9e00c396aaa2649935fb6641362c8f03d8e5e90a676977ab01dd.jpg) +![Sketchnote pregled ove lekcije](../../../../../translated_images/hr/lesson-22.6148ea28500d9e00.webp) > Sketchnote autorice [Nitya Narasimhan](https://github.com/nitya). Kliknite na sliku za veću verziju. @@ -46,7 +46,7 @@ Modeli za razumijevanje jezika su AI modeli koji su obučeni za izdvajanje odre ## Kreiranje modela za razumijevanje jezika -![LUIS logo](../../../../../translated_images/hr/luis-logo.5cb4f3e88c020ee6df4f614e8831f4a4b6809a7247bf52085fb48d629ef9be52.png) +![LUIS logo](../../../../../translated_images/hr/luis-logo.5cb4f3e88c020ee6.webp) Možete kreirati modele za razumijevanje jezika koristeći LUIS, uslugu za razumijevanje jezika od Microsofta koja je dio Cognitive Services. @@ -169,7 +169,7 @@ Upute za korištenje LUIS portala možete pronaći u [Quickstart: Build your app 1. Dok unosite svaki primjer, LUIS će početi prepoznavati entitete i podcrtavati te označavati sve što pronađe. - ![Primjeri s podcrtanim brojevima i jedinicama vremena koje je prepoznao LUIS](../../../../../translated_images/hr/luis-intent-examples.25716580b2d2723cf1bafdf277d015c7f046d8cfa20f27bddf3a0873ec45fab7.png) + ![Primjeri s podcrtanim brojevima i jedinicama vremena koje je prepoznao LUIS](../../../../../translated_images/hr/luis-intent-examples.25716580b2d2723c.webp) ### Zadatak - treniranje i testiranje modela diff --git a/translations/hr/6-consumer/lessons/3-spoken-feedback/README.md b/translations/hr/6-consumer/lessons/3-spoken-feedback/README.md index ab50c21d7..feb8c09ae 100644 --- a/translations/hr/6-consumer/lessons/3-spoken-feedback/README.md +++ b/translations/hr/6-consumer/lessons/3-spoken-feedback/README.md @@ -1,6 +1,6 @@ # Postavite mjerač vremena i pružite povratne informacije putem govora -![Sketchnote pregled ove lekcije](../../../../../translated_images/hr/lesson-23.f38483e1d4df4828990d3f02d60e46c978b075d384ae7cb4f7bab738e107c850.jpg) +![Sketchnote pregled ove lekcije](../../../../../translated_images/hr/lesson-23.f38483e1d4df4828.webp) > Sketchnote autor [Nitya Narasimhan](https://github.com/nitya). Kliknite na sliku za veću verziju. diff --git a/translations/hr/6-consumer/lessons/4-multiple-language-support/README.md b/translations/hr/6-consumer/lessons/4-multiple-language-support/README.md index 6a644406b..1584044b9 100644 --- a/translations/hr/6-consumer/lessons/4-multiple-language-support/README.md +++ b/translations/hr/6-consumer/lessons/4-multiple-language-support/README.md @@ -1,6 +1,6 @@ # Podrška za više jezika -![Sketchnote pregled ove lekcije](../../../../../translated_images/hr/lesson-24.4246968ed058510ab275052e87ef9aa89c7b2f938915d103c605c04dc6cd5bb7.jpg) +![Sketchnote pregled ove lekcije](../../../../../translated_images/hr/lesson-24.4246968ed058510a.webp) > Sketchnote autor [Nitya Narasimhan](https://github.com/nitya). Kliknite na sliku za veću verziju. @@ -74,7 +74,7 @@ Postoji niz AI usluga koje se mogu koristiti iz vaših aplikacija za prevođenje ### Cognitive services Speech service -![Logo govorne usluge](../../../../../translated_images/hr/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![Logo govorne usluge](../../../../../translated_images/hr/azure-speech-logo.a1f08c4befb0159f.webp) Govorna usluga koju ste koristili u proteklim lekcijama ima mogućnosti prevođenja za prepoznavanje govora. Kada prepoznate govor, možete zatražiti ne samo tekst govora na istom jeziku, već i na drugim jezicima. @@ -82,7 +82,7 @@ Govorna usluga koju ste koristili u proteklim lekcijama ima mogućnosti prevođe ### Cognitive services Translator service -![Logo usluge prevoditelja](../../../../../translated_images/hr/azure-translator-logo.c6ed3a4a433edfd2f11577eca105412c50b8396b194cbbd730723dd1d0793bcd.png) +![Logo usluge prevoditelja](../../../../../translated_images/hr/azure-translator-logo.c6ed3a4a433edfd2.webp) Usluga Translator je posvećena usluga prevođenja koja može prevesti tekst s jednog jezika na jedan ili više ciljanih jezika. Osim prevođenja, podržava širok raspon dodatnih značajki, uključujući maskiranje vulgarnosti. Također vam omogućuje da pružite specifičan prijevod za određenu riječ ili rečenicu, kako biste radili s pojmovima koje ne želite prevesti ili imate specifičan poznati prijevod. diff --git a/translations/hr/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md b/translations/hr/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md index 630c32d8d..bcbc033d2 100644 --- a/translations/hr/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md +++ b/translations/hr/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md @@ -25,7 +25,7 @@ REST API za uslugu govora ne podržava direktne prijevode, ali možete koristiti > > Na primjer, ako trenirate LUIS na engleskom, ali želite koristiti francuski kao jezik korisnika, možete prevesti rečenice poput "postavi mjerač vremena na 2 minute i 27 sekundi" s engleskog na francuski koristeći Bing Translate, a zatim koristiti gumb **Listen translation** za izgovaranje prijevoda u mikrofon. > - > ![Gumb za slušanje prijevoda na Bing Translate](../../../../../translated_images/hr/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Gumb za slušanje prijevoda na Bing Translate](../../../../../translated_images/hr/bing-translate.348aa796d6efe2a9.webp) 1. Dodajte API ključ prevoditelja ispod `speech_api_key`: diff --git a/translations/hr/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md b/translations/hr/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md index b022178e3..5b96a078b 100644 --- a/translations/hr/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md +++ b/translations/hr/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md @@ -37,7 +37,7 @@ Usluga za govor može uzeti govor i ne samo pretvoriti ga u tekst na istom jezik > > Na primjer, ako trenirate LUIS na engleskom, ali želite koristiti francuski kao jezik korisnika, možete prevesti rečenice poput "set a 2 minute and 27 second timer" s engleskog na francuski koristeći Bing Translate, a zatim koristiti gumb **Listen translation** za izgovaranje prijevoda u mikrofon. > - > ![Gumb za slušanje prijevoda na Bing Translate](../../../../../translated_images/hr/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Gumb za slušanje prijevoda na Bing Translate](../../../../../translated_images/hr/bing-translate.348aa796d6efe2a9.webp) 1. Zamijenite deklaracije `recognizer_config` i `recognizer` sljedećim: diff --git a/translations/hr/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md b/translations/hr/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md index cfccbf5da..28d65d053 100644 --- a/translations/hr/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md +++ b/translations/hr/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md @@ -105,7 +105,7 @@ REST API usluge govora ne podržava izravna prevođenja, no možete koristiti us > > Na primjer, ako trenirate LUIS na engleskom, ali želite koristiti francuski kao jezik korisnika, možete prevesti rečenice poput "set a 2 minute and 27 second timer" s engleskog na francuski koristeći Bing Translate, a zatim koristiti gumb **Listen translation** za izgovaranje prijevoda u mikrofon. > - > ![Gumb za slušanje prijevoda na Bing Translate](../../../../../translated_images/hr/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Gumb za slušanje prijevoda na Bing Translate](../../../../../translated_images/hr/bing-translate.348aa796d6efe2a9.webp) 1. Dodajte API ključ i lokaciju prevoditelja ispod `SPEECH_LOCATION`: diff --git a/translations/hr/README.md b/translations/hr/README.md index f66fc5583..d04d0b234 100644 --- a/translations/hr/README.md +++ b/translations/hr/README.md @@ -8,53 +8,63 @@ [![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/) -### Pridružite se zajednici Azure AI Foundry +### Pridružite se Azure AI Foundry Zajednici -Ako zapnete ili imate pitanja o izradi AI aplikacija. Pridružite se drugim učenicima i iskusnim programerima u raspravama o MCP-u. To je podržavajuća zajednica u kojoj su pitanja dobrodošla, a znanje se slobodno dijeli. +Ako zapnete ili imate bilo kakvih pitanja o izradi AI aplikacija. Pridružite se učenicima i iskusnim programerima u raspravama o MCP-u. To je podržavajuća zajednica gdje su pitanja dobrodošla i znanje se slobodno dijeli. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Ako imate povratne informacije o proizvodu ili greške tijekom izrade, posjetite: +Ako imate povratne informacije o proizvodu ili greške prilikom izrade, posjetite: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -Slijedite ove korake da biste započeli s korištenjem ovih resursa: +Slijedite ove korake za početak korištenja ovih resursa: 1. **Forkajte repozitorij**: Kliknite [![GitHub forks](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) -2. **Kloni repozitorij**: `git clone https://github.com/microsoft/IoT-For-Beginners.git` +2. **Klonirajte repozitorij**: `git clone https://github.com/microsoft/IoT-For-Beginners.git` 3. [**Pridružite se Microsoft Foundry Discordu i upoznajte stručnjake i druge programere**](https://discord.com/invite/ByRwuEEgH4) -### 🌐 Višejezična podrška +### 🌐 Podrška za Više Jezika -#### Podržano putem GitHub akcije (automatizirano i uvijek ažurno) +#### Podržano putem GitHub akcije (Automatski i Uvijek ažurirano) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](./README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](./README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) -> **Želite li radije klonirati lokalno?** - -> Ovaj repozitorij uključuje prijevode na 50+ jezika što znatno povećava veličinu preuzimanja. Da biste klonirali bez prijevoda, koristite sparse checkout: +> **Radije ga želite klonirati lokalno?** +> +> Ovaj repozitorij uključuje 50+ prijevoda jezika što značajno povećava veličinu preuzimanja. Za kloniranje bez prijevoda, koristite sparse checkout: +> +> **Bash / macOS / Linux:** > ```bash > git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git > cd IoT-For-Beginners > git sparse-checkout set --no-cone '/*' '!translations' '!translated_images' > ``` -> Ovo vam daje sve što vam treba za završetak tečaja uz puno brže preuzimanje. +> +> **CMD (Windows):** +> ```cmd +> git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git +> cd IoT-For-Beginners +> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" +> ``` +> +> Ovo vam daje sve što vam je potrebno da dovršite tečaj s mnogo bržim preuzimanjem. -# IoT za početnike - Nastavni plan i program +# IoT za Početnike - Kurikulum -Zagovornici Azure oblaka u Microsoftu s veseljem nude 12-tjedni, 24-poglavni nastavni plan posvećen osnovama IoT-a. Svaka lekcija uključuje kvizove prije i poslije lekcije, pisane upute za dovršetak lekcije, rješenje, zadatak i još mnogo toga. Naša pedagoška metoda usmjerena na projekte omogućuje vam učenje kroz izgradnju, što je dokazan način za trajno usvajanje novih vještina. +Azure Cloud Advocates u Microsoftu s veseljem nude 12-tjedni, 24-lekcijski kurikulum posvećen osnovama IoT-a. Svaka lekcija uključuje kviz prije i poslije lekcije, pisane upute za dovršetak lekcije, rješenje, zadatak i još mnogo toga. Naša pedagoška metoda temeljena na projektima omogućuje vam da učite dok gradite, što je dokazani način da nove vještine 'upuče'. -Projekti pokrivaju put hrane s farme do stola. To uključuje poljoprivredu, logistiku, proizvodnju, maloprodaju i potrošača - sve popularna industrijska područja za IoT uređaje. +Projekti pokrivaju put hrane od farme do stola. To uključuje poljoprivredu, logistiku, proizvodnju, maloprodaju i potrošnju - sve popularna industrijska područja za IoT uređaje. -![Karta puta tečaja koji prikazuje 24 lekcije o uvodu, poljoprivredi, transportu, preradi, maloprodaji i kuhanju](../../translated_images/hr/Roadmap.bb1dec285dda0eda.webp) +![Karta puta za tečaj koja prikazuje 24 lekcije pokrivajući uvod, poljoprivredu, transport, preradu, maloprodaju i kuhanje](../../translated_images/hr/Roadmap.bb1dec285dda0eda.webp) -> Sketchnote autorice [Nitya Narasimhan](https://github.com/nitya). Kliknite sliku za veću verziju. +> Sketchnote autora [Nitya Narasimhan](https://github.com/nitya). Kliknite sliku za veću verziju. -**Iskrena hvala našim autorima [Jen Fox](https://github.com/jenfoxbot), [Jen Looper](https://github.com/jlooper), [Jim Bennett](https://github.com/jimbobbennett) i našoj umjetnici sketchnotea [Nitya Narasimhan](https://github.com/nitya).** +**Iskrena zahvala našim autorima [Jen Fox](https://github.com/jenfoxbot), [Jen Looper](https://github.com/jlooper), [Jim Bennett](https://github.com/jimbobbennett), i našem umjetniku sketchnotea [Nitya Narasimhan](https://github.com/nitya).** -**Hvala također našem timu [Microsoft Learn Student Ambassadors](https://studentambassadors.microsoft.com?WT.mc_id=academic-17441-jabenn) koji su pregledavali i prevodili ovaj nastavni plan - [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), i [Zina Kamel](https://www.linkedin.com/in/zina-kamel/).** +**Zahvaljujemo također našem timu od [Microsoft Learn Studentskih Ambasadora](https://studentambassadors.microsoft.com?WT.mc_id=academic-17441-jabenn) koji su pregledavali i prevodili ovaj kurikulum - [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), i [Zina Kamel](https://www.linkedin.com/in/zina-kamel/).** Upoznajte tim! @@ -62,152 +72,151 @@ Upoznajte tim! **Gif autor** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Kliknite gornju sliku za video o projektu! +> 🎥 Kliknite sliku gore za video o projektu! -> **Nastavnici**, uključili smo neke [prijedloge](for-teachers.md) o tome kako koristiti ovaj nastavni plan. Ako želite stvoriti vlastite lekcije, također imamo [predložak lekcije](lesson-template/README.md). +> **Nastavnici**, uključili smo [neke prijedloge](for-teachers.md) o tome kako koristiti ovaj kurikulum. Ako želite izraditi vlastite lekcije, također smo uključili [predložak lekcije](lesson-template/README.md). -> **[Učenici](https://aka.ms/student-page)**, da biste koristili ovaj nastavni plan samostalno, forkajte cijeli repozitorij i dovršite vježbe sami, počevši s kvizom prije predavanja, zatim pročitajte predavanje i dovršite ostale aktivnosti. Pokušajte kreirati projekte razumijevanjem lekcija umjesto kopiranja koda rješenja; taj kod je međutim dostupan u mapama /solutions u svakoj lekciji usmjerenoj na projekt. Druga ideja je formirati studijsku grupu s prijateljima i zajednički proći sadržaj. Za dodatno učenje preporučujemo [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn). +> **Učenici** [https://aka.ms/student-page](https://aka.ms/student-page), za samostalno korištenje ovog kurikuluma, napravite fork cijelog repozitorija i dovršite zadatke samostalno, počevši s kvizom prije predavanja, zatim čitajući predavanje i dovršavanjem ostalih aktivnosti. Pokušajte stvarati projekte razumijevanjem lekcija, a ne kopiranjem koda rješenja; međutim, taj kod je dostupan u mapama /solutions za svaku lekciju usmjerenu na projekte. Druga ideja je da oformite grupu za učenje s prijateljima i zajedno prođete kroz sadržaj. Za dodatno učenje preporučujemo [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn). -Za video pregled ovog tečaja, pogledajte ovaj video: +Za video pregled ovog tečaja pogledajte ovaj video: [![Promo video](https://img.youtube.com/vi/bccEMm8gRuc/0.jpg)](https://youtube.com/watch?v=bccEMm8gRuc "Promo video") -> 🎥 Kliknite gornju sliku za video o projektu! +> 🎥 Kliknite sliku gore za video o projektu! ## Pedagogija -Odabrali smo dva pedagoška načela pri izradi ovog nastavnog plana: osigurati da je usmjeren na projekte i da uključuje česte kvizove. Do kraja ove serije studenti će izgraditi sustav za nadzor biljaka i zalijevanje, praćenje vozila, pametnu tvornicu za praćenje i provjeru hrane te timer za kuhanje upravljan glasom, i naučiti osnove Interneta stvari uključujući pisanje koda za uređaje, povezivanje s oblakom, analizu telemetrije i izvođenje AI na rubu. +Odabrali smo dva pedagoška načela prilikom izrade ovog kurikuluma: osigurati da je temeljeno na projektima i da uključuje česte kvizove. Do kraja serije učenici će izgraditi sustav za nadzor i zalijevanje biljaka, uređaj za praćenje vozila, pametnu tvornicu za praćenje i kontrolu hrane te glasovno upravljani tajmer za kuhanje, i naučit će osnove Interneta stvari uključujući kako pisati kod za uređaje, povezati se na oblak, analizirati telemetriju i pokretati AI na rubu. -Osiguravajući da sadržaj odgovara projektima, proces je zanimljiviji za studente, a zadržavanje koncepata se povećava. +Osiguravajući da sadržaj odgovara projektima, proces je zanimljiviji za učenike i zadržavanje koncepata će se poboljšati. -Osim toga, kviz niskog rizika prije sata usmjerava namjeru učenika prema učenju teme, dok drugi kviz nakon sata osigurava daljnje zadržavanje znanja. Ovaj je nastavni plan dizajniran da bude fleksibilan i zabavan te se može pratiti u cijelosti ili djelomično. Projekti počinju jednostavno i postaju složeniji do kraja 12-tjednog ciklusa. +Uz to, kviz s niskim ulozima prije nastave postavlja namjeru učenika prema učenju teme, dok drugi kviz nakon nastave osigurava dodatno zadržavanje. Ovaj kurikulum dizajniran je da bude fleksibilan i zabavan, a može se uzimati u cijelosti ili djelomično. Projekti započinju mali i postaju sve složeniji do kraja 12-tjednog ciklusa. -Svaki je projekt baziran na stvarnom hardveru dostupnom studentima i hobistima. Svaki projekt proučava specifičnu domenu projekta, pružajući relevantna osnovna znanja. Da biste bili uspješan programer, korisno je razumjeti domen u kojoj rješavate probleme, a ovo osnovno znanje omogućuje studentima da razmišljaju o svojim IoT rješenjima i učenju u kontekstu stvarnog problema koji bi mogli imati kao IoT programer. Studenti uče 'zašto' rješenja koja grade i dobivaju uvid u krajnjeg korisnika. +Svaki projekt temelji se na stvarnom hardveru dostupan učenicima i hobistima. Svaki projekt proučava specifičnu domenu projekta, pružajući relevantno osnovno znanje. Da biste bili uspješan programer, pomaže razumjeti domen u kojoj rješavate probleme, a ovo osnovno znanje omogućuje učenicima da razmišljaju o svojim IoT rješenjima i učenju u kontekstu vrste stvarnog problema koji bi mogli biti zamoljeni riješiti kao IoT programer. Učenici uče 'zašto' rješenja koja grade i stječu cijenjenje krajnjeg korisnika. ## Hardver +Imamo dva izbora IoT hardvera za korištenje u projektima, ovisno o osobnim preferencijama, znanju programskih jezika, ciljevima učenja i dostupnosti. Također smo osigurali verziju 'virtualnog hardvera' za one koji nemaju pristup hardveru ili žele naučiti više prije nego što se odluče za kupnju. Više možete pročitati i pronaći 'popis za kupovinu' na [stranici o hardveru](./hardware.md), uključujući poveznice za kupnju gotovih kompleta od naših prijatelja u Seeed Studiu. -Imamo dva izbora IoT hardvera za korištenje u projektima ovisno o osobnim preferencijama, znanju programskog jezika, ciljevima učenja i dostupnosti. Također smo osigurali verziju 'virtualnog hardvera' za one koji nemaju pristup hardveru ili žele naučiti više prije kupnje. Više možete pročitati i pronaći 'popis za kupovinu' na [stranici za hardver](./hardware.md), uključujući poveznice za kupnju kompletnih setova od naših prijatelja u Seeed Studio. -> 💁 Pronađite naše [Kodeks ponašanja](CODE_OF_CONDUCT.md), [Smjernice za doprinos](CONTRIBUTING.md) i [Prevoditeljske smjernice](TRANSLATIONS.md). Veselimo se vašim konstruktivnim povratnim informacijama! +> 💁 Pronađite naš [Kodeks ponašanja](CODE_OF_CONDUCT.md), smjernice za [Doprinos](CONTRIBUTING.md) i [Prijevod](TRANSLATIONS.md). Veselimo se vašim konstruktivnim povratnim informacijama! > > 🔧 Imate problema? Pogledajte naš [Vodič za rješavanje problema](TROUBLESHOOTING.md) za rješenja uobičajenih problema. ## Svaka lekcija uključuje: -- sketchnote -- dodatni video po izboru -- kviz za zagrijavanje prije lekcije +- nacrt lekcije +- opcionalni dodatni video +- zagrijavajući kviz prije lekcije - pisanu lekciju -- za lekcije temeljene na projektu, vodiče korak po korak kako izgraditi projekt +- za lekcije temeljene na projektima, vodiče korak po korak kako izraditi projekt - provjere znanja - izazov -- dodatnu literaturu +- dodatno čitanje - zadatak -- [kviz nakon lekcije](https://ff-quizzes.netlify.app/en/) +- [kviz poslije lekcije](https://ff-quizzes.netlify.app/en/) -> **Napomena o kvizovima**: Svi su kvizovi smješteni u mapu quiz-app, ukupno 48 kvizova sa po tri pitanja svaki. Povezani su iz lekcija, ali se aplikacija za kviz može pokrenuti lokalno ili postaviti na Azure; slijedite upute u mapi `quiz-app`. Postupno se lokaliziraju. +> **Napomena o kvizovima**: Svi su kvizovi u mapi quiz-app, ukupno 48 kvizova s po tri pitanja. Povezani su unutar lekcija, ali kviz aplikaciju možete pokrenuti lokalno ili objaviti na Azure; slijedite upute u mapi `quiz-app`. Postupno se lokaliziraju. ## Lekcije -| | Naziv projekta | Poučavani koncepti | Ciljevi učenja | Povezana lekcija | -| :---: | :------------------------------------: | :-------------------------------------------------------------: | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------: | -| 01 | [Uvod](./1-getting-started/README.md) | Uvod u IoT | Naučite osnovna načela IoT-a i osnovne gradivne blokove IoT rješenja poput senzora i usluga u oblaku dok postavljate svoj prvi IoT uređaj | [Uvod u IoT](./1-getting-started/lessons/1-introduction-to-iot/README.md) | -| 02 | [Uvod](./1-getting-started/README.md) | Dublji pogled na IoT | Saznajte više o komponentama IoT sustava, mikro kontrolerima i računalima na jednoj ploči | [Dublji pogled na IoT](./1-getting-started/lessons/2-deeper-dive/README.md) | -| 03 | [Uvod](./1-getting-started/README.md) | Interakcija s fizičkim svijetom pomoću senzora i aktuatora | Naučite o senzorima za prikupljanje podataka iz fizičkog svijeta te aktuatorima za slanje povratnih informacija dok izrađujete noćnu lampu | [Interakcija s fizičkim svijetom pomoću senzora i aktuatora](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | -| 04 | [Uvod](./1-getting-started/README.md) | Povezivanje uređaja na Internet | Naučite kako povezati IoT uređaj s internetom radi slanja i primanja poruka povezivanjem vaše noćne lampe s MQTT poslužiteljem | [Povežite uređaj na Internet](./1-getting-started/lessons/4-connect-internet/README.md) | -| 05 | [Farma](./2-farm/README.md) | Predviđanje rasta biljaka | Naučite kako predvidjeti rast biljke pomoću temperaturnih podataka koje prikuplja IoT uređaj | [Predviđanje rasta biljaka](./2-farm/lessons/1-predict-plant-growth/README.md) | -| 06 | [Farma](./2-farm/README.md) | Otkrivanje vlage u tlu | Naučite kako otkriti vlagu u tlu i kalibrirati senzor vlage tla | [Otkrivanje vlage u tlu](./2-farm/lessons/2-detect-soil-moisture/README.md) | -| 07 | [Farma](./2-farm/README.md) | Automatsko zalijevanje biljaka | Naučite kako automatizirati i vremenski upravljati zalijevanjem koristeći relej i MQTT | [Automatsko zalijevanje biljaka](./2-farm/lessons/3-automated-plant-watering/README.md) | -| 08 | [Farma](./2-farm/README.md) | Migrirajte biljku u oblak | Naučite o oblaku i IoT uslugama domaćinima u oblaku te kako povezati svoju biljku s jednom od njih umjesto javnog MQTT poslužitelja | [Migrirajte biljku u oblak](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | -| 09 | [Farma](./2-farm/README.md) | Migrirajte logiku aplikacije u oblak | Naučite kako pisati logiku aplikacije u oblaku koja reagira na IoT poruke | [Migrirajte logiku aplikacije u oblak](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | -| 10 | [Farma](./2-farm/README.md) | Osigurajte svoju biljku | Naučite o sigurnosti u IoT-u i kako osigurati svoju biljku pomoću ključeva i certifikata | [Osigurajte svoju biljku](./2-farm/lessons/6-keep-your-plant-secure/README.md) | -| 11 | [Transport](./3-transport/README.md) | Praćenje lokacije | Naučite o GPS praćenju lokacije za IoT uređaje | [Praćenje lokacije](./3-transport/lessons/1-location-tracking/README.md) | -| 12 | [Transport](./3-transport/README.md) | Pohrana podataka lokacije | Naučite kako spremati IoT podatke za naknadnu vizualizaciju ili analizu | [Pohrana podataka lokacije](./3-transport/lessons/2-store-location-data/README.md) | -| 13 | [Transport](./3-transport/README.md) | Vizualizacija podataka lokacije | Naučite o prikazu podataka lokacije na karti i kako karte predstavljaju stvarni 3D svijet u 2 dimenzije | [Vizualizacija podataka lokacije](./3-transport/lessons/3-visualize-location-data/README.md) | -| 14 | [Transport](./3-transport/README.md) | Geofence | Naučite o geofence-ovima i kako se mogu koristiti za obavještavanje kada su vozila u lancu opskrbe blizu svoje destinacije | [Geofence](./3-transport/lessons/4-geofences/README.md) | -| 15 | [Proizvodnja](./4-manufacturing/README.md) | Trening detektora kvalitete voća | Naučite kako trenirati klasifikator slika u oblaku za detektiranje kvalitete voća | [Trening detektora kvalitete voća](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | -| 16 | [Proizvodnja](./4-manufacturing/README.md) | Provjera kvalitete voća putem IoT uređaja | Naučite kako koristiti detektor kvalitete voća s IoT uređaja | [Provjera kvalitete voća putem IoT uređaja](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | -| 17 | [Proizvodnja](./4-manufacturing/README.md) | Pokretanje detektora voća na rubu | Naučite o pokretanju detektora voća na IoT uređaju na rubu mreže | [Pokretanje detektora voća na rubu](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | -| 18 | [Proizvodnja](./4-manufacturing/README.md) | Pokretanje detekcije kvalitete voća iz senzora | Naučite kako pokrenuti detekciju kvalitete voća iz senzora | [Pokretanje detekcije kvalitete voća iz senzora](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | -| 19 | [Maloprodaja](./5-retail/README.md) | Trening detektora zaliha | Naučite kako koristiti detekciju objekata za trening detektora zaliha za brojanje zaliha u trgovini | [Trening detektora zaliha](./5-retail/lessons/1-train-stock-detector/README.md) | -| 20 | [Maloprodaja](./5-retail/README.md) | Provjera zaliha s IoT uređaja | Naučite kako provjeriti zalihe koristeći IoT uređaj i model za detekciju objekata | [Provjera zaliha s IoT uređaja](./5-retail/lessons/2-check-stock-device/README.md) | -| 21 | [Konzumer](./6-consumer/README.md) | Prepoznavanje govora s IoT uređajem | Naučite kako prepoznati govor s IoT uređaja i napraviti pametni timer | [Prepoznavanje govora s IoT uređajem](./6-consumer/lessons/1-speech-recognition/README.md) | -| 22 | [Konzumer](./6-consumer/README.md) | Razumijevanje jezika | Naučite kako razumjeti rečenice izgovorene IoT uređaju | [Razumijevanje jezika](./6-consumer/lessons/2-language-understanding/README.md) | -| 23 | [Konzumer](./6-consumer/README.md) | Postavljanje timera i pružanje glasovne povratne informacije | Naučite kako postaviti timer na IoT uređaju i pružiti glasovnu povratnu informaciju o početku i završetku timera | [Postavljanje timera i glasovna povratna informacija](./6-consumer/lessons/3-spoken-feedback/README.md) | -| 24 | [Konzumer](./6-consumer/README.md) | Podrška za više jezika | Naučite kako podržati više jezika, kako za govorene zahtjeve tako i za odgovore vašeg pametnog timera | [Podrška za više jezika](./6-consumer/lessons/4-multiple-language-support/README.md) | - -## Pristup offline - -Ovu dokumentaciju možete koristiti offline pomoću [Docsify](https://docsify.js.org/#/). Forkajte ovaj repozitorij, [instalirajte Docsify](https://docsify.js.org/#/quickstart) na svoj lokalni uređaj, zatim u korijenskom direktoriju repozitorija upišite `docsify serve`. Web stranica će se posluživati na portu 3000 na vašem localhostu: `localhost:3000`. +| | Naziv projekta | Obuhvaćeni pojmovi | Ciljevi učenja | Povezana lekcija | +| :---: | :------------------------------------: | :------------------------------------------------------------: | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------------------------------------------------: | +| 01 | [Početak](./1-getting-started/README.md) | Uvod u IoT | Naučite osnovne principe IoT-a i osnovne blokove rješenja poput senzora i cloud servisa dok postavljate svoj prvi IoT uređaj | [Uvod u IoT](./1-getting-started/lessons/1-introduction-to-iot/README.md) | +| 02 | [Početak](./1-getting-started/README.md) | Dublji pogled u IoT | Naučite više o komponentama IoT sustava, mikrokontrolerima i jednoplatnim računalima | [Dublji pogled u IoT](./1-getting-started/lessons/2-deeper-dive/README.md) | +| 03 | [Početak](./1-getting-started/README.md) | Interakcija s fizičkim svijetom putem senzora i aktuatora | Naučite o senzorima za prikupljanje podataka iz fizičkog svijeta i aktuatorima za slanje povratne informacije dok izrađujete noćno svjetlo | [Interakcija s fizičkim svijetom putem senzora i aktuatora](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | +| 04 | [Početak](./1-getting-started/README.md) | Povežite svoj uređaj s internetom | Naučite kako povezati IoT uređaj s internetom za slanje i primanje poruka povezivanjem noćnog svjetla s MQTT poslužiteljem | [Povežite svoj uređaj s internetom](./1-getting-started/lessons/4-connect-internet/README.md) | +| 05 | [Farm](./2-farm/README.md) | Predviđanje rasta biljaka | Naučite kako predvidjeti rast biljaka koristeći podatke o temperaturi prikupljene IoT uređajem | [Predviđanje rasta biljaka](./2-farm/lessons/1-predict-plant-growth/README.md) | +| 06 | [Farm](./2-farm/README.md) | Detekcija vlage tla | Naučite kako detektirati vlagu tla i kalibrirati senzor vlage tla | [Detekcija vlage tla](./2-farm/lessons/2-detect-soil-moisture/README.md) | +| 07 | [Farm](./2-farm/README.md) | Automatizirano zalijevanje biljaka | Naučite kako automatizirati i tempirati zalijevanje pomoću releja i MQTT | [Automatizirano zalijevanje biljaka](./2-farm/lessons/3-automated-plant-watering/README.md) | +| 08 | [Farm](./2-farm/README.md) | Migrirajte biljku u cloud | Saznajte o cloudu i IoT servisima u cloudu te kako povezati svoju biljku s nekim od njih umjesto javnog MQTT poslužitelja | [Migrirajte biljku u cloud](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | +| 09 | [Farm](./2-farm/README.md) | Migrirajte logiku aplikacije u cloud | Naučite kako pisati logiku aplikacije u cloudu koja reagira na IoT poruke | [Migrirajte logiku aplikacije u cloud](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | +| 10 | [Farm](./2-farm/README.md) | Osigurajte svoju biljku | Naučite o sigurnosti u IoT-u i kako osigurati svoju biljku ključevima i certifikatima | [Osigurajte svoju biljku](./2-farm/lessons/6-keep-your-plant-secure/README.md) | +| 11 | [Transport](./3-transport/README.md) | Praćenje lokacije | Naučite o GPS praćenju lokacije za IoT uređaje | [Praćenje lokacije](./3-transport/lessons/1-location-tracking/README.md) | +| 12 | [Transport](./3-transport/README.md) | Pohrana podataka o lokaciji | Naučite kako pohraniti IoT podatke za kasniju vizualizaciju ili analizu | [Pohrana podataka o lokaciji](./3-transport/lessons/2-store-location-data/README.md) | +| 13 | [Transport](./3-transport/README.md) | Vizualizacija podataka o lokaciji | Naučite o vizualizaciji podataka o lokaciji na karti i kako karte prikazuju stvarni 3D svijet u dvije dimenzije | [Vizualizacija podataka o lokaciji](./3-transport/lessons/3-visualize-location-data/README.md) | +| 14 | [Transport](./3-transport/README.md) | Geofence | Naučite o geofenceima i kako se koriste za obavještavanje kada su vozila u lancu opskrbe blizu svoje destinacije | [Geofence](./3-transport/lessons/4-geofences/README.md) | +| 15 | [Manufacturing](./4-manufacturing/README.md) | Trenirajte sustav za detekciju kvalitete voća | Naučite o treniranju klasifikatora slika u cloudu za detekciju kvalitete voća | [Trenirajte sustav za detekciju kvalitete voća](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | +| 16 | [Manufacturing](./4-manufacturing/README.md) | Provjerite kvalitetu voća putem IoT uređaja | Naučite kako koristiti svoj sustav za detekciju kvalitete voća s IoT uređaja | [Provjerite kvalitetu voća putem IoT uređaja](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | +| 17 | [Manufacturing](./4-manufacturing/README.md) | Pokrenite detektor voća na edge uređaju | Naučite o pokretanju detektora voća na IoT uređaju na edge-u | [Pokrenite detektor voća na edge uređaju](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | +| 18 | [Manufacturing](./4-manufacturing/README.md) | Pokrenite detekciju kvalitete voća putem senzora | Naučite kako pokrenuti detekciju kvalitete voća putem senzora | [Pokrenite detekciju kvalitete voća putem senzora](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | +| 19 | [Retail](./5-retail/README.md) | Trenirajte detektor zaliha | Naučite kako koristiti detekciju objekata za treniranje detektora zaliha za brojanje zaliha u trgovini | [Trenirajte detektor zaliha](./5-retail/lessons/1-train-stock-detector/README.md) | +| 20 | [Retail](./5-retail/README.md) | Provjerite stanje zaliha putem IoT uređaja | Naučite kako provjeriti stanje zaliha putem IoT uređaja koristeći model za detekciju objekata | [Provjerite stanje zaliha putem IoT uređaja](./5-retail/lessons/2-check-stock-device/README.md) | +| 21 | [Consumer](./6-consumer/README.md) | Prepoznavanje govora putem IoT uređaja | Naučite kako prepoznati govor s IoT uređaja za izradu pametnog tajmera | [Prepoznavanje govora putem IoT uređaja](./6-consumer/lessons/1-speech-recognition/README.md) | +| 22 | [Consumer](./6-consumer/README.md) | Razumijevanje jezika | Naučite kako razumjeti rečenice izgovorene IoT uređaju | [Razumijevanje jezika](./6-consumer/lessons/2-language-understanding/README.md) | +| 23 | [Consumer](./6-consumer/README.md) | Postavite tajmer i pružite govornu povratnu informaciju | Naučite kako postaviti tajmer na IoT uređaju i dati govornu povratnu informaciju o postavljanju i završetku tajmera | [Postavite tajmer i pružite govornu povratnu informaciju](./6-consumer/lessons/3-spoken-feedback/README.md) | +| 24 | [Consumer](./6-consumer/README.md) | Podrška za više jezika | Naučite kako podržati više jezika, kako govornim tako i u odgovorima vašeg pametnog tajmera | [Podrška za više jezika](./6-consumer/lessons/4-multiple-language-support/README.md) | + +## Offline pristup + +Ovu dokumentaciju možete koristiti i offline pomoću [Docsify](https://docsify.js.org/#/). Forkajte ovaj repozitorij, [instalirajte Docsify](https://docsify.js.org/#/quickstart) na svoje lokalno računalo, zatim u korijenskoj mapi repozitorija upišite `docsify serve`. Web stranica će biti dostupna na portu 3000 na vašem localhostu: `localhost:3000`. ## Kviz -Zahvaljujemo zajednici za održavanje interaktivnog kviza koji testira vaše znanje za svaki od poglavlja. Svoje znanje isprobajte [ovdje](https://ff-quizzes.netlify.app/en/) +Zahvaljujemo zajednici što je napravila interaktivni kviz koji testira vaše znanje iz svakog poglavlja. Testirajte svoje znanje [ovdje](https://ff-quizzes.netlify.app/en/) ### PDF -Ako želite imati pristup ovom sadržaju offline, možete generirati PDF. Provjerite da imate instaliran [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) i pokrenite sljedeće naredbe u korijenu ovog repozitorija: +Ako želite, možete generirati PDF ovog sadržaja za offline pristup. Da biste to učinili, provjerite imate li [npm instaliran](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) i pokrenite sljedeće naredbe u korijenskoj mapi ovog repozitorija: ```sh npm i npm run convert ``` -### Prezentacije +### Slajdovi Za neke lekcije postoje prezentacije u mapi [slides](../../slides). +## Ostali kurikulumi -## Drugi programi - -Naš tim proizvodi i druge obrazovne programe! Pogledajte: +Naš tim proizvodi i druge kurikulume! Pogledajte: ### LangChain [![LangChain4j za početnike](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) [![LangChain.js za početnike](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) - +[![LangChain za početnike](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- ### Azure / Edge / MCP / Agenti [![AZD za početnike](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI za početnike](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) [![MCP za početnike](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI Agent za početnike](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Serija generativne umjetne inteligencije -[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +### Generativna AI serija +[![Generativna AI za početnike](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Generativna AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![Generativna AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![Generativna AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- ### Osnovno učenje -[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +[![ML za početnike](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Data Science za početnike](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![AI za početnike](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Cybersecurity za početnike](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Web razvoj za početnike](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![IoT za početnike](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![XR razvoj za početnike](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Serija Copilot -[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +### Copilot serija +[![Copilot za AI par-programiranje](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot za C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![Copilot avantura](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## Navodi za slike +## Pravo na slike -Sve navode za slike korištene u ovom kurikulumu gdje je potrebno možete pronaći u [Attributions](./attributions.md). +Sve zasluge za slike korištene u ovom kurikulumu, gdje je potrebno, možete pronaći u [Attributions](./attributions.md). --- **Odricanje od odgovornosti**: -Ovaj je dokument preveden pomoću AI usluge za prevođenje [Co-op Translator](https://github.com/Azure/co-op-translator). Iako nastojimo postići točnost, imajte na umu da automatski prijevodi mogu sadržavati pogreške ili netočnosti. Izvorni dokument na izvornom jeziku treba se smatrati autoritativnim izvorom. Za kritične informacije preporučuje se profesionalni ljudski prijevod. Ne odgovaramo za bilo kakve nesporazume ili kriva tumačenja koja proizlaze iz korištenja ovog prijevoda. +Ovaj dokument je preveden korištenjem AI usluge prevođenja [Co-op Translator](https://github.com/Azure/co-op-translator). Iako težimo točnosti, imajte na umu da automatski prijevodi mogu sadržavati pogreške ili netočnosti. Izvorni dokument na izvornom jeziku treba smatrati autoritativnim izvorom. Za kritične informacije preporučuje se profesionalni ljudski prijevod. Ne snosimo odgovornost za bilo kakva nesporazuma ili kriva tumačenja nastala uporabom ovog prijevoda. \ No newline at end of file diff --git a/translations/hr/hardware.md b/translations/hr/hardware.md index 3cebe05e7..3462acda1 100644 --- a/translations/hr/hardware.md +++ b/translations/hr/hardware.md @@ -26,7 +26,7 @@ Seeed Studios su vrlo ljubazno omogućili da sav hardver bude dostupan u obliku **[IoT za početnike sa Seeed i Microsoft - Raspberry Pi 4 Starter Kit](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html)** -[![Komplet hardvera Raspberry Pi Terminal](../../translated_images/hr/pi-hardware-kit.26dbadaedb7dd44c73b0131d5d68ea29472ed0a9744f90d5866c6d82f2d16380.png)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) +[![Komplet hardvera Raspberry Pi Terminal](../../translated_images/hr/pi-hardware-kit.26dbadaedb7dd44c.webp)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) ## Arduino diff --git a/translations/hu/.co-op-translator.json b/translations/hu/.co-op-translator.json index a34a3d2e1..49afaea86 100644 --- a/translations/hu/.co-op-translator.json +++ b/translations/hu/.co-op-translator.json @@ -738,8 +738,8 @@ "language_code": "hu" }, "README.md": { - "original_hash": "3fcc056cd3837e33d2bdf79f9c359fcf", - "translation_date": "2026-01-30T02:25:50+00:00", + "original_hash": "accf69391fa4450eadbf492ca024cccf", + "translation_date": "2026-04-06T16:33:51+00:00", "source_file": "README.md", "language_code": "hu" }, diff --git a/translations/hu/1-getting-started/lessons/1-introduction-to-iot/README.md b/translations/hu/1-getting-started/lessons/1-introduction-to-iot/README.md index 44eb3ab6b..ac91c6ef2 100644 --- a/translations/hu/1-getting-started/lessons/1-introduction-to-iot/README.md +++ b/translations/hu/1-getting-started/lessons/1-introduction-to-iot/README.md @@ -1,6 +1,6 @@ # Bevezetés az IoT világába -![A leckéről készült sketchnote áttekintése](../../../../../translated_images/hu/lesson-1.2606670fa61ee904687da5d6fa4e726639d524d064c895117da1b95b9ff6251d.jpg) +![A leckéről készült sketchnote áttekintése](../../../../../translated_images/hu/lesson-1.2606670fa61ee904.webp) > Sketchnote készítette: [Nitya Narasimhan](https://github.com/nitya). Kattints a képre a nagyobb verzióért. diff --git a/translations/hu/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md b/translations/hu/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md index ff144f3d8..1a8c10431 100644 --- a/translations/hu/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md +++ b/translations/hu/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md @@ -203,7 +203,7 @@ Második 'Hello World' lépésként futtatni fogod a CounterFit alkalmazást, é Az alkalmazás elindul, és megnyílik a webböngésződben: - ![A Counter Fit alkalmazás futása böngészőben](../../../../../translated_images/hu/counterfit-first-run.433326358b669b31d0e99c3513cb01bfbb13724d162c99cdcc8f51ecf5f9c779.png) + ![A Counter Fit alkalmazás futása böngészőben](../../../../../translated_images/hu/counterfit-first-run.433326358b669b31.webp) *Disconnected* állapotban lesz, a jobb felső sarokban lévő LED ki lesz kapcsolva. @@ -224,7 +224,7 @@ Második 'Hello World' lépésként futtatni fogod a CounterFit alkalmazást, é 1. Ebben az új terminálban futtasd az `app.py` fájlt, ahogy korábban. A CounterFit állapota **Connected**-re változik, és a LED világítani fog. - ![Counter Fit csatlakoztatva](../../../../../translated_images/hu/counterfit-connected.ed30b46d8f79b0921f3fc70be10366e596a89dca3f80c2224a9d9fc98fccf884.png) + ![Counter Fit csatlakoztatva](../../../../../translated_images/hu/counterfit-connected.ed30b46d8f79b092.webp) > 💁 Ezt a kódot megtalálod a [code/virtual-device](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/virtual-device) mappában. diff --git a/translations/hu/1-getting-started/lessons/2-deeper-dive/README.md b/translations/hu/1-getting-started/lessons/2-deeper-dive/README.md index d038ca441..0239cb0f5 100644 --- a/translations/hu/1-getting-started/lessons/2-deeper-dive/README.md +++ b/translations/hu/1-getting-started/lessons/2-deeper-dive/README.md @@ -1,6 +1,6 @@ # Mélyebb betekintés az IoT világába -![A lecke vázlatos áttekintése](../../../../../translated_images/hu/lesson-2.324b0580d620c25e0a24fb7fddfc0b29a846dd4b82c08e7a9466d580ee78ce51.jpg) +![A lecke vázlatos áttekintése](../../../../../translated_images/hu/lesson-2.324b0580d620c25e.webp) > Vázlatrajz: [Nitya Narasimhan](https://github.com/nitya). Kattints a képre a nagyobb verzióért. @@ -38,7 +38,7 @@ Az IoT **Dolog** része egy olyan eszközt jelent, amely képes kölcsönhatásb Ezek az eszközök érzékelők segítségével adatokat gyűjtenek a környezetükből, vagy kimeneteket és működtetőket vezérelnek, hogy fizikai változásokat idézzenek elő. Egy tipikus példa erre az okos termosztát - egy olyan eszköz, amely hőmérséklet-érzékelővel rendelkezik, egy kívánt hőmérséklet beállítására szolgáló eszközzel, például egy tárcsával vagy érintőképernyővel, valamint egy fűtési vagy hűtési rendszerhez való csatlakozással, amely bekapcsol, ha a mért hőmérséklet kívül esik a kívánt tartományon. A hőmérséklet-érzékelő érzékeli, hogy a szoba túl hideg, és egy működtető bekapcsolja a fűtést. -![Egy diagram, amely bemutatja a hőmérsékletet és egy tárcsát, mint IoT eszköz bemeneteit, valamint egy fűtőberendezés vezérlését, mint kimenetet](../../../../../translated_images/hu/basic-thermostat.a923217fd1f37e5a6f3390396a65c22a387419ea2dd17e518ec24315ba6ae9a8.png) +![Egy diagram, amely bemutatja a hőmérsékletet és egy tárcsát, mint IoT eszköz bemeneteit, valamint egy fűtőberendezés vezérlését, mint kimenetet](../../../../../translated_images/hu/basic-thermostat.a923217fd1f37e5a.webp) Számos különböző dolog működhet IoT eszközként, az egyetlen dolgot érzékelő dedikált hardvertől a többcélú eszközökig, például az okostelefonodig! Egy okostelefon érzékelőkkel képes érzékelni a környezetét, és működtetőkkel képes kölcsönhatásba lépni a világgal - például GPS-érzékelőt használva meghatározhatja a helyzetedet, és hangszórót használva navigációs utasításokat adhat egy célállomásra. @@ -54,7 +54,7 @@ Az eszközök nem mindig csatlakoznak közvetlenül az Internethez WiFi-n vagy v Az okos termosztát példájánál maradva, a termosztát otthoni WiFi-n keresztül csatlakozna egy felhőszolgáltatáshoz. Ez a felhőszolgáltatás fogadná a hőmérsékleti adatokat, amelyeket egy adatbázisba írna, lehetővé téve a háztulajdonos számára, hogy egy telefonos alkalmazáson keresztül ellenőrizze az aktuális és korábbi hőmérsékleteket. Egy másik szolgáltatás a felhőben tudná, hogy a háztulajdonos milyen hőmérsékletet szeretne, és üzeneteket küldene vissza az IoT eszköznek a felhőszolgáltatáson keresztül, hogy a fűtési rendszert be- vagy kikapcsolja. -![Egy diagram, amely bemutatja a hőmérsékletet és egy tárcsát, mint IoT eszköz bemeneteit, az IoT eszköz kétirányú kommunikációját a felhővel, amely szintén kétirányú kommunikációt folytat egy telefonnal, és a fűtőberendezés vezérlését, mint az IoT eszköz kimenetét](../../../../../translated_images/hu/mobile-controlled-thermostat.4a994010473d8d6a52ba68c67e5f02dc8928c717e93ca4b9bc55525aa75bbb60.png) +![Egy diagram, amely bemutatja a hőmérsékletet és egy tárcsát, mint IoT eszköz bemeneteit, az IoT eszköz kétirányú kommunikációját a felhővel, amely szintén kétirányú kommunikációt folytat egy telefonnal, és a fűtőberendezés vezérlését, mint az IoT eszköz kimenetét](../../../../../translated_images/hu/mobile-controlled-thermostat.4a994010473d8d6a.webp) Egy még okosabb verzió mesterséges intelligenciát használhatna a felhőben, más IoT eszközökhöz csatlakozó érzékelők, például jelenlétérzékelők adataival, valamint időjárási adatokkal és akár a naptáraddal együtt, hogy intelligens módon állítsa be a hőmérsékletet. Például kikapcsolhatná a fűtést, ha a naptárad szerint nyaralni mész, vagy szobánként kapcsolhatná ki a fűtést attól függően, hogy melyik szobákat használod, az adatokból tanulva egyre pontosabbá válva az idő múlásával. @@ -94,7 +94,7 @@ Minél gyorsabb az óra ciklusa, annál több utasítást lehet másodpercenkén > 💁 A CPU-k a programokat a [fetch-decode-execute ciklus](https://wikipedia.org/wiki/Instruction_cycle) segítségével hajtják végre. Minden óra ketyegésnél a CPU lekéri a következő utasítást a memóriából, dekódolja, majd végrehajtja, például egy aritmetikai logikai egység (ALU) segítségével két számot ad össze. Néhány végrehajtás több ketyegést is igénybe vehet, így a következő ciklus a következő ketyegésnél fut le, miután az utasítás befejeződött. -![A fetch-decode-execute ciklus, amely bemutatja, hogy a fetch a RAM-ban tárolt programból vesz utasítást, majd dekódolja és végrehajtja azt a CPU-n](../../../../../translated_images/hu/fetch-decode-execute.2fd6f150f6280392807f4475382319abd0cee0b90058e1735444d6baa6f2078c.png) +![A fetch-decode-execute ciklus, amely bemutatja, hogy a fetch a RAM-ban tárolt programból vesz utasítást, majd dekódolja és végrehajtja azt a CPU-n](../../../../../translated_images/hu/fetch-decode-execute.2fd6f150f6280392.webp) A mikrokontrollerek órajele sokkal alacsonyabb, mint az asztali vagy laptop számítógépeké, vagy akár a legtöbb okostelefoné. Például a Wio Terminal CPU-ja 120MHz-en, azaz 120 000 000 ciklus másodpercenként működik. @@ -164,7 +164,7 @@ Az Arduino lapokat C vagy C++ nyelven programozzák. A C/C++ használata lehető A `setup` funkcióban írná meg az inicializáló kódját, például a WiFi-hez és felhőszolgáltatásokhoz való csatlakozást, vagy a bemeneti és kimeneti tűk inicializálását. A `loop` funkcióban pedig a feldolgozó kódot, például egy szenzorból való olvasást és az érték felhőbe küldését. Általában késleltetést adna a ciklus végéhez, például ha csak 10 másodpercenként szeretne szenzoradatokat küldeni, akkor 10 másodperces késleltetést adna a ciklus végéhez, hogy a mikrokontroller aludjon, energiát takarítson meg, majd 10 másodperc múlva újra futtassa a ciklust. -![Egy Arduino vázlat, amely először a setup-ot futtatja, majd folyamatosan a loop-ot](../../../../../translated_images/hu/arduino-sketch.79590cb837ff7a7c6a68d1afda6cab83fd53d3bb1bd9a8bf2eaf8d693a4d3ea6.png) +![Egy Arduino vázlat, amely először a setup-ot futtatja, majd folyamatosan a loop-ot](../../../../../translated_images/hu/arduino-sketch.79590cb837ff7a7c.webp) ✅ Ezt a programarchitektúrát *eseményciklusnak* vagy *üzenetciklusnak* nevezik. Sok alkalmazás használja ezt a háttérben, és ez a szabvány a legtöbb asztali alkalmazás esetében, amelyek olyan operációs rendszereken futnak, mint a Windows, macOS vagy Linux. A `loop` figyeli az üzeneteket a felhasználói felület komponenseitől, például gomboktól, vagy eszközöktől, mint a billentyűzet, és reagál rájuk. Erről többet olvashat ebben a [cikkben az eseményciklusról](https://wikipedia.org/wiki/Event_loop). diff --git a/translations/hu/1-getting-started/lessons/3-sensors-and-actuators/README.md b/translations/hu/1-getting-started/lessons/3-sensors-and-actuators/README.md index 3e0142041..e44f425d3 100644 --- a/translations/hu/1-getting-started/lessons/3-sensors-and-actuators/README.md +++ b/translations/hu/1-getting-started/lessons/3-sensors-and-actuators/README.md @@ -1,6 +1,6 @@ # Érzékelők és működtetők használata a fizikai világban -![A lecke vázlatos áttekintése](../../../../../translated_images/hu/lesson-3.cc3b7b4cd646de598698cce043c0393fd62ef42bac2eaf60e61272cd844250f4.jpg) +![A lecke vázlatos áttekintése](../../../../../translated_images/hu/lesson-3.cc3b7b4cd646de59.webp) > Vázlatrajz: [Nitya Narasimhan](https://github.com/nitya). Kattints a képre a nagyobb verzióért. @@ -92,7 +92,7 @@ A digitális érzékelők, az analóg érzékelőkhöz hasonlóan, az elektromos A legegyszerűbb digitális érzékelő egy gomb vagy kapcsoló. Ez egy olyan érzékelő, amelynek két állapota van: be vagy ki. -![Egy gomb 5 voltot kap. Ha nincs lenyomva, 0 voltot ad vissza, ha lenyomva van, 5 voltot ad vissza](../../../../../translated_images/hu/button.eadb560b77ac45e56f523d9d8876e40444f63b419e33eb820082d461fa79490b.png) +![Egy gomb 5 voltot kap. Ha nincs lenyomva, 0 voltot ad vissza, ha lenyomva van, 5 voltot ad vissza](../../../../../translated_images/hu/button.eadb560b77ac45e5.webp) Az IoT eszközök, például a GPIO tüskék, közvetlenül mérhetik ezt a jelet 0-ként vagy 1-ként. Ha a küldött feszültség megegyezik a visszaküldött feszültséggel, az olvasott érték 1, különben az olvasott érték 0. Nincs szükség a jel átalakítására, az csak 1 vagy 0 lehet. @@ -122,7 +122,7 @@ Néhány gyakori működtető: ✅ Kutass egy kicsit! Milyen működtetők vannak a telefonodban? ## Működt -![Egy fény alacsony feszültségen halványan, magasabb feszültségen pedig fényesen világít](../../../../../translated_images/hu/dimmable-light.9ceffeb195dec1a849da718b2d71b32c35171ff7dfea9c07bbf82646a67acf6b.png) +![Egy fény alacsony feszültségen halványan, magasabb feszültségen pedig fényesen világít](../../../../../translated_images/hu/dimmable-light.9ceffeb195dec1a8.webp) Akárcsak az érzékelők esetében, a tényleges IoT eszköz digitális jelekkel működik, nem analóg jelekkel. Ez azt jelenti, hogy analóg jel küldéséhez az IoT eszköznek szüksége van egy digitális-analóg átalakítóra (DAC), amely lehet közvetlenül az IoT eszközön vagy egy csatlakozópanelen. Ez átalakítja az IoT eszköz 0 és 1 értékeit olyan analóg feszültséggé, amelyet az aktuátor használni tud. @@ -169,7 +169,7 @@ A digitális aktuátorok, akárcsak a digitális érzékelők, vagy két állapo Egy egyszerű digitális aktuátor például egy LED. Amikor az eszköz digitális 1 jelet küld, magas feszültséget küld, amely bekapcsolja a LED-et. Amikor digitális 0 jelet küld, a feszültség 0V-ra csökken, és a LED kikapcsol. -![Egy LED 0 voltnál kikapcsolva, 5V-nál bekapcsolva](../../../../../translated_images/hu/led.ec6d94f66676a174ad06d9fa9ea49c2ee89beb18b312d5c6476467c66375b07f.png) +![Egy LED 0 voltnál kikapcsolva, 5V-nál bekapcsolva](../../../../../translated_images/hu/led.ec6d94f66676a174.webp) ✅ Milyen más egyszerű, kétállapotú aktuátorokat tudsz elképzelni? Egy példa lehet egy szolenoid, amely egy elektromágnes, amely aktiválható például egy ajtózár reteszének mozgatására, az ajtó nyitására/zárására. diff --git a/translations/hu/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md b/translations/hu/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md index cfc71c28c..c799a3847 100644 --- a/translations/hu/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md +++ b/translations/hu/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md @@ -26,7 +26,7 @@ A Grove LED egy modul formájában érkezik, amely több LED-et tartalmaz, így Csatlakoztasd a LED-et. -![Egy Grove LED](../../../../../translated_images/hu/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![Egy Grove LED](../../../../../translated_images/hu/grove-led.6c853be93f473cf2.webp) 1. Válaszd ki a kedvenc LED-edet, és helyezd be a lábait a LED modul két lyukába. @@ -40,7 +40,7 @@ Csatlakoztasd a LED-et. 1. Kapcsold ki a Raspberry Pi-t, és csatlakoztasd a Grove kábel másik végét a Grove Base hat-on lévő **D5** jelzésű digitális aljzathoz, amely a Pi-hez van csatlakoztatva. Ez az aljzat a második balról, a GPIO csatlakozók melletti aljzatsoron. -![A Grove LED csatlakoztatva a D5 aljzathoz](../../../../../translated_images/hu/pi-led.97f1d474981dc35d1c7996c7b17de355d3d0a6bc9606d79fa5f89df933415122.png) +![A Grove LED csatlakoztatva a D5 aljzathoz](../../../../../translated_images/hu/pi-led.97f1d474981dc35d.webp) ## Programozd az éjjeli fényt diff --git a/translations/hu/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md b/translations/hu/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md index 6f563b238..5bda8fab1 100644 --- a/translations/hu/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md +++ b/translations/hu/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md @@ -16,13 +16,13 @@ A Grove fényérzékelőt, amelyet a fény szintjeinek érzékelésére használ Csatlakoztasd a fényérzékelőt. -![Egy Grove fényérzékelő](../../../../../translated_images/hu/grove-light-sensor.b8127b7c434e632d6bcdb57587a14e9ef69a268a22df95d08628f62b8fa5505c.png) +![Egy Grove fényérzékelő](../../../../../translated_images/hu/grove-light-sensor.b8127b7c434e632d.webp) 1. Helyezd be a Grove kábel egyik végét a fényérzékelő modul aljzatába. Csak egy irányban illeszkedik. 1. Kapcsold ki a Raspberry Pi-t, majd csatlakoztasd a Grove kábel másik végét a Grove Base hat analóg aljzatába, amelyet **A0** jelöléssel látsz. Ez az aljzat a második a jobb oldalon, a GPIO pin-ek melletti aljzatsoron. -![A Grove fényérzékelő az A0 aljzathoz csatlakoztatva](../../../../../translated_images/hu/pi-light-sensor.66cc1e31fa48cd7d5f23400d4b2119aa41508275cb7c778053a7923b4e972d7e.png) +![A Grove fényérzékelő az A0 aljzathoz csatlakoztatva](../../../../../translated_images/hu/pi-light-sensor.66cc1e31fa48cd7d.webp) ## Programozd a fényérzékelőt diff --git a/translations/hu/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md b/translations/hu/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md index 1634693d8..4743d4dac 100644 --- a/translations/hu/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md +++ b/translations/hu/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md @@ -36,11 +36,11 @@ Add hozzá a LED-et a CounterFit alkalmazáshoz. 1. Válaszd ki az **Add** gombot, hogy létrehozd a LED-et az 5-ös lábon. - ![A LED beállításai](../../../../../translated_images/hu/counterfit-create-led.ba9db1c9b8c622a635d6dfae5cdc4e70c2b250635bd4f0601c6cf0bd22b7ba46.png) + ![A LED beállításai](../../../../../translated_images/hu/counterfit-create-led.ba9db1c9b8c622a6.webp) A LED létrejön, és megjelenik a működtetők listájában. - ![A létrehozott LED](../../../../../translated_images/hu/counterfit-led.c0ab02de6d256ad84d9bad4d67a7faa709f0ea83e410cfe9b5561ef0cef30b1c.png) + ![A létrehozott LED](../../../../../translated_images/hu/counterfit-led.c0ab02de6d256ad8.webp) Miután a LED létrejött, megváltoztathatod a színét a *Color* színválasztóval. A szín kiválasztása után nyomd meg a **Set** gombot a szín megváltoztatásához. diff --git a/translations/hu/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md b/translations/hu/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md index e42c426e9..57f64c93e 100644 --- a/translations/hu/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md +++ b/translations/hu/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md @@ -28,11 +28,11 @@ Add hozzá a fényérzékelőt a CounterFit alkalmazáshoz. 1. Kattints az **Add** gombra, hogy létrehozd a fényérzékelőt a 0-s tűn. - ![A fényérzékelő beállításai](../../../../../translated_images/hu/counterfit-create-light-sensor.9f36a5e0d4458d8d554d54b34d2c806d56093d6e49fddcda2d20f6fef7f5cce1.png) + ![A fényérzékelő beállításai](../../../../../translated_images/hu/counterfit-create-light-sensor.9f36a5e0d4458d8d.webp) A fényérzékelő létrejön, és megjelenik az érzékelők listájában. - ![A létrehozott fényérzékelő](../../../../../translated_images/hu/counterfit-light-sensor.5d0f5584df56b90f6b2561910d9cb20dfbd73eeff2177c238d38f4de54aefae1.png) + ![A létrehozott fényérzékelő](../../../../../translated_images/hu/counterfit-light-sensor.5d0f5584df56b90f.webp) ## A fényérzékelő programozása diff --git a/translations/hu/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md b/translations/hu/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md index 8425a4ac6..363af8bc9 100644 --- a/translations/hu/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md +++ b/translations/hu/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md @@ -26,7 +26,7 @@ A Grove LED egy modul formájában érkezik, amely több LED-et tartalmaz, így Csatlakoztasd a LED-et. -![Egy Grove LED](../../../../../translated_images/hu/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![Egy Grove LED](../../../../../translated_images/hu/grove-led.6c853be93f473cf2.webp) 1. Válaszd ki a kedvenc LED-edet, és helyezd be a lábait a LED modul két lyukába. diff --git a/translations/hu/1-getting-started/lessons/4-connect-internet/README.md b/translations/hu/1-getting-started/lessons/4-connect-internet/README.md index e51c2d6cb..da8cfef85 100644 --- a/translations/hu/1-getting-started/lessons/4-connect-internet/README.md +++ b/translations/hu/1-getting-started/lessons/4-connect-internet/README.md @@ -1,6 +1,6 @@ # Csatlakoztassa eszközét az internethez -![A lecke vázlatos áttekintése](../../../../../translated_images/hu/lesson-4.7344e074ea68fa545fd320b12dce36d72dd62d28c3b4596cb26cf315f434b98f.jpg) +![A lecke vázlatos áttekintése](../../../../../translated_images/hu/lesson-4.7344e074ea68fa54.webp) > Vázlatrajz: [Nitya Narasimhan](https://github.com/nitya). Kattintson a képre a nagyobb verzióért. @@ -47,7 +47,7 @@ Az [MQTT](http://mqtt.org) egy könnyű, nyílt szabványú üzenetküldési pro Az MQTT egyetlen közvetítőt és több klienst használ. Minden kliens csatlakozik a közvetítőhöz, amely az üzeneteket a megfelelő kliensekhez irányítja. Az üzeneteket elnevezett témák segítségével irányítják, nem pedig közvetlenül egy adott klienshez küldik. Egy kliens publikálhat egy témára, és bármelyik kliens, amely feliratkozott erre a témára, megkapja az üzenetet. -![Az IoT-eszköz telemetriát publikál a /telemetry témára, és a felhőszolgáltatás feliratkozik erre a témára](../../../../../translated_images/hu/mqtt.cbf7f21d9adc3e17548b359444cc11bb4bf2010543e32ece9a47becf54438c23.png) +![Az IoT-eszköz telemetriát publikál a /telemetry témára, és a felhőszolgáltatás feliratkozik erre a témára](../../../../../translated_images/hu/mqtt.cbf7f21d9adc3e17.webp) ✅ Kutasson egy kicsit! Ha sok IoT-eszköze van, hogyan biztosíthatja, hogy az MQTT közvetítője képes legyen kezelni az összes üzenetet? @@ -69,7 +69,7 @@ Ahelyett, hogy az MQTT közvetítő beállításának bonyolultságával foglalk > 💁 Ez a teszt közvetítő nyilvános és nem biztonságos. Bárki hallgathatja, amit publikál, ezért nem szabad olyan adatokkal használni, amelyeket titokban kell tartani. -![A feladat folyamatábrája, amely a fényerősség leolvasását és ellenőrzését, valamint az LED vezérlését mutatja](../../../../../translated_images/hu/assignment-1-internet-flow.3256feab5f052fd273bf4e331157c574c2c3fa42e479836fc9c3586f41db35a5.png) +![A feladat folyamatábrája, amely a fényerősség leolvasását és ellenőrzését, valamint az LED vezérlését mutatja](../../../../../translated_images/hu/assignment-1-internet-flow.3256feab5f052fd2.webp) Kövesse az alábbi lépéseket, hogy csatlakoztassa eszközét az MQTT közvetítőhöz: @@ -336,7 +336,7 @@ Gépek esetében érdemes lehet megtartani az adatokat, különösen, ha azokat Az IoT eszköz tervezőinek azt is figyelembe kell venniük, hogy az eszköz használható-e internetkimaradás vagy helyszíni jelvesztés esetén. Egy okos termosztátnak képesnek kell lennie arra, hogy korlátozott döntéseket hozzon a fűtés vezérlésére, ha nem tud telemetriát küldeni a felhőbe egy kimaradás miatt. -[![Ez a Ferrari használhatatlanná vált, mert valaki föld alatt próbálta frissíteni, ahol nincs mobiljel](../../../../../translated_images/hu/bricked-car.dc38f8efadc6c59d76211f981a521efb300939283dee468f79503aae3ec67615.png)](https://twitter.com/internetofshit/status/1315736960082808832) +[![Ez a Ferrari használhatatlanná vált, mert valaki föld alatt próbálta frissíteni, ahol nincs mobiljel](../../../../../translated_images/hu/bricked-car.dc38f8efadc6c59d.webp)](https://twitter.com/internetofshit/status/1315736960082808832) Az MQTT kezeléséhez kapcsolatvesztés esetén az eszköz- és szerverkódnak felelősséget kell vállalnia az üzenetek kézbesítésének biztosításáért, ha szükséges, például azáltal, hogy megköveteli, hogy minden elküldött üzenetre válasz érkezzen egy válasz témán, és ha nem, akkor manuálisan sorba állítják őket későbbi újrajátszásra. @@ -344,7 +344,7 @@ Az MQTT kezeléséhez kapcsolatvesztés esetén az eszköz- és szerverkódnak f A parancsok olyan üzenetek, amelyeket a felhő küld egy eszköznek, hogy utasítsa valamilyen művelet végrehajtására. Ez legtöbbször valamilyen kimenet generálását jelenti egy aktuátor segítségével, de lehet az eszközre vonatkozó utasítás is, például újraindítás vagy további telemetria gyűjtése és válaszként való visszaküldése. -![Egy internetkapcsolattal rendelkező termosztát, amely parancsot kap a fűtés bekapcsolására](../../../../../translated_images/hu/commands.d6c06bbbb3a02cce95f2831a1c331daf6dedd4e470c4aa2b0ae54f332016e504.png) +![Egy internetkapcsolattal rendelkező termosztát, amely parancsot kap a fűtés bekapcsolására](../../../../../translated_images/hu/commands.d6c06bbbb3a02cce.webp) Egy termosztát például parancsot kaphat a felhőtől a fűtés bekapcsolására. Az összes érzékelő telemetriai adatai alapján a felhőszolgáltatás úgy döntött, hogy a fűtésnek be kell kapcsolnia, ezért elküldi a megfelelő parancsot. diff --git a/translations/hu/2-farm/lessons/1-predict-plant-growth/README.md b/translations/hu/2-farm/lessons/1-predict-plant-growth/README.md index ec8f212bb..a2d58e6c2 100644 --- a/translations/hu/2-farm/lessons/1-predict-plant-growth/README.md +++ b/translations/hu/2-farm/lessons/1-predict-plant-growth/README.md @@ -1,6 +1,6 @@ ## Növényi növekedés előrejelzése IoT segítségével -![A lecke áttekintése sketchnote formában](../../../../../translated_images/hu/lesson-5.42b234299279d263143148b88ab4583861a32ddb03110c6c1120e41bb88b2592.jpg) +![A lecke áttekintése sketchnote formában](../../../../../translated_images/hu/lesson-5.42b234299279d263.webp) > Sketchnote készítette: [Nitya Narasimhan](https://github.com/nitya). Kattints a képre a nagyobb verzióért. @@ -102,7 +102,7 @@ A lépések ehhez manuálisan: Például, ha a napi legmagasabb hőmérséklet 25°C, a legalacsonyabb pedig 12°C: -![GDD = 25 + 12 osztva 2-vel, majd az eredményből kivonva 10, ami 8.5](../../../../../translated_images/hu/gdd-calculation-strawberries.59f57db94b22adb8ff6efb951ace33af104a1c6ccca3ffb0f8169c14cb160c90.png) +![GDD = 25 + 12 osztva 2-vel, majd az eredményből kivonva 10, ami 8.5](../../../../../translated_images/hu/gdd-calculation-strawberries.59f57db94b22adb8.webp) * 25 + 12 = 37 * 37 / 2 = 18.5 diff --git a/translations/hu/2-farm/lessons/1-predict-plant-growth/assignment.md b/translations/hu/2-farm/lessons/1-predict-plant-growth/assignment.md index f48e90afc..3c0fb37da 100644 --- a/translations/hu/2-farm/lessons/1-predict-plant-growth/assignment.md +++ b/translations/hu/2-farm/lessons/1-predict-plant-growth/assignment.md @@ -33,7 +33,7 @@ Miután megvannak a hőmérsékleti adatok, használhatod a Jupyter Notebookot e A Jupyter elindul, és megnyitja a notebookot a böngésződben. Kövesd a notebookban található utasításokat, hogy vizualizáld a mért hőmérsékleteket, és kiszámítsd a növekedési foknapokat (GDD). - ![A jupyter notebook](../../../../../translated_images/hu/gdd-jupyter-notebook.c5b52cf21094f158a61f47f455490fd95f1729777ff90861a4521820bf354cdc.png) + ![A jupyter notebook](../../../../../translated_images/hu/gdd-jupyter-notebook.c5b52cf21094f158.webp) ## Értékelési szempontok diff --git a/translations/hu/2-farm/lessons/1-predict-plant-growth/pi-temp.md b/translations/hu/2-farm/lessons/1-predict-plant-growth/pi-temp.md index b00a995e2..72af3d60b 100644 --- a/translations/hu/2-farm/lessons/1-predict-plant-growth/pi-temp.md +++ b/translations/hu/2-farm/lessons/1-predict-plant-growth/pi-temp.md @@ -16,13 +16,13 @@ A Grove hőmérséklet-érzékelő csatlakoztatható a Raspberry Pi-hoz. Csatlakoztasd a hőmérséklet-érzékelőt. -![Egy Grove hőmérséklet-érzékelő](../../../../../translated_images/hu/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![Egy Grove hőmérséklet-érzékelő](../../../../../translated_images/hu/grove-dht11.07f8eafceee17004.webp) 1. Illeszd be a Grove kábel egyik végét a páratartalom- és hőmérséklet-érzékelő aljzatába. Csak egyféleképpen illeszkedik. 1. Kapcsold ki a Raspberry Pi-t, majd csatlakoztasd a Grove kábel másik végét a Grove Base hat-on található **D5** jelzésű digitális aljzathoz, amely a Pi-hoz van csatlakoztatva. Ez az aljzat a második balról, a GPIO tüskék melletti aljzatsoron. -![A Grove hőmérséklet-érzékelő az A0 aljzathoz csatlakoztatva](../../../../../translated_images/hu/pi-temperature-sensor.3ff82fff672c8e565ef25a39d26d111de006b825a7e0867227ef4e7fbff8553c.png) +![A Grove hőmérséklet-érzékelő az A0 aljzathoz csatlakoztatva](../../../../../translated_images/hu/pi-temperature-sensor.3ff82fff672c8e56.webp) ## Programozd a hőmérséklet-érzékelőt diff --git a/translations/hu/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md b/translations/hu/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md index bedf3ca44..be3122756 100644 --- a/translations/hu/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md +++ b/translations/hu/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md @@ -38,11 +38,11 @@ Add hozzá a páratartalom- és hőmérséklet-érzékelőket a CounterFit alkal 1. Válaszd ki az **Add** gombot, hogy létrehozd a páratartalom-érzékelőt az 5-ös lábon. - ![A páratartalom-érzékelő beállításai](../../../../../translated_images/hu/counterfit-create-humidity-sensor.2750e27b6f30e09cf4e22101defd5252710717620816ab41ba688f91f757c49a.png) + ![A páratartalom-érzékelő beállításai](../../../../../translated_images/hu/counterfit-create-humidity-sensor.2750e27b6f30e09c.webp) A páratartalom-érzékelő létrejön, és megjelenik az érzékelők listájában. - ![A páratartalom-érzékelő létrehozva](../../../../../translated_images/hu/counterfit-humidity-sensor.7b12f7f339e430cb26c8211d2dba4ef75261b353a01da0932698b5bebd693f27.png) + ![A páratartalom-érzékelő létrehozva](../../../../../translated_images/hu/counterfit-humidity-sensor.7b12f7f339e430cb.webp) 1. Hozz létre egy hőmérséklet-érzékelőt: @@ -54,11 +54,11 @@ Add hozzá a páratartalom- és hőmérséklet-érzékelőket a CounterFit alkal 1. Válaszd ki az **Add** gombot, hogy létrehozd a hőmérséklet-érzékelőt a 6-os lábon. - ![A hőmérséklet-érzékelő beállításai](../../../../../translated_images/hu/counterfit-create-temperature-sensor.199350ed34f7343d79dccbe95eaf6c11d2121f03d1c35ab9613b330c23f39b29.png) + ![A hőmérséklet-érzékelő beállításai](../../../../../translated_images/hu/counterfit-create-temperature-sensor.199350ed34f7343d.webp) A hőmérséklet-érzékelő létrejön, és megjelenik az érzékelők listájában. - ![A hőmérséklet-érzékelő létrehozva](../../../../../translated_images/hu/counterfit-temperature-sensor.f0560236c96a9016bafce7f6f792476fe3367bc6941a1f7d5811d144d4bcbfff.png) + ![A hőmérséklet-érzékelő létrehozva](../../../../../translated_images/hu/counterfit-temperature-sensor.f0560236c96a9016.webp) ## A hőmérséklet-érzékelő alkalmazás programozása diff --git a/translations/hu/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md b/translations/hu/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md index 841380434..f55738ee0 100644 --- a/translations/hu/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md +++ b/translations/hu/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md @@ -18,7 +18,7 @@ A Grove hőmérséklet-érzékelő csatlakoztatható a Wio Terminal digitális p Csatlakoztasd a hőmérséklet-érzékelőt. -![Egy Grove hőmérséklet-érzékelő](../../../../../translated_images/hu/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![Egy Grove hőmérséklet-érzékelő](../../../../../translated_images/hu/grove-dht11.07f8eafceee17004.webp) 1. Illeszd be a Grove kábel egyik végét a páratartalom- és hőmérséklet-érzékelő aljzatába. Csak egyféleképpen illeszkedik. diff --git a/translations/hu/2-farm/lessons/2-detect-soil-moisture/assignment.md b/translations/hu/2-farm/lessons/2-detect-soil-moisture/assignment.md index d9dafecaf..05efb4072 100644 --- a/translations/hu/2-farm/lessons/2-detect-soil-moisture/assignment.md +++ b/translations/hu/2-farm/lessons/2-detect-soil-moisture/assignment.md @@ -20,14 +20,14 @@ Ezeket a lépéseket többször meg kell ismételned, hogy elegendő adatot gyű A gravimetrikus talajnedvesség-tartalom kiszámítása: -![A talajnedvesség % kiszámítása: nedves súly mínusz száraz súly, osztva száraz súllyal, szorozva 100-zal](../../../../../translated_images/hu/gsm-calculation.6da38c6201eec14e7573bb2647aa18892883193553d23c9d77e5dc681522dfb2.png) +![A talajnedvesség % kiszámítása: nedves súly mínusz száraz súly, osztva száraz súllyal, szorozva 100-zal](../../../../../translated_images/hu/gsm-calculation.6da38c6201eec14e.webp) * W - a nedves talaj súlya * W - a száraz talaj súlya Például, ha van egy talajmintád, amely nedvesen 212g, szárazon pedig 197g. -![A kitöltött számítás](../../../../../translated_images/hu/gsm-calculation-example.99f9803b4f29e97668e7c15412136c0c399ab12dbba0b89596fdae9d8aedb6fb.png) +![A kitöltött számítás](../../../../../translated_images/hu/gsm-calculation-example.99f9803b4f29e976.webp) * W = 212g * W = 197g diff --git a/translations/hu/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md b/translations/hu/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md index f7d4d89cb..96b578863 100644 --- a/translations/hu/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md +++ b/translations/hu/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md @@ -18,13 +18,13 @@ A Grove talajnedvesség-érzékelő csatlakoztatható a Raspberry Pi-hez. Csatlakoztasd a talajnedvesség-érzékelőt. -![Egy Grove talajnedvesség-érzékelő](../../../../../translated_images/hu/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![Egy Grove talajnedvesség-érzékelő](../../../../../translated_images/hu/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. Dugj be egy Grove kábelt az érzékelő csatlakozójába. Csak egy irányban illeszkedik. 1. Kapcsold ki a Raspberry Pi-t, majd csatlakoztasd a Grove kábel másik végét a Grove Base Hat analóg csatlakozójába, amely **A0** jelöléssel van ellátva. Ez a csatlakozó a GPIO csatlakozók melletti sorban, jobbról a második. -![A Grove talajnedvesség-érzékelő csatlakoztatva az A0 csatlakozóhoz](../../../../../translated_images/hu/pi-soil-moisture-sensor.fdd7eb2393792cf6739cacf1985d9f55beda16d372f30d0b5a51d586f978a870.png) +![A Grove talajnedvesség-érzékelő csatlakoztatva az A0 csatlakozóhoz](../../../../../translated_images/hu/pi-soil-moisture-sensor.fdd7eb2393792cf6.webp) 1. Helyezd az érzékelőt a talajba. Az érzékelőn van egy "legmagasabb pozíció vonal" - egy fehér vonal. Helyezd az érzékelőt a vonalig, de ne azon túl. diff --git a/translations/hu/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md b/translations/hu/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md index f9ba8a043..b89a0737e 100644 --- a/translations/hu/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md +++ b/translations/hu/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md @@ -34,11 +34,11 @@ Adja hozzá a talajnedvesség-érzékelőt a CounterFit alkalmazáshoz. 1. Válassza ki az **Add** gombot, hogy létrehozza a *Soil Moisture* érzékelőt a 0-s csatlakozón. - ![A talajnedvesség-érzékelő beállításai](../../../../../translated_images/hu/counterfit-create-soil-moisture-sensor.35266135a5e0ae68b29a684d7db0d2933a8098b2307d197f7c71577b724603aa.png) + ![A talajnedvesség-érzékelő beállításai](../../../../../translated_images/hu/counterfit-create-soil-moisture-sensor.35266135a5e0ae68.webp) A talajnedvesség-érzékelő létrejön, és megjelenik az érzékelők listájában. - ![A létrehozott talajnedvesség-érzékelő](../../../../../translated_images/hu/counterfit-soil-moisture-sensor.81742b2de0e9de60a3b3b9a2ff8ecc686d428eb6d71820f27a693be26e5aceee.png) + ![A létrehozott talajnedvesség-érzékelő](../../../../../translated_images/hu/counterfit-soil-moisture-sensor.81742b2de0e9de60.webp) ## Talajnedvesség-érzékelő alkalmazás programozása diff --git a/translations/hu/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md b/translations/hu/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md index 1ec1d5062..db826cf27 100644 --- a/translations/hu/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md +++ b/translations/hu/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md @@ -18,7 +18,7 @@ A Grove talajnedvesség-érzékelő a Wio Terminal konfigurálható analóg/digi Csatlakoztasd a talajnedvesség-érzékelőt. -![Egy Grove talajnedvesség-érzékelő](../../../../../translated_images/hu/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![Egy Grove talajnedvesség-érzékelő](../../../../../translated_images/hu/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. Illeszd be a Grove kábel egyik végét a talajnedvesség-érzékelő aljzatába. Csak egyféleképpen illeszthető be. diff --git a/translations/hu/2-farm/lessons/3-automated-plant-watering/README.md b/translations/hu/2-farm/lessons/3-automated-plant-watering/README.md index ede82ae02..85e8b9768 100644 --- a/translations/hu/2-farm/lessons/3-automated-plant-watering/README.md +++ b/translations/hu/2-farm/lessons/3-automated-plant-watering/README.md @@ -1,6 +1,6 @@ # Automatikus növényöntözés -![A lecke vázlatos áttekintése](../../../../../translated_images/hu/lesson-7.30b5f577d3cb8e031238751475cb519c7d6dbaea261b5df4643d086ffb2a03bb.jpg) +![A lecke vázlatos áttekintése](../../../../../translated_images/hu/lesson-7.30b5f577d3cb8e03.webp) > Vázlatrajz: [Nitya Narasimhan](https://github.com/nitya). Kattints a képre a nagyobb verzióért. @@ -32,7 +32,7 @@ Az IoT eszközök alacsony feszültséget használnak. Ez elegendő az érzékel A megoldás az, hogy a pumpát egy külső áramforráshoz csatlakoztatjuk, és egy aktuátort használunk a pumpa bekapcsolására, hasonlóan ahhoz, ahogy egy lámpát kapcsolnánk fel. Csak egy kis energia (például a tested energiája) szükséges ahhoz, hogy az ujjaddal felkapcsolj egy kapcsolót, amely összeköti a lámpát a 110V/240V-os hálózati árammal. -![Egy villanykapcsoló bekapcsolja a lámpát](../../../../../translated_images/hu/light-switch.760317ad6ab8bd6d611da5352dfe9c73a94a0822ccec7df3c8bae35da18e1658.png) +![Egy villanykapcsoló bekapcsolja a lámpát](../../../../../translated_images/hu/light-switch.760317ad6ab8bd6d.webp) > 🎓 A [hálózati áram](https://wikipedia.org/wiki/Mains_electricity) az otthonokba és vállalkozásokba nemzeti infrastruktúrán keresztül szállított elektromosságot jelenti a világ számos részén. @@ -72,7 +72,7 @@ Amikor a kar mozog, általában hallhatod, ahogy az elektromágnessel érintkezi Az elektromágnesnek nincs szüksége sok energiára ahhoz, hogy aktiválódjon és meghúzza a kart, vezérelhető a 3,3V vagy 5V kimenettel egy IoT fejlesztői készletről. A kimeneti áramkör sokkal nagyobb teljesítményt képes szállítani, a relétől függően, beleértve a hálózati feszültséget vagy akár ipari használatra szánt magasabb teljesítményszinteket is. Így egy IoT fejlesztői készlet vezérelhet egy öntözőrendszert, egyetlen növényhez használt kis pumpától kezdve egészen egy teljes kereskedelmi farm ipari rendszeréig. -![Egy Grove relé a vezérlő áramkörrel, kimeneti áramkörrel és relével megjelölve](../../../../../translated_images/hu/grove-relay-labelled.293e068f5c3c2a199bd7892f2661fdc9e10c920b535cfed317fbd6d1d4ae1168.png) +![Egy Grove relé a vezérlő áramkörrel, kimeneti áramkörrel és relével megjelölve](../../../../../translated_images/hu/grove-relay-labelled.293e068f5c3c2a19.webp) A fenti képen egy Grove relé látható. A vezérlő áramkör egy IoT eszközhöz csatlakozik, és 3,3V vagy 5V segítségével kapcsolja be vagy ki a relét. A kimeneti áramkör két terminállal rendelkezik, bármelyik lehet áramforrás vagy földelés. A kimeneti áramkör akár 250V-ot és 10A-t is képes kezelni, ami elegendő számos hálózati árammal működő eszközhöz. Léteznek még nagyobb teljesítményű relék is. diff --git a/translations/hu/2-farm/lessons/3-automated-plant-watering/pi-relay.md b/translations/hu/2-farm/lessons/3-automated-plant-watering/pi-relay.md index b05c1fde8..52b457331 100644 --- a/translations/hu/2-farm/lessons/3-automated-plant-watering/pi-relay.md +++ b/translations/hu/2-farm/lessons/3-automated-plant-watering/pi-relay.md @@ -18,13 +18,13 @@ A Grove relé csatlakoztatható a Raspberry Pi-hez. Csatlakoztasd a relét. -![Egy Grove relé](../../../../../translated_images/hu/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) +![Egy Grove relé](../../../../../translated_images/hu/grove-relay.d426958ca210fbd0.webp) 1. Dugj be egy Grove kábelt a relé aljzatába. Csak egyféleképpen illeszkedik. 1. Kapcsold ki a Raspberry Pi-t, majd csatlakoztasd a Grove kábel másik végét a **D5** jelzésű digitális aljzathoz a Pi-hez csatlakoztatott Grove Base Hat-on. Ez az aljzat a második balról, a GPIO csatlakozók melletti aljzatsoron. Hagyd a talajnedvesség-érzékelőt az **A0** aljzathoz csatlakoztatva. -![A Grove relé a D5 aljzathoz csatlakoztatva, és a talajnedvesség-érzékelő az A0 aljzathoz csatlakoztatva](../../../../../translated_images/hu/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e69ec716cd2719ce117700bd1fc933eaf93476c103c57939b.png) +![A Grove relé a D5 aljzathoz csatlakoztatva, és a talajnedvesség-érzékelő az A0 aljzathoz csatlakoztatva](../../../../../translated_images/hu/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e.webp) 1. Helyezd a talajnedvesség-érzékelőt a talajba, ha az előző leckéből még nem tetted meg. diff --git a/translations/hu/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md b/translations/hu/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md index 335770d5c..49d553782 100644 --- a/translations/hu/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md +++ b/translations/hu/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md @@ -28,11 +28,11 @@ Add hozzá a relét a CounterFit alkalmazáshoz. 1. Kattints az **Add** gombra, hogy létrehozd a relét az 5-ös lábon. - ![A relé beállításai](../../../../../translated_images/hu/counterfit-create-relay.fa7c40fd0f2f6afc33b35ea94fcb235085be4861e14e3fe6b9b7bcfc82d1c888.png) + ![A relé beállításai](../../../../../translated_images/hu/counterfit-create-relay.fa7c40fd0f2f6afc.webp) A relé létrejön, és megjelenik az aktuátorok listájában. - ![A létrehozott relé](../../../../../translated_images/hu/counterfit-relay.bbf74c1dbdc8b9acd983367fcbd06703a402aefef6af54ddb28e11307ba8a12c.png) + ![A létrehozott relé](../../../../../translated_images/hu/counterfit-relay.bbf74c1dbdc8b9ac.webp) ## A relé programozása diff --git a/translations/hu/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md b/translations/hu/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md index 8e4709ecc..3464171e5 100644 --- a/translations/hu/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md +++ b/translations/hu/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md @@ -1,6 +1,6 @@ # Migráld a növényedet a felhőbe -![A leckéről készült sketchnote áttekintése](../../../../../translated_images/hu/lesson-8.3f21f3c11159e6a0a376351973ea5724d5de68fa23b4288853a174bed9ac48c3.jpg) +![A leckéről készült sketchnote áttekintése](../../../../../translated_images/hu/lesson-8.3f21f3c11159e6a0.webp) > Sketchnote készítette: [Nitya Narasimhan](https://github.com/nitya). Kattints a képre a nagyobb verzióért. @@ -46,8 +46,8 @@ Ez nagyon drága lehetett, széles körű szakértelmet igényelt, és lassú vo A felhőt gyakran viccesen "valaki más számítógépének" nevezik. Az alapötlet egyszerű volt - a számítógépek vásárlása helyett bérelj valaki más számítógépét. Valaki más, egy felhőszolgáltató, hatalmas adatközpontokat üzemeltetne. Ők felelnének a hardver vásárlásáért és telepítéséért, az áramellátásért és hűtésért, a hálózatért, az épület biztonságáért, a hardver és szoftver frissítésekért, mindenért. Ügyfélként bérelhetnéd a szükséges számítógépeket, bérelhetnél többet, amikor a kereslet megugrik, majd csökkenthetnéd a bérlést, ha a kereslet visszaesik. Ezek az adatközpontok világszerte megtalálhatók. -![Egy Microsoft felhő adatközpont](../../../../../translated_images/hu/azure-region-existing.73f704604f2aa6cb9b5a49ed40e93d4fd81ae3f4e6af4a8ca504023902832f56.png) -![Egy Microsoft felhő adatközpont tervezett bővítése](../../../../../translated_images/hu/azure-region-planned-expansion.a5074a1e8af74f156a73552d502429e5b126ea5019274d767ecb4b9afdad442b.png) +![Egy Microsoft felhő adatközpont](../../../../../translated_images/hu/azure-region-existing.73f704604f2aa6cb.webp) +![Egy Microsoft felhő adatközpont tervezett bővítése](../../../../../translated_images/hu/azure-region-planned-expansion.a5074a1e8af74f15.webp) Ezek az adatközpontok akár több négyzetkilométeresek is lehetnek. A fenti képek néhány évvel ezelőtt készültek egy Microsoft felhő adatközpontban, és az eredeti méretet, valamint a tervezett bővítést mutatják. A bővítéshez előkészített terület több mint 5 négyzetkilométer. @@ -108,11 +108,11 @@ A felhő IoT szolgáltatások megoldják ezeket a problémákat. Ezeket nagy fel Az IoT eszközök egy felhőszolgáltatáshoz csatlakoznak, vagy egy eszköz SDK (egy könyvtár, amely kódot biztosít a szolgáltatás funkcióinak használatához), vagy közvetlenül egy kommunikációs protokoll, például MQTT vagy HTTP segítségével. Az eszköz SDK általában a legegyszerűbb út, mivel mindent kezel, például tudja, milyen témákra kell publikálni vagy feliratkozni, és hogyan kell kezelni a biztonságot. -![Az eszközök egy eszköz SDK segítségével csatlakoznak a szolgáltatáshoz. A szerver kód szintén egy SDK-n keresztül csatlakozik a szolgáltatáshoz](../../../../../translated_images/hu/iot-service-connectivity.7e873847921a5d6fd60d0ba3a943210194518cee0d4e362476624316443275c3.png) +![Az eszközök egy eszköz SDK segítségével csatlakoznak a szolgáltatáshoz. A szerver kód szintén egy SDK-n keresztül csatlakozik a szolgáltatáshoz](../../../../../translated_images/hu/iot-service-connectivity.7e873847921a5d6f.webp) Az eszközöd ezután az alkalmazásod más részeivel kommunikál ezen a szolgáltatáson keresztül - hasonlóan ahhoz, ahogy telemetriát küldtél és parancsokat fogadtál az MQTT-n keresztül. Ez általában egy szolgáltatás SDK vagy egy hasonló könyvtár segítségével történik. Az üzenetek az eszközödről a szolgáltatáshoz érkeznek, ahol az alkalmazásod más komponensei elolvashatják őket, majd üzeneteket küldhetnek vissza az eszközödre. -![Az érvényes titkos kulccsal nem rendelkező eszközök nem tudnak csatlakozni az IoT szolgáltatáshoz](../../../../../translated_images/hu/iot-service-allowed-denied-connection.818b0063ac213fb84204a7229303764d9b467ca430fb822b4ac2fca267d56726.png) +![Az érvényes titkos kulccsal nem rendelkező eszközök nem tudnak csatlakozni az IoT szolgáltatáshoz](../../../../../translated_images/hu/iot-service-allowed-denied-connection.818b0063ac213fb8.webp) Ezek a szolgáltatások biztonságot valósítanak meg azáltal, hogy ismerik az összes eszközt, amely csatlakozhat és adatokat küldhet, akár úgy, hogy az eszközöket előzetesen regisztrálják a szolgáltatásban, akár úgy, hogy az eszközök titkos kulcsokat vagy tanúsítványokat kapnak, amelyeket az első csatlakozáskor használhatnak a szolgáltatásba való reg 💁 Az IoT-szolgáltatások további képességeket is megvalósítanak, és a felhőszolgáltatók további szolgáltatásokat és alkalmazásokat kínálnak, amelyek csatlakoztathatók a szolgáltatáshoz. Például, ha az összes eszköz által küldött telemetriai üzeneteket egy adatbázisban szeretné tárolni, általában csak néhány kattintás szükséges a felhőszolgáltató konfigurációs eszközében, hogy a szolgáltatást csatlakoztassa az adatbázishoz, és az adatokat oda továbbítsa. @@ -120,7 +120,7 @@ Ezek a szolgáltatások biztonságot valósítanak meg azáltal, hogy ismerik az Most, hogy van Azure-előfizetésed, regisztrálhatsz egy IoT szolgáltatásra. A Microsoft IoT szolgáltatása az Azure IoT Hub. -![Az Azure IoT Hub logója](../../../../../translated_images/hu/azure-iot-hub-logo.28a19de76d0a1932464d858f7558712bcdace3e5ec69c434d482ed7ce41c3a26.png) +![Az Azure IoT Hub logója](../../../../../translated_images/hu/azure-iot-hub-logo.28a19de76d0a1932.webp) Az alábbi videó rövid áttekintést nyújt az Azure IoT Hubról: diff --git a/translations/hu/2-farm/lessons/5-migrate-application-to-the-cloud/README.md b/translations/hu/2-farm/lessons/5-migrate-application-to-the-cloud/README.md index cb5593fc3..efd0e7968 100644 --- a/translations/hu/2-farm/lessons/5-migrate-application-to-the-cloud/README.md +++ b/translations/hu/2-farm/lessons/5-migrate-application-to-the-cloud/README.md @@ -1,6 +1,6 @@ # Alkalmazáslogika áthelyezése a felhőbe -![A lecke vázlatos áttekintése](../../../../../translated_images/hu/lesson-9.dfe99c8e891f48e179724520da9f5794392cf9a625079281ccdcbf09bd85e1b6.jpg) +![A lecke vázlatos áttekintése](../../../../../translated_images/hu/lesson-9.dfe99c8e891f48e1.webp) > Vázlatrajz: [Nitya Narasimhan](https://github.com/nitya). Kattints a képre a nagyobb verzióért. @@ -28,7 +28,7 @@ Ebben a leckében a következőket tárgyaljuk: A szerver nélküli, vagy szerver nélküli számítástechnika kis kódrészletek létrehozását jelenti, amelyek a felhőben futnak különböző események hatására. Amikor az esemény bekövetkezik, a kódod lefut, és megkapja az esemény adatait. Ezek az események sokféle forrásból származhatnak, például webes kérésekből, sorba helyezett üzenetekből, adatbázisban történt változásokból vagy IoT eszközök által küldött üzenetekből. -![Események küldése egy IoT szolgáltatásból egy szerver nélküli szolgáltatásba, amelyeket egyszerre több funkció dolgoz fel](../../../../../translated_images/hu/iot-messages-to-serverless.0194da1cc0732bb7d0f823aed3fce54735c6b1ad3bf36089804d8aaefc0a774f.png) +![Események küldése egy IoT szolgáltatásból egy szerver nélküli szolgáltatásba, amelyeket egyszerre több funkció dolgoz fel](../../../../../translated_images/hu/iot-messages-to-serverless.0194da1cc0732bb7.webp) > 💁 Ha már használtál adatbázis-triggereket, gondolj erre úgy, mint egy hasonló dologra: kódot indít el egy esemény, például egy sor beszúrása. @@ -54,7 +54,7 @@ IoT fejlesztőként a szerver nélküli modell ideális. Írhatsz egy funkciót, A Microsoft szerver nélküli számítástechnikai szolgáltatása az Azure Functions. -![Az Azure Functions logója](../../../../../translated_images/hu/azure-functions-logo.1cfc8e3204c9c44aaf80fcf406fc8544d80d7f00f8d3e8ed6fed764563e17564.png) +![Az Azure Functions logója](../../../../../translated_images/hu/azure-functions-logo.1cfc8e3204c9c44a.webp) Az alábbi rövid videó áttekintést nyújt az Azure Functions-ről: diff --git a/translations/hu/2-farm/lessons/6-keep-your-plant-secure/README.md b/translations/hu/2-farm/lessons/6-keep-your-plant-secure/README.md index 347d8965b..0a894a709 100644 --- a/translations/hu/2-farm/lessons/6-keep-your-plant-secure/README.md +++ b/translations/hu/2-farm/lessons/6-keep-your-plant-secure/README.md @@ -1,6 +1,6 @@ # Tartsd biztonságban a növényedet -![A lecke vázlatos áttekintése](../../../../../translated_images/hu/lesson-10.829c86b80b9403bb770929ee553a1d293afe50dc23121aaf9be144673ae012cc.jpg) +![A lecke vázlatos áttekintése](../../../../../translated_images/hu/lesson-10.829c86b80b9403bb.webp) > Vázlatrajz: [Nitya Narasimhan](https://github.com/nitya). Kattints a képre a nagyobb verzióért. @@ -52,11 +52,11 @@ Ezek valós életbeli forgatókönyvek, és gyakran előfordulnak. Néhány pél Amikor egy eszköz csatlakozik egy IoT szolgáltatáshoz, egy azonosítót használ, hogy azonosítsa magát. A probléma az, hogy ez az azonosító klónozható - egy hacker beállíthat egy rosszindulatú eszközt, amely ugyanazt az azonosítót használja, mint egy valódi eszköz, de hamis adatokat küld. -![Mind a valódi, mind a rosszindulatú eszköz ugyanazt az azonosítót használhatja telemetria küldésére](../../../../../translated_images/hu/iot-device-and-hacked-device-connecting.e0671675df74d6d99eb1dedb5a670e606f698efa6202b1ad4c8ae548db299cc6.png) +![Mind a valódi, mind a rosszindulatú eszköz ugyanazt az azonosítót használhatja telemetria küldésére](../../../../../translated_images/hu/iot-device-and-hacked-device-connecting.e0671675df74d6d9.webp) A megoldás az, hogy az elküldött adatokat egy kódolt formátumba alakítjuk, egy olyan érték segítségével, amelyet csak az eszköz és a felhő ismer. Ezt a folyamatot *titkosításnak* nevezzük, és az adat titkosításához használt értéket *titkosítási kulcsnak* hívjuk. -![Ha titkosítást használunk, akkor csak a titkosított üzeneteket fogadják el, a többit elutasítják](../../../../../translated_images/hu/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f979e46f2849b573564eeb4a4dc5b52f669f62745397492fb.png) +![Ha titkosítást használunk, akkor csak a titkosított üzeneteket fogadják el, a többit elutasítják](../../../../../translated_images/hu/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f.webp) A felhőszolgáltatás ezután visszaalakítja az adatokat olvasható formátumba, egy *dekódolási kulcs* segítségével. Ha a titkosított üzenetet nem lehet dekódolni a kulccsal, az eszközt feltörték, és az üzenetet elutasítják. diff --git a/translations/hu/3-transport/lessons/1-location-tracking/README.md b/translations/hu/3-transport/lessons/1-location-tracking/README.md index 30d030e4d..553163e31 100644 --- a/translations/hu/3-transport/lessons/1-location-tracking/README.md +++ b/translations/hu/3-transport/lessons/1-location-tracking/README.md @@ -1,6 +1,6 @@ # Helymeghatározás -![A leckéről készült sketchnote áttekintése](../../../../../translated_images/hu/lesson-11.9fddbac4b664c6d50ab7ac9bb32f1fc3f945f03760e72f7f43938073762fb017.jpg) +![A leckéről készült sketchnote áttekintése](../../../../../translated_images/hu/lesson-11.9fddbac4b664c6d5.webp) > Sketchnote készítette: [Nitya Narasimhan](https://github.com/nitya). Kattints a képre a nagyobb verzióért. @@ -63,13 +63,13 @@ A Föld egy gömb – egy háromdimenziós kör. Emiatt a pontokat úgy határoz > 💁 Senki sem tudja pontosan, miért osztják a köröket 360 fokra. A [fok (szög) Wikipedia oldala](https://wikipedia.org/wiki/Degree_(angle)) néhány lehetséges okot ismertet. -![Szélességi vonalak: 90° az Északi-sarknál, 45° félúton az Északi-sark és az Egyenlítő között, 0° az Egyenlítőnél, -45° félúton az Egyenlítő és a Déli-sark között, és -90° a Déli-sarknál](../../../../../translated_images/hu/latitude-lines.11d8d91dfb2014a57437272d7db7fd6607243098e8685f06e0c5f1ec984cb7eb.png) +![Szélességi vonalak: 90° az Északi-sarknál, 45° félúton az Északi-sark és az Egyenlítő között, 0° az Egyenlítőnél, -45° félúton az Egyenlítő és a Déli-sark között, és -90° a Déli-sarknál](../../../../../translated_images/hu/latitude-lines.11d8d91dfb2014a5.webp) A szélességet az Egyenlítővel párhuzamosan futó vonalakkal mérik, amelyek az Északi és Déli féltekét 90°-ra osztják. Az Egyenlítő 0°-nál van, az Északi-sark 90°, más néven 90° Észak, a Déli-sark pedig -90°, vagy 90° Dél. A hosszúságot a kelet-nyugati irányú fokok számával mérik. A hosszúság 0°-os kiindulópontját *Prime Meridian*-nek nevezik, amelyet 1884-ben határoztak meg, hogy az Északi-sarktól a Déli-sarkig húzódó vonal legyen, amely áthalad a [Brit Királyi Obszervatóriumon Greenwichben, Angliában](https://wikipedia.org/wiki/Royal_Observatory,_Greenwich). -![Hosszúsági vonalak: -180° a Prime Meridian nyugati oldalán, 0° a Prime Meridianon, 180° a Prime Meridian keleti oldalán](../../../../../translated_images/hu/longitude-meridians.ab4ef1c91c064586b0185a3c8d39e585903696c6a7d28c098a93a629cddb5d20.png) +![Hosszúsági vonalak: -180° a Prime Meridian nyugati oldalán, 0° a Prime Meridianon, 180° a Prime Meridian keleti oldalán](../../../../../translated_images/hu/longitude-meridians.ab4ef1c91c064586.webp) > 🎓 A meridián egy képzeletbeli egyenes vonal, amely az Északi-sarktól a Déli-sarkig húzódik, félkört alkotva. @@ -100,7 +100,7 @@ Egy pont koordinátái mindig `szélesség, hosszúság` formában vannak megadv * Szélessége: 47.6423109 (47.6423109 fokkal északra az Egyenlítőtől) * Hosszúsága: -122.1390293 (122.1390293 fokkal nyugatra a Prime Meridian-tól). -![A Microsoft Campus a 47.6423109,-122.117198 koordinátán](../../../../../translated_images/hu/microsoft-gps-location-world.a321d481b010f6adfcca139b2ba0adc53b79f58a540495b8e2ce7f779ea64bfe.png) +![A Microsoft Campus a 47.6423109,-122.117198 koordinátán](../../../../../translated_images/hu/microsoft-gps-location-world.a321d481b010f6ad.webp) ## Globális Helymeghatározó Rendszerek (GPS) @@ -112,7 +112,7 @@ A GPS rendszerek úgy működnek, hogy több műhold jelet küld a műholdak akt > 💁 A GPS érzékelőknek antennára van szükségük a rádióhullámok érzékeléséhez. A teherautókba és autókba beépített GPS antennák úgy vannak elhelyezve, hogy jó jelet kapjanak, általában a szélvédőn vagy a tetőn. Ha külön GPS rendszert használsz, például okostelefont vagy IoT eszközt, akkor biztosítanod kell, hogy a GPS rendszerbe vagy telefonba beépített antenna tiszta rálátással rendelkezzen az égboltra, például a szélvédőn legyen elhelyezve. -![Az érzékelő és több műhold közötti távolság ismeretében a helyzet kiszámítható](../../../../../translated_images/hu/gps-satellites.04acf1148fe25fbf1586bc2e8ba698e8d79b79a50c36824b38417dd13372b90f.png) +![Az érzékelő és több műhold közötti távolság ismeretében a helyzet kiszámítható](../../../../../translated_images/hu/gps-satellites.04acf1148fe25fbf.webp) A GPS műholdak a Föld körül keringenek, nem rögzített ponton az érzékelő felett, így a helyadatok a tengerszint feletti magasságot is tartalmazzák a szélesség és hosszúság mellett. diff --git a/translations/hu/3-transport/lessons/1-location-tracking/pi-gps-sensor.md b/translations/hu/3-transport/lessons/1-location-tracking/pi-gps-sensor.md index 441ce9bb4..16181f8c3 100644 --- a/translations/hu/3-transport/lessons/1-location-tracking/pi-gps-sensor.md +++ b/translations/hu/3-transport/lessons/1-location-tracking/pi-gps-sensor.md @@ -18,13 +18,13 @@ A Grove GPS szenzort csatlakoztathatod a Raspberry Pi-hez. Csatlakoztasd a GPS szenzort. -![Egy Grove GPS szenzor](../../../../../translated_images/hu/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![Egy Grove GPS szenzor](../../../../../translated_images/hu/grove-gps-sensor.247943bf69b03f0d.webp) 1. Dugj be egy Grove kábelt a GPS szenzor aljzatába. Csak egy irányban illeszkedik. 1. Kapcsold ki a Raspberry Pi-t, majd csatlakoztasd a Grove kábel másik végét a Grove Base hat **UART** jelzésű aljzatába, amely a Pi-hez van csatlakoztatva. Ez az aljzat a középső sorban található, az SD kártya nyílás közelében, a másik oldalon, mint az USB portok és az ethernet aljzat. - ![A Grove GPS szenzor csatlakoztatva az UART aljzathoz](../../../../../translated_images/hu/pi-gps-sensor.1f99ee2b2f6528915047ec78967bd362e0e4ee0ed594368a3837b9cf9cdaca64.png) + ![A Grove GPS szenzor csatlakoztatva az UART aljzathoz](../../../../../translated_images/hu/pi-gps-sensor.1f99ee2b2f652891.webp) 1. Helyezd el a GPS szenzort úgy, hogy a csatlakoztatott antennája látható legyen az ég felé - ideális esetben egy nyitott ablak mellett vagy a szabadban. Az antenna akadálytalan elhelyezése segít tisztább jelet kapni. diff --git a/translations/hu/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md b/translations/hu/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md index 533a60b42..625095272 100644 --- a/translations/hu/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md +++ b/translations/hu/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md @@ -38,11 +38,11 @@ Adja hozzá a GPS-érzékelőt a CounterFit alkalmazáshoz. 1. Válassza ki az **Add** gombot, hogy létrehozza a GPS-érzékelőt a `/dev/ttyAMA0` porton. - ![A GPS-érzékelő beállításai](../../../../../translated_images/hu/counterfit-create-gps-sensor.6385dc9357d85ad1d47b4abb2525e7651fd498917d25eefc5a72feab09eedc70.png) + ![A GPS-érzékelő beállításai](../../../../../translated_images/hu/counterfit-create-gps-sensor.6385dc9357d85ad1.webp) A GPS-érzékelő létrejön, és megjelenik az érzékelők listájában. - ![A létrehozott GPS-érzékelő](../../../../../translated_images/hu/counterfit-gps-sensor.3fbb15af0a5367566f2f11324ef5a6f30861cdf2b497071a5e002b7aa473550e.png) + ![A létrehozott GPS-érzékelő](../../../../../translated_images/hu/counterfit-gps-sensor.3fbb15af0a536756.webp) ## A GPS-érzékelő programozása @@ -102,17 +102,17 @@ Programozza be a GPS-érzékelő alkalmazást. * Állítsa a **Source** mezőt `Lat/Lon` értékre, és adjon meg egy konkrét szélességi, hosszúsági fokot, valamint a GPS-jel rögzítéséhez használt műholdak számát. Ez az érték csak egyszer kerül elküldésre, ezért jelölje be a **Repeat** mezőt, hogy az adat minden másodpercben ismétlődjön. - ![A GPS-érzékelő lat/lon beállítással](../../../../../translated_images/hu/counterfit-gps-sensor-latlon.008c867d75464fbe7f84107cc57040df565ac07cb57d2f21db37d087d470197d.png) + ![A GPS-érzékelő lat/lon beállítással](../../../../../translated_images/hu/counterfit-gps-sensor-latlon.008c867d75464fbe.webp) * Állítsa a **Source** mezőt `NMEA` értékre, és adjon hozzá néhány NMEA mondatot a szövegdobozba. Ezek az értékek mind elküldésre kerülnek, 1 másodperces késleltetéssel minden új GGA (pozíció rögzítési) mondat előtt. - ![A GPS-érzékelő NMEA mondatokkal](../../../../../translated_images/hu/counterfit-gps-sensor-nmea.c62eea442171e17e19528b051b104cfcecdc9cd18db7bc72920f29821ae63f73.png) + ![A GPS-érzékelő NMEA mondatokkal](../../../../../translated_images/hu/counterfit-gps-sensor-nmea.c62eea442171e17e.webp) Használhat olyan eszközt, mint például a [nmeagen.org](https://www.nmeagen.org), hogy ezeket a mondatokat térképen rajzolva generálja. Ezek az értékek csak egyszer kerülnek elküldésre, ezért jelölje be a **Repeat** mezőt, hogy az adatok egy másodperccel az elküldésük után ismétlődjenek. * Állítsa a **Source** mezőt GPX fájlra, és töltsön fel egy GPX fájlt nyomvonal helyszínekkel. GPX fájlokat letölthet számos népszerű térképes és túrázós weboldalról, például az [AllTrails](https://www.alltrails.com/) oldalról. Ezek a fájlok több GPS-helyszínt tartalmaznak egy útvonal formájában, és a GPS-érzékelő minden új helyszínt 1 másodperces időközönként ad vissza. - ![A GPS-érzékelő GPX fájllal](../../../../../translated_images/hu/counterfit-gps-sensor-gpxfile.8310b063ce8a425ccc8ebeec8306aeac5e8e55207f007d52c6e1194432a70cd9.png) + ![A GPS-érzékelő GPX fájllal](../../../../../translated_images/hu/counterfit-gps-sensor-gpxfile.8310b063ce8a425c.webp) Ezek az értékek csak egyszer kerülnek elküldésre, ezért jelölje be a **Repeat** mezőt, hogy az adatok egy másodperccel az elküldésük után ismétlődjenek. diff --git a/translations/hu/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md b/translations/hu/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md index 7a0244de2..58e31f13c 100644 --- a/translations/hu/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md +++ b/translations/hu/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md @@ -18,7 +18,7 @@ A Grove GPS-érzékelő csatlakoztatható a Wio Terminalhoz. Csatlakoztassa a GPS-érzékelőt. -![Egy Grove GPS-érzékelő](../../../../../translated_images/hu/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![Egy Grove GPS-érzékelő](../../../../../translated_images/hu/grove-gps-sensor.247943bf69b03f0d.webp) 1. Helyezze be a Grove kábel egyik végét a GPS-érzékelő aljzatába. Csak egyféleképpen illeszkedik. diff --git a/translations/hu/3-transport/lessons/2-store-location-data/README.md b/translations/hu/3-transport/lessons/2-store-location-data/README.md index 07d64929f..ff523b228 100644 --- a/translations/hu/3-transport/lessons/2-store-location-data/README.md +++ b/translations/hu/3-transport/lessons/2-store-location-data/README.md @@ -1,6 +1,6 @@ # Tárolja a helyadatokat -![A leckéről készült vázlatrajz](../../../../../translated_images/hu/lesson-12.ca7f53039712a3ec14ad6474d8445361c84adab643edc53fa6269b77895606bb.jpg) +![A leckéről készült vázlatrajz](../../../../../translated_images/hu/lesson-12.ca7f53039712a3ec.webp) > Vázlatrajz: [Nitya Narasimhan](https://github.com/nitya). Kattintson a képre a nagyobb verzióért. @@ -75,7 +75,7 @@ A NoSQL adatbázisokat azért nevezik NoSQL-nek, mert nem rendelkeznek az SQL ad > 💁 A nevük ellenére néhány NoSQL adatbázis lehetővé teszi az SQL használatát az adatok lekérdezésére. -![Dokumentumok mappákban egy NoSQL adatbázisban](../../../../../translated_images/hu/noqsl-database.62d24ccf5b73f60d35c245a8533f1c7147c0928e955b82cb290b2e184bb434df.png) +![Dokumentumok mappákban egy NoSQL adatbázisban](../../../../../translated_images/hu/noqsl-database.62d24ccf5b73f60d.webp) A NoSQL adatbázisoknak nincs előre definiált sémája, amely korlátozná az adatok tárolását, ehelyett bármilyen strukturálatlan adatot beilleszthet, általában JSON dokumentumok formájában. Ezek a dokumentumok mappákba szervezhetők, hasonlóan a számítógépen lévő fájlokhoz. Minden dokumentum különböző mezőkkel rendelkezhet, mint más dokumentumok - például, ha a farmjárművekből származó IoT-adatokat tárolná, néhány dokumentum tartalmazhat gyorsulásmérő és sebességadatokat, mások pedig a pótkocsi hőmérsékletét. Ha új teherautótípust adna hozzá, például olyat, amely beépített mérlegekkel rendelkezik a szállított termékek súlyának nyomon követésére, akkor az IoT-eszköz hozzáadhatná ezt az új mezőt, és azt tárolhatná anélkül, hogy változtatásokat kellene végezni az adatbázison. @@ -89,7 +89,7 @@ Ebben a leckében NoSQL tárolást fog használni IoT-adatok tárolására. Az előző leckében GPS-adatokat rögzített egy IoT-eszközhöz csatlakoztatott GPS-érzékelőből. Ahhoz, hogy ezeket az IoT-adatokat a felhőben tárolhassa, el kell küldenie őket egy IoT-szolgáltatásba. Ismét az Azure IoT Hubot fogja használni, ugyanazt az IoT-felhőszolgáltatást, amelyet az előző projektben használt. -![GPS telemetria küldése egy IoT-eszközről az IoT Hubba](../../../../../translated_images/hu/gps-telemetry-iot-hub.8115335d51cd2c1285d20e9d1b18cf685e59a8e093e7797291ef173445af6f3d.png) +![GPS telemetria küldése egy IoT-eszközről az IoT Hubba](../../../../../translated_images/hu/gps-telemetry-iot-hub.8115335d51cd2c12.webp) ### Feladat - GPS-adatok küldése egy IoT Hubba @@ -183,7 +183,7 @@ A hideg útvonal adatok adatközpontokban kerülnek tárolásra - olyan adatbáz ## Azure Storage-fiókok -![Az Azure Storage logója](../../../../../translated_images/hu/azure-storage-logo.605c0f602c640d482a80f1b35a2629a32d595711b7ab1d7ceea843250615ff32.png) +![Az Azure Storage logója](../../../../../translated_images/hu/azure-storage-logo.605c0f602c640d48.webp) Az Azure Storage-fiókok egy általános célú tárolási szolgáltatás, amely különböző módokon képes adatokat tárolni. Tárolhatsz adatokat blobokként, sorokban, táblákban vagy fájlokként, akár egyszerre is. diff --git a/translations/hu/3-transport/lessons/3-visualize-location-data/README.md b/translations/hu/3-transport/lessons/3-visualize-location-data/README.md index 541c4eacd..8558a534a 100644 --- a/translations/hu/3-transport/lessons/3-visualize-location-data/README.md +++ b/translations/hu/3-transport/lessons/3-visualize-location-data/README.md @@ -1,6 +1,6 @@ # Helyadatok vizualizálása -![A leckéről készült sketchnote áttekintése](../../../../../translated_images/hu/lesson-13.a259db1485021be7d7c72e90842fbe0ab977529e8684c179b5fb1ea75e92b3ef.jpg) +![A leckéről készült sketchnote áttekintése](../../../../../translated_images/hu/lesson-13.a259db1485021be7.webp) > Sketchnote készítette: [Nitya Narasimhan](https://github.com/nitya). Kattints a képre a nagyobb verzióért. @@ -64,11 +64,11 @@ Egy egyszerű példát véve - a farm projektnél talajnedvesség adatokat gyűj Emberként ennek az adatnak a megértése nehéz lehet. Ez egy számokból álló fal, amelynek nincs jelentése. Az adatok vizualizálásának első lépéseként egy vonaldiagramon ábrázolhatjuk őket: -![A fenti adatok vonaldiagramja](../../../../../translated_images/hu/chart-soil-moisture.fd6d9d0cdc0b5f75e78038ecb8945dfc84b38851359de99d84b16e3336d6d7c2.png) +![A fenti adatok vonaldiagramja](../../../../../translated_images/hu/chart-soil-moisture.fd6d9d0cdc0b5f75.webp) Ez tovább javítható egy vonal hozzáadásával, amely jelzi, hogy az automatikus öntözőrendszer bekapcsolt, amikor a talajnedvesség értéke elérte a 450-et: -![Talajnedvesség vonaldiagramja egy 450-es vonallal](../../../../../translated_images/hu/chart-soil-moisture-relay.fbb391236d34a64d0abf1df396e9197e0a24df14150620b9cc820a64a55c9326.png) +![Talajnedvesség vonaldiagramja egy 450-es vonallal](../../../../../translated_images/hu/chart-soil-moisture-relay.fbb391236d34a64d.webp) Ez a diagram gyorsan megmutatja nemcsak a talajnedvesség szintjeit, hanem azokat a pontokat is, ahol az öntözőrendszer bekapcsolt. @@ -84,7 +84,7 @@ GPS adatokkal dolgozva a legérthetőbb vizualizáció az lehet, ha az adatokat A térképekkel való munka érdekes feladat, és sokféle térképszolgáltatás közül választhatsz, például Bing Maps, Leaflet, Open Street Maps és Google Maps. Ebben a leckében az [Azure Maps](https://azure.microsoft.com/services/azure-maps/?WT.mc_id=academic-17441-jabenn) szolgáltatást fogod megismerni, és megtanulod, hogyan jelenítheted meg GPS adataidat. -![Az Azure Maps logója](../../../../../translated_images/hu/azure-maps-logo.35d01dcfbd81fe6140e94257aaa1538f785a58c91576d14e0ebe7a2f6c694b99.png) +![Az Azure Maps logója](../../../../../translated_images/hu/azure-maps-logo.35d01dcfbd81fe61.webp) Az Azure Maps "egy gyűjteménye geospaciális szolgáltatásoknak és SDK-knak, amelyek friss térképadatokat használnak, hogy földrajzi kontextust biztosítsanak webes és mobilalkalmazások számára." A fejlesztők eszközöket kapnak gyönyörű, interaktív térképek létrehozásához, amelyek például ajánlott útvonalakat, forgalmi eseményekről szóló információkat, beltéri navigációt, keresési lehetőségeket, magassági adatokat, időjárási szolgáltatásokat és még sok mást kínálnak. @@ -185,7 +185,7 @@ Most megteheted a következő lépést, amely egy térkép megjelenítése egy w Ha megnyitod az `index.html` fájlt egy webböngészőben, egy térképet kell látnod, amely a Seattle környékére van fókuszálva. - ![Egy térkép, amely Seattle-t, egy várost Washington államban, USA-ban mutat](../../../../../translated_images/hu/map-image.8fb2c53eb23ef39c1c0a4410a5282e879b3b452b707eb066ff04c5488d3d72b7.png) + ![Egy térkép, amely Seattle-t, egy várost Washington államban, USA-ban mutat](../../../../../translated_images/hu/map-image.8fb2c53eb23ef39c.webp) ✅ Kísérletezz a zoom és középpont paraméterekkel, hogy megváltoztasd a térkép megjelenítését. Hozzáadhatsz különböző koordinátákat, amelyek megfelelnek az adataid szélességi és hosszúsági értékeinek, hogy újraközéppontozd a térképet. @@ -317,7 +317,7 @@ Ha hívást indítasz a tárhelyedre az adatok lekéréséhez, meglepődve tapas 1. Töltsd be a HTML oldalt a böngésződbe. A térkép betöltődik, majd a GPS-adatok a tárhelyről betöltődnek, és megjelennek a térképen. - ![A Saint Edward State Park térképe Seattle közelében, körökkel az útvonal mentén a park szélén](../../../../../translated_images/hu/map-path.896832e72dc696ffe20650e4051027d4855442d955f93fdbb80bb417ca8a406f.png) + ![A Saint Edward State Park térképe Seattle közelében, körökkel az útvonal mentén a park szélén](../../../../../translated_images/hu/map-path.896832e72dc696ff.webp) > 💁 Ezt a kódot megtalálod a [code](../../../../../3-transport/lessons/3-visualize-location-data/code) mappában. diff --git a/translations/hu/3-transport/lessons/4-geofences/README.md b/translations/hu/3-transport/lessons/4-geofences/README.md index 439a2411e..ec478d1b3 100644 --- a/translations/hu/3-transport/lessons/4-geofences/README.md +++ b/translations/hu/3-transport/lessons/4-geofences/README.md @@ -1,6 +1,6 @@ # Geokerítések -![A lecke vázlatos áttekintése](../../../../../translated_images/hu/lesson-14.63980c5150ae3c153e770fb71d044c1845dce79248d86bed9fc525adf3ede73c.jpg) +![A lecke vázlatos áttekintése](../../../../../translated_images/hu/lesson-14.63980c5150ae3c15.webp) > Vázlatrajz: [Nitya Narasimhan](https://github.com/nitya). Kattints a képre a nagyobb verzióért. @@ -35,7 +35,7 @@ Ebben a leckében a következőkről lesz szó: A geokerítés egy virtuális határ egy valós földrajzi régió körül. A geokerítések lehetnek körök, amelyeket egy pont és egy sugár határoz meg (például egy 100 méter széles kör egy épület körül), vagy poligonok, amelyek egy területet fednek le, például egy iskolaövezetet, városhatárt, egyetemi vagy irodai kampuszt. -![Néhány geokerítés példa, amely egy kör alakú geokerítést mutat a Microsoft vállalati boltja körül, és egy poligon geokerítést a Microsoft nyugati kampusza körül](../../../../../translated_images/hu/geofence-examples.172fbc534665769f6e1a1ddcf75e3b25183cd10354c80cc603ba44b635390e1a.png) +![Néhány geokerítés példa, amely egy kör alakú geokerítést mutat a Microsoft vállalati boltja körül, és egy poligon geokerítést a Microsoft nyugati kampusza körül](../../../../../translated_images/hu/geofence-examples.172fbc534665769f.webp) > 💁 Lehet, hogy már használtál geokerítéseket anélkül, hogy tudtál volna róla. Ha például az iOS emlékeztetők alkalmazásában vagy a Google Keepben helyalapú emlékeztetőt állítottál be, akkor geokerítést használtál. Ezek az alkalmazások a megadott hely alapján geokerítést állítanak fel, és értesítenek, amikor a telefonod belép a geokerítésbe. @@ -282,7 +282,7 @@ Ahogy az előző leckékből emlékezhet, az IoT Hub lehetővé teszi, hogy újr A válasz az, hogy nem tudja! Ehelyett több különálló kapcsolatot definiálhat az események olvasására, és mindegyik kezelheti az olvasatlan üzenetek újrajátszását. Ezeket *fogyasztói csoportoknak* nevezzük. Amikor csatlakozik az endpointhoz, megadhatja, melyik fogyasztói csoporthoz kíván csatlakozni. Az alkalmazás minden komponense más fogyasztói csoporthoz csatlakozik. -![Egy IoT Hub 3 fogyasztói csoporttal, amelyek ugyanazokat az üzeneteket osztják szét 3 különböző Functions alkalmazásnak](../../../../../translated_images/hu/consumer-groups.a3262e26fc27ba2092863678ad57af15c7223416e388a23f330c058cf4358630.png) +![Egy IoT Hub 3 fogyasztói csoporttal, amelyek ugyanazokat az üzeneteket osztják szét 3 különböző Functions alkalmazásnak](../../../../../translated_images/hu/consumer-groups.a3262e26fc27ba20.webp) Elméletileg akár 5 alkalmazás is csatlakozhat minden fogyasztói csoporthoz, és mindegyik üzeneteket kap, amikor azok megérkeznek. A legjobb gyakorlat az, hogy minden fogyasztói csoporthoz csak egy alkalmazás férjen hozzá, hogy elkerülje az üzenetek duplikált feldolgozását, és biztosítsa, hogy újraindításkor minden sorban álló üzenet helyesen legyen feldolgozva. Például, ha a Functions alkalmazását helyben indítja el, miközben a felhőben is fut, mindkettő feldolgozná az üzeneteket, ami duplikált blobokat eredményezne a tárhelyfiókban. diff --git a/translations/hu/4-manufacturing/lessons/1-train-fruit-detector/README.md b/translations/hu/4-manufacturing/lessons/1-train-fruit-detector/README.md index 06c83b247..28e277785 100644 --- a/translations/hu/4-manufacturing/lessons/1-train-fruit-detector/README.md +++ b/translations/hu/4-manufacturing/lessons/1-train-fruit-detector/README.md @@ -1,6 +1,6 @@ # Gyümölcsminőség-ellenőrző betanítása -![A lecke áttekintése sketchnote formájában](../../../../../translated_images/hu/lesson-15.843d21afdc6fb2bba70cd9db7b7d2f91598859fafda2078b0bdc44954194b6c0.jpg) +![A lecke áttekintése sketchnote formájában](../../../../../translated_images/hu/lesson-15.843d21afdc6fb2bb.webp) > Sketchnote készítette: [Nitya Narasimhan](https://github.com/nitya). Kattints a képre a nagyobb verzióért. @@ -38,7 +38,7 @@ Nem minden termény érik egyenletesen. Például a paradicsom esetében előfor Az automatizált betakarítás elterjedésével a termény válogatása a betakarítás helyett a gyárakba került. Az élelmiszerek hosszú szállítószalagokon haladtak, ahol emberek csoportjai válogatták ki a nem megfelelő minőségű terményeket. Bár a gépi betakarítás olcsóbbá tette a folyamatot, az élelmiszerek kézi válogatása továbbra is költséges volt. -![Ha egy piros paradicsomot észlelnek, az zavartalanul folytatja útját. Ha egy zöld paradicsomot észlelnek, egy kar vagy levegőfúvóka egy hulladéktartályba löki.](../../../../../translated_images/hu/optical-tomato-sorting.61aa134bdda4e5b1bfb16a212c1e35a6ef0c426cbb8b1c975f79d7bfbf48d068.png) +![Ha egy piros paradicsomot észlelnek, az zavartalanul folytatja útját. Ha egy zöld paradicsomot észlelnek, egy kar vagy levegőfúvóka egy hulladéktartályba löki.](../../../../../translated_images/hu/optical-tomato-sorting.61aa134bdda4e5b1.webp) A következő fejlődési lépés az volt, hogy gépeket használtak a válogatásra, akár a betakarítógépbe építve, akár a feldolgozóüzemekben. Az első generációs gépek optikai érzékelőket használtak a színek felismerésére, és karok vagy levegőfúvókák segítségével a zöld paradicsomokat egy hulladéktartályba lökték, míg a piros paradicsomok zavartalanul folytatták útjukat a szállítószalagokon. @@ -62,7 +62,7 @@ Például adhatsz egy modellnek milliónyi képet éretlen banánokról bemeneti > 🎓 Az ML modellek eredményeit *előrejelzéseknek* nevezzük. -![2 banán: egy érett, amelyre az előrejelzés 99,7% érett és 0,3% éretlen, és egy éretlen, amelyre az előrejelzés 1,4% érett és 98,6% éretlen.](../../../../../translated_images/hu/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50ece4e4589e724b142da0681f35470fe3db3f7d51240f69c85.png) +![2 banán: egy érett, amelyre az előrejelzés 99,7% érett és 0,3% éretlen, és egy éretlen, amelyre az előrejelzés 1,4% érett és 98,6% éretlen.](../../../../../translated_images/hu/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50e.webp) Az ML modellek nem adnak bináris választ, hanem valószínűségeket. Például egy modell kaphat egy képet egy banánról, és előrejelzést adhat `érett` 99,7%-kal és `éretlen` 0,3%-kal. A kódod ezután kiválasztja a legjobb előrejelzést, és eldönti, hogy a banán érett. @@ -90,7 +90,7 @@ Számos eszköz áll rendelkezésre, amelyek segítenek ebben, beleértve a felh A Custom Vision egy felhőalapú eszköz képosztályozók betanítására. Lehetővé teszi, hogy egy osztályozót kis számú képpel betaníts. A képeket egy webes portálon, webes API-n vagy SDK-n keresztül töltheted fel, és minden képhez egy *címkét* adhatsz, amely az adott kép osztályozását jelöli. Ezután betaníthatod a modellt, és tesztelheted, hogy mennyire jól teljesít. Ha elégedett vagy a modellel, közzéteheted annak verzióit, amelyeket webes API-n vagy SDK-n keresztül érhetsz el. -![Az Azure Custom Vision logója](../../../../../translated_images/hu/custom-vision-logo.d3d4e7c8a87ec9daf825e72e210576c3cbf60312577be7a139e22dd97ab7f1e6.png) +![Az Azure Custom Vision logója](../../../../../translated_images/hu/custom-vision-logo.d3d4e7c8a87ec9da.webp) > 💁 Egy Custom Vision modellt akár 5 kép osztályonkénti használatával is betaníthatsz, de a több jobb. Legalább 30 képpel jobb eredményeket érhetsz el. @@ -156,7 +156,7 @@ Az osztályozók nagyon alacsony felbontáson futnak. Például a Custom Vision * Használj 2 érett banánt, és készíts róluk néhány képet különböző szögekből, legalább 7 képet (5 a tanításhoz, 2 a teszteléshez), de ideális esetben többet. - ![Képek 2 különböző banánról](../../../../../translated_images/hu/banana-training-images.530eb203346d73bc23b8b990fb4609470bf4ff7c942ccc13d4cfffeed9be1ad4.png) + ![Képek 2 különböző banánról](../../../../../translated_images/hu/banana-training-images.530eb203346d73bc.webp) * Ismételd meg ugyanezt a folyamatot 2 éretlen banánnal. @@ -166,7 +166,7 @@ Az osztályozók nagyon alacsony felbontáson futnak. Például a Custom Vision 1. Kövesd a [képek feltöltése és címkézése szakaszt a Microsoft dokumentációjában az osztályozó gyorsindítójában](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), hogy feltöltsd a tanítóképeidet. Címkézd az érett gyümölcsöt `ripe`-ként, az éretlent pedig `unripe`-ként. - ![A feltöltési párbeszédablakok, amelyek érett és éretlen banánképek feltöltését mutatják](../../../../../translated_images/hu/image-upload-bananas.0751639f3815e0ec42bdbc6254d1e4357a185834d1ae10c9948a0e7d6d336695.png) + ![A feltöltési párbeszédablakok, amelyek érett és éretlen banánképek feltöltését mutatják](../../../../../translated_images/hu/image-upload-bananas.0751639f3815e0ec.webp) 1. Kövesd a [osztályozó betanítása szakaszt a Microsoft dokumentációjában az osztályozó gyorsindítójában](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#train-the-classifier), hogy betanítsd az osztályozót a feltöltött képekkel. @@ -184,7 +184,7 @@ Miután az osztályozó betanult, tesztelheted egy új képpel, hogy osztályozz 1. Kövesd a [modell tesztelése szakaszt a Microsoft dokumentációjában](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/test-your-model?WT.mc_id=academic-17441-jabenn#test-your-model), hogy teszteld az osztályozódat. Használd azokat a tesztképeket, amelyeket korábban készítettél, ne azokat, amelyeket a tanításhoz használtál. - ![Egy éretlen banán, amelyet 98,9%-os valószínűséggel éretlennek, és 1,1%-os valószínűséggel érettnek osztályozott](../../../../../translated_images/hu/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64886422438850ea14f0be6ac918c217ea3b255c685abfabe7.png) + ![Egy éretlen banán, amelyet 98,9%-os valószínűséggel éretlennek, és 1,1%-os valószínűséggel érettnek osztályozott](../../../../../translated_images/hu/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64.webp) 1. Próbáld ki az összes tesztképet, amelyhez hozzáférsz, és figyeld meg a valószínűségeket. diff --git a/translations/hu/4-manufacturing/lessons/2-check-fruit-from-device/README.md b/translations/hu/4-manufacturing/lessons/2-check-fruit-from-device/README.md index ae10a3c79..3ea3fdb99 100644 --- a/translations/hu/4-manufacturing/lessons/2-check-fruit-from-device/README.md +++ b/translations/hu/4-manufacturing/lessons/2-check-fruit-from-device/README.md @@ -1,6 +1,6 @@ # Ellenőrizd a gyümölcs minőségét egy IoT eszközzel -![Egy vázlatos áttekintés erről a leckéről](../../../../../translated_images/hu/lesson-16.215daf18b00631fbdfd64c6fc2dc6044dff5d544288825d8076f9fb83d964c23.jpg) +![Egy vázlatos áttekintés erről a leckéről](../../../../../translated_images/hu/lesson-16.215daf18b00631fb.webp) > Vázlat: [Nitya Narasimhan](https://github.com/nitya). Kattints a képre a nagyobb verzióért. @@ -26,7 +26,7 @@ Ebben a leckében a következőket tárgyaljuk: A kamerás szenzorok, ahogy a nevük is sugallja, olyan kamerák, amelyeket csatlakoztathatsz az IoT eszközödhöz. Ezek képesek állóképeket készíteni vagy folyamatos videót rögzíteni. Néhányuk nyers képadatokat ad vissza, míg mások tömörítik az adatokat egy képformátumba, például JPEG vagy PNG fájlba. Az IoT eszközökkel kompatibilis kamerák általában kisebbek és alacsonyabb felbontásúak, mint amit megszokhattál, de léteznek olyan nagy felbontású kamerák is, amelyek vetekednek a csúcskategóriás telefonokkal. Különféle cserélhető lencséket, többkamerás rendszereket, infravörös hőkamerákat vagy UV kamerákat is beszerezhetsz. -![A fény egy jelenetből áthalad egy lencsén, és a CMOS szenzorra fókuszálódik](../../../../../translated_images/hu/cmos-sensor.75f9cd74decb137149a4c9ea825251a4549497d67c0ae2776159e6102bb53aa9.png) +![A fény egy jelenetből áthalad egy lencsén, és a CMOS szenzorra fókuszálódik](../../../../../translated_images/hu/cmos-sensor.75f9cd74decb1371.webp) A legtöbb kamerás szenzor képszenzorokat használ, ahol minden pixel egy fotodióda. Egy lencse fókuszálja a képet a képszenzorra, és több ezer vagy millió fotodióda érzékeli a rájuk eső fényt, majd ezt pixeladatként rögzíti. @@ -74,7 +74,7 @@ Az iterációkat a Custom Vision portálon lehet publikálni. 1. Kattints az iteráció **Publikálás** gombjára. - ![A publikálás gomb](../../../../../translated_images/hu/custom-vision-publish-button.b7174e1977b0c33b8b72d4e5b1326c779e0af196f3849d09985ee2d7d5493a39.png) + ![A publikálás gomb](../../../../../translated_images/hu/custom-vision-publish-button.b7174e1977b0c33b.webp) 1. A *Modell publikálása* párbeszédablakban állítsd be a *Predikciós erőforrást* a `fruit-quality-detector-prediction` erőforrásra, amelyet az előző leckében hoztál létre. Hagyd meg a nevet `Iteration2`-ként, majd kattints a **Publikálás** gombra. @@ -88,7 +88,7 @@ Az iterációkat a Custom Vision portálon lehet publikálni. Másold ki a *Predikciós kulcs* értékét is. Ez egy biztonsági kulcs, amelyet meg kell adnod, amikor meghívod a modellt. Csak azok az alkalmazások használhatják a modellt, amelyek megadják ezt a kulcsot, minden más alkalmazás elutasításra kerül. - ![A predikciós API párbeszédablak, amely az URL-t és a kulcsot mutatja](../../../../../translated_images/hu/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![A predikciós API párbeszédablak, amely az URL-t és a kulcsot mutatja](../../../../../translated_images/hu/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ Amikor egy új iterációt publikálnak, annak más neve lesz. Hogyan gondolod, hogy lehetne megváltoztatni az iterációt, amelyet egy IoT eszköz használ? @@ -109,7 +109,7 @@ Előfordulhat, hogy az IoT eszközhöz csatlakoztatott kamerával készített k Ahhoz, hogy a képosztályozó a legjobb eredményeket nyújtsa, olyan képekkel kell tanítani a modellt, amelyek a lehető legjobban hasonlítanak a predikciókhoz használt képekre. Ha például a telefonod kamerájával készítettél képeket a tanításhoz, a képminőség, az élesség és a színek eltérhetnek az IoT eszközhöz csatlakoztatott kamera által készített képektől. -![2 banán képe, az egyik alacsony felbontású és rossz megvilágítású IoT eszközről, a másik magas felbontású és jó megvilágítású telefonról](../../../../../translated_images/hu/banana-picture-compare.174df164dc326a42cf7fb051a7497e6113c620e91552d92ca914220305d47d9a.png) +![2 banán képe, az egyik alacsony felbontású és rossz megvilágítású IoT eszközről, a másik magas felbontású és jó megvilágítású telefonról](../../../../../translated_images/hu/banana-picture-compare.174df164dc326a42.webp) A fenti képen a bal oldali banánképet egy Raspberry Pi kamerával készítették, a jobb oldalit pedig ugyanarról a banánról, ugyanazon a helyen egy iPhone-nal. Jól látható a minőségbeli különbség – az iPhone képe élesebb, élénkebb színekkel és nagyobb kontraszttal. diff --git a/translations/hu/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md b/translations/hu/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md index d8889e350..0c118304a 100644 --- a/translations/hu/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md +++ b/translations/hu/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md @@ -16,7 +16,7 @@ A kamerát egy szalagkábel segítségével lehet csatlakoztatni a Raspberry Pi- ### Feladat - a kamera csatlakoztatása -![Egy Raspberry Pi kamera](../../../../../translated_images/hu/pi-camera-module.4278753c31bd6e757aa2b858be97d72049f71616278cefe4fb5abb485b40a078.png) +![Egy Raspberry Pi kamera](../../../../../translated_images/hu/pi-camera-module.4278753c31bd6e75.webp) 1. Kapcsolja ki a Pi-t. @@ -24,17 +24,17 @@ A kamerát egy szalagkábel segítségével lehet csatlakoztatni a Raspberry Pi- Az animáció, amely bemutatja, hogyan kell kinyitni a klipet és behelyezni a kábelt, megtalálható a [Raspberry Pi Getting Started with the Camera module dokumentációban](https://projects.raspberrypi.org/en/projects/getting-started-with-picamera/2). - ![A szalagkábel behelyezve a kamera modulba](../../../../../translated_images/hu/pi-camera-ribbon-cable.0bf82acd251611c21ac616f082849413e2b322a261d0e4f8fec344248083b07e.png) + ![A szalagkábel behelyezve a kamera modulba](../../../../../translated_images/hu/pi-camera-ribbon-cable.0bf82acd251611c2.webp) 1. Távolítsa el a Grove Base Hat-et a Pi-ről. 1. Vezesse át a szalagkábelt a Grove Base Hat kamera nyílásán. Ügyeljen arra, hogy a kábel kék oldala az **A0**, **A1** stb. analóg portok felé nézzen. - ![A szalagkábel áthalad a Grove Base Hat-en](../../../../../translated_images/hu/grove-base-hat-ribbon-cable.501fed202fcf73b11b2b68f6d246189f7d15d3e4423c572ddee79d77b4632b47.png) + ![A szalagkábel áthalad a Grove Base Hat-en](../../../../../translated_images/hu/grove-base-hat-ribbon-cable.501fed202fcf73b1.webp) 1. Helyezze be a szalagkábelt a Pi kamera portjába. Ismét húzza fel a fekete műanyag klipet, helyezze be a kábelt, majd nyomja vissza a klipet. A kábel kék oldala az USB és ethernet portok felé nézzen. - ![A szalagkábel csatlakoztatva a Pi kamera foglalatához](../../../../../translated_images/hu/pi-camera-socket-ribbon-cable.a18309920b11800911082ed7aa6fb28e6d9be3a022e4079ff990016cae3fca10.png) + ![A szalagkábel csatlakoztatva a Pi kamera foglalatához](../../../../../translated_images/hu/pi-camera-socket-ribbon-cable.a18309920b118009.webp) 1. Szerelje vissza a Grove Base Hat-et. @@ -101,7 +101,7 @@ Programozza az eszközt. A `camera.rotation = 0` sor beállítja a kép forgatását. A szalagkábel a kamera aljába csatlakozik, de ha a kamerát elforgatta, hogy könnyebben ráirányítsa a kívánt tárgyra, akkor ezt a sort a forgatás szögének megfelelően módosíthatja. - ![A kamera lefelé lóg egy üdítős doboz fölött](../../../../../translated_images/hu/pi-camera-upside-down.5376961ba31459883362124152ad6b823d5ac5fc14e85f317e22903bd681c2b6.png) + ![A kamera lefelé lóg egy üdítős doboz fölött](../../../../../translated_images/hu/pi-camera-upside-down.5376961ba3145988.webp) Például, ha a szalagkábelt úgy helyezi el, hogy a kamera tetején legyen, állítsa a forgatást 180 fokra: diff --git a/translations/hu/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md b/translations/hu/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md index ff6bf1821..f5a9c91eb 100644 --- a/translations/hu/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md +++ b/translations/hu/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md @@ -84,7 +84,7 @@ A Custom Vision szolgáltatás rendelkezik egy Python SDK-val, amelyet képek os Látni fogod a készített képet, és ezeket az értékeket a **Predictions** fülön a Custom Vision-ben. - ![Egy banán a Custom Vision-ben, érettként 56,8%-ra, éretlenként 43,1%-ra becsülve](../../../../../translated_images/hu/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![Egy banán a Custom Vision-ben, érettként 56,8%-ra, éretlenként 43,1%-ra becsülve](../../../../../translated_images/hu/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 Ezt a kódot megtalálod a [code-classify/pi](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/pi) vagy [code-classify/virtual-iot-device](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/virtual-iot-device) mappában. diff --git a/translations/hu/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md b/translations/hu/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md index 80cc562e6..339b882bd 100644 --- a/translations/hu/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md +++ b/translations/hu/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md @@ -34,11 +34,11 @@ Adja hozzá a kamerát a CounterFit alkalmazáshoz. 1. Válassza ki az **Add** gombot a kamera létrehozásához. - ![A kamera beállításai](../../../../../translated_images/hu/counterfit-create-camera.a5de97f59c0bd3cbe0416d7e89a3cfe86d19fbae05c641c53a91286412af0a34.png) + ![A kamera beállításai](../../../../../translated_images/hu/counterfit-create-camera.a5de97f59c0bd3cb.webp) A kamera létrejön, és megjelenik az érzékelők listájában. - ![A létrehozott kamera](../../../../../translated_images/hu/counterfit-camera.001ec52194c8ee5d3f617173da2c79e1df903d10882adc625cbfc493525125d4.png) + ![A létrehozott kamera](../../../../../translated_images/hu/counterfit-camera.001ec52194c8ee5d.webp) ## Kamera programozása @@ -103,7 +103,7 @@ Programozza az eszközt. 1. Állítsa be a képet, amelyet a CounterFit kamerája rögzíteni fog. Beállíthatja a *Source*-t *File*-ra, majd feltölthet egy képfájlt, vagy beállíthatja a *Source*-t *WebCam*-ra, és a képek a webkameráról lesznek rögzítve. Győződjön meg róla, hogy a **Set** gombot kiválasztja, miután kiválasztott egy képet vagy a webkamerát. - ![CounterFit fájllal beállítva képforrásként, és webkamerával, amely egy banánt tartó személyt mutat a webkamera előnézetében](../../../../../translated_images/hu/counterfit-camera-options.eb3bd5150a8e7dffbf24bc5bcaba0cf2cdef95fbe6bbe393695d173817d6b8df.png) + ![CounterFit fájllal beállítva képforrásként, és webkamerával, amely egy banánt tartó személyt mutat a webkamera előnézetében](../../../../../translated_images/hu/counterfit-camera-options.eb3bd5150a8e7dff.webp) 1. Egy kép rögzítésre kerül, és `image.jpg` néven mentésre kerül az aktuális mappába. Ezt a fájlt látni fogja a VS Code felfedezőjében. Válassza ki a fájlt a kép megtekintéséhez. Ha forgatásra van szükség, frissítse a `camera.rotation = 0` sort szükség szerint, és készítsen egy újabb képet. diff --git a/translations/hu/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md b/translations/hu/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md index de0e946cf..5322ed628 100644 --- a/translations/hu/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md +++ b/translations/hu/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md @@ -16,7 +16,7 @@ Az ArduCam nem rendelkezik Grove csatlakozóval, helyette az SPI és I2C buszokh Csatlakoztasd a kamerát. -![Egy ArduCam érzékelő](../../../../../translated_images/hu/arducam.20e4e4cbb268296570b5914e20d6c349fc42ddac9ed4e1b9deba2188204eebae.png) +![Egy ArduCam érzékelő](../../../../../translated_images/hu/arducam.20e4e4cbb2682965.webp) 1. Az ArduCam alján található tüskéket a Wio Terminal GPIO tüskéihez kell csatlakoztatni. Hogy könnyebben megtaláld a megfelelő tüskéket, helyezd fel a Wio Terminalhoz mellékelt GPIO tüske matricát a tüskék köré: @@ -35,7 +35,7 @@ Csatlakoztasd a kamerát. | SDA | 3 (I2C1_SDA) | I2C Soros adat | | SCL | 5 (I2C1_SCL) | I2C Soros órajel | - ![A Wio Terminal jumper kábelekkel csatlakoztatva az ArduCamhoz](../../../../../translated_images/hu/arducam-wio-terminal-connections.a4d5a4049bdb5ab800a2877389fc6ecf5e4ff307e6451ff56c517e6786467d0a.png) + ![A Wio Terminal jumper kábelekkel csatlakoztatva az ArduCamhoz](../../../../../translated_images/hu/arducam-wio-terminal-connections.a4d5a4049bdb5ab8.webp) A GND és VCC csatlakozások 5V tápfeszültséget biztosítanak az ArduCam számára. Ez 5V-on működik, ellentétben a Grove érzékelőkkel, amelyek 3V-on működnek. Ez az energia közvetlenül az USB-C csatlakozóról érkezik, amely a készüléket táplálja. @@ -456,7 +456,7 @@ A Wio Terminal csak legfeljebb 16GB méretű microSD kártyákat támogat. Ha na 1. Kapcsold ki a microSD kártyát, és távolítsd el úgy, hogy kissé benyomod, majd elengeded, és ki fog ugrani. Ehhez lehet, hogy egy vékony eszközt kell használnod. Csatlakoztasd a microSD kártyát a számítógépedhez, hogy megnézd a képeket. - ![Egy banánról készült kép az ArduCam segítségével](../../../../../translated_images/hu/banana-arducam.be1b32d4267a8194b0fd042362e56faa431da9cd4af172051b37243ea9be0256.jpg) + ![Egy banánról készült kép az ArduCam segítségével](../../../../../translated_images/hu/banana-arducam.be1b32d4267a8194.webp) 💁 Előfordulhat, hogy néhány kép szükséges ahhoz, hogy a kamera fehéregyensúlya beálljon. Ezt az elkészített képek színe alapján fogja észrevenni, az első néhány kép színe eltérő lehet. Ezt mindig megkerülheti úgy, hogy módosítja a kódot, hogy a `setup` függvényben néhány képet készítsen, amelyeket figyelmen kívül hagy. diff --git a/translations/hu/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md b/translations/hu/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md index abd1b66d6..98b93e325 100644 --- a/translations/hu/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md +++ b/translations/hu/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md @@ -208,7 +208,7 @@ Ezek a tanúsítványok nyilvános kulcsokat tartalmaznak, és nem szükséges Látni fogod a készített képet, és ezeket az értékeket a Custom Vision **Predictions** fülén. - ![Egy banán a Custom Vision-ben, érettként 56.8%-os, éretlenként 43.1%-os előrejelzéssel](../../../../../translated_images/hu/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![Egy banán a Custom Vision-ben, érettként 56.8%-os, éretlenként 43.1%-os előrejelzéssel](../../../../../translated_images/hu/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 Ezt a kódot megtalálhatod a [code-classify/wio-terminal](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/wio-terminal) mappában. diff --git a/translations/hu/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md b/translations/hu/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md index 406660e81..45af42939 100644 --- a/translations/hu/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md +++ b/translations/hu/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md @@ -1,6 +1,6 @@ # Futtasd a gyümölcsdetektorodat az edge-en -![Egy vázlatos áttekintés erről a leckéről](../../../../../translated_images/hu/lesson-17.bc333c3c35ba8e42cce666cfffa82b915f787f455bd94e006aea2b6f2722421a.jpg) +![Egy vázlatos áttekintés erről a leckéről](../../../../../translated_images/hu/lesson-17.bc333c3c35ba8e42.webp) > Vázlat: [Nitya Narasimhan](https://github.com/nitya). Kattints a képre a nagyobb verzióért. @@ -33,11 +33,11 @@ Ebben a leckében a következőket tárgyaljuk: Az edge computing azt jelenti, hogy az IoT-adatokat feldolgozó számítógépek a lehető legközelebb helyezkednek el az adatok keletkezési helyéhez. Ahelyett, hogy ez a feldolgozás a felhőben történne, az a felhő szélére kerül – azaz a belső hálózatodra. -![Egy architektúra diagram, amely a felhőben lévő internetes szolgáltatásokat és a helyi hálózaton lévő IoT-eszközöket mutatja](../../../../../translated_images/hu/cloud-without-edge.b4da641f6022c95ed6b91fde8b5323abd2f94e0d52073ad54172ae8f5dac90e9.png) +![Egy architektúra diagram, amely a felhőben lévő internetes szolgáltatásokat és a helyi hálózaton lévő IoT-eszközöket mutatja](../../../../../translated_images/hu/cloud-without-edge.b4da641f6022c95e.webp) Az eddigi leckékben az eszközök adatokat gyűjtöttek és küldtek a felhőbe elemzésre, ahol szerver nélküli funkciók vagy AI modellek futottak. -![Egy architektúra diagram, amely a helyi hálózaton lévő IoT-eszközöket mutatja, amelyek edge-eszközökhöz csatlakoznak, és ezek az edge-eszközök a felhőhöz kapcsolódnak](../../../../../translated_images/hu/cloud-with-edge.1e26462c62c126fe150bd15a5714ddf0be599f09bacbad08b85be02b76ea1ae1.png) +![Egy architektúra diagram, amely a helyi hálózaton lévő IoT-eszközöket mutatja, amelyek edge-eszközökhöz csatlakoznak, és ezek az edge-eszközök a felhőhöz kapcsolódnak](../../../../../translated_images/hu/cloud-with-edge.1e26462c62c126fe.webp) Az edge computing során a felhőszolgáltatások egy részét áthelyezik a felhőről az IoT-eszközökkel azonos hálózaton futó számítógépekre, és csak akkor kommunikálnak a felhővel, ha szükséges. Például AI modelleket futtathatsz edge-eszközökön, hogy elemezd a gyümölcsök érettségét, és csak az elemzéseket küldheted vissza a felhőbe, például az érett és éretlen gyümölcsök számát. @@ -85,7 +85,7 @@ Az IoT-rendszerek esetében gyakran a felhő és az edge computing keverékére ## Azure IoT Edge -![Az Azure IoT Edge logója](../../../../../translated_images/hu/azure-iot-edge-logo.c1c076749b5cba2e8755262fadc2f19ca1146b948d76990b1229199ac2292d79.png) +![Az Azure IoT Edge logója](../../../../../translated_images/hu/azure-iot-edge-logo.c1c076749b5cba2e.webp) Az Azure IoT Edge egy olyan szolgáltatás, amely segíthet a munkaterheléseket a felhőből az edge-re helyezni. Egy eszközt edge-eszközként állítasz be, és a felhőből kódot telepíthetsz erre az edge-eszközre. Ez lehetővé teszi a felhő és az edge képességeinek keverését. @@ -99,7 +99,7 @@ Az IoT Edge be van építve az IoT Hubba, így az edge-eszközöket ugyanazzal a Az IoT Edge kódot futtat *konténerekből* – önálló alkalmazásokból, amelyek elkülönítve futnak a számítógéped többi alkalmazásától. Amikor egy konténert futtatsz, az olyan, mintha egy külön számítógép futna a számítógépeden belül, saját szoftverrel, szolgáltatásokkal és alkalmazásokkal. A legtöbb esetben a konténerek nem férnek hozzá semmihez a számítógépeden, hacsak nem osztasz meg velük például egy mappát. A konténer ezután nyitott porton keresztül nyújt szolgáltatásokat, amelyekhez csatlakozhatsz, vagy amelyeket megoszthatsz a hálózatoddal. -![Egy webkérés átirányítása egy konténerbe](../../../../../translated_images/hu/container-web-browser.4ee81dd4f0d8838ce622b2a0d600b6a4322b5d4fe43159facd87b7b34f84d66a.png) +![Egy webkérés átirányítása egy konténerbe](../../../../../translated_images/hu/container-web-browser.4ee81dd4f0d8838c.webp) Például lehet egy konténered, amely egy weboldalt futtat a 80-as porton, az alapértelmezett HTTP-porton, és ezt a számítógépedről is elérhetővé teheted a 80-as porton. @@ -185,11 +185,11 @@ Miután a modell betanításra került, konténerként kell exportálni. ## Készítsd elő a konténert a telepítéshez -![A konténerek először létrehozásra kerülnek, majd feltöltésre egy konténer regisztrációs helyre, ahonnan az IoT Edge telepíti őket az edge eszközre](../../../../../translated_images/hu/container-edge-flow.c246050dd60ceefdb6ace026a4ce5c6aa4112bb5898ae23fbb2ab4be29ae3e1b.png) +![A konténerek először létrehozásra kerülnek, majd feltöltésre egy konténer regisztrációs helyre, ahonnan az IoT Edge telepíti őket az edge eszközre](../../../../../translated_images/hu/container-edge-flow.c246050dd60ceefd.webp) Miután letöltötted a modelledet, konténerként kell felépíteni, majd feltölteni egy konténer regisztrációs helyre - egy online helyre, ahol tárolhatod a konténereket. Az IoT Edge ezután letölti a konténert a regisztrációs helyről, és telepíti az eszközödre. -![Az Azure Container Registry logója](../../../../../translated_images/hu/azure-container-registry-logo.09494206991d4b295025ebff7d4e2900325e527a59184ffbc8464b6ab59654be.png) +![Az Azure Container Registry logója](../../../../../translated_images/hu/azure-container-registry-logo.09494206991d4b29.webp) A konténer regisztrációs hely, amelyet ebben a leckében használni fogsz, az Azure Container Registry. Ez nem ingyenes szolgáltatás, ezért pénzt takaríthatsz meg, ha [kitakarítod a projektedet](../../../clean-up.md), miután befejezted. diff --git a/translations/hu/4-manufacturing/lessons/4-trigger-fruit-detector/README.md b/translations/hu/4-manufacturing/lessons/4-trigger-fruit-detector/README.md index b7b2bf8c2..98d5294f1 100644 --- a/translations/hu/4-manufacturing/lessons/4-trigger-fruit-detector/README.md +++ b/translations/hu/4-manufacturing/lessons/4-trigger-fruit-detector/README.md @@ -1,6 +1,6 @@ # Gyümölcsminőség-ellenőrzés indítása egy érzékelő segítségével -![A leckéről készült vázlatos áttekintés](../../../../../translated_images/hu/lesson-18.92c32ed1d354caa5a54baa4032cf0b172d4655e8e326ad5d46c558a0def15365.jpg) +![A leckéről készült vázlatos áttekintés](../../../../../translated_images/hu/lesson-18.92c32ed1d354caa5.webp) > Vázlat készítette: [Nitya Narasimhan](https://github.com/nitya). Kattints a képre a nagyobb verzióért. @@ -39,7 +39,7 @@ Az IoT-alkalmazások leírhatók úgy, mint *eszközök* (dolgok), amelyek adato ### Referencia IoT-architektúra -![Egy referencia IoT-architektúra](../../../../../translated_images/hu/iot-reference-architecture.2278b98b55c6d4e89bde18eada3688d893861d43507641804dd2f9d3079cfaa0.png) +![Egy referencia IoT-architektúra](../../../../../translated_images/hu/iot-reference-architecture.2278b98b55c6d4e8.webp) A fenti diagram egy referencia IoT-architektúrát mutat. @@ -49,7 +49,7 @@ A fenti diagram egy referencia IoT-architektúrát mutat. * **Információk**: Szerver nélküli alkalmazásokból vagy tárolt adatok elemzéséből származnak. * **Cselekvések**: Parancsok küldése eszközöknek, vagy adatok vizualizálása, amely lehetővé teszi az emberek számára a döntéshozatalt. -![Egy referencia IoT-architektúra](../../../../../translated_images/hu/iot-reference-architecture-azure.0b8d2161af924cb18ae48a8558a19541cca47f27264851b5b7e56d7b8bb372ac.png) +![Egy referencia IoT-architektúra](../../../../../translated_images/hu/iot-reference-architecture-azure.0b8d2161af924cb1.webp) A fenti diagram az eddig tárgyalt komponenseket és szolgáltatásokat mutatja, valamint azt, hogyan kapcsolódnak össze egy referencia IoT-architektúrában. @@ -89,7 +89,7 @@ Olyan rendszert kell építened, amely érzékeli a gyümölcs érkezését a sz ### Az alkalmazás prototípusának elkészítése -![Egy referencia IoT-architektúra a gyümölcsminőség-ellenőrzéshez](../../../../../translated_images/hu/iot-reference-architecture-fruit-quality.cc705f121c3b6fa71c800d9630935ac34bc08223a04601e35f41d5e9b5dd5207.png) +![Egy referencia IoT-architektúra a gyümölcsminőség-ellenőrzéshez](../../../../../translated_images/hu/iot-reference-architecture-fruit-quality.cc705f121c3b6fa7.webp) A fenti diagram egy referencia architektúrát mutat be ehhez a prototípus alkalmazáshoz. @@ -124,7 +124,7 @@ Dolgozd végig a megfelelő útmutatót, hogy közelségérzékelőt használj t A prototípus gyümölcsérzékelő több komponensből áll, amelyek egymással kommunikálnak. -![A komponensek kommunikációja egymással](../../../../../translated_images/hu/fruit-quality-detector-message-flow.adf2a65da8fd8741ac7af11361574de89adc126785d67606bb4d2ec00467e380.png) +![A komponensek kommunikációja egymással](../../../../../translated_images/hu/fruit-quality-detector-message-flow.adf2a65da8fd8741.webp) * Egy közelségérzékelő, amely méri a gyümölcs távolságát, és elküldi ezt az IoT Hubnak * A kamera vezérlésére szolgáló parancs az IoT Hubból érkezik a kamera eszközéhez diff --git a/translations/hu/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md b/translations/hu/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md index 7d27b3f05..101aabef8 100644 --- a/translations/hu/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md +++ b/translations/hu/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md @@ -20,7 +20,7 @@ A Grove Time of Flight érzékelő csatlakoztatható a Raspberry Pi-hez. Csatlakoztasd a Time of Flight érzékelőt. -![Egy Grove Time of Flight érzékelő](../../../../../translated_images/hu/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![Egy Grove Time of Flight érzékelő](../../../../../translated_images/hu/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. Helyezd be a Grove kábel egyik végét a Time of Flight érzékelő aljzatába. Csak egyféleképpen illeszkedik. diff --git a/translations/hu/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md b/translations/hu/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md index 2d2b6f4fd..51cfe2b01 100644 --- a/translations/hu/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md +++ b/translations/hu/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md @@ -36,11 +36,11 @@ Adja hozzá a távolságérzékelőt a CounterFit alkalmazáshoz. 1. Válassza ki az **Add** gombot a távolságérzékelő létrehozásához. - ![A távolságérzékelő beállításai](../../../../../translated_images/hu/counterfit-create-distance-sensor.967c9fb98f27888d95920c9784d004c972490eb71f70397fe13bd70a79a879a3.png) + ![A távolságérzékelő beállításai](../../../../../translated_images/hu/counterfit-create-distance-sensor.967c9fb98f27888d.webp) A távolságérzékelő létrejön, és megjelenik az érzékelők listájában. - ![A létrehozott távolságérzékelő](../../../../../translated_images/hu/counterfit-distance-sensor.079eefeeea0b68afc36431ce8fcbe2f09a7e4916ed1cd5cb30e696db53bc18fa.png) + ![A létrehozott távolságérzékelő](../../../../../translated_images/hu/counterfit-distance-sensor.079eefeeea0b68af.webp) ## Távolságérzékelő programozása diff --git a/translations/hu/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md b/translations/hu/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md index 576c2f095..084347578 100644 --- a/translations/hu/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md +++ b/translations/hu/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md @@ -20,7 +20,7 @@ A Grove Time of Flight érzékelő csatlakoztatható a Wio Terminalhoz. Csatlakoztasd a Time of Flight érzékelőt. -![Egy Grove Time of Flight érzékelő](../../../../../translated_images/hu/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![Egy Grove Time of Flight érzékelő](../../../../../translated_images/hu/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. Dugj be egy Grove kábelt az érzékelő csatlakozójába. A kábel csak egy irányban illeszkedik. diff --git a/translations/hu/5-retail/lessons/1-train-stock-detector/README.md b/translations/hu/5-retail/lessons/1-train-stock-detector/README.md index ac8efa3cf..ff00e840c 100644 --- a/translations/hu/5-retail/lessons/1-train-stock-detector/README.md +++ b/translations/hu/5-retail/lessons/1-train-stock-detector/README.md @@ -1,6 +1,6 @@ # Készíts egy készletérzékelőt -![A lecke vázlatos áttekintése](../../../../../translated_images/hu/lesson-19.cf6973cecadf080c4b526310620dc4d6f5994c80fb0139c6f378cc9ca2d435cd.jpg) +![A lecke vázlatos áttekintése](../../../../../translated_images/hu/lesson-19.cf6973cecadf080c.webp) > Vázlatrajz: [Nitya Narasimhan](https://github.com/nitya). Kattints a képre a nagyobb verzióért. @@ -36,7 +36,7 @@ Az objektumfelismerés mesterséges intelligencia segítségével érzékeli az A képosztályozás az egész kép osztályozásáról szól - milyen valószínűséggel felel meg az egész kép az egyes címkéknek. Az eredmény egy valószínűségi lista minden címkére, amelyet a modell betanításához használtak. -![Képosztályozás kesudióval és paradicsompürével](../../../../../translated_images/hu/image-classifier-cashews-tomato.bc2e16ab8f05cf9ac0f59f73e32efc4227f9a5b601b90b2c60f436694547a965.png) +![Képosztályozás kesudióval és paradicsompürével](../../../../../translated_images/hu/image-classifier-cashews-tomato.bc2e16ab8f05cf9a.webp) A fenti példában két képet osztályoznak egy olyan modellel, amelyet kesudiótartók és paradicsompüré konzervdobozok osztályozására tanítottak be. Az első kép egy kesudiótartó, és az osztályozó két eredményt ad: @@ -60,7 +60,7 @@ Amikor ezután előrejelzéseket készítesz képekkel, nem egy címkékből és > 🎓 *Határoló dobozok* azok a dobozok, amelyek az objektum körül helyezkednek el. -![Objektumfelismerés kesudióval és paradicsompürével](../../../../../translated_images/hu/object-detector-cashews-tomato.1af7c26686b4db0e709754aeb196f4e73271f54e2085db3bcccb70d4a0d84d97.png) +![Objektumfelismerés kesudióval és paradicsompürével](../../../../../translated_images/hu/object-detector-cashews-tomato.1af7c26686b4db0e.webp) A fenti képen van egy kesudiótartó és három paradicsompüré konzervdoboz. Az objektumérzékelő felismerte a kesudiót, és visszaadta a határoló dobozt, amely tartalmazza a kesudiót, valamint a százalékos valószínűséget, hogy a határoló doboz tartalmazza az objektumot, ebben az esetben 97.6%. Az objektumérzékelő három paradicsompüré konzervdobozt is érzékelt, és három különálló határoló dobozt biztosít, egyet-egyet az érzékelt dobozokhoz, mindegyikhez százalékos valószínűséggel, hogy a határoló doboz paradicsompüré konzervdobozt tartalmaz. @@ -111,7 +111,7 @@ Az objektumérzékelőt a Custom Vision segítségével lehet betanítani, hason Amikor létrehozod a projektet, győződj meg róla, hogy a korábban létrehozott `stock-detector-training` erőforrást használod. Használd az *Object Detection* projekt típust, és a *Products on Shelves* domaint. - ![A Custom Vision projekt beállításai a névvel, leírás nélkül, az erőforrással, a projekt típussal és a domainnel](../../../../../translated_images/hu/custom-vision-create-object-detector-project.32d4fb9aa8e7e7375f8a799bfce517aca970f2cb65e42d4245c5e635c734ab29.png) + ![A Custom Vision projekt beállításai a névvel, leírás nélkül, az erőforrással, a projekt típussal és a domainnel](../../../../../translated_images/hu/custom-vision-create-object-detector-project.32d4fb9aa8e7e737.webp) ✅ A polcokon lévő termékek domainje kifejezetten a bolti polcokon lévő készletek érzékelésére van optimalizálva. Olvass többet a különböző domainekről a [Microsoft Docs Select a domain dokumentációjában](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/select-domain?WT.mc_id=academic-17441-jabenn#object-detection). @@ -133,11 +133,11 @@ Ahhoz, hogy betanítsd a modelledet, szükséged lesz egy képkészletre, amely 1. Kövesd a [Képek feltöltése és címkézése szakaszt a Microsoft dokumentációjában található Objektumérzékelő gyorsindításban](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/get-started-build-detector?WT.mc_id=academic-17441-jabenn#upload-and-tag-images), hogy feltöltsd a tréningképeidet. Hozz létre releváns címkéket az érzékelni kívánt objektumtípusok alapján. - ![A feltöltési párbeszédablakok érett és éretlen banán képeinek feltöltésével](../../../../../translated_images/hu/image-upload-object-detector.77c7892c3093cb59b79018edecd678749a75d71a099bc8a2d2f2f76320f88a5b.png) + ![A feltöltési párbeszédablakok érett és éretlen banán képeinek feltöltésével](../../../../../translated_images/hu/image-upload-object-detector.77c7892c3093cb59.webp) Amikor határoló dobozokat rajzolsz az objektumokhoz, tartsd őket szorosan az objektum körül. Időbe telhet az összes kép körvonalazása, de az eszköz érzékeli, hogy szerinte hol vannak a határoló dobozok, ami gyorsabbá teszi a folyamatot. - ![Paradicsompüré címkézése](../../../../../translated_images/hu/object-detector-tag-tomato-paste.f47c362fb0f0eb582f3bc68cf3855fb43a805106395358d41896a269c210b7b4.png) + ![Paradicsompüré címkézése](../../../../../translated_images/hu/object-detector-tag-tomato-paste.f47c362fb0f0eb58.webp) > 💁 Ha több mint 15 képed van minden objektumhoz, akkor 15 után betaníthatod, majd használhatod a **Suggested tags** funkciót. Ez a betanított modellt használja az objektumok érzékelésére a címkézetlen képen. Ezután megerősítheted az érzékelt objektumokat, vagy elutasíthatod és újrarajzolhatod a határoló dobozokat. Ez rengeteg időt takaríthat meg. diff --git a/translations/hu/5-retail/lessons/2-check-stock-device/README.md b/translations/hu/5-retail/lessons/2-check-stock-device/README.md index 47666b751..8cdc1b858 100644 --- a/translations/hu/5-retail/lessons/2-check-stock-device/README.md +++ b/translations/hu/5-retail/lessons/2-check-stock-device/README.md @@ -1,6 +1,6 @@ # Készletellenőrzés egy IoT eszközzel -![Egy vázlatos ábra a leckéről](../../../../../translated_images/hu/lesson-20.0211df9551a8abb300fc8fcf7dc2789468dea2eabe9202273ac077b0ba37f15e.jpg) +![Egy vázlatos ábra a leckéről](../../../../../translated_images/hu/lesson-20.0211df9551a8abb3.webp) > Vázlat: [Nitya Narasimhan](https://github.com/nitya). Kattints a képre a nagyobb verzióért. @@ -62,7 +62,7 @@ Az iterációkat a Custom Vision portálról lehet közzétenni. 1. Kattints az iteráció **Publish** gombjára. - ![A közzététel gomb](../../../../../translated_images/hu/custom-vision-object-detector-publish-button.34ee379fc650ccb9856c3868d0003f413b9529f102fc73c37168c98d721cc293.png) + ![A közzététel gomb](../../../../../translated_images/hu/custom-vision-object-detector-publish-button.34ee379fc650ccb9.webp) 1. A *Publish Model* párbeszédablakban állítsd be a *Prediction resource*-t az előző leckében létrehozott `stock-detector-prediction` erőforrásra. Hagyd meg a nevet `Iteration2`-ként, majd kattints a **Publish** gombra. @@ -76,7 +76,7 @@ Az iterációkat a Custom Vision portálról lehet közzétenni. Másold ki a *Prediction-Key* értéket is. Ez egy biztonsági kulcs, amelyet meg kell adnod a modell hívásakor. Csak azok az alkalmazások használhatják a modellt, amelyek megadják ezt a kulcsot, minden más alkalmazást elutasítanak. - ![Az előrejelzési API párbeszédablak az URL-lel és a kulccsal](../../../../../translated_images/hu/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![Az előrejelzési API párbeszédablak az URL-lel és a kulccsal](../../../../../translated_images/hu/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ Amikor egy új iterációt közzétesznek, annak más neve lesz. Hogyan gondolod, hogy megváltoztatnád az IoT eszköz által használt iterációt? @@ -95,7 +95,7 @@ Amikor használod az objektumfelismerőt, nemcsak az észlelt objektumokat kapod A **Predictions** fülön az előrejelzés eredményei tartalmazzák a határoló dobozokat az előrejelzésre küldött képen. -![4 paradicsompüré konzerv egy polcon, az előrejelzések 35.8%, 33.5%, 25.7% és 16.6% valószínűséggel](../../../../../translated_images/hu/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) +![4 paradicsompüré konzerv egy polcon, az előrejelzések 35.8%, 33.5%, 25.7% és 16.6% valószínűséggel](../../../../../translated_images/hu/custom-vision-stock-prediction.942266ab1bcca341.webp) A fenti képen 4 paradicsompüré konzervet észleltek. Az eredményekben egy piros négyzet van ráhelyezve minden észlelt objektumra, jelezve a kép határoló dobozát. @@ -103,7 +103,7 @@ A fenti képen 4 paradicsompüré konzervet észleltek. Az eredményekben egy pi A határoló dobozokat 4 érték határozza meg: top, left, height és width. Ezek az értékek 0-1 skálán vannak, az értékek a kép méretének százalékos arányát képviselik. Az origó (a 0,0 pozíció) a kép bal felső sarka, így a top érték a távolság a tetejétől, az alsó érték pedig a top plusz a height. -![Egy határoló doboz egy paradicsompüré konzerv körül](../../../../../translated_images/hu/bounding-box.1420a7ea0d3d15f71e1ffb5cf4b2271d184fac051f990abc541975168d163684.png) +![Egy határoló doboz egy paradicsompüré konzerv körül](../../../../../translated_images/hu/bounding-box.1420a7ea0d3d15f7.webp) A fenti kép 600 pixel széles és 800 pixel magas. A határoló doboz 320 pixellel lejjebb kezdődik, ami 0.4-es top koordinátát ad (800 x 0.4 = 320). A bal oldaltól a határoló doboz 240 pixellel kezdődik, ami 0.4-es left koordinátát ad (600 x 0.4 = 240). A határoló doboz magassága 240 pixel, ami 0.3-as height értéket ad (800 x 0.3 = 240). A határoló doboz szélessége 120 pixel, ami 0.2-es width értéket ad (600 x 0.2 = 120). @@ -118,7 +118,7 @@ A 0-1 közötti százalékos értékek használata azt jelenti, hogy független A határoló dobozokat a valószínűségekkel kombinálva értékelheted az észlelés pontosságát. Például egy objektumfelismerő több, egymást átfedő objektumot is észlelhet, például egy konzervet egy másik belsejében. A kódod megvizsgálhatja a határoló dobozokat, megértheti, hogy ez lehetetlen, és figyelmen kívül hagyhatja azokat az objektumokat, amelyek jelentős átfedésben vannak más objektumokkal. -![Két átfedő határoló doboz egy paradicsompüré konzerv körül](../../../../../translated_images/hu/overlap-object-detection.d431e03cae75072a2760430eca7f2c5fdd43045bfd72dadcbf12711f7cd6c2ae.png) +![Két átfedő határoló doboz egy paradicsompüré konzerv körül](../../../../../translated_images/hu/overlap-object-detection.d431e03cae75072a.webp) A fenti példában az egyik határoló doboz egy paradicsompüré konzervet jelez 78.3%-os valószínűséggel. Egy másik határoló doboz valamivel kisebb, és az első határoló dobozon belül van, 64.3%-os valószínűséggel. A kódod ellenőrizheti a határoló dobozokat, láthatja, hogy teljesen átfedik egymást, és figyelmen kívül hagyhatja az alacsonyabb valószínűséget, mivel lehetetlen, hogy egy konzerv egy másik belsejében legyen. diff --git a/translations/hu/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md b/translations/hu/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md index 4dda2413e..f8834c07a 100644 --- a/translations/hu/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md +++ b/translations/hu/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md @@ -67,7 +67,7 @@ A képek osztályozására használt kód nagyon hasonló az objektumok észlel Meg fogod tudni nézni a készített képet, és ezeket az értékeket a **Predictions** fülön a Custom Vision-ben. - ![4 paradicsompüré konzerv egy polcon, az észlelések előrejelzéseivel: 35.8%, 33.5%, 25.7% és 16.6%](../../../../../translated_images/hu/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![4 paradicsompüré konzerv egy polcon, az észlelések előrejelzéseivel: 35.8%, 33.5%, 25.7% és 16.6%](../../../../../translated_images/hu/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 Ezt a kódot megtalálod a [code-detect/pi](../../../../../5-retail/lessons/2-check-stock-device/code-detect/pi) vagy a [code-detect/virtual-iot-device](../../../../../5-retail/lessons/2-check-stock-device/code-detect/virtual-iot-device) mappában. diff --git a/translations/hu/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md b/translations/hu/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md index c02ecafe1..d5fc27346 100644 --- a/translations/hu/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md +++ b/translations/hu/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md @@ -95,7 +95,7 @@ A képek osztályozására használt kód nagyon hasonló az objektumok detektá Látni fogod a készített képet, és ezeket az értékeket a **Predictions** fülön a Custom Vision-ben. - ![4 paradicsompüré konzerv egy polcon, a 4 detektálás predikcióival: 35.8%, 33.5%, 25.7% és 16.6%](../../../../../translated_images/hu/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![4 paradicsompüré konzerv egy polcon, a 4 detektálás predikcióival: 35.8%, 33.5%, 25.7% és 16.6%](../../../../../translated_images/hu/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 Ezt a kódot megtalálod a [code-detect/wio-terminal](../../../../../5-retail/lessons/2-check-stock-device/code-detect/wio-terminal) mappában. diff --git a/translations/hu/6-consumer/lessons/1-speech-recognition/README.md b/translations/hu/6-consumer/lessons/1-speech-recognition/README.md index 0ad1bfb82..0a753c3f2 100644 --- a/translations/hu/6-consumer/lessons/1-speech-recognition/README.md +++ b/translations/hu/6-consumer/lessons/1-speech-recognition/README.md @@ -1,6 +1,6 @@ # Beszédfelismerés IoT eszközzel -![A leckéről készült vázlatrajz](../../../../../translated_images/hu/lesson-21.e34de51354d6606fb5ee08d8c89d0222eea0a2a7aaf744a8805ae847c4f69dc4.jpg) +![A leckéről készült vázlatrajz](../../../../../translated_images/hu/lesson-21.e34de51354d6606f.webp) > Vázlatrajz: [Nitya Narasimhan](https://github.com/nitya). Kattints a képre a nagyobb verzióért. @@ -51,7 +51,7 @@ A mikrofonok különböző típusokban érhetők el: A dinamikus mikrofonoknak nincs szükségük áramra a működéshez, az elektromos jelet teljes egészében a mikrofon hozza létre. - ![Patti Smith énekel egy Shure SM58 (dinamikus kardioid típusú) mikrofonba](../../../../../translated_images/hu/dynamic-mic.8babac890a2d80dfb0874b5bf37d4b851fe2aeb9da6fd72945746176978bf3bb.jpg) + ![Patti Smith énekel egy Shure SM58 (dinamikus kardioid típusú) mikrofonba](../../../../../translated_images/hu/dynamic-mic.8babac890a2d80df.webp) * Szalag - A szalagos mikrofonok hasonlóak a dinamikus mikrofonokhoz, de membrán helyett fém szalagot használnak. Ez a szalag egy mágneses mezőben mozogva elektromos áramot generál. A dinamikus mikrofonokhoz hasonlóan a szalagos mikrofonoknak sincs szükségük áramra a működéshez. @@ -59,11 +59,11 @@ A mikrofonok különböző típusokban érhetők el: * Kondenzátor - A kondenzátoros mikrofonoknak vékony fém membránjuk és rögzített fém hátlapjuk van. Mindkettőre elektromosságot alkalmaznak, és ahogy a membrán rezeg, a lemezek közötti statikus töltés változik, jelet generálva. A kondenzátoros mikrofonoknak áramra van szükségük a működéshez – ezt *fantomtáplálásnak* nevezik. - ![C451B kis membrános kondenzátoros mikrofon az AKG Acoustics-tól](../../../../../translated_images/hu/condenser-mic.6f6ed5b76ca19e0ec3fd0c544601542d4479a6cb7565db336de49fbbf69f623e.jpg) + ![C451B kis membrános kondenzátoros mikrofon az AKG Acoustics-tól](../../../../../translated_images/hu/condenser-mic.6f6ed5b76ca19e0e.webp) * MEMS - A mikroelektromechanikai rendszerek mikrofonjai, vagy MEMS, egy chipen található mikrofonok. Nyomásérzékeny membránjuk van, amelyet szilícium chipre véstek, és hasonlóan működnek, mint a kondenzátoros mikrofonok. Ezek a mikrofonok rendkívül kicsik lehetnek, és integrálhatók az áramkörökbe. - ![Egy MEMS mikrofon egy áramköri lapon](../../../../../translated_images/hu/mems-microphone.80574019e1f5e4d9ee72fed720ecd25a39fc2969c91355d17ebb24ba4159e4c4.png) + ![Egy MEMS mikrofon egy áramköri lapon](../../../../../translated_images/hu/mems-microphone.80574019e1f5e4d9.webp) A fenti képen a **LEFT** feliratú chip egy MEMS mikrofon, amelynek apró membránja kevesebb mint egy milliméter széles. @@ -159,7 +159,7 @@ Az ébresztőszó modell betanításának és használatának bonyolultságának ## Beszéd szöveggé alakítása -![Beszéd szolgáltatások logója](../../../../../translated_images/hu/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![Beszéd szolgáltatások logója](../../../../../translated_images/hu/azure-speech-logo.a1f08c4befb0159f.webp) Csakúgy, mint a képosztályozásnál egy korábbi projektben, vannak előre elkészített AI szolgáltatások, amelyek képesek a beszédet hangfájlként szöveggé alakítani. Az egyik ilyen szolgáltatás a Speech Service, amely a Cognitive Services része, előre elkészített AI szolgáltatások, amelyeket az alkalmazásaidban használhatsz. diff --git a/translations/hu/6-consumer/lessons/1-speech-recognition/pi-audio.md b/translations/hu/6-consumer/lessons/1-speech-recognition/pi-audio.md index aae30c509..379769943 100644 --- a/translations/hu/6-consumer/lessons/1-speech-recognition/pi-audio.md +++ b/translations/hu/6-consumer/lessons/1-speech-recognition/pi-audio.md @@ -16,13 +16,13 @@ A gomb csatlakoztatható a Grove alaplaphoz. #### Feladat - a gomb csatlakoztatása -![Egy Grove gomb](../../../../../translated_images/hu/grove-button.a70cfbb809a8563681003250cf5b06d68cdcc68624f9e2f493d5a534ae2da1e5.png) +![Egy Grove gomb](../../../../../translated_images/hu/grove-button.a70cfbb809a85636.webp) 1. Illeszd be a Grove kábel egyik végét a gombmodul aljzatába. Csak egyféleképpen illeszkedik. 1. Kapcsold ki a Raspberry Pi-t, majd csatlakoztasd a Grove kábel másik végét a **D5** jelzésű digitális aljzathoz a Grove alaplapon, amely a Pi-hez van csatlakoztatva. Ez az aljzat a második balról, a GPIO tüskék melletti aljzatsoron. -![A Grove gomb csatlakoztatva a D5 aljzathoz](../../../../../translated_images/hu/pi-button.c7a1a4f55943341ce1baf1057658e9a205804d4131d258e820c93f951df0abf3.png) +![A Grove gomb csatlakoztatva a D5 aljzathoz](../../../../../translated_images/hu/pi-button.c7a1a4f55943341c.webp) ## Hang rögzítése diff --git a/translations/hu/6-consumer/lessons/1-speech-recognition/pi-microphone.md b/translations/hu/6-consumer/lessons/1-speech-recognition/pi-microphone.md index 1b9e3a691..acc72a2e3 100644 --- a/translations/hu/6-consumer/lessons/1-speech-recognition/pi-microphone.md +++ b/translations/hu/6-consumer/lessons/1-speech-recognition/pi-microphone.md @@ -34,7 +34,7 @@ A mikrofont és a hangszórókat csatlakoztatni és konfigurálni kell. 1. Ha a ReSpeaker 2-Mics Pi HAT-et használod, eltávolíthatod a Grove alaplapot, majd helyére illesztheted a ReSpeaker HAT-et. - ![Egy Raspberry Pi ReSpeaker HAT-tel](../../../../../translated_images/hu/pi-respeaker-hat.f00fabe7dd039a93e2e0aa0fc946c9af0c6a9eb17c32fa1ca097fb4e384f69f0.png) + ![Egy Raspberry Pi ReSpeaker HAT-tel](../../../../../translated_images/hu/pi-respeaker-hat.f00fabe7dd039a93.webp) Később szükséged lesz egy Grove gombra ebben a leckében, de ez a HAT már tartalmaz egy beépített gombot, így a Grove alaplap nem szükséges. diff --git a/translations/hu/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md b/translations/hu/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md index 6e82c98b7..289cb8f2f 100644 --- a/translations/hu/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md +++ b/translations/hu/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md @@ -10,7 +10,7 @@ A beépített mikrofon analóg jelet rögzít, amelyet digitális jellé alakít ✅ Olvass többet a DMA-ról a [közvetlen memória-hozzáférés Wikipedia oldalán](https://wikipedia.org/wiki/Direct_memory_access). -![A mikrofonból érkező hang az ADC-n keresztül a DMAC-hoz jut. Ez egy pufferbe ír. Amikor ez a puffer megtelik, feldolgozásra kerül, és a DMAC egy második pufferbe ír](../../../../../translated_images/hu/dmac-adc-buffers.4509aee49145c90bc2e1be472b8ed2ddfcb2b6a81ad3e559114aca55f5fff759.png) +![A mikrofonból érkező hang az ADC-n keresztül a DMAC-hoz jut. Ez egy pufferbe ír. Amikor ez a puffer megtelik, feldolgozásra kerül, és a DMAC egy második pufferbe ír](../../../../../translated_images/hu/dmac-adc-buffers.4509aee49145c90b.webp) A DMAC képes hangot rögzíteni az ADC-től fix időközönként, például 16,000-szer másodpercenként 16KHz-es hang esetén. A rögzített adatokat egy előre lefoglalt memória pufferbe írja, és amikor ez megtelik, elérhetővé teszi a kódod számára feldolgozásra. A memória használata késleltetheti a hangrögzítést, de több puffert is beállíthatsz. A DMAC az 1-es pufferbe ír, majd amikor ez megtelik, értesíti a kódodat, hogy dolgozza fel az 1-es puffert, miközben a DMAC a 2-es pufferbe ír. Amikor a 2-es puffer megtelik, értesíti a kódodat, és visszatér az 1-es pufferbe íráshoz. Így, amíg minden puffert gyorsabban dolgozol fel, mint amennyi idő alatt megtelik, nem veszítesz adatot. diff --git a/translations/hu/6-consumer/lessons/2-language-understanding/README.md b/translations/hu/6-consumer/lessons/2-language-understanding/README.md index 3381af249..dd6cb1b8c 100644 --- a/translations/hu/6-consumer/lessons/2-language-understanding/README.md +++ b/translations/hu/6-consumer/lessons/2-language-understanding/README.md @@ -1,6 +1,6 @@ # Nyelv megértése -![A lecke áttekintése sketchnote formában](../../../../../translated_images/hu/lesson-22.6148ea28500d9e00c396aaa2649935fb6641362c8f03d8e5e90a676977ab01dd.jpg) +![A lecke áttekintése sketchnote formában](../../../../../translated_images/hu/lesson-22.6148ea28500d9e00.webp) > Sketchnote készítette: [Nitya Narasimhan](https://github.com/nitya). Kattints a képre a nagyobb verzióért. @@ -46,7 +46,7 @@ A nyelvmegértési modellek olyan AI modellek, amelyeket arra képeznek ki, hogy ## Nyelvmegértési modell létrehozása -![A LUIS logója](../../../../../translated_images/hu/luis-logo.5cb4f3e88c020ee6df4f614e8831f4a4b6809a7247bf52085fb48d629ef9be52.png) +![A LUIS logója](../../../../../translated_images/hu/luis-logo.5cb4f3e88c020ee6.webp) Nyelvmegértési modelleket hozhatsz létre a LUIS segítségével, amely a Microsoft egyik nyelvmegértési szolgáltatása, és a Cognitive Services része. @@ -169,7 +169,7 @@ A LUIS portál használatára vonatkozó utasításokat megtalálod a [Quickstar 1. Ahogy minden példát megadsz, a LUIS elkezdi felismerni az entitásokat, és aláhúzza és címkézi azokat, amelyeket talál. - ![A példák, ahol a számok és időegységek alá vannak húzva a LUIS által](../../../../../translated_images/hu/luis-intent-examples.25716580b2d2723cf1bafdf277d015c7f046d8cfa20f27bddf3a0873ec45fab7.png) + ![A példák, ahol a számok és időegységek alá vannak húzva a LUIS által](../../../../../translated_images/hu/luis-intent-examples.25716580b2d2723c.webp) ### Feladat - a modell tanítása és tesztelése diff --git a/translations/hu/6-consumer/lessons/3-spoken-feedback/README.md b/translations/hu/6-consumer/lessons/3-spoken-feedback/README.md index 786254b7e..bf7a842b4 100644 --- a/translations/hu/6-consumer/lessons/3-spoken-feedback/README.md +++ b/translations/hu/6-consumer/lessons/3-spoken-feedback/README.md @@ -1,6 +1,6 @@ # Állíts be egy időzítőt és adj szóbeli visszajelzést -![A leckéről készült sketchnote áttekintése](../../../../../translated_images/hu/lesson-23.f38483e1d4df4828990d3f02d60e46c978b075d384ae7cb4f7bab738e107c850.jpg) +![A leckéről készült sketchnote áttekintése](../../../../../translated_images/hu/lesson-23.f38483e1d4df4828.webp) > Sketchnote készítette: [Nitya Narasimhan](https://github.com/nitya). Kattints a képre a nagyobb verzióért. diff --git a/translations/hu/6-consumer/lessons/4-multiple-language-support/README.md b/translations/hu/6-consumer/lessons/4-multiple-language-support/README.md index e7bee326d..2a815f9ee 100644 --- a/translations/hu/6-consumer/lessons/4-multiple-language-support/README.md +++ b/translations/hu/6-consumer/lessons/4-multiple-language-support/README.md @@ -1,6 +1,6 @@ # Többnyelvű támogatás -![A leckéről készült vázlatrajz](../../../../../translated_images/hu/lesson-24.4246968ed058510ab275052e87ef9aa89c7b2f938915d103c605c04dc6cd5bb7.jpg) +![A leckéről készült vázlatrajz](../../../../../translated_images/hu/lesson-24.4246968ed058510a.webp) > Vázlatrajz: [Nitya Narasimhan](https://github.com/nitya). Kattints a képre a nagyobb verzióért. @@ -74,7 +74,7 @@ Számos MI szolgáltatás érhető el, amelyeket alkalmazásaidból használhats ### Cognitive Services Beszédszolgáltatás -![A beszédszolgáltatás logója](../../../../../translated_images/hu/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![A beszédszolgáltatás logója](../../../../../translated_images/hu/azure-speech-logo.a1f08c4befb0159f.webp) Az elmúlt néhány leckében használt beszédszolgáltatás fordítási képességekkel is rendelkezik a beszédfelismeréshez. Amikor beszédet ismersz fel, nemcsak az adott nyelvű szöveget kérheted, hanem más nyelveken is. @@ -82,7 +82,7 @@ Az elmúlt néhány leckében használt beszédszolgáltatás fordítási képes ### Cognitive Services Fordító szolgáltatás -![A fordító szolgáltatás logója](../../../../../translated_images/hu/azure-translator-logo.c6ed3a4a433edfd2f11577eca105412c50b8396b194cbbd730723dd1d0793bcd.png) +![A fordító szolgáltatás logója](../../../../../translated_images/hu/azure-translator-logo.c6ed3a4a433edfd2.webp) A Fordító szolgáltatás egy dedikált fordítási szolgáltatás, amely szöveget tud fordítani egyik nyelvről egy vagy több célnyelvre. A fordításon kívül számos extra funkciót is támogat, például a trágárság maszkolását. Lehetővé teszi továbbá, hogy egy adott szó vagy mondat számára konkrét fordítást adj meg, hogy olyan kifejezésekkel dolgozz, amelyeket nem akarsz lefordítani, vagy amelyeknek van egy jól ismert fordítása. diff --git a/translations/hu/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md b/translations/hu/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md index 06ba37fff..bd4250490 100644 --- a/translations/hu/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md +++ b/translations/hu/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md @@ -25,7 +25,7 @@ A beszédszolgáltatás REST API-ja nem támogatja a közvetlen fordítást, ehe > > Például, ha angolul tanítod be a LUIS-t, de franciát szeretnél használni felhasználói nyelvként, lefordíthatod az olyan mondatokat, mint például "állíts be egy 2 perc és 27 másodperces időzítőt" angolról franciára a Bing Translate segítségével, majd a **Hallgasd meg a fordítást** gombbal mondhatod el a fordítást a mikrofonodba. > - > ![A Hallgasd meg a fordítást gomb a Bing Translate-en](../../../../../translated_images/hu/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![A Hallgasd meg a fordítást gomb a Bing Translate-en](../../../../../translated_images/hu/bing-translate.348aa796d6efe2a9.webp) 1. Add hozzá a fordító API kulcsot a `speech_api_key` alá: diff --git a/translations/hu/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md b/translations/hu/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md index 4f39297a3..31fcbc529 100644 --- a/translations/hu/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md +++ b/translations/hu/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md @@ -37,7 +37,7 @@ A beszédfelismerő szolgáltatás nemcsak a beszédet tudja szöveggé alakíta > > Például, ha angolul tanítod be a LUIS-t, de franciát szeretnél használni felhasználói nyelvként, lefordíthatod az olyan mondatokat, mint például "set a 2 minute and 27 second timer" angolról franciára a Bing Translate segítségével, majd a **Listen translation** gombbal mondhatod el a fordítást a mikrofonodba. > - > ![A Bing Translate hallgatási fordítás gombja](../../../../../translated_images/hu/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![A Bing Translate hallgatási fordítás gombja](../../../../../translated_images/hu/bing-translate.348aa796d6efe2a9.webp) 1. Cseréld le a `recognizer_config` és `recognizer` deklarációkat a következőre: diff --git a/translations/hu/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md b/translations/hu/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md index c7d6f4cfb..311ec859a 100644 --- a/translations/hu/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md +++ b/translations/hu/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md @@ -105,7 +105,7 @@ A beszédszolgáltatás REST API-ja nem támogatja a közvetlen fordítást, ehe > > Például, ha LUIS-t angolul tanítod be, de franciát szeretnél használni felhasználói nyelvként, lefordíthatod az olyan mondatokat, mint például "set a 2 minute and 27 second timer" angolról franciára a Bing Translate segítségével, majd a **Listen translation** gombbal kimondhatod a fordítást a mikrofonodba. > - > ![A Bing Translate hallgatás fordítás gombja](../../../../../translated_images/hu/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![A Bing Translate hallgatás fordítás gombja](../../../../../translated_images/hu/bing-translate.348aa796d6efe2a9.webp) 1. Add hozzá a fordító API kulcsát és helyét a `SPEECH_LOCATION` alá: diff --git a/translations/hu/README.md b/translations/hu/README.md index 3a966ae4e..8d3503813 100644 --- a/translations/hu/README.md +++ b/translations/hu/README.md @@ -8,53 +8,63 @@ [![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/) -### Csatlakozz az Azure AI Foundry Közösséghez +### Csatlakozz az Azure AI Foundry közösséghez -Ha elakadnál vagy kérdésed lenne az AI alkalmazások fejlesztésével kapcsolatban, csatlakozz más tanulókhoz és tapasztalt fejlesztőkhöz az MCP-vel kapcsolatos beszélgetésekben. Ez egy támogató közösség, ahol a kérdések megengedettek és a tudás szabadon megosztott. +Ha elakadnál vagy kérdésed lenne az AI alkalmazások fejlesztése kapcsán, csatlakozz a tanulótársaidhoz és tapasztalt fejlesztőkhöz az MCP-vel kapcsolatos beszélgetésekben. Ez egy támogató közösség, ahol a kérdések szívesen látottak, és a tudás szabadon megosztásra kerül. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Ha termék visszajelzésed van vagy hibába ütköznél fejlesztés közben, látogass el ide: +Ha termék visszajelzésed vagy hibabejelentésed van a fejlesztés során, látogass el ide: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -Kövesd az alábbi lépéseket, hogy elkezdd használni ezeket az erőforrásokat: -1. **Feljegyzés létrehozása**: Kattints ide [![GitHub forks](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) -2. **A tárhely klónozása**: `git clone https://github.com/microsoft/IoT-For-Beginners.git` -3. [**Csatlakozz a Microsoft Foundry Discordhoz, és ismerkedj szakértőkkel és más fejlesztőkkel**](https://discord.com/invite/ByRwuEEgH4) +Kövesd ezeket a lépéseket, hogy elkezdhesd használni ezeket az erőforrásokat: +1. **Készíts Forkot a tárhelyről**: Kattints ide [![GitHub forks](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) +2. **Klónozd le a tárhelyet**: `git clone https://github.com/microsoft/IoT-For-Beginners.git` +3. [**Csatlakozz a Microsoft Foundry Discord-hoz, és ismerkedj szakértőkkel és fejlesztőtársakkal!**](https://discord.com/invite/ByRwuEEgH4) ### 🌐 Többnyelvű támogatás -#### GitHub Action-en keresztül támogatott (Automatizált és Mindig naprakész) +#### GitHub Action által támogatott (Automatikus és mindig naprakész) -[Arab](../ar/README.md) | [Bengáli](../bn/README.md) | [Bolgár](../bg/README.md) | [Burmai (Myanmar)](../my/README.md) | [Kínai (Egyszerűsített)](../zh-CN/README.md) | [Kínai (Hagyományos, Hongkong)](../zh-HK/README.md) | [Kínai (Hagyományos, Makaó)](../zh-MO/README.md) | [Kínai (Hagyományos, Tajvan)](../zh-TW/README.md) | [Horvát](../hr/README.md) | [Cseh](../cs/README.md) | [Dán](../da/README.md) | [Holland](../nl/README.md) | [Észt](../et/README.md) | [Finn](../fi/README.md) | [Francia](../fr/README.md) | [Német](../de/README.md) | [Görög](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Magyar](./README.md) | [Indonéz](../id/README.md) | [Olasz](../it/README.md) | [Japán](../ja/README.md) | [Kannada](../kn/README.md) | [Koreai](../ko/README.md) | [Litván](../lt/README.md) | [Maláj](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepáli](../ne/README.md) | [Nigeri Pidgin](../pcm/README.md) | [Norvég](../no/README.md) | [Perzsa (Fárszi)](../fa/README.md) | [Lengyel](../pl/README.md) | [Portugál (Brazília)](../pt-BR/README.md) | [Portugál (Portugália)](../pt-PT/README.md) | [Pandzsbí (Gurmukhi)](../pa/README.md) | [Román](../ro/README.md) | [Orosz](../ru/README.md) | [Szerb (Cirill)](../sr/README.md) | [Szlovák](../sk/README.md) | [Szlovén](../sl/README.md) | [Spanyol](../es/README.md) | [Szuahéli](../sw/README.md) | [Svéd](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Török](../tr/README.md) | [Ukrán](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnami](../vi/README.md) +[Arab](../ar/README.md) | [Bengáli](../bn/README.md) | [Bolgár](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Kínai (egyszerűsített)](../zh-CN/README.md) | [Kínai (hagyományos, Hongkong)](../zh-HK/README.md) | [Kínai (hagyományos, Makaó)](../zh-MO/README.md) | [Kínai (hagyományos, Tajvan)](../zh-TW/README.md) | [Horvát](../hr/README.md) | [Cseh](../cs/README.md) | [Dán](../da/README.md) | [Holland](../nl/README.md) | [Észt](../et/README.md) | [Finn](../fi/README.md) | [Francia](../fr/README.md) | [Német](../de/README.md) | [Görög](../el/README.md) | [Héber](../he/README.md) | [Hindi](../hi/README.md) | [Magyar](./README.md) | [Indonéz](../id/README.md) | [Olasz](../it/README.md) | [Japán](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Koreai](../ko/README.md) | [Litván](../lt/README.md) | [Maláj](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepáli](../ne/README.md) | [Nigériai pidgin](../pcm/README.md) | [Norvég](../no/README.md) | [Perzsa (Fárszi)](../fa/README.md) | [Lengyel](../pl/README.md) | [Portugál (Brazília)](../pt-BR/README.md) | [Portugál (Portugália)](../pt-PT/README.md) | [Pandzsábi (Gurmukhi)](../pa/README.md) | [Román](../ro/README.md) | [Orosz](../ru/README.md) | [Szerb (cirill)](../sr/README.md) | [Szlovák](../sk/README.md) | [Szlovén](../sl/README.md) | [Spanyol](../es/README.md) | [Szuahéli](../sw/README.md) | [Svéd](../sv/README.md) | [Tagalog (Filippino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Török](../tr/README.md) | [Ukrán](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnami](../vi/README.md) -> **Inkább helyileg klónoznád?** - -> Ez a tárhely több mint 50 nyelvi fordítást tartalmaz, ami jelentősen megnöveli a letöltési méretet. Ha fordítások nélkül szeretnél klónozni, használj spars checkoutot: +> **Előnyben részesíted a helyi klónozást?** +> +> Ez a tárhely több mint 50 nyelvi fordítást tartalmaz, ami jelentősen megnöveli a letöltési méretet. Ha fordítások nélkül szeretnéd klónozni, használd a sparse checkout-ot: +> +> **Bash / macOS / Linux:** > ```bash > git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git > cd IoT-For-Beginners > git sparse-checkout set --no-cone '/*' '!translations' '!translated_images' > ``` -> Ez mindent megad, amire szükséged van a kurzus befejezéséhez jóval gyorsabb letöltéssel. +> +> **CMD (Windows):** +> ```cmd +> git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git +> cd IoT-For-Beginners +> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" +> ``` +> +> Ez gyorsabb letöltést biztosít és minden szükséges anyagot tartalmaz a kurzus elvégzéséhez. -# IoT Kezdőknek - Egy tanmenet +# Kezdőknek szóló IoT - Tananyag -A Microsoft Azure Cloud Advocates csapata örömmel kínál egy 12 hetes, 24 leckéből álló tantervet, amely az IoT alapjairól szól. Minden lecke elő- és utóleckés kvízeket, írásos útmutatókat a lecke teljesítéséhez, megoldásokat, feladatokat és egyebeket tartalmaz. Projekt-alapú pedagógiánk lehetővé teszi, hogy tanulj miközben építesz, ami bizonyítottan hatékony módja az új készségek elsajátításának. +A Microsoft Azure Cloud Advocates csapata örömmel kínál egy 12 hetes, 24 leckéből álló tananyagot, amely az IoT alapjairól szól. Minden lecke tartalmaz előzetes és utólagos kvízeket, írott útmutatót a lecke teljesítéséhez, megoldást, feladatot és még sok mást. Projektalapú oktatásunk lehetővé teszi, hogy tanulj miközben építesz, ami bizonyítottan hatékony módszer az új készségek elsajátítására. -A projektek az étel útját követik a gazdaságtól az asztalig. Ez magában foglalja a mezőgazdaságot, logisztikát, gyártást, kiskereskedelmet és a fogyasztót – mind népszerű iparági területek az IoT eszközök számára. +A projektek a táplálék útját követik a farmtól az asztalig. Ez magában foglalja a mezőgazdaságot, logisztikát, gyártást, kiskereskedelmet és a fogyasztót - mind népszerű iparági területek az IoT eszközök számára. -![Egy tanfolyam térképe, amely 24 leckét mutat be, amelyek bevezetőt, mezőgazdaságot, szállítást, feldolgozást, kiskereskedelmet és főzést fednek le](../../translated_images/hu/Roadmap.bb1dec285dda0eda.webp) +![Az oktatás útitervét mutatja, 24 leckével, amelyek bevezetőt, gazdálkodást, szállítást, feldolgozást, kiskereskedelmet és főzést fednek le](../../translated_images/hu/Roadmap.bb1dec285dda0eda.webp) -> Vázlatkép: [Nitya Narasimhan](https://github.com/nitya). Kattints a képre a nagyobb verzióért. +> Sketchnote készítője: [Nitya Narasimhan](https://github.com/nitya). Kattints a képre a nagyobb mérethez. -**Nagy köszönet szerzőinknek: [Jen Fox](https://github.com/jenfoxbot), [Jen Looper](https://github.com/jlooper), [Jim Bennett](https://github.com/jimbobbennett), valamint vázlatkészítő művészünknek [Nitya Narasimhan](https://github.com/nitya).** +**Nagy köszönet szerzőinknek: [Jen Fox](https://github.com/jenfoxbot), [Jen Looper](https://github.com/jlooper), [Jim Bennett](https://github.com/jimbobbennett) és sketchnote művészünknek, [Nitya Narasimhan](https://github.com/nitya).** -**Köszönet illeti a [Microsoft Learn Student Ambassadors](https://studentambassadors.microsoft.com?WT.mc_id=academic-17441-jabenn) csapatát is, akik átnézték és lefordították ezt a tantervet - [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) és [Zina Kamel](https://www.linkedin.com/in/zina-kamel/).** +**Köszönet illeti a [Microsoft Learn Student Ambassadors](https://studentambassadors.microsoft.com?WT.mc_id=academic-17441-jabenn) csapatát is, akik átnézték és lefordították ezt a tananyagot - [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), és [Zina Kamel](https://www.linkedin.com/in/zina-kamel/).** Ismerd meg a csapatot! @@ -62,153 +72,151 @@ Ismerd meg a csapatot! **Gif készítője:** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Kattints a fenti képre, hogy egy videót nézz meg a projektről! +> 🎥 Kattints a fenti képre a projekt videójához! -> **Tanárai számára** készítettünk néhány [javaslatot](for-teachers.md) a tanterv használatához. Ha saját leckéket szeretnél készíteni, mellékeltünk egy [leckesablont](lesson-template/README.md) is. +> **Tanárként** [tartalmazunk néhány javaslatot](for-teachers.md) a tananyag használatához. Ha saját leckéket szeretnél készíteni, mellékeltünk egy [lecke sablont](lesson-template/README.md) is. -> **[Diákok](https://aka.ms/student-page)**, hogy saját magatok használhassátok ezt a tantervet, forkold a teljes repót, és végezd el önállóan a gyakorlatokat: kezdve egy előadás előtti kvízzel, majd az előadás anyagának elolvasásával és a további tevékenységek elvégzésével. Próbáld meg a projekteket a leckék megértése alapján megalkotni, ne csak másold a megoldáskódot; a kód mindenesetre elérhető a /solutions mappában minden projektorientált leckénél. Egy másik ötlet, hogy tanulócsoportot alkottok barátokkal, és közösen haladtok végig az anyagon. További tanuláshoz ajánljuk a [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn) platformot. +> **Diákok**, ha saját magatok szeretnétek használni ezt a tananyagot, készítsetek forkot az egész repo-ról, és végezzétek el a gyakorlatokat egymástól függetlenül, kezdve az előkészítő kvízzel, majd olvassátok el az anyagot és teljesítsétek a többi feladatot. Próbáljátok megérteni a tananyagot, és ne csak másoljatok megoldásokat; a megoldások megtalálhatók az egyes projekt-orientált leckék /solutions mappájában is. Egy másik ötlet, hogy tanulócsoportot alakítsatok barátokkal, és közösen menjetek végig az anyagon. További tanuláshoz ajánljuk a [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn) platformot. -A tanfolyam videós áttekintéséhez nézd meg ezt a videót: +A kurzus videós bemutatóját itt nézheted meg: [![Promo video](https://img.youtube.com/vi/bccEMm8gRuc/0.jpg)](https://youtube.com/watch?v=bccEMm8gRuc "Promo video") -> 🎥 Kattints a fenti képre, hogy egy videót nézz meg a projektről! +> 🎥 Kattints a fenti képre a projekt videójához! -## Pedagógia +## Oktatási elvek -Két pedagógiai elvet választottunk ennek a tantervnek az összeállításakor: biztosítani, hogy projekt-alapú legyen, és hogy gyakori kvízeket tartalmazzon. A sorozat végére a diákok építenek egy növényfigyelő és öntözőrendszert, járműkövetőt, okos gyári rendszert az ételek nyomon követésére és ellenőrzésére, valamint egy hangvezérelt főzési időzítőt. Megtanulják az Internet of Things alapjait, beleértve az eszközprogramozást, a felhőkapcsolatot, a telemetria elemzését és az AI felhasználását az élő élőhelyen. +A tananyag elkészítése közben két pedgógiai elvet követünk: hogy az anyag projektalapú legyen, és tartalmazzon gyakori kvízeket. A sorozat végére a tanulók építenek egy növényfigyelő és öntöző rendszert, egy járműkövetőt, egy okos gyári rendszert az élelmiszerek nyomon követésére és ellenőrzésére, valamint egy hangvezérelt főzőidőzítőt, és megtanulják az Internet of Things alapjait, beleértve az eszközök programozását, a felhőkapcsolatot, a telemetria elemzését és az AI alkalmazását az élőhelyen. -Az anyag projekt-alapú kialakítása miatt a tanulási folyamat élvezetesebb a diákok számára, és növeli a fogalmak megtartását. +Az anyag projektalapon való összhangja miatt a tanulók számára izgalmasabbá válik az oktatás, és jobb lesz a tanultak megőrzése. -Továbbá, egy előtti kvíz a tanóra előtt beállítja a tanuló szándékát a téma elsajátítására, míg egy második kvíz az óra után segíti a további megtartást. Ez a tanterv rugalmas és szórakoztató, egészben vagy részleteiben is elvégezhető. A projektek kicsiben kezdődnek és fokozatosan egyre összetettebbé válnak a 12 hetes ciklus végére. +Ezen túl a tanóra előtti kis értékelő kvíz a tanulóban a tanulási szándékot erősíti, míg az óra utáni második kvíz a tudás mélyebb rögzítését segíti elő. Ez a tananyag rugalmas és élvezetes, egészében vagy részben is elvégezhető. A projektek kicsiben kezdődnek és a 12 hetes ciklus végére egyre összetettebbé válnak. -Minden projekt valódi hardverre épül, amely elérhető diákok és hobbi fejlesztők számára. A projektek egy-egy adott projektterületet vizsgálnak, releváns háttértudást nyújtva. Ahhoz, hogy sikeres fejlesztő legyél, segít megérteni azt a területet, ahol a problémákat oldod meg; ennek a háttértudásnak köszönhetően a diákok könnyebben gondolkodnak IoT megoldásaikról és tapasztalataikról az adott valós problémakörnyezetben, amelyet egy IoT fejlesztőként meg kell oldaniuk. Megértik a megoldások "miért"-jét, és értékelik a végfelhasználó igényeit. +Minden projekt valódi hardver köré épül, amely a tanulók és hobbisták számára elérhető. Minden projekt a konkrét projektterületre fókuszál, és releváns háttértudást biztosít. A sikeres fejlesztő számára hasznos megérteni azt a területet, ahol problémákat old meg, így ez a háttértudás segít abban, hogy a tanulók az IoT megoldásaikat és tanulmányaikat ott értelmezzék, ahol az IoT fejlesztők valós problémákat oldanak meg. A diákok megértik az általuk készített megoldások „miért”-jét, és értékelik a végfelhasználót. ## Hardver +A projektekhez kétféle IoT hardver közül választhatunk, személyes preferenciák, programozási nyelvismeret vagy preferenciák, tanulási célok és elérhetőség alapján. Biztosítottunk egy 'virtuális hardver' változatot is azok számára, akik nem férnek hozzá hardverhez, vagy többet szeretnének tanulni a vásárlás előtt. Bővebben olvashat róla, és megtalálhat egy 'bevásárlólistát' a [hardware oldalon](./hardware.md), beleértve a Seeed Studio barátainktól vásárolható komplett készletekre mutató linkeket is. -Kétféle IoT hardvert ajánlunk a projektekhez, a személyes preferenciától, a programozási ismeretektől, a tanulási céloktól és az elérhetőségtől függően. Biztosítottunk egy „virtuális hardver” változatot is azok számára, akik nem férnek hozzá fizikai eszközhöz, vagy többet szeretnének tanulni a vásárlás előtt. Bővebben és egy 'bevásárlólistát' az [hardver oldalon](./hardware.md) találsz, ahol megtalálhatók a Seeed Studio barátaink által kínált komplett készletek megvásárlására vonatkozó linkek is. -> 💁 Találd meg a [Magatartási Kódexünket](CODE_OF_CONDUCT.md), a [Hozzájárulási](CONTRIBUTING.md) és a [Fordítási](TRANSLATIONS.md) irányelveket. Várjuk építő jellegű visszajelzésedet! +> 💁 Találja meg a [Magatartási kódexünket](CODE_OF_CONDUCT.md), a [Hozzájárulás](CONTRIBUTING.md) és a [Fordítás](TRANSLATIONS.md) irányelveinket. Örömmel fogadjuk az építő jellegű visszajelzéseit! > -> 🔧 Problémád adódott? Nézd meg a [Hibakeresési Útmutatót](TROUBLESHOOTING.md), ahol a gyakori problémák megoldásait találod. +> 🔧 Problémái vannak? Nézze meg a [Hibaelhárítási útmutatót](TROUBLESHOOTING.md) a gyakori problémák megoldásaiért. -## Minden tananyag tartalmazza: +## Minden leckéhez tartozik: -- sketchnote-ot -- opcionális kiegészítő videót -- előtanulói bemelegítő kvízt -- leírt tananyagot -- projektalapú leckék esetében lépésről lépésre útmutatókat a projekt felépítéséhez -- tudásellenőrzéseket -- kihívást -- kiegészítő olvasnivalót -- házi feladatot -- [utólagos kvízt](https://ff-quizzes.netlify.app/en/) +- vázlatjegyzet +- választható kiegészítő videó +- lecke előtti bemelegítő kvíz +- írott lecke +- projekt-alapú leckék esetén lépésről lépésre útmutató a projekt elkészítéséhez +- tudásellenőrző feladatok +- kihívás +- kiegészítő olvasmány +- feladat +- [leckét követő kvíz](https://ff-quizzes.netlify.app/en/) -> **Megjegyzés a kvízekről**: Az összes kvíz a quiz-app mappában található, összesen 48 kvíz három kérdéssel mindegyikben. Ezek a leckékből vannak linkelve, de a kvíz alkalmazás helyben is futtatható vagy Azure-ra telepíthető; kövesd az útmutatót a `quiz-app` mappában. Fokozatosan lokalizálás alatt állnak. +> **Megjegyzés a kvízekről**: Minden kvíz a quiz-app mappában található, összesen 48 kvíz, mindegyik három kérdésből áll. A leckékből hivatkozottak, de a kvíz alkalmazás akár helyben is futtatható, vagy Azure-ra telepíthető; kövesse a quiz-app mappában található utasításokat. Ezeket folyamatosan lokalizáljuk. ## Leckék -| | Projekt neve | Tanított fogalmak | Tanulási célok | Hivatkozott lecke | -| :---: | :------------------------------------: | :------------------------------------------------------------: | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------: | -| 01 | [Első lépések](./1-getting-started/README.md) | Bevezetés az IoT világába | Ismerd meg az IoT alapelveit és az IoT megoldások alapvető építőköveit, mint például érzékelők és felhőszolgáltatások, miközben beállítod az első IoT eszközöd. | [Bevezetés az IoT-ba](./1-getting-started/lessons/1-introduction-to-iot/README.md) | -| 02 | [Első lépések](./1-getting-started/README.md) | Mélyebb betekintés az IoT-be | Ismerd meg jobban az IoT rendszer elemeit, valamint a mikrokontrollereket és egylapos számítógépeket | [Mélyebb betekintés az IoT-be](./1-getting-started/lessons/2-deeper-dive/README.md) | -| 03 | [Első lépések](./1-getting-started/README.md) | Fizikai világgal való interakció érzékelők és működtetők révén | Ismerd meg az érzékelőket, amelyek fizikai adatokat gyűjtenek, és a működtetőket, amelyek visszajelzést küldenek, miközben egy éjszakai fényt építesz | [Fizikai világgal való interakció érzékelők és működtetők révén](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | -| 04 | [Első lépések](./1-getting-started/README.md) | Csatlakoztasd az eszközöd az internethez | Tanuld meg, hogyan csatlakoztathatod IoT eszközöd az internethez, hogy üzeneteket küldj és fogadj, miközben ethernet kapcsolod éjszakai fényedet MQTT brokerhez | [Csatlakoztasd eszközöd az internethez](./1-getting-started/lessons/4-connect-internet/README.md) | -| 05 | [Farm](./2-farm/README.md) | Növények növekedésének előrejelzése | Tanuld meg, hogyan jósolhatod meg a növények növekedését egy IoT eszköz által rögzített hőmérsékletadat alapján | [Növények növekedésének előrejelzése](./2-farm/lessons/1-predict-plant-growth/README.md) | -| 06 | [Farm](./2-farm/README.md) | Talajnedvesség érzékelése | Tanuld meg, hogyan érzékeld a talaj nedvességét és kalibráld a talajnedvesség érzékelőt | [Talajnedvesség érzékelése](./2-farm/lessons/2-detect-soil-moisture/README.md) | -| 07 | [Farm](./2-farm/README.md) | Növény automatikus öntözése | Tanuld meg, hogyan automatizálhatod és időzítheted az öntözést relé és MQTT használatával | [Növény automatikus öntözése](./2-farm/lessons/3-automated-plant-watering/README.md) | -| 08 | [Farm](./2-farm/README.md) | Növényed felhőbe költöztetése | Ismerd meg a felhőt és a felhőalapú IoT szolgáltatásokat, és hogyan csatlakoztathatod növényedet ezekhez a nyilvános MQTT broker helyett | [Növényed felhőbe költöztetése](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | -| 09 | [Farm](./2-farm/README.md) | Alkalmazáslogika áthelyezése a felhőbe | Ismerd meg, hogyan írhatod meg az alkalmazáslogikát a felhőben, amely az IoT üzenetekre reagál | [Alkalmazáslogika áthelyezése a felhőbe](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | -| 10 | [Farm](./2-farm/README.md) | Növényed biztonságban tartása | Ismerd meg az IoT biztonságot és hogyan tarthatod növényedet biztonságban kulcsok és tanúsítványok segítségével | [Növényed biztonságban tartása](./2-farm/lessons/6-keep-your-plant-secure/README.md) | -| 11 | [Szállítás](./3-transport/README.md) | Helymeghatározás | Ismerd meg a GPS helymeghatározást IoT eszközök számára | [Helymeghatározás](./3-transport/lessons/1-location-tracking/README.md) | -| 12 | [Szállítás](./3-transport/README.md) | Helyadat tárolása | Ismerd meg, hogyan tárolhatsz IoT adatokat későbbi megjelenítésre vagy elemzésre | [Helyadat tárolása](./3-transport/lessons/2-store-location-data/README.md) | -| 13 | [Szállítás](./3-transport/README.md) | Helyadat vizualizálása | Ismerd meg a helyadatok térképen történő megjelenítését, és hogyan ábrázolják a térképek a valós 3D világot 2 dimenzióban | [Helyadat vizualizálása](./3-transport/lessons/3-visualize-location-data/README.md) | -| 14 | [Szállítás](./3-transport/README.md) | Geokerítések | Ismerd meg a geokerítéseket (geofencing), és hogyan használhatók arra, hogy értesítsék a szállítási lánc járműveit, amikor közel vannak a rendeltetési helyükhöz | [Geokerítések](./3-transport/lessons/4-geofences/README.md) | -| 15 | [Gyártás](./4-manufacturing/README.md) | Gyümölcsminőség-észlelő betanítása | Tanuld meg, hogyan képezz felhőben egy képosztályozót a gyümölcsminőség észlelésére | [Gyümölcsminőség-észlelő betanítása](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | -| 16 | [Gyártás](./4-manufacturing/README.md) | Gyümölcsminőség ellenőrzése IoT eszközről | Ismerd meg, hogyan használhatod gyümölcsminőség-észlelődet egy IoT eszközről | [Gyümölcsminőség ellenőrzése IoT eszközről](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | -| 17 | [Gyártás](./4-manufacturing/README.md) | Gyümölcsészlelő futtatása az élőszélen | Ismerd meg, hogyan futtathatod gyümölcsészlelődet egy IoT eszközön az élőszélen | [Gyümölcsészlelő futtatása az élőszélen](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | -| 18 | [Gyártás](./4-manufacturing/README.md) | Gyümölcsminőség-észlelés indítása érzékelőről | Ismerd meg, hogyan indíthatod el az érzékelőről a gyümölcsminőség-észlelést | [Gyümölcsminőség-észlelés indítása érzékelőről](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | -| 19 | [Kereskedelem](./5-retail/README.md) | Készletészlelő betanítása | Tanuld meg, hogyan használhatsz objektumfelismerést készletészlelő betanításához a bolti készlet számolására | [Készletészlelő betanítása](./5-retail/lessons/1-train-stock-detector/README.md) | -| 20 | [Kereskedelem](./5-retail/README.md) | Készlet ellenőrzése IoT eszközről | Ismerd meg, hogyan ellenőrizheted a készletet IoT eszközről objektumfelismerő modellel | [Készlet ellenőrzése IoT eszközről](./5-retail/lessons/2-check-stock-device/README.md) | -| 21 | [Fogyasztó](./6-consumer/README.md) | Beszédfelismerés IoT eszközzel | Tanuld meg, hogyan ismerheted fel a beszédet egy IoT eszközzel okos időzítő építésére | [Beszédfelismerés IoT eszközzel](./6-consumer/lessons/1-speech-recognition/README.md) | -| 22 | [Fogyasztó](./6-consumer/README.md) | Nyelvértés | Ismerd meg, hogyan értheted meg az IoT eszköznek mondott mondatokat | [Nyelvértés](./6-consumer/lessons/2-language-understanding/README.md) | -| 23 | [Fogyasztó](./6-consumer/README.md) | Időzítő beállítása és hangos visszajelzés | Tanuld meg, hogyan állíthatsz be időzítőt IoT eszközön és adhatsz hangos visszajelzést, mikor indult el és mikor ért véget | [Időzítő beállítása és hangos visszajelzés](./6-consumer/lessons/3-spoken-feedback/README.md) | -| 24 | [Fogyasztó](./6-consumer/README.md) | Több nyelv támogatása | Tanuld meg, hogyan támogathatsz több nyelvet egyszerre, mind a beszédértést, mind az okos időzítő válaszait | [Több nyelv támogatása](./6-consumer/lessons/4-multiple-language-support/README.md) | - -## Offline elérés - -Ezt a dokumentációt offline is futtathatod a [Docsify](https://docsify.js.org/#/) használatával. Forkold ezt a repót, telepítsd a [Docsify-t](https://docsify.js.org/#/quickstart) a helyi gépedre, majd a repó gyökérkönyvtárában futtasd a `docsify serve` parancsot. A weboldal a 3000-es porton lesz elérhető a localhostodon: `localhost:3000`. +| | Projekt neve | Tanult fogalmak | Tanulási célok | Kapcsolódó lecke | +| :---: | :--------------------------------------------: | :------------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------: | +| 01 | [Kezdetek](./1-getting-started/README.md) | Bevezetés az IoT-be | Ismerje meg az IoT alapelveit és az IoT megoldások alapvető építőelemeit, mint érzékelők és felhőszolgáltatások, miközben beállítja első IoT eszközét | [Bevezetés az IoT-be](./1-getting-started/lessons/1-introduction-to-iot/README.md) | +| 02 | [Kezdetek](./1-getting-started/README.md) | Mélyebb bepillantás az IoT-be | Tudjon meg többet az IoT rendszer komponenseiről, valamint a mikrokontrollerekről és az egylemezes számítógépekről | [Mélyebb bepillantás az IoT-be](./1-getting-started/lessons/2-deeper-dive/README.md) | +| 03 | [Kezdetek](./1-getting-started/README.md) | Fizikai világgal való interakció érzékelőkkel és aktuátorokkal | Ismerje meg az érzékelőket az adatok gyűjtésére a fizikai világból, és az aktuátorokat a visszacsatolás küldésére, miközben egy éjszakai fényt épít | [Fizikai világgal való interakció érzékelőkkel és aktuátorokkal](./1-getting-started/lessons/3-sensors-and-actuators/README.md)| +| 04 | [Kezdetek](./1-getting-started/README.md) | Csatlakoztassa eszközét az internethez | Tudjon meg többet arról, hogyan lehet egy IoT eszközt az internethez csatlakoztatni üzenetek küldésére és fogadására, miközben az éjszakai fényt egy MQTT szerverhez kapcsolja | [Csatlakoztassa eszközét az internethez](./1-getting-started/lessons/4-connect-internet/README.md) | +| 05 | [Gazdaság](./2-farm/README.md) | Növények növekedésének előrejelzése | Tanulja meg, hogyan lehet a növények növekedését előrejelezni egy IoT eszköz által gyűjtött hőmérsékleti adatok alapján | [Növények növekedésének előrejelzése](./2-farm/lessons/1-predict-plant-growth/README.md) | +| 06 | [Gazdaság](./2-farm/README.md) | Talajnedvesség érzékelése | Tanulja meg, hogyan érzékelje a talajnedvességet és kalibrálja a talajnedvesség érzékelőt | [Talajnedvesség érzékelése](./2-farm/lessons/2-detect-soil-moisture/README.md) | +| 07 | [Gazdaság](./2-farm/README.md) | Növények automatikus öntözése | Tanulja meg az öntözés automatizálását és időzítését relé és MQTT használatával | [Növények automatikus öntözése](./2-farm/lessons/3-automated-plant-watering/README.md) | +| 08 | [Gazdaság](./2-farm/README.md) | Növényének felhőbe való migrálása | Ismerje meg a felhőt és a felhőalapú IoT szolgáltatásokat, és hogyan lehet növényét egy ilyen szolgáltatáshoz csatlakoztatni egy nyilvános MQTT szerver helyett | [Növényének felhőbe való migrálása](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | +| 09 | [Gazdaság](./2-farm/README.md) | Alkalmazás logika felhőbe helyezése | Tanulja meg, hogyan lehet felhőben írni alkalmazási logikát, amely reagál az IoT üzenetekre | [Alkalmazás logika felhőbe helyezése](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | +| 10 | [Gazdaság](./2-farm/README.md) | Növényének biztonsága | Tanuljon a biztonságról IoT-ben és arról, hogyan tarthatja növényét biztonságban kulcsokkal és tanúsítványokkal | [Növényének biztonsága](./2-farm/lessons/6-keep-your-plant-secure/README.md) | +| 11 | [Szállítás](./3-transport/README.md) | Helymeghatározás követés | Ismerje meg a GPS helymeghatározást IoT eszközökhöz | [Helymeghatározás követés](./3-transport/lessons/1-location-tracking/README.md) | +| 12 | [Szállítás](./3-transport/README.md) | Helyadatok tárolása | Tanulja meg az IoT adatok tárolását későbbi megjelenítés vagy elemzés céljára | [Helyadatok tárolása](./3-transport/lessons/2-store-location-data/README.md) | +| 13 | [Szállítás](./3-transport/README.md) | Helyadatok megjelenítése | Ismerje meg a helyadatok térképen való megjelenítését, és hogy a térképek hogyan ábrázolják a valós 3D világot 2 dimenzióban | [Helyadatok megjelenítése](./3-transport/lessons/3-visualize-location-data/README.md) | +| 14 | [Szállítás](./3-transport/README.md) | Geokerítések | Ismerje meg a geokerítéseket, és hogy hogyan lehet őket használni arra, hogy riasztást küldjenek, ha az ellátási lánc járművei közelítenek a célállomásukhoz | [Geokerítések](./3-transport/lessons/4-geofences/README.md) | +| 15 | [Gyártás](./4-manufacturing/README.md) | Tanítsa be a gyümölcsminőség-érzékelőt | Tanuljon képosztályozó képzéséről a felhőben, hogy felismerje a gyümölcs minőségét | [Gyümölcsminőség-érzékelő betanítása](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | +| 16 | [Gyártás](./4-manufacturing/README.md) | Gyümölcs minőségének ellenőrzése IoT eszközről | Tanulja meg, hogyan használja gyümölcsminőség-érzékelőjét egy IoT eszközről | [Gyümölcs minőségének ellenőrzése IoT eszközről](./4-manufacturing/lessons/2-check-fruit-from-device/README.md)| +| 17 | [Gyártás](./4-manufacturing/README.md) | Gyümölcs-érzékelő futtatása az edge-en | Tanuljon az edge IoT eszközön történő gyümölcs-érzékelő futtatásáról | [Gyümölcs-érzékelő futtatása az edge-en](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | +| 18 | [Gyártás](./4-manufacturing/README.md) | Gyümölcs minőség-érzékelés indítása szenzorról | Ismerje meg, hogyan lehet egy érzékelőről indítani a gyümölcs minőség-érzékelést | [Gyümölcs minőség-érzékelés indítása szenzorról](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | +| 19 | [Kiskereskedelem](./5-retail/README.md) | Árukészlet-érzékelő betanítása | Tanulja meg, hogyan használjon objektumfelismerést árukészlet-érzékelő betanítására a bolt készletének számolásához | [Árukészlet-érzékelő betanítása](./5-retail/lessons/1-train-stock-detector/README.md) | +| 20 | [Kiskereskedelem](./5-retail/README.md) | Árukészlet ellenőrzése IoT eszközről | Tanulja meg, hogyan ellenőrizze az árukészletet IoT eszközről egy objektumfelismerő modell segítségével | [Árukészlet ellenőrzése IoT eszközről](./5-retail/lessons/2-check-stock-device/README.md) | +| 21 | [Fogyasztó](./6-consumer/README.md) | Beszéd felismerése IoT eszközzel | Tanulja meg, hogyan ismerjék fel a beszédet IoT eszköz segítségével okos időzítő építéséhez | [Beszéd felismerése IoT eszközzel](./6-consumer/lessons/1-speech-recognition/README.md) | +| 22 | [Fogyasztó](./6-consumer/README.md) | Nyelv megértése | Tanulja meg, hogyan érthetők meg az IoT eszközhöz intézett mondatok | [Nyelv megértése](./6-consumer/lessons/2-language-understanding/README.md) | +| 23 | [Fogyasztó](./6-consumer/README.md) | Időzítő beállítása és hang alapú visszajelzés | Tanulja meg, hogyan állítson be időzítőt IoT eszközön, és hogyan adjon hangos visszajelzést az időzítő beállításáról és lejártáról | [Időzítő beállítása és hang alapú visszajelzés](./6-consumer/lessons/3-spoken-feedback/README.md) | +| 24 | [Fogyasztó](./6-consumer/README.md) | Több nyelv támogatása | Tanulja meg, hogyan támogasson több nyelvet, mind a megszólítás, mind az okos időzítő válaszai esetén | [Több nyelv támogatása](./6-consumer/lessons/4-multiple-language-support/README.md) | + +## Offline hozzáférés + +Ezt a dokumentációt offline is használhatja a [Docsify](https://docsify.js.org/#/) segítségével. Forkolja ezt a repót, telepítse a [Docsify-t](https://docsify.js.org/#/quickstart) a helyi gépére, majd a repó gyökérmappájában futtassa a `docsify serve` parancsot. A weboldal a localhost 3000-es portján lesz elérhető: `localhost:3000`. ## Kvíz -Köszönet a közösségnek az interaktív kvízért, amely teszteli tudásodat a fejezetekből. Tudásodat itt tesztelheted: [itt](https://ff-quizzes.netlify.app/en/) +Köszönet a közösségnek az interaktív kvíz összeállításáért, amely az egyes fejezetek tudását teszteli. Tudását [itt tesztelheti](https://ff-quizzes.netlify.app/en/). ### PDF -Szükség esetén készíthetsz PDF-et erről a tartalomról offline eléréshez. Ehhez győződj meg róla, hogy [az npm telepítve van](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm), majd futtasd a következő parancsokat a repó gyökerében: +Szükség esetén offline hozzáféréshez generálhat ebből a tartalomból PDF-et. Ehhez győződjön meg róla, hogy telepítve van az [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm), majd futtassa a következő parancsokat a repó gyökérmappájában: ```sh npm i npm run convert ``` +### Dia -### Diák - -Néhány lecke számára diákat is találsz a [slides](../../slides) mappában. +Néhány leckéhez dia-prezentációk találhatók a [slides](../../slides) mappában. +## Egyéb tantervek -## Egyéb tananyagok - -Csapatunk más tananyagokat is készít! Nézd meg: +Csapatunk más tanterveket is készít! Nézze meg: ### LangChain [![LangChain4j kezdőknek](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) [![LangChain.js kezdőknek](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) - +[![LangChain kezdőknek](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- -### Azure / Edge / MCP / Ügynökök +### Azure / Edge / MCP / Agents [![AZD kezdőknek](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI kezdőknek](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) [![MCP kezdőknek](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Ügynökök Kezdőknek](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI ügynökök kezdőknek](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Generatív AI Sorozat -[![Generatív AI Kezdőknek](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +### Generatív AI sorozat +[![Generatív AI kezdőknek](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) [![Generatív AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) [![Generatív AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) [![Generatív AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- -### Alapvető Tanulás -[![ML Kezdőknek](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Adattudomány Kezdőknek](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Kezdőknek](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![Kiberbiztonság Kezdőknek](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![Webfejlesztés Kezdőknek](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![IoT Kezdőknek](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![XR Fejlesztés Kezdőknek](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +### Alapvető tanulás +[![Gépi tanulás kezdőknek](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Adattudomány kezdőknek](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![AI kezdőknek](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Kiberbiztonság kezdőknek](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Webfejlesztés kezdőknek](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![IoT kezdőknek](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![XR fejlesztés kezdőknek](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Copilot Sorozat -[![Copilot AI Párprogramozáshoz](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +### Copilot sorozat +[![Copilot AI páros programozáshoz](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) [![Copilot C#/.NET-hez](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![Copilot Kaland](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +[![Copilot kalandok](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## Képek forrásmegjelölései +## Képek szerzői jogai -A tananyagban használt képek forrásmegjelöléseit, ahol szükséges, megtalálod a [Forrásmegjelölések](./attributions.md) fájlban. +Az ebben a tananyagban használt képek szerzői jogi megjelöléseit megtalálja a [Szerzői jogok](./attributions.md) fájlban, ahol szükséges. --- -**Jogi nyilatkozat**: -Ezt a dokumentumot a [Co-op Translator](https://github.com/Azure/co-op-translator) AI fordító szolgáltatás segítségével fordítottuk. Bár a pontosságra törekszünk, kérjük, vegye figyelembe, hogy az automatikus fordítások tartalmazhatnak hibákat vagy pontatlanságokat. Az eredeti dokumentum az anyanyelvén tekintendő elsődleges forrásnak. Lényeges információk esetén professzionális emberi fordítást javaslunk. Nem vállalunk felelősséget a fordítás használatából eredő félreértésekért vagy félreértelmezésekért. +**Jogi nyilatkozat**: +Ezt a dokumentumot az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével fordítottuk. Bár a pontosságra törekszünk, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti, anyanyelvi dokumentum tekintendő hivatalos forrásnak. Kritikus információk esetén professzionális, emberi fordítást javasolunk. Nem vállalunk felelősséget semmilyen félreértésért vagy értelmezési hibáért, amely ebből a fordításból ered. \ No newline at end of file diff --git a/translations/hu/hardware.md b/translations/hu/hardware.md index 29877065c..93287ee66 100644 --- a/translations/hu/hardware.md +++ b/translations/hu/hardware.md @@ -26,7 +26,7 @@ A Seeed Studios nagyon kedvesen elérhetővé tette az összes hardvert könnyen **[IoT kezdőknek a Seeed és a Microsoft segítségével - Raspberry Pi 4 Starter Kit](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html)** -[![A Raspberry Pi Terminal hardverkészlet](../../translated_images/hu/pi-hardware-kit.26dbadaedb7dd44c73b0131d5d68ea29472ed0a9744f90d5866c6d82f2d16380.png)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) +[![A Raspberry Pi Terminal hardverkészlet](../../translated_images/hu/pi-hardware-kit.26dbadaedb7dd44c.webp)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) ## Arduino diff --git a/translations/id/.co-op-translator.json b/translations/id/.co-op-translator.json index 1dc91c1e6..2c596e7b0 100644 --- a/translations/id/.co-op-translator.json +++ b/translations/id/.co-op-translator.json @@ -738,8 +738,8 @@ "language_code": "id" }, "README.md": { - "original_hash": "3fcc056cd3837e33d2bdf79f9c359fcf", - "translation_date": "2026-01-30T02:16:50+00:00", + "original_hash": "accf69391fa4450eadbf492ca024cccf", + "translation_date": "2026-04-06T16:15:24+00:00", "source_file": "README.md", "language_code": "id" }, diff --git a/translations/id/1-getting-started/lessons/1-introduction-to-iot/README.md b/translations/id/1-getting-started/lessons/1-introduction-to-iot/README.md index 2f3d44e06..7a2c0f7d6 100644 --- a/translations/id/1-getting-started/lessons/1-introduction-to-iot/README.md +++ b/translations/id/1-getting-started/lessons/1-introduction-to-iot/README.md @@ -1,6 +1,6 @@ # Pengantar IoT -![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-1.2606670fa61ee904687da5d6fa4e726639d524d064c895117da1b95b9ff6251d.jpg) +![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-1.2606670fa61ee904.webp) > Sketchnote oleh [Nitya Narasimhan](https://github.com/nitya). Klik gambar untuk versi yang lebih besar. diff --git a/translations/id/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md b/translations/id/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md index 93142f982..9d5ae359d 100644 --- a/translations/id/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md +++ b/translations/id/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md @@ -203,7 +203,7 @@ Sebagai langkah kedua 'Hello World', Anda akan menjalankan aplikasi CounterFit d Aplikasi akan mulai berjalan dan terbuka di browser web Anda: - ![Aplikasi Counter Fit berjalan di browser](../../../../../translated_images/id/counterfit-first-run.433326358b669b31d0e99c3513cb01bfbb13724d162c99cdcc8f51ecf5f9c779.png) + ![Aplikasi Counter Fit berjalan di browser](../../../../../translated_images/id/counterfit-first-run.433326358b669b31.webp) Aplikasi akan ditandai sebagai *Disconnected*, dengan LED di sudut kanan atas mati. @@ -224,7 +224,7 @@ Sebagai langkah kedua 'Hello World', Anda akan menjalankan aplikasi CounterFit d 1. Di terminal baru ini, jalankan file `app.py` seperti sebelumnya. Status CounterFit akan berubah menjadi **Connected** dan LED akan menyala. - ![Counter Fit menunjukkan status terhubung](../../../../../translated_images/id/counterfit-connected.ed30b46d8f79b0921f3fc70be10366e596a89dca3f80c2224a9d9fc98fccf884.png) + ![Counter Fit menunjukkan status terhubung](../../../../../translated_images/id/counterfit-connected.ed30b46d8f79b092.webp) > 💁 Anda dapat menemukan kode ini di folder [code/virtual-device](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/virtual-device). diff --git a/translations/id/1-getting-started/lessons/2-deeper-dive/README.md b/translations/id/1-getting-started/lessons/2-deeper-dive/README.md index ce749ff21..2f1803963 100644 --- a/translations/id/1-getting-started/lessons/2-deeper-dive/README.md +++ b/translations/id/1-getting-started/lessons/2-deeper-dive/README.md @@ -1,6 +1,6 @@ # Penjelajahan Lebih Dalam ke IoT -![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-2.324b0580d620c25e0a24fb7fddfc0b29a846dd4b82c08e7a9466d580ee78ce51.jpg) +![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-2.324b0580d620c25e.webp) > Sketchnote oleh [Nitya Narasimhan](https://github.com/nitya). Klik gambar untuk versi yang lebih besar. @@ -38,7 +38,7 @@ Bagian **Perangkat** dari IoT mengacu pada perangkat yang dapat berinteraksi den Perangkat ini berinteraksi dengan dunia fisik, baik dengan menggunakan sensor untuk mengumpulkan data dari lingkungan sekitar atau dengan mengontrol keluaran atau aktuator untuk membuat perubahan fisik. Contoh khasnya adalah termostat pintar - perangkat yang memiliki sensor suhu, alat untuk mengatur suhu yang diinginkan seperti dial atau layar sentuh, dan koneksi ke sistem pemanas atau pendingin yang dapat dihidupkan ketika suhu yang terdeteksi berada di luar rentang yang diinginkan. Sensor suhu mendeteksi bahwa ruangan terlalu dingin, dan aktuator menghidupkan pemanas. -![Diagram yang menunjukkan suhu dan dial sebagai input ke perangkat IoT, dan kontrol pemanas sebagai output](../../../../../translated_images/id/basic-thermostat.a923217fd1f37e5a6f3390396a65c22a387419ea2dd17e518ec24315ba6ae9a8.png) +![Diagram yang menunjukkan suhu dan dial sebagai input ke perangkat IoT, dan kontrol pemanas sebagai output](../../../../../translated_images/id/basic-thermostat.a923217fd1f37e5a.webp) Ada berbagai macam perangkat yang dapat bertindak sebagai perangkat IoT, mulai dari perangkat keras khusus yang mendeteksi satu hal, hingga perangkat serbaguna, bahkan ponsel pintar Anda! Ponsel pintar dapat menggunakan sensor untuk mendeteksi dunia di sekitarnya, dan aktuator untuk berinteraksi dengan dunia - misalnya menggunakan sensor GPS untuk mendeteksi lokasi Anda dan speaker untuk memberikan instruksi navigasi ke tujuan. @@ -54,7 +54,7 @@ Perangkat juga tidak selalu terhubung langsung ke Internet melalui WiFi atau kon Dalam contoh termostat pintar, termostat akan terhubung menggunakan WiFi rumah ke layanan cloud yang berjalan di cloud. Termostat akan mengirim data suhu ke layanan cloud ini, dan dari sana data akan ditulis ke semacam basis data yang memungkinkan pemilik rumah untuk memeriksa suhu saat ini dan suhu sebelumnya menggunakan aplikasi ponsel. Layanan lain di cloud akan mengetahui suhu yang diinginkan oleh pemilik rumah, dan mengirim pesan kembali ke perangkat IoT melalui layanan cloud untuk memberi tahu sistem pemanas untuk menyala atau mati. -![Diagram yang menunjukkan suhu dan dial sebagai input ke perangkat IoT, perangkat IoT dengan komunikasi dua arah ke cloud, yang pada gilirannya memiliki komunikasi dua arah ke ponsel, dan kontrol pemanas sebagai output dari perangkat IoT](../../../../../translated_images/id/mobile-controlled-thermostat.4a994010473d8d6a52ba68c67e5f02dc8928c717e93ca4b9bc55525aa75bbb60.png) +![Diagram yang menunjukkan suhu dan dial sebagai input ke perangkat IoT, perangkat IoT dengan komunikasi dua arah ke cloud, yang pada gilirannya memiliki komunikasi dua arah ke ponsel, dan kontrol pemanas sebagai output dari perangkat IoT](../../../../../translated_images/id/mobile-controlled-thermostat.4a994010473d8d6a.webp) Versi yang lebih pintar bahkan dapat menggunakan AI di cloud dengan data dari sensor lain yang terhubung ke perangkat IoT lain seperti sensor keberadaan yang mendeteksi ruangan mana yang digunakan, serta data seperti cuaca dan bahkan kalender Anda, untuk membuat keputusan tentang bagaimana mengatur suhu secara cerdas. Misalnya, AI dapat mematikan pemanas jika membaca dari kalender Anda bahwa Anda sedang berlibur, atau mematikan pemanas berdasarkan ruangan demi ruangan tergantung pada ruangan mana yang Anda gunakan, belajar dari data untuk menjadi semakin akurat seiring waktu. @@ -94,7 +94,7 @@ Semakin cepat siklus clock, semakin banyak instruksi yang dapat diproses setiap > 💁 CPU menjalankan program menggunakan [siklus fetch-decode-execute](https://wikipedia.org/wiki/Instruction_cycle). Untuk setiap detak clock, CPU akan mengambil instruksi berikutnya dari memori, mendekodenya, lalu menjalankannya seperti menggunakan unit logika aritmatika (ALU) untuk menambahkan 2 angka. Beberapa eksekusi akan memakan waktu beberapa detak untuk dijalankan, sehingga siklus berikutnya akan berjalan pada detak berikutnya setelah instruksi selesai. -![Siklus fetch-decode-execute yang menunjukkan fetch mengambil instruksi dari program yang disimpan di RAM, lalu mendekode dan mengeksekusinya di CPU](../../../../../translated_images/id/fetch-decode-execute.2fd6f150f6280392807f4475382319abd0cee0b90058e1735444d6baa6f2078c.png) +![Siklus fetch-decode-execute yang menunjukkan fetch mengambil instruksi dari program yang disimpan di RAM, lalu mendekode dan mengeksekusinya di CPU](../../../../../translated_images/id/fetch-decode-execute.2fd6f150f6280392.webp) Mikrokontroler memiliki kecepatan clock yang jauh lebih rendah dibandingkan komputer desktop atau laptop, atau bahkan sebagian besar ponsel pintar. Misalnya, Wio Terminal memiliki CPU yang berjalan pada 120MHz atau 120.000.000 siklus per detik. @@ -182,7 +182,7 @@ Papan Arduino diprogram dalam C atau C++. Menggunakan C/C++ memungkinkan kode An Anda akan menulis kode setup Anda di fungsi `setup`, seperti menghubungkan ke WiFi dan layanan cloud atau menginisialisasi pin untuk input dan output. Kode loop Anda kemudian akan berisi kode pemrosesan, seperti membaca dari sensor dan mengirimkan nilainya ke cloud. Biasanya Anda akan menyertakan penundaan di setiap loop, misalnya, jika Anda hanya ingin data sensor dikirim setiap 10 detik, Anda akan menambahkan penundaan 10 detik di akhir loop sehingga mikrokontroler dapat tidur, menghemat daya, lalu menjalankan loop lagi saat diperlukan 10 detik kemudian. -![Sebuah sketch Arduino menjalankan setup terlebih dahulu, lalu menjalankan loop berulang kali](../../../../../translated_images/id/arduino-sketch.79590cb837ff7a7c6a68d1afda6cab83fd53d3bb1bd9a8bf2eaf8d693a4d3ea6.png) +![Sebuah sketch Arduino menjalankan setup terlebih dahulu, lalu menjalankan loop berulang kali](../../../../../translated_images/id/arduino-sketch.79590cb837ff7a7c.webp) ✅ Arsitektur program ini dikenal sebagai *event loop* atau *message loop*. Banyak aplikasi menggunakan ini di balik layar dan ini adalah standar untuk sebagian besar aplikasi desktop yang berjalan di OS seperti Windows, macOS, atau Linux. Fungsi `loop` mendengarkan pesan dari komponen antarmuka pengguna seperti tombol, atau perangkat seperti keyboard, dan meresponsnya. Anda dapat membaca lebih lanjut di [artikel tentang event loop](https://wikipedia.org/wiki/Event_loop). diff --git a/translations/id/1-getting-started/lessons/3-sensors-and-actuators/README.md b/translations/id/1-getting-started/lessons/3-sensors-and-actuators/README.md index 554224ead..17632a6a8 100644 --- a/translations/id/1-getting-started/lessons/3-sensors-and-actuators/README.md +++ b/translations/id/1-getting-started/lessons/3-sensors-and-actuators/README.md @@ -1,6 +1,6 @@ # Berinteraksi dengan Dunia Fisik Menggunakan Sensor dan Aktuator -![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-3.cc3b7b4cd646de598698cce043c0393fd62ef42bac2eaf60e61272cd844250f4.jpg) +![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-3.cc3b7b4cd646de59.webp) > Sketchnote oleh [Nitya Narasimhan](https://github.com/nitya). Klik gambar untuk versi yang lebih besar. @@ -92,7 +92,7 @@ Sensor digital, seperti sensor analog, mendeteksi dunia di sekitar mereka menggu Sensor digital paling sederhana adalah tombol atau saklar. Ini adalah sensor dengan dua keadaan, hidup atau mati. -![Tombol menerima 5 volt. Saat tidak ditekan, mengembalikan 0 volt; saat ditekan, mengembalikan 5 volt](../../../../../translated_images/id/button.eadb560b77ac45e56f523d9d8876e40444f63b419e33eb820082d461fa79490b.png) +![Tombol menerima 5 volt. Saat tidak ditekan, mengembalikan 0 volt; saat ditekan, mengembalikan 5 volt](../../../../../translated_images/id/button.eadb560b77ac45e5.webp) Pin pada perangkat IoT seperti pin GPIO dapat mengukur sinyal ini secara langsung sebagai 0 atau 1. Jika tegangan yang dikirim sama dengan tegangan yang dikembalikan, nilai yang dibaca adalah 1, jika tidak nilai yang dibaca adalah 0. Tidak perlu mengonversi sinyal, sinyal hanya bisa berupa 1 atau 0. @@ -125,7 +125,7 @@ Beberapa aktuator umum meliputi: Ikuti panduan yang relevan di bawah ini untuk menambahkan aktuator ke perangkat IoT Anda, yang dikendalikan oleh sensor, untuk membangun lampu malam IoT. Lampu ini akan mengumpulkan tingkat cahaya dari sensor cahaya, dan menggunakan aktuator berupa LED untuk memancarkan cahaya saat tingkat cahaya yang terdeteksi terlalu rendah. -![Diagram alur tugas menunjukkan tingkat cahaya yang dibaca dan diperiksa, serta LED yang dikendalikan](../../../../../translated_images/id/assignment-1-flow.7552a51acb1a5ec858dca6e855cdbb44206434006df8ba3799a25afcdab1665d.png) +![Diagram alur tugas menunjukkan tingkat cahaya yang dibaca dan diperiksa, serta LED yang dikendalikan](../../../../../translated_images/id/assignment-1-flow.7552a51acb1a5ec8.webp) * [Arduino - Wio Terminal](wio-terminal-actuator.md) * [Komputer papan tunggal - Raspberry Pi](pi-actuator.md) @@ -140,7 +140,7 @@ Seperti sensor, aktuator dapat berupa analog atau digital. Aktuator analog menerima sinyal analog dan mengubahnya menjadi semacam interaksi, di mana interaksi tersebut berubah berdasarkan tegangan yang diberikan. Salah satu contohnya adalah lampu yang dapat diredupkan, seperti yang mungkin Anda miliki di rumah Anda. Jumlah tegangan yang diberikan ke lampu menentukan seberapa terang lampu tersebut. -![Cahaya redup pada tegangan rendah dan lebih terang pada tegangan tinggi](../../../../../translated_images/id/dimmable-light.9ceffeb195dec1a849da718b2d71b32c35171ff7dfea9c07bbf82646a67acf6b.png) +![Cahaya redup pada tegangan rendah dan lebih terang pada tegangan tinggi](../../../../../translated_images/id/dimmable-light.9ceffeb195dec1a8.webp) Seperti halnya sensor, perangkat IoT sebenarnya bekerja dengan sinyal digital, bukan analog. Ini berarti untuk mengirimkan sinyal analog, perangkat IoT memerlukan konverter digital ke analog (DAC), baik langsung pada perangkat IoT atau pada papan konektor. Konverter ini akan mengubah 0 dan 1 dari perangkat IoT menjadi tegangan analog yang dapat digunakan oleh aktuator. @@ -187,7 +187,7 @@ Aktuator digital, seperti sensor digital, memiliki dua keadaan yang dikontrol ol Salah satu aktuator digital sederhana adalah LED. Ketika perangkat mengirimkan sinyal digital 1, tegangan tinggi dikirimkan yang menyalakan LED. Ketika sinyal digital 0 dikirimkan, tegangan turun menjadi 0V dan LED mati. -![LED mati pada 0 volt dan menyala pada 5V](../../../../../translated_images/id/led.ec6d94f66676a174ad06d9fa9ea49c2ee89beb18b312d5c6476467c66375b07f.png) +![LED mati pada 0 volt dan menyala pada 5V](../../../../../translated_images/id/led.ec6d94f66676a174.webp) ✅ Aktuator 2-keadaan sederhana apa lagi yang bisa kamu pikirkan? Salah satu contohnya adalah solenoid, yang merupakan elektromagnet yang dapat diaktifkan untuk melakukan hal-hal seperti menggerakkan baut pintu untuk mengunci/membuka kunci pintu. diff --git a/translations/id/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md b/translations/id/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md index 213e74288..049522deb 100644 --- a/translations/id/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md +++ b/translations/id/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md @@ -26,7 +26,7 @@ Grove LED hadir sebagai modul dengan beberapa pilihan LED, memungkinkan Anda mem Hubungkan LED. -![Sebuah Grove LED](../../../../../translated_images/id/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![Sebuah Grove LED](../../../../../translated_images/id/grove-led.6c853be93f473cf2.webp) 1. Pilih LED favorit Anda dan masukkan kaki-kakinya ke dalam dua lubang pada modul LED. @@ -40,7 +40,7 @@ Hubungkan LED. 1. Dengan Raspberry Pi dalam keadaan mati, hubungkan ujung lain kabel Grove ke soket digital yang ditandai **D5** pada Grove Base hat yang terpasang pada Pi. Soket ini adalah soket kedua dari kiri, pada baris soket di sebelah pin GPIO. -![Grove LED terhubung ke soket D5](../../../../../translated_images/id/pi-led.97f1d474981dc35d1c7996c7b17de355d3d0a6bc9606d79fa5f89df933415122.png) +![Grove LED terhubung ke soket D5](../../../../../translated_images/id/pi-led.97f1d474981dc35d.webp) ## Program Lampu Malam diff --git a/translations/id/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md b/translations/id/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md index 6d3ccebf3..ee4785cc3 100644 --- a/translations/id/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md +++ b/translations/id/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md @@ -16,13 +16,13 @@ Sensor cahaya Grove yang digunakan untuk mendeteksi tingkat cahaya perlu dihubun Hubungkan sensor cahaya. -![Sensor cahaya Grove](../../../../../translated_images/id/grove-light-sensor.b8127b7c434e632d6bcdb57587a14e9ef69a268a22df95d08628f62b8fa5505c.png) +![Sensor cahaya Grove](../../../../../translated_images/id/grove-light-sensor.b8127b7c434e632d.webp) 1. Masukkan salah satu ujung kabel Grove ke soket pada modul sensor cahaya. Kabel hanya dapat masuk dengan satu arah. 1. Dengan Raspberry Pi dalam keadaan mati, hubungkan ujung lain kabel Grove ke soket analog yang diberi tanda **A0** pada Grove Base hat yang terpasang pada Pi. Soket ini adalah soket kedua dari kanan, pada baris soket di sebelah pin GPIO. -![Sensor cahaya Grove terhubung ke soket A0](../../../../../translated_images/id/pi-light-sensor.66cc1e31fa48cd7d5f23400d4b2119aa41508275cb7c778053a7923b4e972d7e.png) +![Sensor cahaya Grove terhubung ke soket A0](../../../../../translated_images/id/pi-light-sensor.66cc1e31fa48cd7d.webp) ## Program Sensor Cahaya diff --git a/translations/id/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md b/translations/id/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md index 0f4749db7..de5a8677e 100644 --- a/translations/id/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md +++ b/translations/id/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md @@ -36,11 +36,11 @@ Tambahkan LED ke aplikasi CounterFit. 1. Pilih tombol **Add** untuk membuat LED pada Pin 5. - ![Pengaturan LED](../../../../../translated_images/id/counterfit-create-led.ba9db1c9b8c622a635d6dfae5cdc4e70c2b250635bd4f0601c6cf0bd22b7ba46.png) + ![Pengaturan LED](../../../../../translated_images/id/counterfit-create-led.ba9db1c9b8c622a6.webp) LED akan dibuat dan muncul di daftar aktuator. - ![LED yang telah dibuat](../../../../../translated_images/id/counterfit-led.c0ab02de6d256ad84d9bad4d67a7faa709f0ea83e410cfe9b5561ef0cef30b1c.png) + ![LED yang telah dibuat](../../../../../translated_images/id/counterfit-led.c0ab02de6d256ad8.webp) Setelah LED dibuat, Anda dapat mengubah warnanya menggunakan pemilih *Color*. Pilih tombol **Set** untuk mengubah warna setelah Anda memilihnya. diff --git a/translations/id/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md b/translations/id/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md index 507bf7b3c..0a3dfb7cc 100644 --- a/translations/id/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md +++ b/translations/id/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md @@ -28,11 +28,11 @@ Tambahkan sensor cahaya ke aplikasi CounterFit. 1. Pilih tombol **Add** untuk membuat sensor cahaya pada Pin 0. - ![Pengaturan sensor cahaya](../../../../../translated_images/id/counterfit-create-light-sensor.9f36a5e0d4458d8d554d54b34d2c806d56093d6e49fddcda2d20f6fef7f5cce1.png) + ![Pengaturan sensor cahaya](../../../../../translated_images/id/counterfit-create-light-sensor.9f36a5e0d4458d8d.webp) Sensor cahaya akan dibuat dan muncul di daftar sensor. - ![Sensor cahaya dibuat](../../../../../translated_images/id/counterfit-light-sensor.5d0f5584df56b90f6b2561910d9cb20dfbd73eeff2177c238d38f4de54aefae1.png) + ![Sensor cahaya dibuat](../../../../../translated_images/id/counterfit-light-sensor.5d0f5584df56b90f.webp) ## Memprogram Sensor Cahaya diff --git a/translations/id/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md b/translations/id/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md index dd1536a34..e4e907064 100644 --- a/translations/id/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md +++ b/translations/id/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md @@ -26,7 +26,7 @@ Grove LED hadir sebagai modul dengan beberapa pilihan LED, memungkinkan Anda mem Hubungkan LED. -![Sebuah Grove LED](../../../../../translated_images/id/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![Sebuah Grove LED](../../../../../translated_images/id/grove-led.6c853be93f473cf2.webp) 1. Pilih LED favorit Anda dan masukkan kaki-kakinya ke dalam dua lubang pada modul LED. diff --git a/translations/id/1-getting-started/lessons/4-connect-internet/README.md b/translations/id/1-getting-started/lessons/4-connect-internet/README.md index 046295022..043f93572 100644 --- a/translations/id/1-getting-started/lessons/4-connect-internet/README.md +++ b/translations/id/1-getting-started/lessons/4-connect-internet/README.md @@ -1,6 +1,6 @@ # Hubungkan perangkat Anda ke Internet -![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-4.7344e074ea68fa545fd320b12dce36d72dd62d28c3b4596cb26cf315f434b98f.jpg) +![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-4.7344e074ea68fa54.webp) > Sketchnote oleh [Nitya Narasimhan](https://github.com/nitya). Klik gambar untuk versi yang lebih besar. @@ -47,7 +47,7 @@ MQTT adalah protokol komunikasi paling populer untuk perangkat IoT dan akan diba MQTT memiliki satu broker dan beberapa klien. Semua klien terhubung ke broker, dan broker merutekan pesan ke klien yang relevan. Pesan dirutekan menggunakan topik bernama, bukan dikirim langsung ke klien individu. Klien dapat mempublikasikan ke topik, dan klien mana pun yang berlangganan topik tersebut akan menerima pesan. -![Perangkat IoT mempublikasikan telemetri pada topik /telemetry, dan layanan cloud berlangganan topik tersebut](../../../../../translated_images/id/mqtt.cbf7f21d9adc3e17548b359444cc11bb4bf2010543e32ece9a47becf54438c23.png) +![Perangkat IoT mempublikasikan telemetri pada topik /telemetry, dan layanan cloud berlangganan topik tersebut](../../../../../translated_images/id/mqtt.cbf7f21d9adc3e17.webp) ✅ Lakukan riset. Jika Anda memiliki banyak perangkat IoT, bagaimana Anda dapat memastikan broker MQTT Anda dapat menangani semua pesan? @@ -69,7 +69,7 @@ Daripada menangani kompleksitas pengaturan broker MQTT sebagai bagian dari tugas > 💁 Broker uji ini bersifat publik dan tidak aman. Siapa pun dapat mendengarkan apa yang Anda publikasikan, jadi tidak boleh digunakan dengan data apa pun yang perlu dirahasiakan. -![Diagram alur tugas menunjukkan tingkat cahaya yang dibaca dan diperiksa, serta LED yang dikontrol](../../../../../translated_images/id/assignment-1-internet-flow.3256feab5f052fd273bf4e331157c574c2c3fa42e479836fc9c3586f41db35a5.png) +![Diagram alur tugas menunjukkan tingkat cahaya yang dibaca dan diperiksa, serta LED yang dikontrol](../../../../../translated_images/id/assignment-1-internet-flow.3256feab5f052fd2.webp) Ikuti langkah yang relevan di bawah ini untuk menghubungkan perangkat Anda ke broker MQTT: @@ -350,7 +350,7 @@ Untuk mesin, Anda mungkin ingin menyimpan data, terutama jika data tersebut digu Desainer perangkat IoT juga harus mempertimbangkan apakah perangkat IoT dapat digunakan selama gangguan Internet atau kehilangan sinyal yang disebabkan oleh lokasi. Sebuah termostat pintar harus dapat membuat beberapa keputusan terbatas untuk mengontrol pemanasan jika tidak dapat mengirim telemetri ke cloud karena gangguan. -[![Ferrari ini rusak karena seseorang mencoba memperbaruinya di bawah tanah di mana tidak ada sinyal seluler](../../../../../translated_images/id/bricked-car.dc38f8efadc6c59d76211f981a521efb300939283dee468f79503aae3ec67615.png)](https://twitter.com/internetofshit/status/1315736960082808832) +[![Ferrari ini rusak karena seseorang mencoba memperbaruinya di bawah tanah di mana tidak ada sinyal seluler](../../../../../translated_images/id/bricked-car.dc38f8efadc6c59d.webp)](https://twitter.com/internetofshit/status/1315736960082808832) Untuk MQTT menangani kehilangan konektivitas, kode perangkat dan server harus bertanggung jawab untuk memastikan pengiriman pesan jika diperlukan, misalnya dengan mewajibkan semua pesan yang dikirim dijawab oleh pesan tambahan pada topik balasan, dan jika tidak, pesan tersebut diantrekan secara manual untuk diputar ulang nanti. @@ -358,7 +358,7 @@ Untuk MQTT menangani kehilangan konektivitas, kode perangkat dan server harus be Perintah adalah pesan yang dikirim oleh cloud ke perangkat, menginstruksikannya untuk melakukan sesuatu. Sebagian besar waktu ini melibatkan memberikan beberapa jenis output melalui aktuator, tetapi bisa juga berupa instruksi untuk perangkat itu sendiri, seperti untuk reboot, atau mengumpulkan telemetri tambahan dan mengembalikannya sebagai respons terhadap perintah. -![Termostat yang terhubung ke Internet menerima perintah untuk menyalakan pemanas](../../../../../translated_images/id/commands.d6c06bbbb3a02cce95f2831a1c331daf6dedd4e470c4aa2b0ae54f332016e504.png) +![Termostat yang terhubung ke Internet menerima perintah untuk menyalakan pemanas](../../../../../translated_images/id/commands.d6c06bbbb3a02cce.webp) Sebuah termostat dapat menerima perintah dari cloud untuk menyalakan pemanas. Berdasarkan data telemetri dari semua sensor, jika layanan cloud memutuskan bahwa pemanas harus menyala, maka ia mengirimkan perintah yang relevan. diff --git a/translations/id/2-farm/lessons/1-predict-plant-growth/README.md b/translations/id/2-farm/lessons/1-predict-plant-growth/README.md index 17f2ce9f3..306b16fba 100644 --- a/translations/id/2-farm/lessons/1-predict-plant-growth/README.md +++ b/translations/id/2-farm/lessons/1-predict-plant-growth/README.md @@ -1,6 +1,6 @@ # Prediksi Pertumbuhan Tanaman dengan IoT -![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-5.42b234299279d263143148b88ab4583861a32ddb03110c6c1120e41bb88b2592.jpg) +![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-5.42b234299279d263.webp) > Sketchnote oleh [Nitya Narasimhan](https://github.com/nitya). Klik gambar untuk versi yang lebih besar. @@ -90,7 +90,7 @@ Hari derajat pertumbuhan, atau GDD dihitung per hari sebagai suhu rata-rata dala Rumus lengkap untuk GDD sedikit rumit, tetapi ada persamaan yang disederhanakan yang sering digunakan sebagai pendekatan yang baik: -![GDD = T max + T min dibagi 2, semua dikurangi T base](../../../../../translated_images/id/gdd-calculation.79b3660f9c5757aa92dc2dd2cdde75344e2d2c1565c4b3151640f7887edc0275.png) +![GDD = T max + T min dibagi 2, semua dikurangi T base](../../../../../translated_images/id/gdd-calculation.79b3660f9c5757aa.webp) * **GDD** - ini adalah jumlah hari derajat pertumbuhan * **T max** - ini adalah suhu maksimum harian dalam derajat Celsius @@ -118,7 +118,7 @@ Memasukkan angka-angka ini ke dalam perhitungan kita: Ini memberikan perhitungan: -![GDD = 16 + 12 dibagi 2, semua dikurangi 10, memberikan jawaban 4](../../../../../translated_images/id/gdd-calculation-corn.64a58b7a7afcd0dfd46ff733996d939f17f4f3feac9f0d1c632be3523e51ebd9.png) +![GDD = 16 + 12 dibagi 2, semua dikurangi 10, memberikan jawaban 4](../../../../../translated_images/id/gdd-calculation-corn.64a58b7a7afcd0df.webp) Jagung menerima 4 GDD pada hari itu. Dengan asumsi varietas jagung yang membutuhkan 800 GDD untuk matang, ia akan membutuhkan 796 GDD lagi untuk mencapai kematangan. @@ -239,7 +239,7 @@ Langkah-langkah untuk melakukannya secara manual adalah: Sebagai contoh, jika suhu tertinggi untuk hari itu adalah 25°C, dan terendah adalah 12°C: -![GDD = 25 + 12 dibagi 2, lalu kurangi 10 dari hasilnya sehingga menghasilkan 8.5](../../../../../translated_images/id/gdd-calculation-strawberries.59f57db94b22adb8ff6efb951ace33af104a1c6ccca3ffb0f8169c14cb160c90.png) +![GDD = 25 + 12 dibagi 2, lalu kurangi 10 dari hasilnya sehingga menghasilkan 8.5](../../../../../translated_images/id/gdd-calculation-strawberries.59f57db94b22adb8.webp) * 25 + 12 = 37 * 37 / 2 = 18.5 diff --git a/translations/id/2-farm/lessons/1-predict-plant-growth/assignment.md b/translations/id/2-farm/lessons/1-predict-plant-growth/assignment.md index 1ebff580e..567db686d 100644 --- a/translations/id/2-farm/lessons/1-predict-plant-growth/assignment.md +++ b/translations/id/2-farm/lessons/1-predict-plant-growth/assignment.md @@ -33,7 +33,7 @@ Setelah Anda memiliki data suhu, Anda dapat menggunakan Jupyter Notebook dalam r Jupyter akan mulai dan membuka notebook di browser Anda. Ikuti instruksi dalam notebook untuk memvisualisasikan suhu yang diukur, dan menghitung growing degree days. - ![The jupyter notebook](../../../../../translated_images/id/gdd-jupyter-notebook.c5b52cf21094f158a61f47f455490fd95f1729777ff90861a4521820bf354cdc.png) + ![The jupyter notebook](../../../../../translated_images/id/gdd-jupyter-notebook.c5b52cf21094f158.webp) ## Rubrik diff --git a/translations/id/2-farm/lessons/1-predict-plant-growth/pi-temp.md b/translations/id/2-farm/lessons/1-predict-plant-growth/pi-temp.md index f2653d1d5..940229451 100644 --- a/translations/id/2-farm/lessons/1-predict-plant-growth/pi-temp.md +++ b/translations/id/2-farm/lessons/1-predict-plant-growth/pi-temp.md @@ -16,13 +16,13 @@ Sensor suhu Grove dapat dihubungkan ke Raspberry Pi. Hubungkan sensor suhu -![Sensor suhu Grove](../../../../../translated_images/id/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![Sensor suhu Grove](../../../../../translated_images/id/grove-dht11.07f8eafceee17004.webp) 1. Masukkan salah satu ujung kabel Grove ke soket pada sensor kelembapan dan suhu. Kabel hanya dapat masuk dengan satu arah. 1. Dengan Raspberry Pi dalam keadaan mati, hubungkan ujung lain kabel Grove ke soket digital yang diberi tanda **D5** pada Grove Base hat yang terpasang pada Pi. Soket ini adalah soket kedua dari kiri, pada baris soket di sebelah pin GPIO. -![Sensor suhu Grove terhubung ke soket A0](../../../../../translated_images/id/pi-temperature-sensor.3ff82fff672c8e565ef25a39d26d111de006b825a7e0867227ef4e7fbff8553c.png) +![Sensor suhu Grove terhubung ke soket A0](../../../../../translated_images/id/pi-temperature-sensor.3ff82fff672c8e56.webp) ## Memprogram Sensor Suhu diff --git a/translations/id/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md b/translations/id/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md index 0805056e0..d987423bd 100644 --- a/translations/id/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md +++ b/translations/id/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md @@ -38,11 +38,11 @@ Tambahkan sensor kelembapan dan suhu ke aplikasi CounterFit. 1. Pilih tombol **Add** untuk membuat sensor kelembapan pada Pin 5. - ![Pengaturan sensor kelembapan](../../../../../translated_images/id/counterfit-create-humidity-sensor.2750e27b6f30e09cf4e22101defd5252710717620816ab41ba688f91f757c49a.png) + ![Pengaturan sensor kelembapan](../../../../../translated_images/id/counterfit-create-humidity-sensor.2750e27b6f30e09c.webp) Sensor kelembapan akan dibuat dan muncul di daftar sensor. - ![Sensor kelembapan dibuat](../../../../../translated_images/id/counterfit-humidity-sensor.7b12f7f339e430cb26c8211d2dba4ef75261b353a01da0932698b5bebd693f27.png) + ![Sensor kelembapan dibuat](../../../../../translated_images/id/counterfit-humidity-sensor.7b12f7f339e430cb.webp) 1. Buat sensor suhu: @@ -54,11 +54,11 @@ Tambahkan sensor kelembapan dan suhu ke aplikasi CounterFit. 1. Pilih tombol **Add** untuk membuat sensor suhu pada Pin 6. - ![Pengaturan sensor suhu](../../../../../translated_images/id/counterfit-create-temperature-sensor.199350ed34f7343d79dccbe95eaf6c11d2121f03d1c35ab9613b330c23f39b29.png) + ![Pengaturan sensor suhu](../../../../../translated_images/id/counterfit-create-temperature-sensor.199350ed34f7343d.webp) Sensor suhu akan dibuat dan muncul di daftar sensor. - ![Sensor suhu dibuat](../../../../../translated_images/id/counterfit-temperature-sensor.f0560236c96a9016bafce7f6f792476fe3367bc6941a1f7d5811d144d4bcbfff.png) + ![Sensor suhu dibuat](../../../../../translated_images/id/counterfit-temperature-sensor.f0560236c96a9016.webp) ## Memprogram Aplikasi Sensor Suhu diff --git a/translations/id/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md b/translations/id/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md index 22ab1bff3..e96fdcde7 100644 --- a/translations/id/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md +++ b/translations/id/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md @@ -18,7 +18,7 @@ Sensor suhu Grove dapat dihubungkan ke port digital Wio Terminal. Hubungkan sensor suhu. -![Sensor suhu Grove](../../../../../translated_images/id/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![Sensor suhu Grove](../../../../../translated_images/id/grove-dht11.07f8eafceee17004.webp) 1. Masukkan salah satu ujung kabel Grove ke soket pada sensor kelembapan dan suhu. Kabel hanya dapat masuk dengan satu arah. diff --git a/translations/id/2-farm/lessons/2-detect-soil-moisture/README.md b/translations/id/2-farm/lessons/2-detect-soil-moisture/README.md index 1442688ab..de064df79 100644 --- a/translations/id/2-farm/lessons/2-detect-soil-moisture/README.md +++ b/translations/id/2-farm/lessons/2-detect-soil-moisture/README.md @@ -13,7 +13,7 @@ I²C memiliki bus yang terdiri dari 2 kabel utama, bersama dengan 2 kabel daya: | VCC | Voltage common collector | Sumber daya untuk perangkat. Kabel ini terhubung ke kabel SDA dan SCL untuk menyediakan daya mereka melalui resistor pull-up yang mematikan sinyal saat tidak ada perangkat yang menjadi kontroler. | | GND | Ground | Memberikan ground umum untuk rangkaian listrik. | -![Bus I2C dengan 3 perangkat yang terhubung ke kabel SDA dan SCL, berbagi kabel ground yang sama](../../../../../translated_images/id/i2c.83da845dde02256bdd462dbe0d5145461416b74930571b89d1ae142841eeb584.png) +![Bus I2C dengan 3 perangkat yang terhubung ke kabel SDA dan SCL, berbagi kabel ground yang sama](../../../../../translated_images/id/i2c.83da845dde02256b.webp) Untuk mengirim data, satu perangkat akan mengeluarkan kondisi mulai (start condition) untuk menunjukkan bahwa ia siap mengirim data. Perangkat tersebut kemudian menjadi kontroler. Kontroler kemudian mengirimkan alamat perangkat yang ingin dikomunikasikan, bersama dengan informasi apakah ia ingin membaca atau menulis data. Setelah data ditransmisikan, kontroler mengirimkan kondisi berhenti (stop condition) untuk menunjukkan bahwa ia telah selesai. Setelah itu, perangkat lain dapat menjadi kontroler dan mengirim atau menerima data. diff --git a/translations/id/2-farm/lessons/2-detect-soil-moisture/assignment.md b/translations/id/2-farm/lessons/2-detect-soil-moisture/assignment.md index 7f197b3a5..916c5c0e1 100644 --- a/translations/id/2-farm/lessons/2-detect-soil-moisture/assignment.md +++ b/translations/id/2-farm/lessons/2-detect-soil-moisture/assignment.md @@ -20,7 +20,7 @@ Anda perlu mengulangi langkah-langkah ini beberapa kali untuk mendapatkan pembac Kelembapan tanah gravimetrik dihitung sebagai: -![kelembapan tanah % adalah berat basah dikurangi berat kering, dibagi berat kering, dikalikan 100](../../../../../translated_images/id/gsm-calculation.6da38c6201eec14e7573bb2647aa18892883193553d23c9d77e5dc681522dfb2.png) +![kelembapan tanah % adalah berat basah dikurangi berat kering, dibagi berat kering, dikalikan 100](../../../../../translated_images/id/gsm-calculation.6da38c6201eec14e.webp) * W - berat tanah basah @@ -29,7 +29,7 @@ Kelembapan tanah gravimetrik dihitung sebagai: Sebagai contoh, katakanlah Anda memiliki sampel tanah yang beratnya 212g basah, dan 197g kering. -![Perhitungan yang sudah diisi](../../../../../translated_images/id/gsm-calculation-example.99f9803b4f29e97668e7c15412136c0c399ab12dbba0b89596fdae9d8aedb6fb.png) +![Perhitungan yang sudah diisi](../../../../../translated_images/id/gsm-calculation-example.99f9803b4f29e976.webp) * W = 212g * W = 197g diff --git a/translations/id/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md b/translations/id/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md index 8a20a4dc1..88b1a2ebc 100644 --- a/translations/id/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md +++ b/translations/id/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md @@ -18,13 +18,13 @@ Sensor kelembapan tanah Grove dapat dihubungkan ke Raspberry Pi. Hubungkan sensor kelembapan tanah. -![Sensor kelembapan tanah Grove](../../../../../translated_images/id/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![Sensor kelembapan tanah Grove](../../../../../translated_images/id/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. Masukkan salah satu ujung kabel Grove ke soket pada sensor kelembapan tanah. Kabel hanya dapat masuk dengan satu arah. 1. Dengan Raspberry Pi dalam keadaan mati, hubungkan ujung kabel Grove lainnya ke soket analog yang ditandai **A0** pada Grove Base Hat yang terpasang di Pi. Soket ini adalah soket kedua dari kanan, pada baris soket di sebelah pin GPIO. -![Sensor kelembapan tanah Grove terhubung ke soket A0](../../../../../translated_images/id/pi-soil-moisture-sensor.fdd7eb2393792cf6739cacf1985d9f55beda16d372f30d0b5a51d586f978a870.png) +![Sensor kelembapan tanah Grove terhubung ke soket A0](../../../../../translated_images/id/pi-soil-moisture-sensor.fdd7eb2393792cf6.webp) 1. Masukkan sensor kelembapan tanah ke dalam tanah. Sensor memiliki 'garis posisi tertinggi' - garis putih melintang pada sensor. Masukkan sensor hingga garis ini, tetapi jangan melebihi garis tersebut. diff --git a/translations/id/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md b/translations/id/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md index bb1c1e273..80f32933d 100644 --- a/translations/id/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md +++ b/translations/id/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md @@ -34,11 +34,11 @@ Tambahkan sensor kelembapan tanah ke aplikasi CounterFit. 1. Pilih tombol **Add** untuk membuat sensor *Soil Moisture* pada Pin 0. - ![Pengaturan sensor kelembapan tanah](../../../../../translated_images/id/counterfit-create-soil-moisture-sensor.35266135a5e0ae68b29a684d7db0d2933a8098b2307d197f7c71577b724603aa.png) + ![Pengaturan sensor kelembapan tanah](../../../../../translated_images/id/counterfit-create-soil-moisture-sensor.35266135a5e0ae68.webp) Sensor kelembapan tanah akan dibuat dan muncul di daftar sensor. - ![Sensor kelembapan tanah telah dibuat](../../../../../translated_images/id/counterfit-soil-moisture-sensor.81742b2de0e9de60a3b3b9a2ff8ecc686d428eb6d71820f27a693be26e5aceee.png) + ![Sensor kelembapan tanah telah dibuat](../../../../../translated_images/id/counterfit-soil-moisture-sensor.81742b2de0e9de60.webp) ## Memprogram Aplikasi Sensor Kelembapan Tanah diff --git a/translations/id/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md b/translations/id/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md index 288a1b2da..52bf634e8 100644 --- a/translations/id/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md +++ b/translations/id/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md @@ -18,7 +18,7 @@ Sensor kelembapan tanah Grove dapat dihubungkan ke port analog/digital yang dapa Hubungkan sensor kelembapan tanah. -![Sensor kelembapan tanah Grove](../../../../../translated_images/id/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![Sensor kelembapan tanah Grove](../../../../../translated_images/id/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. Masukkan salah satu ujung kabel Grove ke soket pada sensor kelembapan tanah. Kabel hanya dapat masuk dengan satu arah. diff --git a/translations/id/2-farm/lessons/3-automated-plant-watering/README.md b/translations/id/2-farm/lessons/3-automated-plant-watering/README.md index e464bbde2..868ae9741 100644 --- a/translations/id/2-farm/lessons/3-automated-plant-watering/README.md +++ b/translations/id/2-farm/lessons/3-automated-plant-watering/README.md @@ -1,6 +1,6 @@ # Penyiraman tanaman otomatis -![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-7.30b5f577d3cb8e031238751475cb519c7d6dbaea261b5df4643d086ffb2a03bb.jpg) +![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-7.30b5f577d3cb8e03.webp) > Sketchnote oleh [Nitya Narasimhan](https://github.com/nitya). Klik gambar untuk versi yang lebih besar. @@ -32,7 +32,7 @@ Perangkat IoT menggunakan tegangan rendah. Meskipun ini cukup untuk sensor dan a Solusinya adalah menghubungkan pompa ke sumber daya eksternal, dan menggunakan aktuator untuk menyalakan pompa, mirip dengan cara Anda menyalakan lampu. Dibutuhkan sedikit daya (dalam bentuk energi dari tubuh Anda) untuk jari Anda membalikkan saklar, dan ini menghubungkan lampu ke listrik utama yang berjalan pada 110v/240v. -![Saklar lampu menyalakan daya ke lampu](../../../../../translated_images/id/light-switch.760317ad6ab8bd6d611da5352dfe9c73a94a0822ccec7df3c8bae35da18e1658.png) +![Saklar lampu menyalakan daya ke lampu](../../../../../translated_images/id/light-switch.760317ad6ab8bd6d.webp) > 🎓 [Listrik utama](https://wikipedia.org/wiki/Mains_electricity) mengacu pada listrik yang disalurkan ke rumah dan bisnis melalui infrastruktur nasional di banyak bagian dunia. @@ -72,7 +72,7 @@ Saat tuas bergerak, Anda biasanya dapat mendengar suara klik yang jelas saat tua Elektromagnet tidak membutuhkan banyak daya untuk mengaktifkan dan menarik tuas, ia dapat dikontrol menggunakan keluaran 3.3V atau 5V dari kit pengembangan IoT. Sirkuit keluaran dapat membawa daya yang jauh lebih besar, tergantung pada relay, termasuk tegangan utama atau bahkan tingkat daya yang lebih tinggi untuk penggunaan industri. Dengan cara ini, kit pengembangan IoT dapat mengontrol sistem irigasi, dari pompa kecil untuk satu tanaman, hingga sistem industri besar untuk seluruh pertanian komersial. -![Relay Grove dengan sirkuit kontrol, sirkuit keluaran, dan relay diberi label](../../../../../translated_images/id/grove-relay-labelled.293e068f5c3c2a199bd7892f2661fdc9e10c920b535cfed317fbd6d1d4ae1168.png) +![Relay Grove dengan sirkuit kontrol, sirkuit keluaran, dan relay diberi label](../../../../../translated_images/id/grove-relay-labelled.293e068f5c3c2a19.webp) Gambar di atas menunjukkan relay Grove. Sirkuit kontrol terhubung ke perangkat IoT dan menyalakan atau mematikan relay menggunakan 3.3V atau 5V. Sirkuit keluaran memiliki dua terminal, salah satunya dapat menjadi daya atau ground. Sirkuit keluaran dapat menangani hingga 250V pada 10A, cukup untuk berbagai perangkat yang menggunakan daya utama. Anda dapat menemukan relay yang dapat menangani tingkat daya yang lebih tinggi. diff --git a/translations/id/2-farm/lessons/3-automated-plant-watering/pi-relay.md b/translations/id/2-farm/lessons/3-automated-plant-watering/pi-relay.md index 988aa784f..ea802d5b2 100644 --- a/translations/id/2-farm/lessons/3-automated-plant-watering/pi-relay.md +++ b/translations/id/2-farm/lessons/3-automated-plant-watering/pi-relay.md @@ -18,13 +18,13 @@ Relay Grove dapat dihubungkan ke Raspberry Pi. Hubungkan relay. -![Sebuah Grove relay](../../../../../translated_images/id/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) +![Sebuah Grove relay](../../../../../translated_images/id/grove-relay.d426958ca210fbd0.webp) 1. Masukkan salah satu ujung kabel Grove ke soket pada relay. Kabel ini hanya dapat masuk dengan satu arah. 1. Dengan Raspberry Pi dalam keadaan mati, hubungkan ujung lain kabel Grove ke soket digital yang ditandai **D5** pada Grove Base Hat yang terpasang pada Pi. Soket ini adalah soket kedua dari kiri, pada baris soket di sebelah pin GPIO. Biarkan sensor kelembapan tanah tetap terhubung ke soket **A0**. -![Relay Grove terhubung ke soket D5, dan sensor kelembapan tanah terhubung ke soket A0](../../../../../translated_images/id/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e69ec716cd2719ce117700bd1fc933eaf93476c103c57939b.png) +![Relay Grove terhubung ke soket D5, dan sensor kelembapan tanah terhubung ke soket A0](../../../../../translated_images/id/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e.webp) 1. Masukkan sensor kelembapan tanah ke dalam tanah, jika belum dilakukan dari pelajaran sebelumnya. diff --git a/translations/id/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md b/translations/id/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md index 56260d578..726ba5951 100644 --- a/translations/id/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md +++ b/translations/id/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md @@ -28,11 +28,11 @@ Tambahkan relay ke aplikasi CounterFit. 1. Pilih tombol **Add** untuk membuat relay pada Pin 5. - ![Pengaturan relay](../../../../../translated_images/id/counterfit-create-relay.fa7c40fd0f2f6afc33b35ea94fcb235085be4861e14e3fe6b9b7bcfc82d1c888.png) + ![Pengaturan relay](../../../../../translated_images/id/counterfit-create-relay.fa7c40fd0f2f6afc.webp) Relay akan dibuat dan muncul di daftar aktuator. - ![Relay yang dibuat](../../../../../translated_images/id/counterfit-relay.bbf74c1dbdc8b9acd983367fcbd06703a402aefef6af54ddb28e11307ba8a12c.png) + ![Relay yang dibuat](../../../../../translated_images/id/counterfit-relay.bbf74c1dbdc8b9ac.webp) ## Memprogram Relay diff --git a/translations/id/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md b/translations/id/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md index 79b359f39..50d77cd17 100644 --- a/translations/id/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md +++ b/translations/id/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md @@ -1,6 +1,6 @@ # Migrasikan tanaman Anda ke cloud -![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-8.3f21f3c11159e6a0a376351973ea5724d5de68fa23b4288853a174bed9ac48c3.jpg) +![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-8.3f21f3c11159e6a0.webp) > Sketchnote oleh [Nitya Narasimhan](https://github.com/nitya). Klik gambar untuk versi yang lebih besar. @@ -46,8 +46,8 @@ Hal ini bisa sangat mahal, membutuhkan berbagai macam karyawan yang terampil, da Cloud sering kali disebut secara bercanda sebagai 'komputer milik orang lain'. Ide awalnya sederhana - alih-alih membeli komputer, Anda menyewa komputer milik orang lain. Orang lain, penyedia komputasi cloud, akan mengelola pusat data besar. Mereka akan bertanggung jawab untuk membeli dan menginstal perangkat keras, mengelola daya dan pendinginan, jaringan, keamanan gedung, pembaruan perangkat keras dan perangkat lunak, semuanya. Sebagai pelanggan, Anda akan menyewa komputer yang Anda butuhkan, menyewa lebih banyak saat permintaan meningkat, lalu mengurangi jumlah yang Anda sewa jika permintaan menurun. Pusat data cloud ini ada di seluruh dunia. -![Pusat data cloud Microsoft](../../../../../translated_images/id/azure-region-existing.73f704604f2aa6cb9b5a49ed40e93d4fd81ae3f4e6af4a8ca504023902832f56.png) -![Ekspansi yang direncanakan untuk pusat data cloud Microsoft](../../../../../translated_images/id/azure-region-planned-expansion.a5074a1e8af74f156a73552d502429e5b126ea5019274d767ecb4b9afdad442b.png) +![Pusat data cloud Microsoft](../../../../../translated_images/id/azure-region-existing.73f704604f2aa6cb.webp) +![Ekspansi yang direncanakan untuk pusat data cloud Microsoft](../../../../../translated_images/id/azure-region-planned-expansion.a5074a1e8af74f15.webp) Pusat data ini bisa memiliki ukuran beberapa kilometer persegi. Gambar di atas diambil beberapa tahun yang lalu di pusat data cloud Microsoft, dan menunjukkan ukuran awal, bersama dengan ekspansi yang direncanakan. Area yang dibersihkan untuk ekspansi lebih dari 5 kilometer persegi. @@ -108,11 +108,11 @@ Layanan IoT di cloud menyelesaikan masalah ini. Mereka dikelola oleh penyedia cl Perangkat IoT terhubung ke layanan cloud baik menggunakan SDK perangkat (perpustakaan yang menyediakan kode untuk bekerja dengan fitur layanan), atau langsung melalui protokol komunikasi seperti MQTT atau HTTP. SDK perangkat biasanya merupakan rute termudah karena menangani semuanya untuk Anda, seperti mengetahui topik apa yang harus dipublikasikan atau berlangganan, dan cara menangani keamanan. -![Perangkat terhubung ke layanan menggunakan SDK perangkat. Kode server juga terhubung ke layanan melalui SDK](../../../../../translated_images/id/iot-service-connectivity.7e873847921a5d6fd60d0ba3a943210194518cee0d4e362476624316443275c3.png) +![Perangkat terhubung ke layanan menggunakan SDK perangkat. Kode server juga terhubung ke layanan melalui SDK](../../../../../translated_images/id/iot-service-connectivity.7e873847921a5d6f.webp) Perangkat Anda kemudian berkomunikasi dengan bagian lain dari aplikasi Anda melalui layanan ini - mirip dengan cara Anda mengirim telemetri dan menerima perintah melalui MQTT. Ini biasanya menggunakan SDK layanan atau perpustakaan serupa. Pesan datang dari perangkat Anda ke layanan di mana komponen lain dari aplikasi Anda kemudian dapat membacanya, dan pesan kemudian dapat dikirim kembali ke perangkat Anda. -![Perangkat tanpa kunci rahasia yang valid tidak dapat terhubung ke layanan IoT](../../../../../translated_images/id/iot-service-allowed-denied-connection.818b0063ac213fb84204a7229303764d9b467ca430fb822b4ac2fca267d56726.png) +![Perangkat tanpa kunci rahasia yang valid tidak dapat terhubung ke layanan IoT](../../../../../translated_images/id/iot-service-allowed-denied-connection.818b0063ac213fb8.webp) Layanan ini menerapkan keamanan dengan mengetahui semua perangkat yang dapat terhubung dan mengirim data, baik dengan memiliki perangkat yang telah terdaftar sebelumnya dengan layanan, atau dengan memberikan perangkat kunci rahasia atau sertifikat yang dapat mereka gunakan untuk mendaftarkan diri mereka dengan layanan saat pertama kali terhubung. Perangkat yang tidak dikenal tidak dapat terhubung, jika mereka mencoba layanan akan menolak koneksi dan mengabaikan pesan yang dikirim oleh mereka. @@ -124,7 +124,7 @@ Komponen lain dari aplikasi Anda dapat terhubung ke layanan IoT dan mempelajari Sekarang Anda memiliki langganan Azure, Anda dapat mendaftar untuk layanan IoT. Layanan IoT dari Microsoft disebut Azure IoT Hub. -![Logo Azure IoT Hub](../../../../../translated_images/id/azure-iot-hub-logo.28a19de76d0a1932464d858f7558712bcdace3e5ec69c434d482ed7ce41c3a26.png) +![Logo Azure IoT Hub](../../../../../translated_images/id/azure-iot-hub-logo.28a19de76d0a1932.webp) Video di bawah ini memberikan gambaran singkat tentang Azure IoT Hub: diff --git a/translations/id/2-farm/lessons/5-migrate-application-to-the-cloud/README.md b/translations/id/2-farm/lessons/5-migrate-application-to-the-cloud/README.md index e79330053..a917d9e2a 100644 --- a/translations/id/2-farm/lessons/5-migrate-application-to-the-cloud/README.md +++ b/translations/id/2-farm/lessons/5-migrate-application-to-the-cloud/README.md @@ -1,6 +1,6 @@ # Migrasikan Logika Aplikasi Anda ke Cloud -![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-9.dfe99c8e891f48e179724520da9f5794392cf9a625079281ccdcbf09bd85e1b6.jpg) +![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-9.dfe99c8e891f48e1.webp) > Sketchnote oleh [Nitya Narasimhan](https://github.com/nitya). Klik gambar untuk versi yang lebih besar. @@ -28,7 +28,7 @@ Dalam pelajaran ini kita akan membahas: Tanpa server, atau komputasi tanpa server, melibatkan pembuatan blok kode kecil yang dijalankan di cloud sebagai respons terhadap berbagai jenis acara. Ketika acara terjadi, kode Anda dijalankan dan diberikan data tentang acara tersebut. Acara ini dapat berasal dari berbagai hal, termasuk permintaan web, pesan yang dimasukkan ke dalam antrean, perubahan data dalam database, atau pesan yang dikirim ke layanan IoT oleh perangkat IoT. -![Acara yang dikirim dari layanan IoT ke layanan tanpa server, semuanya diproses secara bersamaan oleh beberapa fungsi yang dijalankan](../../../../../translated_images/id/iot-messages-to-serverless.0194da1cc0732bb7d0f823aed3fce54735c6b1ad3bf36089804d8aaefc0a774f.png) +![Acara yang dikirim dari layanan IoT ke layanan tanpa server, semuanya diproses secara bersamaan oleh beberapa fungsi yang dijalankan](../../../../../translated_images/id/iot-messages-to-serverless.0194da1cc0732bb7.webp) > 💁 Jika Anda pernah menggunakan pemicu database sebelumnya, Anda dapat menganggap ini sebagai hal yang sama, yaitu kode yang dipicu oleh acara seperti memasukkan baris. @@ -54,7 +54,7 @@ Sebagai pengembang IoT, model tanpa server sangat ideal. Anda dapat menulis fung Layanan komputasi tanpa server dari Microsoft disebut Azure Functions. -![Logo Azure Functions](../../../../../translated_images/id/azure-functions-logo.1cfc8e3204c9c44aaf80fcf406fc8544d80d7f00f8d3e8ed6fed764563e17564.png) +![Logo Azure Functions](../../../../../translated_images/id/azure-functions-logo.1cfc8e3204c9c44a.webp) Video pendek di bawah ini memberikan gambaran tentang Azure Functions. diff --git a/translations/id/2-farm/lessons/6-keep-your-plant-secure/README.md b/translations/id/2-farm/lessons/6-keep-your-plant-secure/README.md index e1e1a3960..6c1b943f6 100644 --- a/translations/id/2-farm/lessons/6-keep-your-plant-secure/README.md +++ b/translations/id/2-farm/lessons/6-keep-your-plant-secure/README.md @@ -1,6 +1,6 @@ # Jaga Keamanan Tanaman Anda -![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-10.829c86b80b9403bb770929ee553a1d293afe50dc23121aaf9be144673ae012cc.jpg) +![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-10.829c86b80b9403bb.webp) > Sketchnote oleh [Nitya Narasimhan](https://github.com/nitya). Klik gambar untuk versi yang lebih besar. @@ -52,11 +52,11 @@ Ini adalah skenario dunia nyata yang sering terjadi. Beberapa contoh telah diber Ketika sebuah perangkat terhubung ke layanan IoT, ia menggunakan ID untuk mengidentifikasi dirinya. Masalahnya adalah ID ini dapat disalin - seorang peretas dapat mengatur perangkat jahat yang menggunakan ID yang sama dengan perangkat asli tetapi mengirimkan data palsu. -![Baik perangkat valid maupun perangkat jahat dapat menggunakan ID yang sama untuk mengirim telemetri](../../../../../translated_images/id/iot-device-and-hacked-device-connecting.e0671675df74d6d99eb1dedb5a670e606f698efa6202b1ad4c8ae548db299cc6.png) +![Baik perangkat valid maupun perangkat jahat dapat menggunakan ID yang sama untuk mengirim telemetri](../../../../../translated_images/id/iot-device-and-hacked-device-connecting.e0671675df74d6d9.webp) Cara untuk mengatasi ini adalah dengan mengubah data yang dikirim menjadi format yang diacak, menggunakan nilai tertentu yang hanya diketahui oleh perangkat dan cloud. Proses ini disebut *enkripsi*, dan nilai yang digunakan untuk mengenkripsi data disebut *kunci enkripsi*. -![Jika enkripsi digunakan, maka hanya pesan terenkripsi yang akan diterima, lainnya akan ditolak](../../../../../translated_images/id/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f979e46f2849b573564eeb4a4dc5b52f669f62745397492fb.png) +![Jika enkripsi digunakan, maka hanya pesan terenkripsi yang akan diterima, lainnya akan ditolak](../../../../../translated_images/id/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f.webp) Layanan cloud kemudian dapat mengubah data kembali ke format yang dapat dibaca, menggunakan proses yang disebut *dekripsi*, dengan menggunakan kunci enkripsi yang sama, atau *kunci dekripsi*. Jika pesan terenkripsi tidak dapat didekripsi oleh kunci tersebut, perangkat telah diretas dan pesan ditolak. diff --git a/translations/id/3-transport/lessons/1-location-tracking/README.md b/translations/id/3-transport/lessons/1-location-tracking/README.md index 5970458eb..4dac87c61 100644 --- a/translations/id/3-transport/lessons/1-location-tracking/README.md +++ b/translations/id/3-transport/lessons/1-location-tracking/README.md @@ -1,6 +1,6 @@ # Pelacakan Lokasi -![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-11.9fddbac4b664c6d50ab7ac9bb32f1fc3f945f03760e72f7f43938073762fb017.jpg) +![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-11.9fddbac4b664c6d5.webp) > Sketchnote oleh [Nitya Narasimhan](https://github.com/nitya). Klik gambar untuk versi yang lebih besar. @@ -63,13 +63,13 @@ Bumi adalah sebuah bola - lingkaran tiga dimensi. Karena itu, titik-titik didefi > 💁 Tidak ada yang benar-benar tahu alasan asli mengapa lingkaran dibagi menjadi 360 derajat. Halaman [derajat (sudut) di Wikipedia](https://wikipedia.org/wiki/Degree_(angle)) mencakup beberapa kemungkinan alasannya. -![Garis lintang dari 90° di Kutub Utara, 45° di tengah antara Kutub Utara dan ekuator, 0° di ekuator, -45° di tengah antara ekuator dan Kutub Selatan, dan -90° di Kutub Selatan](../../../../../translated_images/id/latitude-lines.11d8d91dfb2014a57437272d7db7fd6607243098e8685f06e0c5f1ec984cb7eb.png) +![Garis lintang dari 90° di Kutub Utara, 45° di tengah antara Kutub Utara dan ekuator, 0° di ekuator, -45° di tengah antara ekuator dan Kutub Selatan, dan -90° di Kutub Selatan](../../../../../translated_images/id/latitude-lines.11d8d91dfb2014a5.webp) Lintang diukur menggunakan garis-garis yang melingkari Bumi dan sejajar dengan ekuator, membagi Belahan Bumi Utara dan Selatan menjadi masing-masing 90°. Ekuator berada di 0°, Kutub Utara di 90°, juga dikenal sebagai 90° Utara, dan Kutub Selatan di -90°, atau 90° Selatan. Bujur diukur sebagai jumlah derajat yang diukur ke timur dan barat. Titik asal 0° bujur disebut *Meridian Utama*, dan didefinisikan pada tahun 1884 sebagai garis dari Kutub Utara ke Kutub Selatan yang melewati [Observatorium Kerajaan Inggris di Greenwich, Inggris](https://wikipedia.org/wiki/Royal_Observatory,_Greenwich). -![Garis bujur yang membentang dari -180° di barat Meridian Utama, ke 0° di Meridian Utama, hingga 180° di timur Meridian Utama](../../../../../translated_images/id/longitude-meridians.ab4ef1c91c064586b0185a3c8d39e585903696c6a7d28c098a93a629cddb5d20.png) +![Garis bujur yang membentang dari -180° di barat Meridian Utama, ke 0° di Meridian Utama, hingga 180° di timur Meridian Utama](../../../../../translated_images/id/longitude-meridians.ab4ef1c91c064586.webp) > 🎓 Sebuah meridian adalah garis lurus imajiner yang membentang dari Kutub Utara ke Kutub Selatan, membentuk setengah lingkaran. @@ -100,7 +100,7 @@ Koordinat untuk suatu titik selalu diberikan sebagai `lintang, bujur`, sehingga * Lintang 47.6423109 (47.6423109 derajat di utara ekuator) * Bujur -122.1390293 (122.1390293 derajat di barat Meridian Utama). -![Kampus Microsoft di 47.6423109,-122.117198](../../../../../translated_images/id/microsoft-gps-location-world.a321d481b010f6adfcca139b2ba0adc53b79f58a540495b8e2ce7f779ea64bfe.png) +![Kampus Microsoft di 47.6423109,-122.117198](../../../../../translated_images/id/microsoft-gps-location-world.a321d481b010f6ad.webp) ## Sistem Pemosisian Global (GPS) @@ -112,7 +112,7 @@ Sistem GPS bekerja dengan memiliki sejumlah satelit yang mengirimkan sinyal deng > 💁 Sensor GPS memerlukan antena untuk mendeteksi gelombang radio. Antena yang terpasang di truk dan mobil dengan GPS bawaan diposisikan untuk mendapatkan sinyal yang baik, biasanya di kaca depan atau atap. Jika Anda menggunakan sistem GPS terpisah, seperti ponsel pintar atau perangkat IoT, maka Anda perlu memastikan bahwa antena yang terpasang di sistem GPS atau ponsel memiliki pandangan yang jelas ke langit, seperti dipasang di kaca depan. -![Dengan mengetahui jarak dari sensor ke beberapa satelit, lokasi dapat dihitung](../../../../../translated_images/id/gps-satellites.04acf1148fe25fbf1586bc2e8ba698e8d79b79a50c36824b38417dd13372b90f.png) +![Dengan mengetahui jarak dari sensor ke beberapa satelit, lokasi dapat dihitung](../../../../../translated_images/id/gps-satellites.04acf1148fe25fbf.webp) Satelit GPS mengelilingi Bumi, tidak berada di titik tetap di atas sensor, sehingga data lokasi mencakup ketinggian di atas permukaan laut serta lintang dan bujur. diff --git a/translations/id/3-transport/lessons/1-location-tracking/pi-gps-sensor.md b/translations/id/3-transport/lessons/1-location-tracking/pi-gps-sensor.md index ca6877aa5..d78ba49d6 100644 --- a/translations/id/3-transport/lessons/1-location-tracking/pi-gps-sensor.md +++ b/translations/id/3-transport/lessons/1-location-tracking/pi-gps-sensor.md @@ -18,13 +18,13 @@ Sensor GPS Grove dapat dihubungkan ke Raspberry Pi. Hubungkan sensor GPS. -![Sensor GPS Grove](../../../../../translated_images/id/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![Sensor GPS Grove](../../../../../translated_images/id/grove-gps-sensor.247943bf69b03f0d.webp) 1. Masukkan salah satu ujung kabel Grove ke soket pada sensor GPS. Kabel ini hanya dapat masuk dengan satu arah. 1. Dengan Raspberry Pi dalam keadaan mati, hubungkan ujung lain kabel Grove ke soket UART yang ditandai **UART** pada Grove Base hat yang terpasang di Pi. Soket ini berada di baris tengah, di sisi yang paling dekat dengan slot kartu SD, ujung yang berlawanan dari port USB dan soket ethernet. - ![Sensor GPS Grove terhubung ke soket UART](../../../../../translated_images/id/pi-gps-sensor.1f99ee2b2f6528915047ec78967bd362e0e4ee0ed594368a3837b9cf9cdaca64.png) + ![Sensor GPS Grove terhubung ke soket UART](../../../../../translated_images/id/pi-gps-sensor.1f99ee2b2f652891.webp) 1. Posisikan sensor GPS sehingga antena yang terpasang memiliki visibilitas ke langit - idealnya di dekat jendela yang terbuka atau di luar ruangan. Sinyal akan lebih jelas jika tidak ada penghalang di sekitar antena. diff --git a/translations/id/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md b/translations/id/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md index baae7132d..68d5c180e 100644 --- a/translations/id/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md +++ b/translations/id/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md @@ -38,11 +38,11 @@ Tambahkan sensor GPS ke aplikasi CounterFit. 1. Pilih tombol **Add** untuk membuat sensor GPS pada port `/dev/ttyAMA0`. - ![Pengaturan sensor GPS](../../../../../translated_images/id/counterfit-create-gps-sensor.6385dc9357d85ad1d47b4abb2525e7651fd498917d25eefc5a72feab09eedc70.png) + ![Pengaturan sensor GPS](../../../../../translated_images/id/counterfit-create-gps-sensor.6385dc9357d85ad1.webp) Sensor GPS akan dibuat dan muncul dalam daftar sensor. - ![Sensor GPS telah dibuat](../../../../../translated_images/id/counterfit-gps-sensor.3fbb15af0a5367566f2f11324ef5a6f30861cdf2b497071a5e002b7aa473550e.png) + ![Sensor GPS telah dibuat](../../../../../translated_images/id/counterfit-gps-sensor.3fbb15af0a536756.webp) ## Memprogram Sensor GPS @@ -102,17 +102,17 @@ Program aplikasi sensor GPS. * Atur **Source** ke `Lat/Lon`, dan tetapkan lintang, bujur, dan jumlah satelit yang digunakan untuk mendapatkan posisi GPS. Nilai ini hanya akan dikirim sekali, jadi centang kotak **Repeat** agar data dikirim ulang setiap detik. - ![Sensor GPS dengan lat lon dipilih](../../../../../translated_images/id/counterfit-gps-sensor-latlon.008c867d75464fbe7f84107cc57040df565ac07cb57d2f21db37d087d470197d.png) + ![Sensor GPS dengan lat lon dipilih](../../../../../translated_images/id/counterfit-gps-sensor-latlon.008c867d75464fbe.webp) * Atur **Source** ke `NMEA` dan tambahkan beberapa kalimat NMEA ke kotak teks. Semua nilai ini akan dikirim, dengan jeda 1 detik sebelum setiap kalimat GGA (posisi) baru dapat dibaca. - ![Sensor GPS dengan kalimat NMEA diatur](../../../../../translated_images/id/counterfit-gps-sensor-nmea.c62eea442171e17e19528b051b104cfcecdc9cd18db7bc72920f29821ae63f73.png) + ![Sensor GPS dengan kalimat NMEA diatur](../../../../../translated_images/id/counterfit-gps-sensor-nmea.c62eea442171e17e.webp) Anda dapat menggunakan alat seperti [nmeagen.org](https://www.nmeagen.org) untuk menghasilkan kalimat ini dengan menggambar di peta. Nilai-nilai ini hanya akan dikirim sekali, jadi centang kotak **Repeat** agar data dikirim ulang satu detik setelah semuanya dikirim. * Atur **Source** ke file GPX, dan unggah file GPX dengan lokasi lintasan. Anda dapat mengunduh file GPX dari sejumlah situs pemetaan dan hiking populer, seperti [AllTrails](https://www.alltrails.com/). File ini berisi beberapa lokasi GPS sebagai jalur, dan sensor GPS akan mengembalikan setiap lokasi baru dalam interval 1 detik. - ![Sensor GPS dengan file GPX diatur](../../../../../translated_images/id/counterfit-gps-sensor-gpxfile.8310b063ce8a425ccc8ebeec8306aeac5e8e55207f007d52c6e1194432a70cd9.png) + ![Sensor GPS dengan file GPX diatur](../../../../../translated_images/id/counterfit-gps-sensor-gpxfile.8310b063ce8a425c.webp) Nilai-nilai ini hanya akan dikirim sekali, jadi centang kotak **Repeat** agar data dikirim ulang satu detik setelah semuanya dikirim. diff --git a/translations/id/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md b/translations/id/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md index 0b34abc95..c017cc7aa 100644 --- a/translations/id/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md +++ b/translations/id/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md @@ -18,7 +18,7 @@ Sensor GPS Grove dapat dihubungkan ke Wio Terminal. Hubungkan sensor GPS. -![Sensor GPS Grove](../../../../../translated_images/id/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![Sensor GPS Grove](../../../../../translated_images/id/grove-gps-sensor.247943bf69b03f0d.webp) 1. Masukkan salah satu ujung kabel Grove ke soket pada sensor GPS. Kabel ini hanya dapat dimasukkan dengan satu arah. diff --git a/translations/id/3-transport/lessons/2-store-location-data/README.md b/translations/id/3-transport/lessons/2-store-location-data/README.md index 0fbc088a8..b5370f319 100644 --- a/translations/id/3-transport/lessons/2-store-location-data/README.md +++ b/translations/id/3-transport/lessons/2-store-location-data/README.md @@ -1,6 +1,6 @@ # Data Lokasi Toko -![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-12.ca7f53039712a3ec14ad6474d8445361c84adab643edc53fa6269b77895606bb.jpg) +![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-12.ca7f53039712a3ec.webp) > Sketchnote oleh [Nitya Narasimhan](https://github.com/nitya). Klik gambar untuk versi yang lebih besar. @@ -75,7 +75,7 @@ Database NoSQL disebut NoSQL karena tidak memiliki struktur kaku seperti databas > 💁 Meskipun namanya NoSQL, beberapa database NoSQL memungkinkan Anda menggunakan SQL untuk melakukan kueri data. -![Dokumen dalam folder di database NoSQL](../../../../../translated_images/id/noqsl-database.62d24ccf5b73f60d35c245a8533f1c7147c0928e955b82cb290b2e184bb434df.png) +![Dokumen dalam folder di database NoSQL](../../../../../translated_images/id/noqsl-database.62d24ccf5b73f60d.webp) Database NoSQL tidak memiliki skema yang telah ditentukan sebelumnya yang membatasi cara data disimpan, melainkan Anda dapat memasukkan data tidak terstruktur apa pun, biasanya menggunakan dokumen JSON. Dokumen-dokumen ini dapat diatur ke dalam folder, mirip dengan file di komputer Anda. Setiap dokumen dapat memiliki bidang yang berbeda dari dokumen lainnya - misalnya jika Anda menyimpan data IoT dari kendaraan pertanian Anda, beberapa mungkin memiliki bidang untuk data akselerometer dan kecepatan, sementara yang lain mungkin memiliki bidang untuk suhu di trailer. Jika Anda menambahkan jenis truk baru, seperti yang memiliki timbangan bawaan untuk melacak berat hasil panen yang dibawa, maka perangkat IoT Anda dapat menambahkan bidang baru ini dan dapat disimpan tanpa perubahan pada database. @@ -89,7 +89,7 @@ Dalam pelajaran ini, Anda akan menggunakan penyimpanan NoSQL untuk menyimpan dat Pada pelajaran sebelumnya, Anda telah menangkap data GPS dari sensor GPS yang terhubung ke perangkat IoT Anda. Untuk menyimpan data IoT ini di cloud, Anda perlu mengirimkannya ke layanan IoT. Sekali lagi, Anda akan menggunakan Azure IoT Hub, layanan IoT cloud yang sama yang Anda gunakan dalam proyek sebelumnya. -![Mengirim telemetri GPS dari perangkat IoT ke IoT Hub](../../../../../translated_images/id/gps-telemetry-iot-hub.8115335d51cd2c1285d20e9d1b18cf685e59a8e093e7797291ef173445af6f3d.png) +![Mengirim telemetri GPS dari perangkat IoT ke IoT Hub](../../../../../translated_images/id/gps-telemetry-iot-hub.8115335d51cd2c12.webp) ### Tugas - Mengirim Data GPS ke IoT Hub @@ -171,7 +171,7 @@ Data jalur dingin disimpan di gudang data - database yang dirancang untuk menyim Setelah data mengalir ke IoT Hub Anda, Anda dapat menulis beberapa kode tanpa server untuk mendengarkan peristiwa yang diterbitkan ke endpoint yang kompatibel dengan Event Hub. Ini adalah jalur hangat - data ini akan disimpan dan digunakan dalam pelajaran berikutnya untuk pelaporan perjalanan. -![Mengirim telemetri GPS dari perangkat IoT ke IoT Hub, lalu ke Azure Functions melalui pemicu event hub](../../../../../translated_images/id/gps-telemetry-iot-hub-functions.24d3fa5592455e9f4e2fe73856b40c3915a292b90263c31d652acfd976cfedd8.png) +![Mengirim telemetri GPS dari perangkat IoT ke IoT Hub, lalu ke Azure Functions melalui pemicu event hub](../../../../../translated_images/id/gps-telemetry-iot-hub-functions.24d3fa5592455e9f.webp) ### Tugas - Menangani Peristiwa GPS Menggunakan Kode Tanpa Server @@ -193,7 +193,7 @@ Setelah data mengalir ke IoT Hub Anda, Anda dapat menulis beberapa kode tanpa se ## Akun Penyimpanan Azure -![Logo Azure Storage](../../../../../translated_images/id/azure-storage-logo.605c0f602c640d482a80f1b35a2629a32d595711b7ab1d7ceea843250615ff32.png) +![Logo Azure Storage](../../../../../translated_images/id/azure-storage-logo.605c0f602c640d48.webp) Akun Penyimpanan Azure adalah layanan penyimpanan serbaguna yang dapat menyimpan data dalam berbagai cara. Anda dapat menyimpan data sebagai blob, dalam antrean, dalam tabel, atau sebagai file, dan semuanya dapat dilakukan secara bersamaan. diff --git a/translations/id/3-transport/lessons/3-visualize-location-data/README.md b/translations/id/3-transport/lessons/3-visualize-location-data/README.md index e8dce06c2..398b6adcf 100644 --- a/translations/id/3-transport/lessons/3-visualize-location-data/README.md +++ b/translations/id/3-transport/lessons/3-visualize-location-data/README.md @@ -1,6 +1,6 @@ # Visualisasi Data Lokasi -![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-13.a259db1485021be7d7c72e90842fbe0ab977529e8684c179b5fb1ea75e92b3ef.jpg) +![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-13.a259db1485021be7.webp) > Sketchnote oleh [Nitya Narasimhan](https://github.com/nitya). Klik gambar untuk versi yang lebih besar. @@ -64,11 +64,11 @@ Sebagai contoh sederhana - dalam proyek pertanian sebelumnya, Anda menangkap pen Sebagai manusia, memahami data tersebut bisa sulit. Ini hanyalah deretan angka tanpa makna. Sebagai langkah pertama untuk memvisualisasikan data ini, data tersebut dapat dipetakan pada grafik garis: -![Grafik garis dari data di atas](../../../../../translated_images/id/chart-soil-moisture.fd6d9d0cdc0b5f75e78038ecb8945dfc84b38851359de99d84b16e3336d6d7c2.png) +![Grafik garis dari data di atas](../../../../../translated_images/id/chart-soil-moisture.fd6d9d0cdc0b5f75.webp) Ini dapat ditingkatkan lebih lanjut dengan menambahkan garis untuk menunjukkan kapan sistem penyiraman otomatis diaktifkan pada pembacaan kelembapan tanah sebesar 450: -![Grafik garis kelembapan tanah dengan garis pada 450](../../../../../translated_images/id/chart-soil-moisture-relay.fbb391236d34a64d0abf1df396e9197e0a24df14150620b9cc820a64a55c9326.png) +![Grafik garis kelembapan tanah dengan garis pada 450](../../../../../translated_images/id/chart-soil-moisture-relay.fbb391236d34a64d.webp) Grafik ini dengan cepat menunjukkan tidak hanya tingkat kelembapan tanah, tetapi juga titik-titik di mana sistem penyiraman diaktifkan. @@ -84,7 +84,7 @@ Saat bekerja dengan data GPS, visualisasi yang paling jelas adalah memplot data Bekerja dengan peta adalah latihan yang menarik, dan ada banyak pilihan seperti Bing Maps, Leaflet, Open Street Maps, dan Google Maps. Dalam pelajaran ini, Anda akan mempelajari tentang [Azure Maps](https://azure.microsoft.com/services/azure-maps/?WT.mc_id=academic-17441-jabenn) dan bagaimana mereka dapat menampilkan data GPS Anda. -![Logo Azure Maps](../../../../../translated_images/id/azure-maps-logo.35d01dcfbd81fe6140e94257aaa1538f785a58c91576d14e0ebe7a2f6c694b99.png) +![Logo Azure Maps](../../../../../translated_images/id/azure-maps-logo.35d01dcfbd81fe61.webp) Azure Maps adalah "koleksi layanan geospasial dan SDK yang menggunakan data peta terbaru untuk memberikan konteks geografis pada aplikasi web dan seluler." Pengembang diberikan alat untuk membuat peta interaktif yang indah yang dapat melakukan hal-hal seperti memberikan rute lalu lintas yang direkomendasikan, memberikan informasi tentang insiden lalu lintas, navigasi dalam ruangan, kemampuan pencarian, informasi elevasi, layanan cuaca, dan banyak lagi. @@ -185,7 +185,7 @@ Sekarang Anda dapat melanjutkan ke langkah berikutnya, yaitu menampilkan peta An Jika Anda membuka halaman `index.html` Anda di browser web, Anda akan melihat peta dimuat, dan berfokus pada area Seattle. - ![Peta yang menunjukkan Seattle, sebuah kota di Negara Bagian Washington, AS](../../../../../translated_images/id/map-image.8fb2c53eb23ef39c1c0a4410a5282e879b3b452b707eb066ff04c5488d3d72b7.png) + ![Peta yang menunjukkan Seattle, sebuah kota di Negara Bagian Washington, AS](../../../../../translated_images/id/map-image.8fb2c53eb23ef39c.webp) ✅ Bereksperimenlah dengan parameter zoom dan center untuk mengubah tampilan peta Anda. Anda dapat menambahkan koordinat berbeda yang sesuai dengan data latitude dan longitude Anda untuk memusatkan ulang peta. @@ -318,7 +318,7 @@ Jika Anda mencoba mengambil data dari penyimpanan Anda, mungkin Anda akan terkej 1. Muat halaman HTML di browser Anda. Halaman tersebut akan memuat peta, kemudian memuat semua data GPS dari penyimpanan dan memplotnya di peta. - ![Peta Saint Edward State Park dekat Seattle, dengan lingkaran yang menunjukkan jalur di sekitar tepi taman](../../../../../translated_images/id/map-path.896832e72dc696ffe20650e4051027d4855442d955f93fdbb80bb417ca8a406f.png) + ![Peta Saint Edward State Park dekat Seattle, dengan lingkaran yang menunjukkan jalur di sekitar tepi taman](../../../../../translated_images/id/map-path.896832e72dc696ff.webp) > 💁 Anda dapat menemukan kode ini di [folder kode](../../../../../3-transport/lessons/3-visualize-location-data/code). diff --git a/translations/id/3-transport/lessons/4-geofences/README.md b/translations/id/3-transport/lessons/4-geofences/README.md index 7c5373090..7437f840f 100644 --- a/translations/id/3-transport/lessons/4-geofences/README.md +++ b/translations/id/3-transport/lessons/4-geofences/README.md @@ -1,6 +1,6 @@ # Geofences -![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-14.63980c5150ae3c153e770fb71d044c1845dce79248d86bed9fc525adf3ede73c.jpg) +![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-14.63980c5150ae3c15.webp) > Sketchnote oleh [Nitya Narasimhan](https://github.com/nitya). Klik gambar untuk versi yang lebih besar. @@ -35,7 +35,7 @@ Dalam pelajaran ini kita akan membahas: Geofence adalah perimeter virtual untuk wilayah geografis dunia nyata. Geofences dapat berupa lingkaran yang didefinisikan sebagai titik dan radius (misalnya lingkaran dengan lebar 100m di sekitar sebuah bangunan), atau poligon yang mencakup area seperti zona sekolah, batas kota, atau kampus universitas atau kantor. -![Beberapa contoh geofence yang menunjukkan geofence melingkar di sekitar toko perusahaan Microsoft, dan geofence poligon di sekitar kampus barat Microsoft](../../../../../translated_images/id/geofence-examples.172fbc534665769f6e1a1ddcf75e3b25183cd10354c80cc603ba44b635390e1a.png) +![Beberapa contoh geofence yang menunjukkan geofence melingkar di sekitar toko perusahaan Microsoft, dan geofence poligon di sekitar kampus barat Microsoft](../../../../../translated_images/id/geofence-examples.172fbc534665769f.webp) > 💁 Anda mungkin sudah menggunakan geofences tanpa menyadarinya. Jika Anda pernah mengatur pengingat menggunakan aplikasi pengingat iOS atau Google Keep berdasarkan lokasi, Anda telah menggunakan geofence. Aplikasi ini akan mengatur geofence berdasarkan lokasi yang diberikan dan memberi tahu Anda saat ponsel Anda memasuki geofence. @@ -212,7 +212,7 @@ Penting untuk mengetahui jarak ke tepi geofence, dan menggabungkannya dengan inf Misalnya, bayangkan pembacaan GPS menunjukkan kendaraan sedang berkendara di sepanjang jalan yang akhirnya berada di sebelah geofence. Jika satu nilai GPS tidak akurat dan menempatkan kendaraan di dalam geofence, meskipun tidak ada akses kendaraan, maka nilai tersebut dapat diabaikan. -![Jejak GPS menunjukkan kendaraan melewati kampus Microsoft di 520, dengan pembacaan GPS di sepanjang jalan kecuali satu di kampus, di dalam geofence](../../../../../translated_images/id/geofence-crossing-inaccurate-gps.6a3ed911202ad9cabb66d3964888cec03a42c61d5b8f536ad5bdc99716b370f5.png) +![Jejak GPS menunjukkan kendaraan melewati kampus Microsoft di 520, dengan pembacaan GPS di sepanjang jalan kecuali satu di kampus, di dalam geofence](../../../../../translated_images/id/geofence-crossing-inaccurate-gps.6a3ed911202ad9ca.webp) Dalam gambar di atas, terdapat geofence yang mencakup sebagian dari kampus Microsoft. Garis merah menunjukkan sebuah truk yang melaju di sepanjang jalan 520, dengan lingkaran-lingkaran yang menunjukkan pembacaan GPS. Sebagian besar pembacaan ini akurat dan berada di sepanjang jalan 520, tetapi ada satu pembacaan yang tidak akurat di dalam geofence. Tidak mungkin pembacaan tersebut benar - tidak ada jalan yang memungkinkan truk tiba-tiba berbelok dari jalan 520 ke dalam kampus, lalu kembali ke jalan 520. Kode yang memeriksa geofence ini perlu mempertimbangkan pembacaan sebelumnya sebelum mengambil tindakan berdasarkan hasil pengujian geofence. ✅ Data tambahan apa yang Anda perlukan untuk memeriksa apakah pembacaan GPS dapat dianggap benar? @@ -284,7 +284,7 @@ Seperti yang Anda ingat dari pelajaran sebelumnya, IoT Hub memungkinkan Anda mem Jawabannya adalah tidak bisa! Sebagai gantinya, Anda dapat mendefinisikan beberapa koneksi terpisah untuk membaca peristiwa, dan masing-masing dapat mengelola pemutaran ulang pesan yang belum dibaca. Ini disebut *grup konsumen*. Saat Anda terhubung ke endpoint, Anda dapat menentukan grup konsumen mana yang ingin Anda hubungkan. Setiap komponen aplikasi Anda akan terhubung ke grup konsumen yang berbeda. -![Satu IoT Hub dengan 3 grup konsumen yang mendistribusikan pesan yang sama ke 3 aplikasi fungsi yang berbeda](../../../../../translated_images/id/consumer-groups.a3262e26fc27ba2092863678ad57af15c7223416e388a23f330c058cf4358630.png) +![Satu IoT Hub dengan 3 grup konsumen yang mendistribusikan pesan yang sama ke 3 aplikasi fungsi yang berbeda](../../../../../translated_images/id/consumer-groups.a3262e26fc27ba20.webp) Secara teori, hingga 5 aplikasi dapat terhubung ke setiap grup konsumen, dan semuanya akan menerima pesan saat pesan tiba. Praktik terbaiknya adalah hanya satu aplikasi yang mengakses setiap grup konsumen untuk menghindari pemrosesan pesan duplikat, dan memastikan saat memulai ulang semua pesan yang tertunda diproses dengan benar. Sebagai contoh, jika Anda menjalankan aplikasi Functions Anda secara lokal serta menjalankannya di cloud, keduanya akan memproses pesan, yang mengakibatkan blob duplikat disimpan di akun penyimpanan. diff --git a/translations/id/4-manufacturing/lessons/1-train-fruit-detector/README.md b/translations/id/4-manufacturing/lessons/1-train-fruit-detector/README.md index 973380813..c815c30b4 100644 --- a/translations/id/4-manufacturing/lessons/1-train-fruit-detector/README.md +++ b/translations/id/4-manufacturing/lessons/1-train-fruit-detector/README.md @@ -1,6 +1,6 @@ # Melatih Detektor Kualitas Buah -![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-15.843d21afdc6fb2bba70cd9db7b7d2f91598859fafda2078b0bdc44954194b6c0.jpg) +![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-15.843d21afdc6fb2bb.webp) > Sketchnote oleh [Nitya Narasimhan](https://github.com/nitya). Klik gambar untuk versi yang lebih besar. @@ -38,7 +38,7 @@ Tidak semua tanaman matang secara merata. Tomat, misalnya, masih bisa memiliki b Kenaikan penggunaan mesin panen otomatis memindahkan proses penyortiran hasil panen dari ladang ke pabrik. Makanan akan bergerak di atas sabuk konveyor panjang dengan tim orang yang memeriksa hasil panen dan menghapus apa pun yang tidak memenuhi standar kualitas yang diperlukan. Memanen menjadi lebih murah berkat mesin, tetapi masih ada biaya untuk menyortir makanan secara manual. -![Jika tomat merah terdeteksi, ia melanjutkan perjalanannya tanpa gangguan. Jika tomat hijau terdeteksi, ia dilempar ke tempat sampah oleh tuas](../../../../../translated_images/id/optical-tomato-sorting.61aa134bdda4e5b1bfb16a212c1e35a6ef0c426cbb8b1c975f79d7bfbf48d068.png) +![Jika tomat merah terdeteksi, ia melanjutkan perjalanannya tanpa gangguan. Jika tomat hijau terdeteksi, ia dilempar ke tempat sampah oleh tuas](../../../../../translated_images/id/optical-tomato-sorting.61aa134bdda4e5b1.webp) Evolusi berikutnya adalah menggunakan mesin untuk menyortir, baik yang terintegrasi dalam mesin panen, atau di pabrik pengolahan. Generasi pertama dari mesin ini menggunakan sensor optik untuk mendeteksi warna, mengontrol aktuator untuk mendorong tomat hijau ke tempat sampah menggunakan tuas atau semburan udara, meninggalkan tomat merah untuk melanjutkan perjalanan di jaringan sabuk konveyor. @@ -62,7 +62,7 @@ Misalnya, Anda dapat memberikan model jutaan gambar pisang yang belum matang seb > 🎓 Hasil dari model ML disebut *prediksi* -![2 pisang, satu matang dengan prediksi 99.7% matang, 0.3% belum matang, dan satu belum matang dengan prediksi 1.4% matang, 98.6% belum matang](../../../../../translated_images/id/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50ece4e4589e724b142da0681f35470fe3db3f7d51240f69c85.png) +![2 pisang, satu matang dengan prediksi 99.7% matang, 0.3% belum matang, dan satu belum matang dengan prediksi 1.4% matang, 98.6% belum matang](../../../../../translated_images/id/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50e.webp) Model ML tidak memberikan jawaban biner, melainkan memberikan probabilitas. Misalnya, sebuah model dapat diberikan gambar pisang dan memprediksi `matang` dengan probabilitas 99.7% dan `belum matang` dengan probabilitas 0.3%. Kode Anda kemudian akan memilih prediksi terbaik dan memutuskan bahwa pisang tersebut matang. @@ -90,7 +90,7 @@ Ada berbagai alat yang dapat membantu Anda melakukan ini, termasuk layanan berba Custom Vision adalah alat berbasis cloud untuk melatih pengklasifikasi gambar. Alat ini memungkinkan Anda melatih pengklasifikasi hanya dengan sejumlah kecil gambar. Anda dapat mengunggah gambar melalui portal web, API web, atau SDK, memberikan setiap gambar *tag* yang merupakan klasifikasi dari gambar tersebut. Anda kemudian melatih model, dan mengujinya untuk melihat seberapa baik kinerjanya. Setelah Anda puas dengan model tersebut, Anda dapat mempublikasikan versi yang dapat diakses melalui API web atau SDK. -![Logo Azure Custom Vision](../../../../../translated_images/id/custom-vision-logo.d3d4e7c8a87ec9daf825e72e210576c3cbf60312577be7a139e22dd97ab7f1e6.png) +![Logo Azure Custom Vision](../../../../../translated_images/id/custom-vision-logo.d3d4e7c8a87ec9da.webp) > 💁 Anda dapat melatih model Custom Vision dengan hanya 5 gambar per klasifikasi, tetapi lebih banyak lebih baik. Anda dapat mendapatkan hasil yang lebih baik dengan setidaknya 30 gambar. @@ -146,7 +146,7 @@ Untuk menggunakan Custom Vision, Anda pertama-tama perlu membuat dua sumber daya Saat Anda membuat proyek Anda, pastikan untuk menggunakan sumber daya `fruit-quality-detector-training` yang Anda buat sebelumnya. Gunakan tipe proyek *Classification*, tipe klasifikasi *Multiclass*, dan domain *Food*. - ![Pengaturan untuk proyek Custom Vision dengan nama diatur ke fruit-quality-detector, tanpa deskripsi, sumber daya diatur ke fruit-quality-detector-training, tipe proyek diatur ke classification, tipe klasifikasi diatur ke multi class dan domain diatur ke food](../../../../../translated_images/id/custom-vision-create-project.cf46325b92d8b131089f6647cf5e07b664cb77850e106d66e3c057b6b69756c6.png) + ![Pengaturan untuk proyek Custom Vision dengan nama diatur ke fruit-quality-detector, tanpa deskripsi, sumber daya diatur ke fruit-quality-detector-training, tipe proyek diatur ke classification, tipe klasifikasi diatur ke multi class dan domain diatur ke food](../../../../../translated_images/id/custom-vision-create-project.cf46325b92d8b131.webp) ✅ Luangkan waktu untuk menjelajahi UI Custom Vision untuk pengklasifikasi gambar Anda. @@ -164,7 +164,7 @@ Pengklasifikasi gambar bekerja pada resolusi yang sangat rendah. Misalnya, Custo * Gunakan 2 pisang matang, ambil beberapa gambar dari masing-masing pisang dari berbagai sudut, setidaknya 7 gambar (5 untuk pelatihan, 2 untuk pengujian), tetapi idealnya lebih banyak. - ![Foto 2 pisang yang berbeda](../../../../../translated_images/id/banana-training-images.530eb203346d73bc23b8b990fb4609470bf4ff7c942ccc13d4cfffeed9be1ad4.png) + ![Foto 2 pisang yang berbeda](../../../../../translated_images/id/banana-training-images.530eb203346d73bc.webp) * Ulangi proses yang sama menggunakan 2 pisang yang belum matang. @@ -174,7 +174,7 @@ Pengklasifikasi gambar bekerja pada resolusi yang sangat rendah. Misalnya, Custo 1. Ikuti [bagian unggah dan beri label gambar dari panduan cepat membangun pengklasifikasi di Microsoft docs](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) untuk mengunggah gambar pelatihan Anda. Beri label buah matang sebagai `ripe`, dan buah belum matang sebagai `unripe`. - ![Dialog unggah yang menunjukkan pengunggahan gambar pisang matang dan belum matang](../../../../../translated_images/id/image-upload-bananas.0751639f3815e0ec42bdbc6254d1e4357a185834d1ae10c9948a0e7d6d336695.png) + ![Dialog unggah yang menunjukkan pengunggahan gambar pisang matang dan belum matang](../../../../../translated_images/id/image-upload-bananas.0751639f3815e0ec.webp) 1. Ikuti [bagian latih pengklasifikasi dari panduan cepat membangun pengklasifikasi di Microsoft docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#train-the-classifier) untuk melatih pengklasifikasi gambar menggunakan gambar yang telah Anda unggah. @@ -192,7 +192,7 @@ Setelah pengklasifikasi Anda dilatih, Anda dapat mengujinya dengan memberikan ga 1. Ikuti [dokumentasi uji model Anda di Microsoft docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/test-your-model?WT.mc_id=academic-17441-jabenn#test-your-model) untuk menguji pengklasifikasi gambar Anda. Gunakan gambar pengujian yang telah Anda buat sebelumnya, bukan gambar yang digunakan untuk pelatihan. - ![Pisang belum matang diprediksi sebagai belum matang dengan probabilitas 98.9%, matang dengan probabilitas 1.1%](../../../../../translated_images/id/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64886422438850ea14f0be6ac918c217ea3b255c685abfabe7.png) + ![Pisang belum matang diprediksi sebagai belum matang dengan probabilitas 98.9%, matang dengan probabilitas 1.1%](../../../../../translated_images/id/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64.webp) 1. Coba semua gambar pengujian yang Anda miliki dan amati probabilitasnya. diff --git a/translations/id/4-manufacturing/lessons/2-check-fruit-from-device/README.md b/translations/id/4-manufacturing/lessons/2-check-fruit-from-device/README.md index 7b7169a4c..93ba9462f 100644 --- a/translations/id/4-manufacturing/lessons/2-check-fruit-from-device/README.md +++ b/translations/id/4-manufacturing/lessons/2-check-fruit-from-device/README.md @@ -1,6 +1,6 @@ # Periksa Kualitas Buah dari Perangkat IoT -![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-16.215daf18b00631fbdfd64c6fc2dc6044dff5d544288825d8076f9fb83d964c23.jpg) +![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-16.215daf18b00631fb.webp) > Sketchnote oleh [Nitya Narasimhan](https://github.com/nitya). Klik gambar untuk versi yang lebih besar. @@ -26,7 +26,7 @@ Dalam pelajaran ini, kita akan membahas: Sensor kamera, seperti namanya, adalah kamera yang dapat Anda hubungkan ke perangkat IoT Anda. Kamera ini dapat mengambil gambar diam atau merekam video streaming. Beberapa kamera akan mengembalikan data gambar mentah, sementara yang lain akan mengompresi data gambar menjadi file gambar seperti JPEG atau PNG. Biasanya, kamera yang digunakan dengan perangkat IoT jauh lebih kecil dan memiliki resolusi lebih rendah dibandingkan yang biasa Anda gunakan, tetapi Anda juga dapat menemukan kamera beresolusi tinggi yang sebanding dengan ponsel kelas atas. Anda juga dapat menemukan berbagai lensa yang dapat diganti, pengaturan kamera ganda, kamera termal infra-merah, atau kamera UV. -![Cahaya dari sebuah adegan melewati lensa dan difokuskan pada sensor CMOS](../../../../../translated_images/id/cmos-sensor.75f9cd74decb137149a4c9ea825251a4549497d67c0ae2776159e6102bb53aa9.png) +![Cahaya dari sebuah adegan melewati lensa dan difokuskan pada sensor CMOS](../../../../../translated_images/id/cmos-sensor.75f9cd74decb1371.webp) Sebagian besar sensor kamera menggunakan sensor gambar di mana setiap piksel adalah fotodioda. Sebuah lensa memfokuskan gambar ke sensor gambar, dan ribuan atau jutaan fotodioda mendeteksi cahaya yang jatuh pada masing-masing, lalu merekamnya sebagai data piksel. @@ -74,7 +74,7 @@ Iterasi diterbitkan dari portal Custom Vision. 1. Pilih tombol **Publish** untuk iterasi tersebut. - ![Tombol publish](../../../../../translated_images/id/custom-vision-publish-button.b7174e1977b0c33b8b72d4e5b1326c779e0af196f3849d09985ee2d7d5493a39.png) + ![Tombol publish](../../../../../translated_images/id/custom-vision-publish-button.b7174e1977b0c33b.webp) 1. Dalam dialog *Publish Model*, atur *Prediction resource* ke sumber daya `fruit-quality-detector-prediction` yang Anda buat pada pelajaran sebelumnya. Biarkan nama sebagai `Iteration2`, lalu pilih tombol **Publish**. @@ -88,7 +88,7 @@ Iterasi diterbitkan dari portal Custom Vision. Juga salin nilai *Prediction-Key*. Ini adalah kunci aman yang harus Anda sertakan saat memanggil model. Hanya aplikasi yang menyertakan kunci ini yang diizinkan menggunakan model, aplikasi lain akan ditolak. - ![Dialog API prediksi yang menunjukkan URL dan kunci](../../../../../translated_images/id/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![Dialog API prediksi yang menunjukkan URL dan kunci](../../../../../translated_images/id/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ Ketika iterasi baru diterbitkan, iterasi tersebut akan memiliki nama yang berbeda. Bagaimana menurut Anda cara mengubah iterasi yang digunakan oleh perangkat IoT? @@ -109,7 +109,7 @@ Anda mungkin menemukan bahwa hasil yang Anda dapatkan saat menggunakan kamera ya Untuk mendapatkan hasil terbaik dari pengklasifikasi gambar, Anda ingin melatih model dengan gambar yang semirip mungkin dengan gambar yang digunakan untuk prediksi. Jika Anda menggunakan kamera ponsel untuk menangkap gambar untuk pelatihan, misalnya, kualitas gambar, ketajaman, dan warnanya akan berbeda dengan kamera yang terhubung ke perangkat IoT. -![2 gambar pisang, satu dengan resolusi rendah dan pencahayaan buruk dari perangkat IoT, dan satu dengan resolusi tinggi dan pencahayaan baik dari ponsel](../../../../../translated_images/id/banana-picture-compare.174df164dc326a42cf7fb051a7497e6113c620e91552d92ca914220305d47d9a.png) +![2 gambar pisang, satu dengan resolusi rendah dan pencahayaan buruk dari perangkat IoT, dan satu dengan resolusi tinggi dan pencahayaan baik dari ponsel](../../../../../translated_images/id/banana-picture-compare.174df164dc326a42.webp) Pada gambar di atas, gambar pisang di sebelah kiri diambil menggunakan Kamera Raspberry Pi, sedangkan gambar di sebelah kanan diambil dari pisang yang sama di lokasi yang sama menggunakan iPhone. Ada perbedaan kualitas yang mencolok - gambar iPhone lebih tajam, dengan warna yang lebih cerah dan kontras yang lebih baik. diff --git a/translations/id/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md b/translations/id/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md index 83c0149bc..b1284a086 100644 --- a/translations/id/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md +++ b/translations/id/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md @@ -16,7 +16,7 @@ Kamera dapat dihubungkan ke Raspberry Pi menggunakan kabel pita. ### Tugas - Menghubungkan Kamera -![Kamera Raspberry Pi](../../../../../translated_images/id/pi-camera-module.4278753c31bd6e757aa2b858be97d72049f71616278cefe4fb5abb485b40a078.png) +![Kamera Raspberry Pi](../../../../../translated_images/id/pi-camera-module.4278753c31bd6e75.webp) 1. Matikan daya Pi. @@ -24,17 +24,17 @@ Kamera dapat dihubungkan ke Raspberry Pi menggunakan kabel pita. Anda dapat menemukan animasi yang menunjukkan cara membuka klip dan memasukkan kabel di [dokumentasi Memulai dengan Modul Kamera Raspberry Pi](https://projects.raspberrypi.org/en/projects/getting-started-with-picamera/2). - ![Kabel pita dimasukkan ke modul kamera](../../../../../translated_images/id/pi-camera-ribbon-cable.0bf82acd251611c21ac616f082849413e2b322a261d0e4f8fec344248083b07e.png) + ![Kabel pita dimasukkan ke modul kamera](../../../../../translated_images/id/pi-camera-ribbon-cable.0bf82acd251611c2.webp) 1. Lepaskan Grove Base Hat dari Pi. 1. Lewatkan kabel pita melalui slot kamera di Grove Base Hat. Pastikan sisi biru kabel menghadap ke port analog yang diberi label **A0**, **A1**, dll. - ![Kabel pita melewati Grove Base Hat](../../../../../translated_images/id/grove-base-hat-ribbon-cable.501fed202fcf73b11b2b68f6d246189f7d15d3e4423c572ddee79d77b4632b47.png) + ![Kabel pita melewati Grove Base Hat](../../../../../translated_images/id/grove-base-hat-ribbon-cable.501fed202fcf73b1.webp) 1. Masukkan kabel pita ke port kamera di Pi. Sekali lagi, tarik klip plastik hitam ke atas, masukkan kabel, lalu dorong klip kembali ke tempatnya. Sisi biru kabel harus menghadap ke port USB dan ethernet. - ![Kabel pita terhubung ke soket kamera di Pi](../../../../../translated_images/id/pi-camera-socket-ribbon-cable.a18309920b11800911082ed7aa6fb28e6d9be3a022e4079ff990016cae3fca10.png) + ![Kabel pita terhubung ke soket kamera di Pi](../../../../../translated_images/id/pi-camera-socket-ribbon-cable.a18309920b118009.webp) 1. Pasang kembali Grove Base Hat. @@ -101,7 +101,7 @@ Program perangkat. Baris `camera.rotation = 0` mengatur rotasi gambar. Kabel pita masuk ke bagian bawah kamera, tetapi jika kamera Anda diputar agar lebih mudah mengarah ke objek yang ingin Anda klasifikasikan, maka Anda dapat mengubah baris ini ke jumlah derajat rotasi. - ![Kamera menggantung di atas kaleng minuman](../../../../../translated_images/id/pi-camera-upside-down.5376961ba31459883362124152ad6b823d5ac5fc14e85f317e22903bd681c2b6.png) + ![Kamera menggantung di atas kaleng minuman](../../../../../translated_images/id/pi-camera-upside-down.5376961ba3145988.webp) Misalnya, jika Anda menggantung kabel pita di atas sesuatu sehingga berada di bagian atas kamera, maka atur rotasi menjadi 180: diff --git a/translations/id/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md b/translations/id/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md index f2388eacc..999f18206 100644 --- a/translations/id/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md +++ b/translations/id/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md @@ -84,7 +84,7 @@ Layanan Custom Vision memiliki SDK Python yang dapat Anda gunakan untuk mengklas Anda akan dapat melihat gambar yang diambil, dan nilai-nilai ini di tab **Predictions** di Custom Vision. - ![Sebuah pisang di Custom Vision diprediksi matang dengan probabilitas 56.8% dan belum matang dengan probabilitas 43.1%](../../../../../translated_images/id/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![Sebuah pisang di Custom Vision diprediksi matang dengan probabilitas 56.8% dan belum matang dengan probabilitas 43.1%](../../../../../translated_images/id/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 Anda dapat menemukan kode ini di folder [code-classify/pi](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/pi) atau [code-classify/virtual-iot-device](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/virtual-iot-device). diff --git a/translations/id/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md b/translations/id/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md index 336946e63..d7d74ed05 100644 --- a/translations/id/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md +++ b/translations/id/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md @@ -34,11 +34,11 @@ Tambahkan kamera ke aplikasi CounterFit. 1. Pilih tombol **Add** untuk membuat kamera. - ![Pengaturan kamera](../../../../../translated_images/id/counterfit-create-camera.a5de97f59c0bd3cbe0416d7e89a3cfe86d19fbae05c641c53a91286412af0a34.png) + ![Pengaturan kamera](../../../../../translated_images/id/counterfit-create-camera.a5de97f59c0bd3cb.webp) Kamera akan dibuat dan muncul di daftar sensor. - ![Kamera yang telah dibuat](../../../../../translated_images/id/counterfit-camera.001ec52194c8ee5d3f617173da2c79e1df903d10882adc625cbfc493525125d4.png) + ![Kamera yang telah dibuat](../../../../../translated_images/id/counterfit-camera.001ec52194c8ee5d.webp) ## Program Kamera @@ -103,7 +103,7 @@ Program perangkat. 1. Konfigurasikan gambar yang akan ditangkap oleh kamera di CounterFit. Anda dapat mengatur *Source* ke *File*, lalu mengunggah file gambar, atau mengatur *Source* ke *WebCam*, dan gambar akan ditangkap dari webcam Anda. Pastikan Anda memilih tombol **Set** setelah memilih gambar atau memilih webcam Anda. - ![CounterFit dengan file yang diatur sebagai sumber gambar, dan webcam yang menunjukkan seseorang memegang pisang dalam pratinjau webcam](../../../../../translated_images/id/counterfit-camera-options.eb3bd5150a8e7dffbf24bc5bcaba0cf2cdef95fbe6bbe393695d173817d6b8df.png) + ![CounterFit dengan file yang diatur sebagai sumber gambar, dan webcam yang menunjukkan seseorang memegang pisang dalam pratinjau webcam](../../../../../translated_images/id/counterfit-camera-options.eb3bd5150a8e7dff.webp) 1. Gambar akan ditangkap dan disimpan sebagai `image.jpg` di folder saat ini. Anda akan melihat file ini di penjelajah VS Code. Pilih file untuk melihat gambar. Jika perlu rotasi, perbarui baris `camera.rotation = 0` sesuai kebutuhan dan ambil gambar lagi. diff --git a/translations/id/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md b/translations/id/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md index d4a9706a0..5323da52a 100644 --- a/translations/id/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md +++ b/translations/id/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md @@ -16,7 +16,7 @@ ArduCam tidak memiliki soket Grove, melainkan terhubung ke bus SPI dan I2C melal Sambungkan kamera. -![Sensor ArduCam](../../../../../translated_images/id/arducam.20e4e4cbb268296570b5914e20d6c349fc42ddac9ed4e1b9deba2188204eebae.png) +![Sensor ArduCam](../../../../../translated_images/id/arducam.20e4e4cbb2682965.webp) 1. Pin di bagian bawah ArduCam perlu dihubungkan ke pin GPIO pada Wio Terminal. Untuk mempermudah menemukan pin yang tepat, pasang stiker pin GPIO yang disertakan dengan Wio Terminal di sekitar pin: @@ -35,7 +35,7 @@ Sambungkan kamera. | SDA | 3 (I2C1_SDA) | I2C Serial Data | | SCL | 5 (I2C1_SCL) | I2C Serial Clock | - ![Wio Terminal terhubung ke ArduCam dengan kabel jumper](../../../../../translated_images/id/arducam-wio-terminal-connections.a4d5a4049bdb5ab800a2877389fc6ecf5e4ff307e6451ff56c517e6786467d0a.png) + ![Wio Terminal terhubung ke ArduCam dengan kabel jumper](../../../../../translated_images/id/arducam-wio-terminal-connections.a4d5a4049bdb5ab8.webp) Koneksi GND dan VCC menyediakan catu daya 5V ke ArduCam. Kamera ini berjalan pada 5V, berbeda dengan sensor Grove yang berjalan pada 3V. Daya ini berasal langsung dari koneksi USB-C yang memberi daya pada perangkat. @@ -456,7 +456,7 @@ Wio Terminal hanya mendukung kartu microSD hingga ukuran 16GB. Jika Anda memilik 1. Matikan daya pada kartu microSD dan keluarkan dengan mendorongnya sedikit dan melepaskannya, dan kartu akan keluar. Anda mungkin perlu menggunakan alat tipis untuk melakukannya. Sambungkan kartu microSD ke komputer Anda untuk melihat gambar. - ![Gambar pisang yang ditangkap menggunakan ArduCam](../../../../../translated_images/id/banana-arducam.be1b32d4267a8194b0fd042362e56faa431da9cd4af172051b37243ea9be0256.jpg) + ![Gambar pisang yang ditangkap menggunakan ArduCam](../../../../../translated_images/id/banana-arducam.be1b32d4267a8194.webp) 💁 Mungkin diperlukan beberapa gambar agar keseimbangan putih kamera dapat menyesuaikan dirinya. Anda akan melihat ini berdasarkan warna gambar yang diambil, beberapa gambar pertama mungkin terlihat tidak sesuai warna. Anda selalu dapat mengatasi hal ini dengan mengubah kode untuk mengambil beberapa gambar yang diabaikan dalam fungsi `setup`. diff --git a/translations/id/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md b/translations/id/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md index 5ea53a7cf..bfcd348af 100644 --- a/translations/id/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md +++ b/translations/id/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md @@ -208,7 +208,7 @@ Sertifikat ini berisi kunci publik dan tidak perlu disimpan dengan aman. Anda da Anda akan dapat melihat gambar yang diambil, dan nilai-nilai ini di tab **Predictions** di Custom Vision. - ![Sebuah pisang di Custom Vision diprediksi matang dengan probabilitas 56.8% dan belum matang dengan probabilitas 43.1%](../../../../../translated_images/id/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![Sebuah pisang di Custom Vision diprediksi matang dengan probabilitas 56.8% dan belum matang dengan probabilitas 43.1%](../../../../../translated_images/id/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 Anda dapat menemukan kode ini di folder [code-classify/wio-terminal](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/wio-terminal). diff --git a/translations/id/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md b/translations/id/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md index d0478fe94..3b43c7741 100644 --- a/translations/id/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md +++ b/translations/id/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md @@ -1,6 +1,6 @@ # Jalankan Detektor Buah Anda di Perangkat Edge -![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-17.bc333c3c35ba8e42cce666cfffa82b915f787f455bd94e006aea2b6f2722421a.jpg) +![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-17.bc333c3c35ba8e42.webp) > Sketchnote oleh [Nitya Narasimhan](https://github.com/nitya). Klik gambar untuk versi yang lebih besar. @@ -33,11 +33,11 @@ Dalam pelajaran ini, kita akan membahas: Komputasi edge melibatkan penggunaan komputer yang memproses data IoT sedekat mungkin dengan tempat data tersebut dihasilkan. Alih-alih memproses data di cloud, proses ini dipindahkan ke tepi cloud - jaringan internal Anda. -![Diagram arsitektur yang menunjukkan layanan internet di cloud dan perangkat IoT di jaringan lokal](../../../../../translated_images/id/cloud-without-edge.b4da641f6022c95ed6b91fde8b5323abd2f94e0d52073ad54172ae8f5dac90e9.png) +![Diagram arsitektur yang menunjukkan layanan internet di cloud dan perangkat IoT di jaringan lokal](../../../../../translated_images/id/cloud-without-edge.b4da641f6022c95e.webp) Dalam pelajaran sejauh ini, Anda telah memiliki perangkat yang mengumpulkan data dan mengirimkannya ke cloud untuk dianalisis, menjalankan fungsi serverless atau model AI di cloud. -![Diagram arsitektur yang menunjukkan perangkat IoT di jaringan lokal yang terhubung ke perangkat edge, dan perangkat edge tersebut terhubung ke cloud](../../../../../translated_images/id/cloud-with-edge.1e26462c62c126fe150bd15a5714ddf0be599f09bacbad08b85be02b76ea1ae1.png) +![Diagram arsitektur yang menunjukkan perangkat IoT di jaringan lokal yang terhubung ke perangkat edge, dan perangkat edge tersebut terhubung ke cloud](../../../../../translated_images/id/cloud-with-edge.1e26462c62c126fe.webp) Komputasi edge melibatkan pemindahan beberapa layanan cloud dari cloud ke komputer yang berjalan di jaringan yang sama dengan perangkat IoT, hanya berkomunikasi dengan cloud jika diperlukan. Sebagai contoh, Anda dapat menjalankan model AI pada perangkat edge untuk menganalisis kematangan buah, dan hanya mengirimkan analitik kembali ke cloud, seperti jumlah buah matang dibandingkan buah yang belum matang. @@ -85,7 +85,7 @@ Untuk sistem IoT, Anda sering kali menginginkan kombinasi komputasi cloud dan ed ## Azure IoT Edge -![Logo Azure IoT Edge](../../../../../translated_images/id/azure-iot-edge-logo.c1c076749b5cba2e8755262fadc2f19ca1146b948d76990b1229199ac2292d79.png) +![Logo Azure IoT Edge](../../../../../translated_images/id/azure-iot-edge-logo.c1c076749b5cba2e.webp) Azure IoT Edge adalah layanan yang dapat membantu Anda memindahkan beban kerja dari cloud ke edge. Anda mengatur perangkat sebagai perangkat edge, dan dari cloud Anda dapat menerapkan kode ke perangkat edge tersebut. Ini memungkinkan Anda menggabungkan kemampuan cloud dan edge. @@ -99,7 +99,7 @@ IoT Edge terintegrasi dengan IoT Hub, sehingga Anda dapat mengelola perangkat ed IoT Edge menjalankan kode dari *kontainer* - aplikasi mandiri yang dijalankan secara terisolasi dari aplikasi lain di komputer Anda. Ketika Anda menjalankan kontainer, itu bertindak seperti komputer terpisah yang berjalan di dalam komputer Anda, dengan perangkat lunak, layanan, dan aplikasi sendiri yang berjalan. Sebagian besar waktu, kontainer tidak dapat mengakses apa pun di komputer Anda kecuali Anda memilih untuk berbagi hal-hal seperti folder dengan kontainer. Kontainer kemudian mengekspos layanan melalui port terbuka yang dapat Anda hubungkan atau ekspos ke jaringan Anda. -![Permintaan web dialihkan ke kontainer](../../../../../translated_images/id/container-web-browser.4ee81dd4f0d8838ce622b2a0d600b6a4322b5d4fe43159facd87b7b34f84d66a.png) +![Permintaan web dialihkan ke kontainer](../../../../../translated_images/id/container-web-browser.4ee81dd4f0d8838c.webp) Sebagai contoh, Anda dapat memiliki kontainer dengan situs web yang berjalan di port 80, port HTTP default, dan Anda kemudian dapat mengeksposnya dari komputer Anda juga di port 80. @@ -196,11 +196,11 @@ Setelah model dilatih, model tersebut perlu diekspor sebagai container. ## Persiapkan container Anda untuk deployment -![Container dibuat lalu didorong ke container registry, kemudian diterapkan dari container registry ke perangkat edge menggunakan IoT Edge](../../../../../translated_images/id/container-edge-flow.c246050dd60ceefdb6ace026a4ce5c6aa4112bb5898ae23fbb2ab4be29ae3e1b.png) +![Container dibuat lalu didorong ke container registry, kemudian diterapkan dari container registry ke perangkat edge menggunakan IoT Edge](../../../../../translated_images/id/container-edge-flow.c246050dd60ceefd.webp) Setelah Anda mengunduh model Anda, model tersebut perlu dibangun ke dalam container, lalu didorong ke container registry - lokasi online tempat Anda dapat menyimpan container. IoT Edge kemudian dapat mengunduh container dari registry dan mendorongnya ke perangkat Anda. -![Logo Azure Container Registry](../../../../../translated_images/id/azure-container-registry-logo.09494206991d4b295025ebff7d4e2900325e527a59184ffbc8464b6ab59654be.png) +![Logo Azure Container Registry](../../../../../translated_images/id/azure-container-registry-logo.09494206991d4b29.webp) Container registry yang akan Anda gunakan untuk pelajaran ini adalah Azure Container Registry. Ini bukan layanan gratis, jadi untuk menghemat uang pastikan Anda [membersihkan proyek Anda](../../../clean-up.md) setelah selesai. diff --git a/translations/id/4-manufacturing/lessons/4-trigger-fruit-detector/README.md b/translations/id/4-manufacturing/lessons/4-trigger-fruit-detector/README.md index 1335efb4e..9d6de6efa 100644 --- a/translations/id/4-manufacturing/lessons/4-trigger-fruit-detector/README.md +++ b/translations/id/4-manufacturing/lessons/4-trigger-fruit-detector/README.md @@ -1,6 +1,6 @@ # Memicu Deteksi Kualitas Buah dari Sensor -![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-18.92c32ed1d354caa5a54baa4032cf0b172d4655e8e326ad5d46c558a0def15365.jpg) +![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-18.92c32ed1d354caa5.webp) > Sketchnote oleh [Nitya Narasimhan](https://github.com/nitya). Klik gambar untuk versi yang lebih besar. @@ -39,7 +39,7 @@ Aplikasi IoT dapat digambarkan sebagai *things* (perangkat) yang mengirimkan dat ### Arsitektur Referensi IoT -![Arsitektur referensi IoT](../../../../../translated_images/id/iot-reference-architecture.2278b98b55c6d4e89bde18eada3688d893861d43507641804dd2f9d3079cfaa0.png) +![Arsitektur referensi IoT](../../../../../translated_images/id/iot-reference-architecture.2278b98b55c6d4e8.webp) Diagram di atas menunjukkan arsitektur referensi IoT. @@ -49,7 +49,7 @@ Diagram di atas menunjukkan arsitektur referensi IoT. * **Insights** berasal dari aplikasi tanpa server, atau dari analisis yang dijalankan pada data yang disimpan. * **Actions** dapat berupa perintah yang dikirim ke perangkat, atau visualisasi data yang memungkinkan manusia membuat keputusan. -![Arsitektur referensi IoT di Azure](../../../../../translated_images/id/iot-reference-architecture-azure.0b8d2161af924cb18ae48a8558a19541cca47f27264851b5b7e56d7b8bb372ac.png) +![Arsitektur referensi IoT di Azure](../../../../../translated_images/id/iot-reference-architecture-azure.0b8d2161af924cb1.webp) Diagram di atas menunjukkan beberapa komponen dan layanan yang telah dibahas sejauh ini dalam pelajaran ini dan bagaimana mereka terhubung dalam arsitektur referensi IoT. @@ -89,7 +89,7 @@ Anda perlu membangun sistem di mana buah terdeteksi saat tiba di ban berjalan, k ### Membuat Prototipe Aplikasi Anda -![Arsitektur referensi IoT untuk pemeriksaan kualitas buah](../../../../../translated_images/id/iot-reference-architecture-fruit-quality.cc705f121c3b6fa71c800d9630935ac34bc08223a04601e35f41d5e9b5dd5207.png) +![Arsitektur referensi IoT untuk pemeriksaan kualitas buah](../../../../../translated_images/id/iot-reference-architecture-fruit-quality.cc705f121c3b6fa7.webp) Diagram di atas menunjukkan arsitektur referensi untuk aplikasi prototipe ini. @@ -124,7 +124,7 @@ Ikuti panduan yang relevan untuk menggunakan sensor jarak untuk mendeteksi objek Prototipe detektor buah memiliki beberapa komponen yang saling berkomunikasi. -![Komponen yang saling berkomunikasi](../../../../../translated_images/id/fruit-quality-detector-message-flow.adf2a65da8fd8741ac7af11361574de89adc126785d67606bb4d2ec00467e380.png) +![Komponen yang saling berkomunikasi](../../../../../translated_images/id/fruit-quality-detector-message-flow.adf2a65da8fd8741.webp) * Sensor jarak mengukur jarak ke buah dan mengirimkannya ke IoT Hub * Perintah untuk mengontrol kamera berasal dari IoT Hub ke perangkat kamera diff --git a/translations/id/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md b/translations/id/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md index 0e6bd3c17..908047514 100644 --- a/translations/id/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md +++ b/translations/id/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md @@ -20,7 +20,7 @@ Sensor Grove time of flight dapat dihubungkan ke Raspberry Pi. Hubungkan sensor time of flight. -![Sensor time of flight Grove](../../../../../translated_images/id/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![Sensor time of flight Grove](../../../../../translated_images/id/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. Masukkan salah satu ujung kabel Grove ke soket pada sensor time of flight. Kabel hanya dapat masuk dengan satu arah. diff --git a/translations/id/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md b/translations/id/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md index 7c725790a..bd9da3cd1 100644 --- a/translations/id/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md +++ b/translations/id/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md @@ -36,11 +36,11 @@ Tambahkan sensor jarak ke aplikasi CounterFit. 1. Pilih tombol **Add** untuk membuat sensor jarak. - ![Pengaturan sensor jarak](../../../../../translated_images/id/counterfit-create-distance-sensor.967c9fb98f27888d95920c9784d004c972490eb71f70397fe13bd70a79a879a3.png) + ![Pengaturan sensor jarak](../../../../../translated_images/id/counterfit-create-distance-sensor.967c9fb98f27888d.webp) Sensor jarak akan dibuat dan muncul dalam daftar sensor. - ![Sensor jarak yang dibuat](../../../../../translated_images/id/counterfit-distance-sensor.079eefeeea0b68afc36431ce8fcbe2f09a7e4916ed1cd5cb30e696db53bc18fa.png) + ![Sensor jarak yang dibuat](../../../../../translated_images/id/counterfit-distance-sensor.079eefeeea0b68af.webp) ## Program sensor jarak diff --git a/translations/id/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md b/translations/id/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md index 199d7e7b3..310aab721 100644 --- a/translations/id/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md +++ b/translations/id/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md @@ -20,7 +20,7 @@ Sensor Grove time of flight dapat dihubungkan ke Wio Terminal. Hubungkan sensor time of flight. -![Sensor Grove time of flight](../../../../../translated_images/id/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![Sensor Grove time of flight](../../../../../translated_images/id/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. Masukkan salah satu ujung kabel Grove ke soket pada sensor time of flight. Kabel hanya dapat masuk dengan satu arah. diff --git a/translations/id/5-retail/lessons/1-train-stock-detector/README.md b/translations/id/5-retail/lessons/1-train-stock-detector/README.md index cf61e44c9..5732cfcae 100644 --- a/translations/id/5-retail/lessons/1-train-stock-detector/README.md +++ b/translations/id/5-retail/lessons/1-train-stock-detector/README.md @@ -1,6 +1,6 @@ # Melatih Detektor Stok -![Ikhtisar sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-19.cf6973cecadf080c4b526310620dc4d6f5994c80fb0139c6f378cc9ca2d435cd.jpg) +![Ikhtisar sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-19.cf6973cecadf080c.webp) > Sketchnote oleh [Nitya Narasimhan](https://github.com/nitya). Klik gambar untuk versi yang lebih besar. @@ -36,7 +36,7 @@ Deteksi objek melibatkan pendeteksian objek dalam gambar menggunakan AI. Berbeda Klasifikasi gambar adalah tentang mengklasifikasikan keseluruhan gambar - apa probabilitas bahwa keseluruhan gambar cocok dengan setiap tag. Anda akan mendapatkan kembali probabilitas untuk setiap tag yang digunakan untuk melatih model. -![Klasifikasi gambar kacang mete dan pasta tomat](../../../../../translated_images/id/image-classifier-cashews-tomato.bc2e16ab8f05cf9ac0f59f73e32efc4227f9a5b601b90b2c60f436694547a965.png) +![Klasifikasi gambar kacang mete dan pasta tomat](../../../../../translated_images/id/image-classifier-cashews-tomato.bc2e16ab8f05cf9a.webp) Dalam contoh di atas, dua gambar diklasifikasikan menggunakan model yang dilatih untuk mengklasifikasikan wadah kacang mete atau kaleng pasta tomat. Gambar pertama adalah wadah kacang mete, dan memiliki dua hasil dari pengklasifikasi gambar: @@ -60,7 +60,7 @@ Ketika Anda kemudian menggunakannya untuk memprediksi gambar, alih-alih mendapat > 🎓 *Kotak pembatas* adalah kotak di sekitar objek. -![Deteksi objek kacang mete dan pasta tomat](../../../../../translated_images/id/object-detector-cashews-tomato.1af7c26686b4db0e709754aeb196f4e73271f54e2085db3bcccb70d4a0d84d97.png) +![Deteksi objek kacang mete dan pasta tomat](../../../../../translated_images/id/object-detector-cashews-tomato.1af7c26686b4db0e.webp) Gambar di atas berisi wadah kacang mete dan tiga kaleng pasta tomat. Detektor objek mendeteksi kacang mete, mengembalikan kotak pembatas yang berisi kacang mete dengan persentase kemungkinan bahwa kotak pembatas berisi objek, dalam hal ini 97.6%. Detektor objek juga mendeteksi tiga kaleng pasta tomat, dan memberikan tiga kotak pembatas terpisah, satu untuk setiap kaleng yang terdeteksi, dan masing-masing memiliki probabilitas persentase bahwa kotak pembatas berisi kaleng pasta tomat. @@ -111,7 +111,7 @@ Anda dapat melatih detektor objek menggunakan Custom Vision, dengan cara yang mi Saat Anda membuat proyek Anda, pastikan untuk menggunakan sumber daya `stock-detector-training` yang Anda buat sebelumnya. Gunakan tipe proyek *Object Detection*, dan domain *Products on Shelves*. - ![Pengaturan untuk proyek Custom Vision dengan nama diatur ke fruit-quality-detector, tanpa deskripsi, sumber daya diatur ke fruit-quality-detector-training, tipe proyek diatur ke classification, tipe klasifikasi diatur ke multi class dan domain diatur ke food](../../../../../translated_images/id/custom-vision-create-object-detector-project.32d4fb9aa8e7e7375f8a799bfce517aca970f2cb65e42d4245c5e635c734ab29.png) + ![Pengaturan untuk proyek Custom Vision dengan nama diatur ke fruit-quality-detector, tanpa deskripsi, sumber daya diatur ke fruit-quality-detector-training, tipe proyek diatur ke classification, tipe klasifikasi diatur ke multi class dan domain diatur ke food](../../../../../translated_images/id/custom-vision-create-object-detector-project.32d4fb9aa8e7e737.webp) ✅ Domain produk di rak secara khusus ditargetkan untuk mendeteksi stok di rak toko. Baca lebih lanjut tentang berbagai domain di [Dokumentasi Pilih Domain di Microsoft Docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/select-domain?WT.mc_id=academic-17441-jabenn#object-detection) @@ -133,11 +133,11 @@ Untuk melatih model Anda, Anda akan membutuhkan serangkaian gambar yang berisi o 1. Ikuti [Bagian Unggah dan beri tag gambar dari panduan cepat Membangun detektor objek di dokumen Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/get-started-build-detector?WT.mc_id=academic-17441-jabenn#upload-and-tag-images) untuk mengunggah gambar pelatihan Anda. Buat tag yang relevan tergantung pada jenis objek yang ingin Anda deteksi. - ![Dialog unggahan menunjukkan unggahan gambar pisang matang dan belum matang](../../../../../translated_images/id/image-upload-object-detector.77c7892c3093cb59b79018edecd678749a75d71a099bc8a2d2f2f76320f88a5b.png) + ![Dialog unggahan menunjukkan unggahan gambar pisang matang dan belum matang](../../../../../translated_images/id/image-upload-object-detector.77c7892c3093cb59.webp) Saat Anda menggambar kotak pembatas untuk objek, buatlah kotak tersebut pas di sekitar objek. Mungkin membutuhkan waktu untuk menggambar semua gambar, tetapi alat ini akan mendeteksi apa yang dianggap sebagai kotak pembatas, membuatnya lebih cepat. - ![Memberi tag pada beberapa pasta tomat](../../../../../translated_images/id/object-detector-tag-tomato-paste.f47c362fb0f0eb582f3bc68cf3855fb43a805106395358d41896a269c210b7b4.png) + ![Memberi tag pada beberapa pasta tomat](../../../../../translated_images/id/object-detector-tag-tomato-paste.f47c362fb0f0eb58.webp) > 💁 Jika Anda memiliki lebih dari 15 gambar untuk setiap objek, Anda dapat melatih setelah 15 gambar lalu menggunakan fitur **Suggested tags**. Fitur ini akan menggunakan model yang dilatih untuk mendeteksi objek dalam gambar yang belum diberi tag. Anda kemudian dapat mengonfirmasi objek yang terdeteksi, atau menolak dan menggambar ulang kotak pembatas. Ini dapat menghemat *banyak* waktu. @@ -155,7 +155,7 @@ Setelah detektor objek Anda dilatih, Anda dapat mengujinya dengan memberikan gam 1. Gunakan tombol **Quick Test** untuk mengunggah gambar pengujian dan memverifikasi objek yang terdeteksi. Gunakan gambar pengujian yang Anda buat sebelumnya, bukan gambar yang Anda gunakan untuk pelatihan. - ![3 kaleng pasta tomat terdeteksi dengan probabilitas 38%, 35.5%, dan 34.6%](../../../../../translated_images/id/object-detector-detected-tomato-paste.52656fe87af4c37b4ee540526d63e73ed075da2e54a9a060aa528e0c562fb1b6.png) + ![3 kaleng pasta tomat terdeteksi dengan probabilitas 38%, 35.5%, dan 34.6%](../../../../../translated_images/id/object-detector-detected-tomato-paste.52656fe87af4c37b.webp) 1. Cobalah semua gambar pengujian yang Anda miliki dan amati probabilitasnya. diff --git a/translations/id/5-retail/lessons/2-check-stock-device/README.md b/translations/id/5-retail/lessons/2-check-stock-device/README.md index 207452f16..c4a18b3d2 100644 --- a/translations/id/5-retail/lessons/2-check-stock-device/README.md +++ b/translations/id/5-retail/lessons/2-check-stock-device/README.md @@ -1,6 +1,6 @@ # Periksa Stok dari Perangkat IoT -![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-20.0211df9551a8abb300fc8fcf7dc2789468dea2eabe9202273ac077b0ba37f15e.jpg) +![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-20.0211df9551a8abb3.webp) > Sketchnote oleh [Nitya Narasimhan](https://github.com/nitya). Klik gambar untuk versi yang lebih besar. @@ -62,7 +62,7 @@ Iterasi diterbitkan dari portal Custom Vision. 1. Pilih tombol **Publish** untuk iterasi tersebut. - ![Tombol publish](../../../../../translated_images/id/custom-vision-object-detector-publish-button.34ee379fc650ccb9856c3868d0003f413b9529f102fc73c37168c98d721cc293.png) + ![Tombol publish](../../../../../translated_images/id/custom-vision-object-detector-publish-button.34ee379fc650ccb9.webp) 1. Dalam dialog *Publish Model*, atur *Prediction resource* ke sumber daya `stock-detector-prediction` yang Anda buat pada pelajaran sebelumnya. Biarkan nama sebagai `Iteration2`, dan pilih tombol **Publish**. @@ -76,7 +76,7 @@ Iterasi diterbitkan dari portal Custom Vision. Juga salin nilai *Prediction-Key*. Ini adalah kunci aman yang harus Anda sertakan saat memanggil model. Hanya aplikasi yang menyertakan kunci ini yang diizinkan menggunakan model, aplikasi lain akan ditolak. - ![Dialog API prediksi yang menunjukkan URL dan kunci](../../../../../translated_images/id/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![Dialog API prediksi yang menunjukkan URL dan kunci](../../../../../translated_images/id/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ Ketika iterasi baru diterbitkan, iterasi tersebut akan memiliki nama yang berbeda. Bagaimana menurut Anda cara mengubah iterasi yang digunakan perangkat IoT? @@ -95,7 +95,7 @@ Saat Anda menggunakan detektor objek, Anda tidak hanya mendapatkan kembali objek Hasil prediksi di tab **Predictions** di Custom Vision memiliki kotak pembatas yang digambar pada gambar yang dikirim untuk prediksi. -![4 kaleng pasta tomat di rak dengan prediksi untuk 4 deteksi masing-masing 35.8%, 33.5%, 25.7%, dan 16.6%](../../../../../translated_images/id/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) +![4 kaleng pasta tomat di rak dengan prediksi untuk 4 deteksi masing-masing 35.8%, 33.5%, 25.7%, dan 16.6%](../../../../../translated_images/id/custom-vision-stock-prediction.942266ab1bcca341.webp) Pada gambar di atas, 4 kaleng pasta tomat terdeteksi. Dalam hasilnya, kotak merah ditampilkan untuk setiap objek yang terdeteksi dalam gambar, menunjukkan kotak pembatas untuk gambar tersebut. @@ -103,7 +103,7 @@ Pada gambar di atas, 4 kaleng pasta tomat terdeteksi. Dalam hasilnya, kotak mera Kotak pembatas didefinisikan dengan 4 nilai - atas, kiri, tinggi, dan lebar. Nilai-nilai ini berada dalam skala 0-1, mewakili posisi sebagai persentase dari ukuran gambar. Titik asal (posisi 0,0) adalah sudut kiri atas gambar, sehingga nilai atas adalah jarak dari atas, dan bagian bawah kotak pembatas adalah nilai atas ditambah tinggi. -![Kotak pembatas di sekitar kaleng pasta tomat](../../../../../translated_images/id/bounding-box.1420a7ea0d3d15f71e1ffb5cf4b2271d184fac051f990abc541975168d163684.png) +![Kotak pembatas di sekitar kaleng pasta tomat](../../../../../translated_images/id/bounding-box.1420a7ea0d3d15f7.webp) Gambar di atas memiliki lebar 600 piksel dan tinggi 800 piksel. Kotak pembatas dimulai pada 320 piksel ke bawah, memberikan koordinat atas 0.4 (800 x 0.4 = 320). Dari kiri, kotak pembatas dimulai pada 240 piksel ke samping, memberikan koordinat kiri 0.4 (600 x 0.4 = 240). Tinggi kotak pembatas adalah 240 piksel, memberikan nilai tinggi 0.3 (800 x 0.3 = 240). Lebar kotak pembatas adalah 120 piksel, memberikan nilai lebar 0.2 (600 x 0.2 = 120). @@ -118,7 +118,7 @@ Menggunakan nilai persentase dari 0-1 berarti tidak peduli seberapa besar gambar Anda dapat menggunakan kotak pembatas yang dikombinasikan dengan probabilitas untuk mengevaluasi seberapa akurat suatu deteksi. Sebagai contoh, detektor objek dapat mendeteksi beberapa objek yang saling tumpang tindih, misalnya mendeteksi satu kaleng di dalam kaleng lainnya. Kode Anda dapat memeriksa kotak pembatas, memahami bahwa ini tidak mungkin, dan mengabaikan objek apa pun yang memiliki tumpang tindih signifikan dengan objek lain. -![Dua kotak pembatas tumpang tindih pada kaleng pasta tomat](../../../../../translated_images/id/overlap-object-detection.d431e03cae75072a2760430eca7f2c5fdd43045bfd72dadcbf12711f7cd6c2ae.png) +![Dua kotak pembatas tumpang tindih pada kaleng pasta tomat](../../../../../translated_images/id/overlap-object-detection.d431e03cae75072a.webp) Dalam contoh di atas, satu kotak pembatas menunjukkan prediksi kaleng pasta tomat dengan probabilitas 78.3%. Kotak pembatas kedua sedikit lebih kecil, dan berada di dalam kotak pembatas pertama dengan probabilitas 64.3%. Kode Anda dapat memeriksa kotak pembatas, melihat bahwa mereka sepenuhnya tumpang tindih, dan mengabaikan probabilitas yang lebih rendah karena tidak mungkin satu kaleng berada di dalam kaleng lainnya. diff --git a/translations/id/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md b/translations/id/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md index 35fdc7355..bda4d41fd 100644 --- a/translations/id/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md +++ b/translations/id/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md @@ -67,7 +67,7 @@ Kode yang Anda gunakan untuk mengklasifikasi gambar sangat mirip dengan kode unt Anda akan dapat melihat gambar yang diambil, dan nilai-nilai ini di tab **Predictions** di Custom Vision. - ![4 kaleng pasta tomat di rak dengan prediksi untuk 4 deteksi masing-masing 35.8%, 33.5%, 25.7%, dan 16.6%](../../../../../translated_images/id/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![4 kaleng pasta tomat di rak dengan prediksi untuk 4 deteksi masing-masing 35.8%, 33.5%, 25.7%, dan 16.6%](../../../../../translated_images/id/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 Anda dapat menemukan kode ini di folder [code-detect/pi](../../../../../5-retail/lessons/2-check-stock-device/code-detect/pi) atau [code-detect/virtual-iot-device](../../../../../5-retail/lessons/2-check-stock-device/code-detect/virtual-iot-device). diff --git a/translations/id/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md b/translations/id/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md index 2c4c707c8..f87b9e721 100644 --- a/translations/id/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md +++ b/translations/id/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md @@ -95,7 +95,7 @@ Kode yang Anda gunakan untuk mengklasifikasi gambar sangat mirip dengan kode unt Anda akan dapat melihat gambar yang diambil, dan nilai-nilai ini di tab **Predictions** di Custom Vision. - ![4 kaleng pasta tomat di rak dengan prediksi untuk 4 deteksi sebesar 35.8%, 33.5%, 25.7%, dan 16.6%](../../../../../translated_images/id/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![4 kaleng pasta tomat di rak dengan prediksi untuk 4 deteksi sebesar 35.8%, 33.5%, 25.7%, dan 16.6%](../../../../../translated_images/id/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 Anda dapat menemukan kode ini di folder [code-detect/wio-terminal](../../../../../5-retail/lessons/2-check-stock-device/code-detect/wio-terminal). diff --git a/translations/id/6-consumer/lessons/1-speech-recognition/README.md b/translations/id/6-consumer/lessons/1-speech-recognition/README.md index aa553c0f9..4dceed257 100644 --- a/translations/id/6-consumer/lessons/1-speech-recognition/README.md +++ b/translations/id/6-consumer/lessons/1-speech-recognition/README.md @@ -1,6 +1,6 @@ # Mengenali Ucapan dengan Perangkat IoT -![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-21.e34de51354d6606fb5ee08d8c89d0222eea0a2a7aaf744a8805ae847c4f69dc4.jpg) +![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-21.e34de51354d6606f.webp) > Sketchnote oleh [Nitya Narasimhan](https://github.com/nitya). Klik gambar untuk versi yang lebih besar. @@ -51,7 +51,7 @@ Mikrofon tersedia dalam berbagai jenis: Mikrofon dinamis tidak memerlukan daya untuk bekerja, sinyal listrik sepenuhnya dihasilkan dari mikrofon. - ![Patti Smith bernyanyi ke mikrofon Shure SM58 (jenis cardioid dinamis)](../../../../../translated_images/id/dynamic-mic.8babac890a2d80dfb0874b5bf37d4b851fe2aeb9da6fd72945746176978bf3bb.jpg) + ![Patti Smith bernyanyi ke mikrofon Shure SM58 (jenis cardioid dinamis)](../../../../../translated_images/id/dynamic-mic.8babac890a2d80df.webp) * Pita - Mikrofon pita mirip dengan mikrofon dinamis, kecuali mereka memiliki pita logam alih-alih diafragma. Pita ini bergerak dalam medan magnet, menghasilkan arus listrik. Seperti mikrofon dinamis, mikrofon pita tidak memerlukan daya untuk bekerja. @@ -59,11 +59,11 @@ Mikrofon tersedia dalam berbagai jenis: * Kondensor - Mikrofon kondensor memiliki diafragma logam tipis dan pelat belakang logam tetap. Listrik diterapkan pada keduanya, dan saat diafragma bergetar, muatan statis antara pelat berubah, menghasilkan sinyal. Mikrofon kondensor memerlukan daya untuk bekerja - disebut *Phantom power*. - ![Mikrofon kondensor diafragma kecil C451B oleh AKG Acoustics](../../../../../translated_images/id/condenser-mic.6f6ed5b76ca19e0ec3fd0c544601542d4479a6cb7565db336de49fbbf69f623e.jpg) + ![Mikrofon kondensor diafragma kecil C451B oleh AKG Acoustics](../../../../../translated_images/id/condenser-mic.6f6ed5b76ca19e0e.webp) * MEMS - Mikrofon sistem mikroelektromekanis, atau MEMS, adalah mikrofon pada chip. Mereka memiliki diafragma sensitif tekanan yang diukir pada chip silikon, dan bekerja mirip dengan mikrofon kondensor. Mikrofon ini bisa sangat kecil dan terintegrasi ke dalam sirkuit. - ![Mikrofon MEMS pada papan sirkuit](../../../../../translated_images/id/mems-microphone.80574019e1f5e4d9ee72fed720ecd25a39fc2969c91355d17ebb24ba4159e4c4.png) + ![Mikrofon MEMS pada papan sirkuit](../../../../../translated_images/id/mems-microphone.80574019e1f5e4d9.webp) Pada gambar di atas, chip berlabel **LEFT** adalah mikrofon MEMS, dengan diafragma kecil kurang dari satu milimeter lebar. @@ -159,7 +159,7 @@ Untuk menghindari kompleksitas pelatihan dan penggunaan model wake word, timer p ## Mengubah suara menjadi teks -![Logo layanan suara](../../../../../translated_images/id/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![Logo layanan suara](../../../../../translated_images/id/azure-speech-logo.a1f08c4befb0159f.webp) Sama seperti klasifikasi gambar dalam proyek sebelumnya, ada layanan AI yang sudah dibuat yang dapat mengambil suara sebagai file audio dan mengubahnya menjadi teks. Salah satu layanan tersebut adalah Speech Service, bagian dari Cognitive Services, layanan AI yang sudah dibuat yang dapat Anda gunakan dalam aplikasi Anda. diff --git a/translations/id/6-consumer/lessons/1-speech-recognition/pi-audio.md b/translations/id/6-consumer/lessons/1-speech-recognition/pi-audio.md index f501a9899..6764f16f1 100644 --- a/translations/id/6-consumer/lessons/1-speech-recognition/pi-audio.md +++ b/translations/id/6-consumer/lessons/1-speech-recognition/pi-audio.md @@ -16,13 +16,13 @@ Tombol dapat dihubungkan ke Grove base hat. #### Tugas - Menghubungkan Tombol -![Tombol Grove](../../../../../translated_images/id/grove-button.a70cfbb809a8563681003250cf5b06d68cdcc68624f9e2f493d5a534ae2da1e5.png) +![Tombol Grove](../../../../../translated_images/id/grove-button.a70cfbb809a85636.webp) 1. Masukkan salah satu ujung kabel Grove ke soket pada modul tombol. Kabel hanya dapat masuk dengan satu arah. 1. Dengan Raspberry Pi dalam keadaan mati, hubungkan ujung lain kabel Grove ke soket digital yang diberi tanda **D5** pada Grove Base hat yang terpasang di Pi. Soket ini adalah soket kedua dari kiri, pada baris soket di sebelah pin GPIO. -![Tombol Grove terhubung ke soket D5](../../../../../translated_images/id/pi-button.c7a1a4f55943341ce1baf1057658e9a205804d4131d258e820c93f951df0abf3.png) +![Tombol Grove terhubung ke soket D5](../../../../../translated_images/id/pi-button.c7a1a4f55943341c.webp) ## Menangkap Audio diff --git a/translations/id/6-consumer/lessons/1-speech-recognition/pi-microphone.md b/translations/id/6-consumer/lessons/1-speech-recognition/pi-microphone.md index b7b149f22..f6a8ab9fc 100644 --- a/translations/id/6-consumer/lessons/1-speech-recognition/pi-microphone.md +++ b/translations/id/6-consumer/lessons/1-speech-recognition/pi-microphone.md @@ -34,7 +34,7 @@ Mikrofon dan speaker perlu dihubungkan dan dikonfigurasi. 1. Jika Anda menggunakan ReSpeaker 2-Mics Pi HAT, Anda dapat melepas Grove base hat, lalu pasang ReSpeaker hat di tempatnya. - ![Raspberry Pi dengan ReSpeaker hat](../../../../../translated_images/id/pi-respeaker-hat.f00fabe7dd039a93e2e0aa0fc946c9af0c6a9eb17c32fa1ca097fb4e384f69f0.png) + ![Raspberry Pi dengan ReSpeaker hat](../../../../../translated_images/id/pi-respeaker-hat.f00fabe7dd039a93.webp) Anda akan memerlukan tombol Grove nanti dalam pelajaran ini, tetapi tombol Grove sudah terpasang di hat ini, sehingga Grove base hat tidak diperlukan. diff --git a/translations/id/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md b/translations/id/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md index 5a6475412..dc3a4cf03 100644 --- a/translations/id/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md +++ b/translations/id/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md @@ -10,7 +10,7 @@ Mikrofon bawaan menangkap sinyal analog, yang kemudian dikonversi menjadi sinyal ✅ Baca lebih lanjut tentang DMA di [halaman akses memori langsung di Wikipedia](https://wikipedia.org/wiki/Direct_memory_access). -![Audio dari mikrofon masuk ke ADC lalu ke DMAC. DMAC menulis ke satu buffer. Ketika buffer ini penuh, data diproses dan DMAC menulis ke buffer kedua](../../../../../translated_images/id/dmac-adc-buffers.4509aee49145c90bc2e1be472b8ed2ddfcb2b6a81ad3e559114aca55f5fff759.png) +![Audio dari mikrofon masuk ke ADC lalu ke DMAC. DMAC menulis ke satu buffer. Ketika buffer ini penuh, data diproses dan DMAC menulis ke buffer kedua](../../../../../translated_images/id/dmac-adc-buffers.4509aee49145c90b.webp) DMAC dapat menangkap audio dari ADC pada interval tetap, seperti 16.000 kali per detik untuk audio 16KHz. DMAC dapat menulis data yang ditangkap ini ke buffer memori yang telah dialokasikan sebelumnya, dan ketika buffer ini penuh, data tersedia untuk diproses oleh kode Anda. Penggunaan memori ini dapat menunda penangkapan audio, tetapi Anda dapat mengatur beberapa buffer. DMAC menulis ke buffer 1, lalu ketika buffer ini penuh, DMAC memberi tahu kode Anda untuk memproses buffer 1, sementara DMAC menulis ke buffer 2. Ketika buffer 2 penuh, DMAC memberi tahu kode Anda, dan kembali menulis ke buffer 1. Dengan cara ini, selama Anda memproses setiap buffer dalam waktu yang lebih singkat daripada waktu yang diperlukan untuk mengisi satu buffer, Anda tidak akan kehilangan data. diff --git a/translations/id/6-consumer/lessons/2-language-understanding/README.md b/translations/id/6-consumer/lessons/2-language-understanding/README.md index 4c9c17357..92b283fef 100644 --- a/translations/id/6-consumer/lessons/2-language-understanding/README.md +++ b/translations/id/6-consumer/lessons/2-language-understanding/README.md @@ -1,6 +1,6 @@ # Memahami Bahasa -![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-22.6148ea28500d9e00c396aaa2649935fb6641362c8f03d8e5e90a676977ab01dd.jpg) +![Gambaran sketchnote dari pelajaran ini](../../../../../translated_images/id/lesson-22.6148ea28500d9e00.webp) > Sketchnote oleh [Nitya Narasimhan](https://github.com/nitya). Klik gambar untuk versi yang lebih besar. @@ -46,7 +46,7 @@ Model pemahaman bahasa adalah model AI yang dilatih untuk mengekstrak detail ter ## Membuat Model Pemahaman Bahasa -![Logo LUIS](../../../../../translated_images/id/luis-logo.5cb4f3e88c020ee6df4f614e8831f4a4b6809a7247bf52085fb48d629ef9be52.png) +![Logo LUIS](../../../../../translated_images/id/luis-logo.5cb4f3e88c020ee6.webp) Anda dapat membuat model pemahaman bahasa menggunakan LUIS, layanan pemahaman bahasa dari Microsoft yang merupakan bagian dari Cognitive Services. @@ -169,7 +169,7 @@ Anda dapat menemukan instruksi untuk menggunakan portal LUIS di [Panduan Cepat: 1. Saat Anda memasukkan setiap contoh, LUIS akan mulai mendeteksi entitas, dan akan menggarisbawahi serta memberi label pada entitas yang ditemukan. - ![Contoh dengan angka dan satuan waktu yang digarisbawahi oleh LUIS](../../../../../translated_images/id/luis-intent-examples.25716580b2d2723cf1bafdf277d015c7f046d8cfa20f27bddf3a0873ec45fab7.png) + ![Contoh dengan angka dan satuan waktu yang digarisbawahi oleh LUIS](../../../../../translated_images/id/luis-intent-examples.25716580b2d2723c.webp) ### Tugas - melatih dan menguji model diff --git a/translations/id/6-consumer/lessons/3-spoken-feedback/README.md b/translations/id/6-consumer/lessons/3-spoken-feedback/README.md index c23f29484..95438091f 100644 --- a/translations/id/6-consumer/lessons/3-spoken-feedback/README.md +++ b/translations/id/6-consumer/lessons/3-spoken-feedback/README.md @@ -1,6 +1,6 @@ # Atur Timer dan Berikan Umpan Balik Lisan -![Sketchnote ringkasan pelajaran ini](../../../../../translated_images/id/lesson-23.f38483e1d4df4828990d3f02d60e46c978b075d384ae7cb4f7bab738e107c850.jpg) +![Sketchnote ringkasan pelajaran ini](../../../../../translated_images/id/lesson-23.f38483e1d4df4828.webp) > Sketchnote oleh [Nitya Narasimhan](https://github.com/nitya). Klik gambar untuk versi yang lebih besar. diff --git a/translations/id/6-consumer/lessons/4-multiple-language-support/README.md b/translations/id/6-consumer/lessons/4-multiple-language-support/README.md index 5af06c7f9..dcc763b59 100644 --- a/translations/id/6-consumer/lessons/4-multiple-language-support/README.md +++ b/translations/id/6-consumer/lessons/4-multiple-language-support/README.md @@ -1,6 +1,6 @@ # Mendukung Banyak Bahasa -![Sketchnote ringkasan pelajaran ini](../../../../../translated_images/id/lesson-24.4246968ed058510ab275052e87ef9aa89c7b2f938915d103c605c04dc6cd5bb7.jpg) +![Sketchnote ringkasan pelajaran ini](../../../../../translated_images/id/lesson-24.4246968ed058510a.webp) > Sketchnote oleh [Nitya Narasimhan](https://github.com/nitya). Klik gambar untuk versi yang lebih besar. @@ -74,7 +74,7 @@ Ada sejumlah layanan AI yang dapat digunakan dari aplikasi Anda untuk menerjemah ### Layanan Suara Cognitive Services -![Logo layanan suara](../../../../../translated_images/id/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![Logo layanan suara](../../../../../translated_images/id/azure-speech-logo.a1f08c4befb0159f.webp) Layanan suara yang telah Anda gunakan selama beberapa pelajaran terakhir memiliki kemampuan penerjemahan untuk pengenalan suara. Ketika Anda mengenali suara, Anda dapat meminta tidak hanya teks dari suara dalam bahasa yang sama, tetapi juga dalam bahasa lain. @@ -82,7 +82,7 @@ Layanan suara yang telah Anda gunakan selama beberapa pelajaran terakhir memilik ### Layanan Penerjemah Cognitive Services -![Logo layanan penerjemah](../../../../../translated_images/id/azure-translator-logo.c6ed3a4a433edfd2f11577eca105412c50b8396b194cbbd730723dd1d0793bcd.png) +![Logo layanan penerjemah](../../../../../translated_images/id/azure-translator-logo.c6ed3a4a433edfd2.webp) Layanan Penerjemah adalah layanan penerjemahan khusus yang dapat menerjemahkan teks dari satu bahasa, ke satu atau lebih bahasa target. Selain menerjemahkan, layanan ini mendukung berbagai fitur tambahan termasuk menyembunyikan kata-kata kasar. Layanan ini juga memungkinkan Anda memberikan terjemahan khusus untuk kata atau kalimat tertentu, untuk bekerja dengan istilah yang tidak ingin Anda terjemahkan, atau memiliki terjemahan yang terkenal. diff --git a/translations/id/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md b/translations/id/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md index b35280793..ddb330305 100644 --- a/translations/id/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md +++ b/translations/id/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md @@ -25,7 +25,7 @@ REST API layanan ucapan tidak mendukung terjemahan langsung, tetapi Anda dapat m > > Sebagai contoh, jika Anda melatih LUIS dalam bahasa Inggris, tetapi ingin menggunakan bahasa Prancis sebagai bahasa pengguna, Anda dapat menerjemahkan kalimat seperti "set a 2 minute and 27 second timer" dari bahasa Inggris ke bahasa Prancis menggunakan Bing Translate, lalu gunakan tombol **Dengarkan terjemahan** untuk mengucapkan terjemahan ke mikrofon Anda. > - > ![Tombol dengarkan terjemahan di Bing Translate](../../../../../translated_images/id/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Tombol dengarkan terjemahan di Bing Translate](../../../../../translated_images/id/bing-translate.348aa796d6efe2a9.webp) 1. Tambahkan kunci API penerjemah di bawah `speech_api_key`: diff --git a/translations/id/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md b/translations/id/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md index a1da3049f..48541959f 100644 --- a/translations/id/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md +++ b/translations/id/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md @@ -37,7 +37,7 @@ Layanan ucapan dapat mengambil ucapan dan tidak hanya mengonversinya menjadi tek > > Sebagai contoh, jika Anda melatih LUIS dalam bahasa Inggris, tetapi ingin menggunakan bahasa Prancis sebagai bahasa pengguna, Anda dapat menerjemahkan kalimat seperti "set a 2 minute and 27 second timer" dari bahasa Inggris ke bahasa Prancis menggunakan Bing Translate, lalu gunakan tombol **Listen translation** untuk mengucapkan terjemahan ke mikrofon Anda. > - > ![Tombol listen translation di Bing translate](../../../../../translated_images/id/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Tombol listen translation di Bing translate](../../../../../translated_images/id/bing-translate.348aa796d6efe2a9.webp) 1. Ganti deklarasi `recognizer_config` dan `recognizer` dengan yang berikut: diff --git a/translations/id/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md b/translations/id/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md index d07bbba59..c456d18e1 100644 --- a/translations/id/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md +++ b/translations/id/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md @@ -105,7 +105,7 @@ REST API layanan ucapan tidak mendukung terjemahan langsung, tetapi Anda dapat m > > Misalnya, jika Anda melatih LUIS dalam bahasa Inggris, tetapi ingin menggunakan bahasa Prancis sebagai bahasa pengguna, Anda dapat menerjemahkan kalimat seperti "set a 2 minute and 27 second timer" dari bahasa Inggris ke bahasa Prancis menggunakan Bing Translate, lalu gunakan tombol **Listen translation** untuk mengucapkan terjemahan ke mikrofon Anda. > - > ![Tombol listen translation di Bing translate](../../../../../translated_images/id/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Tombol listen translation di Bing translate](../../../../../translated_images/id/bing-translate.348aa796d6efe2a9.webp) 1. Tambahkan kunci API penerjemah dan lokasi di bawah `SPEECH_LOCATION`: diff --git a/translations/id/README.md b/translations/id/README.md index 34e540721..23c4d3e39 100644 --- a/translations/id/README.md +++ b/translations/id/README.md @@ -10,18 +10,18 @@ ### Bergabung dengan Komunitas Azure AI Foundry -Jika Anda mengalami kesulitan atau memiliki pertanyaan tentang membangun aplikasi AI. Bergabunglah dengan sesama pembelajar dan pengembang yang berpengalaman dalam diskusi tentang MCP. Ini adalah komunitas yang mendukung di mana pertanyaan diterima dengan baik dan pengetahuan dibagikan secara bebas. +Jika Anda mengalami kesulitan atau memiliki pertanyaan tentang membangun aplikasi AI. Bergabunglah dengan sesama pelajar dan pengembang berpengalaman dalam diskusi tentang MCP. Ini adalah komunitas yang mendukung di mana pertanyaan disambut dan pengetahuan dibagikan secara bebas. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Jika Anda memiliki umpan balik produk atau kesalahan saat membangun kunjungi: +Jika Anda memiliki umpan balik produk atau kesalahan saat membangun, kunjungi: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) Ikuti langkah-langkah ini untuk memulai menggunakan sumber daya ini: 1. **Fork Repository**: Klik [![GitHub forks](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) 2. **Clone Repository**: `git clone https://github.com/microsoft/IoT-For-Beginners.git` -3. [**Bergabung Dengan Microsot Foundry Discord dan temui para ahli serta sesama pengembang**](https://discord.com/invite/ByRwuEEgH4) +3. [**Bergabung dengan Microsoft Foundry Discord dan temui para ahli serta pengembang lain**](https://discord.com/invite/ByRwuEEgH4) ### 🌐 Dukungan Multi-Bahasa @@ -29,123 +29,133 @@ Ikuti langkah-langkah ini untuk memulai menggunakan sumber daya ini: #### Didukung melalui GitHub Action (Otomatis & Selalu Terbaru) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](./README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Arab](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgaria](../bg/README.md) | [Burma (Myanmar)](../my/README.md) | [Tionghoa (Sederhana)](../zh-CN/README.md) | [Tionghoa (Tradisional, Hong Kong)](../zh-HK/README.md) | [Tionghoa (Tradisional, Macau)](../zh-MO/README.md) | [Tionghoa (Tradisional, Taiwan)](../zh-TW/README.md) | [Kroasia](../hr/README.md) | [Ceko](../cs/README.md) | [Denmark](../da/README.md) | [Belanda](../nl/README.md) | [Estonia](../et/README.md) | [Finlandia](../fi/README.md) | [Perancis](../fr/README.md) | [Jerman](../de/README.md) | [Yunani](../el/README.md) | [Ibrani](../he/README.md) | [Hindi](../hi/README.md) | [Hungaria](../hu/README.md) | [Indonesia](./README.md) | [Italia](../it/README.md) | [Jepang](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korea](../ko/README.md) | [Lithuania](../lt/README.md) | [Melayu](../ms/README.md) | [Maladalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Pidgin Nigeria](../pcm/README.md) | [Norwegia](../no/README.md) | [Persia (Farsi)](../fa/README.md) | [Polandia](../pl/README.md) | [Portugis (Brasil)](../pt-BR/README.md) | [Portugis (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Rumania](../ro/README.md) | [Rusia](../ru/README.md) | [Serbia (Sirilik)](../sr/README.md) | [Slovakia](../sk/README.md) | [Slovenia](../sl/README.md) | [Spanyol](../es/README.md) | [Swahili](../sw/README.md) | [Swedia](../sv/README.md) | [Tagalog (Filipina)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turki](../tr/README.md) | [Ukraina](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnam](../vi/README.md) -> **Lebih Suka Clone Secara Lokal?** - -> Repository ini mencakup lebih dari 50 terjemahan bahasa yang secara signifikan meningkatkan ukuran unduhan. Untuk mengkloning tanpa terjemahan, gunakan sparse checkout: +> **Lebih suka Clone secara Lokal?** +> +> Repository ini mencakup lebih dari 50 terjemahan bahasa yang secara signifikan meningkatkan ukuran unduhan. Untuk meng-clone tanpa terjemahan, gunakan sparse checkout: +> +> **Bash / macOS / Linux:** > ```bash > git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git > cd IoT-For-Beginners > git sparse-checkout set --no-cone '/*' '!translations' '!translated_images' > ``` -> Ini memberikan Anda semua yang Anda butuhkan untuk menyelesaikan kursus dengan unduhan yang jauh lebih cepat. +> +> **CMD (Windows):** +> ```cmd +> git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git +> cd IoT-For-Beginners +> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" +> ``` +> +> Ini memberikan semua yang Anda butuhkan untuk menyelesaikan kursus dengan unduhan yang jauh lebih cepat. -# IoT untuk Pemula - Kurikulum +# IoT untuk Pemula - Sebuah Kurikulum -Advokat Azure Cloud di Microsoft dengan senang hati menawarkan kurikulum 12 minggu, 24 pelajaran yang membahas dasar-dasar IoT. Setiap pelajaran mencakup kuis pra dan pasca pelajaran, instruksi tertulis untuk menyelesaikan pelajaran, solusi, tugas, dan lainnya. Pendekatan pembelajaran berbasis proyek kami memungkinkan Anda belajar sambil membangun, sebuah cara yang terbukti efektif agar keterampilan baru 'menempel'. +Azure Cloud Advocates di Microsoft dengan senang hati menawarkan kurikulum 12 minggu, 24 pelajaran tentang dasar-dasar IoT. Setiap pelajaran mencakup kuis sebelum dan setelah pelajaran, instruksi tertulis untuk menyelesaikan pelajaran, solusi, tugas, dan lainnya. Pedagogi berbasis proyek kami memungkinkan Anda belajar sambil membangun, sebuah cara yang terbukti agar keterampilan baru dapat 'melekat'. -Proyek-proyek ini mencakup perjalanan makanan dari ladang ke meja makan. Ini mencakup pertanian, logistik, manufaktur, perdagangan ritel, dan konsumen - semua area industri populer untuk perangkat IoT. +Proyek-proyek mencakup perjalanan makanan dari pertanian ke meja makan. Ini termasuk pertanian, logistik, manufaktur, ritel, dan konsumen - semua area industri populer untuk perangkat IoT. -![Peta jalan untuk kursus yang menunjukkan 24 pelajaran yang mencakup pengantar, pertanian, transportasi, pengolahan, ritel, dan memasak](../../translated_images/id/Roadmap.bb1dec285dda0eda.webp) +![Peta jalan untuk kursus yang menunjukkan 24 pelajaran mencakup intro, pertanian, transportasi, pemrosesan, ritel, dan memasak](../../translated_images/id/Roadmap.bb1dec285dda0eda.webp) > Sketchnote oleh [Nitya Narasimhan](https://github.com/nitya). Klik gambar untuk versi yang lebih besar. -**Terima kasih sebesar-besarnya kepada para penulis kami [Jen Fox](https://github.com/jenfoxbot), [Jen Looper](https://github.com/jlooper), [Jim Bennett](https://github.com/jimbobbennett), dan seniman sketchnote kami [Nitya Narasimhan](https://github.com/nitya).** +**Terima kasih hangat untuk para penulis kami [Jen Fox](https://github.com/jenfoxbot), [Jen Looper](https://github.com/jlooper), [Jim Bennett](https://github.com/jimbobbennett), dan seniman sketchnote kami [Nitya Narasimhan](https://github.com/nitya).** **Terima kasih juga kepada tim kami dari [Microsoft Learn Student Ambassadors](https://studentambassadors.microsoft.com?WT.mc_id=academic-17441-jabenn) yang telah meninjau dan menerjemahkan kurikulum ini - [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), dan [Zina Kamel](https://www.linkedin.com/in/zina-kamel/).** -Temui timnya! +Kenali timnya! [![Promo video](../../images/IOT.gif)](https://youtu.be/-wippUJRi5k) **Gif oleh** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Klik gambar di atas untuk video tentang proyek ini! +> 🎥 Klik gambar di atas untuk video tentang proyek! > **Guru**, kami telah [menyertakan beberapa saran](for-teachers.md) tentang cara menggunakan kurikulum ini. Jika Anda ingin membuat pelajaran sendiri, kami juga telah menyertakan [template pelajaran](lesson-template/README.md). -> **[Siswa](https://aka.ms/student-page)**, untuk menggunakan kurikulum ini secara mandiri, fork seluruh repo dan selesaikan latihan secara mandiri, mulai dengan kuis pra-ceramah, kemudian membaca ceramah dan menyelesaikan aktivitas lainnya. Cobalah membuat proyek dengan memahami pelajaran daripada menyalin kode solusi; meskipun kode tersebut tersedia di folder /solutions di setiap pelajaran yang berorientasi proyek. Ide lainnya adalah membentuk kelompok belajar bersama teman dan mempelajari konten bersama-sama. Untuk studi lebih lanjut, kami merekomendasikan [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn). +> **[Siswa](https://aka.ms/student-page)**, untuk menggunakan kurikulum ini sendiri, fork seluruh repo dan selesaikan latihan sendiri, mulai dari kuis pra-ceramah, kemudian membaca ceramah dan menyelesaikan aktivitas lainnya. Cobalah membuat proyek dengan memahami pelajaran daripada menyalin kode solusi; meskipun kode tersebut tersedia di folder /solutions di setiap pelajaran berorientasi proyek. Ide lain adalah membentuk kelompok belajar dengan teman dan mempelajari konten bersama. Untuk studi lebih lanjut, kami merekomendasikan [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn). -Untuk gambaran video tentang kursus ini, lihat video ini: +Untuk gambaran video tentang kursus ini, tonton video ini: [![Promo video](https://img.youtube.com/vi/bccEMm8gRuc/0.jpg)](https://youtube.com/watch?v=bccEMm8gRuc "Promo video") -> 🎥 Klik gambar di atas untuk video tentang proyek ini! +> 🎥 Klik gambar di atas untuk video tentang proyek! ## Pedagogi -Kami telah memilih dua prinsip pedagogis saat membangun kurikulum ini: memastikan bahwa kurikulum berbasis proyek dan menyertakan kuis yang sering. Pada akhir seri ini, siswa akan membangun sistem pemantauan dan penyiraman tanaman, pelacak kendaraan, pengaturan pabrik cerdas untuk melacak dan memeriksa makanan, serta timer memasak yang dikendalikan dengan suara, dan akan mempelajari dasar-dasar Internet of Things, termasuk cara menulis kode perangkat, menghubungkan ke cloud, menganalisis telemetri, dan menjalankan AI di edge. +Kami telah memilih dua prinsip pedagogis saat membangun kurikulum ini: memastikan bahwa kurikulum ini berbasis proyek dan mencakup kuis yang sering. Pada akhir seri ini, siswa akan membangun sistem pemantauan dan penyiraman tanaman, pelacak kendaraan, pengaturan pabrik pintar untuk melacak dan memeriksa makanan, dan timer memasak yang dikendalikan suara, serta mempelajari dasar-dasar Internet of Things termasuk cara menulis kode perangkat, menghubungkan ke cloud, menganalisis telemetri dan menjalankan AI di edge. -Dengan memastikan konten selaras dengan proyek, proses menjadi lebih menarik bagi siswa dan retensi konsep akan meningkat. +Dengan memastikan bahwa konten selaras dengan proyek, proses menjadi lebih menarik bagi siswa dan retensi konsep akan meningkat. -Selain itu, kuis dengan tekanan rendah sebelum kelas menetapkan niat siswa untuk belajar topik tersebut, sementara kuis kedua setelah kelas memastikan retensi lebih lanjut. Kurikulum ini dirancang fleksibel dan menyenangkan dan dapat diikuti secara keseluruhan atau sebagian. Proyek-proyek dimulai kecil dan menjadi semakin kompleks pada akhir siklus 12 minggu. +Selain itu, kuis dengan taruh rendah sebelum kelas menetapkan niat siswa untuk mempelajari topik, sementara kuis kedua setelah kelas memastikan retensi lebih lanjut. Kurikulum ini dirancang agar fleksibel dan menyenangkan dan dapat diambil secara keseluruhan atau sebagian. Proyek dimulai kecil dan menjadi semakin kompleks pada akhir siklus 12 minggu. -Setiap proyek berbasis perangkat keras dunia nyata yang tersedia bagi siswa dan penghobi. Setiap proyek melihat domain proyek tertentu, memberikan pengetahuan latar belakang yang relevan. Untuk menjadi pengembang yang sukses, membantu memahami domain dimana Anda memecahkan masalah, memberikan pengetahuan latar belakang ini memungkinkan siswa berpikir tentang solusi IoT mereka dan pembelajaran dalam konteks jenis masalah dunia nyata yang mungkin diminta untuk diselesaikan sebagai pengembang IoT. Siswa belajar 'mengapa' dari solusi yang mereka bangun, dan mendapatkan apresiasi terhadap pengguna akhir. +Setiap proyek didasarkan pada perangkat keras dunia nyata yang tersedia bagi siswa dan hobiis. Setiap proyek melihat domain proyek tertentu, menyediakan pengetahuan latar belakang yang relevan. Untuk menjadi pengembang yang sukses, membantu untuk memahami domain tempat Anda memecahkan masalah, menyediakan pengetahuan latar belakang ini memungkinkan siswa memikirkan solusi IoT dan pembelajaran mereka dalam konteks jenis masalah dunia nyata yang mungkin diminta untuk mereka pecahkan sebagai pengembang IoT. Siswa belajar 'mengapa' solusi yang mereka bangun, dan mendapatkan apresiasi terhadap pengguna akhir. ## Perangkat Keras +Kita memiliki dua pilihan perangkat keras IoT untuk digunakan dalam proyek tergantung pada preferensi pribadi, pengetahuan atau preferensi bahasa pemrograman, tujuan pembelajaran, dan ketersediaan. Kami juga menyediakan versi 'perangkat keras virtual' bagi mereka yang tidak memiliki akses ke perangkat keras, atau ingin belajar lebih banyak sebelum memutuskan untuk membeli. Anda dapat membaca lebih lanjut dan menemukan 'daftar belanja' di [halaman perangkat keras](./hardware.md), termasuk tautan untuk membeli kit lengkap dari teman-teman kami di Seeed Studio. -Kami memiliki dua pilihan perangkat keras IoT untuk digunakan dalam proyek tergantung pada preferensi pribadi, pengetahuan atau preferensi bahasa pemrograman, tujuan pembelajaran dan ketersediaan. Kami juga menyediakan versi 'perangkat keras virtual' bagi mereka yang tidak memiliki akses ke perangkat keras, atau ingin belajar lebih banyak sebelum membeli. Anda bisa membaca lebih lanjut dan menemukan 'daftar belanja' di [halaman perangkat keras](./hardware.md), termasuk tautan untuk membeli paket lengkap dari teman-teman kami di Seeed Studio. -> 💁 Temukan [Kode Etik](CODE_OF_CONDUCT.md), [Panduan Kontribusi](CONTRIBUTING.md), dan [Panduan Terjemahan](TRANSLATIONS.md) kami. Kami menyambut umpan balik membangun Anda! +> 💁 Temukan [Kode Etik](CODE_OF_CONDUCT.md), [Kontribusi](CONTRIBUTING.md), dan panduan [Terjemahan](TRANSLATIONS.md) kami. Kami menyambut umpan balik konstruktif Anda! > -> 🔧 Mengalami masalah? Lihat [Panduan Pemecahan Masalah](TROUBLESHOOTING.md) kami untuk solusi masalah umum. +> 🔧 Mengalami masalah? Periksa [Panduan Pemecahan Masalah](TROUBLESHOOTING.md) kami untuk solusi masalah umum. -## Setiap pelajaran mencakup: +## Setiap pelajaran meliputi: - sketchnote - video tambahan opsional - kuis pemanasan sebelum pelajaran - pelajaran tertulis -- untuk pelajaran berbasis proyek, panduan langkah demi langkah cara membangun proyek +- untuk pelajaran berbasis proyek, panduan langkah demi langkah tentang cara membangun proyeknya - pemeriksaan pengetahuan - tantangan - bacaan tambahan - tugas -- [kuis pasca pelajaran](https://ff-quizzes.netlify.app/en/) +- [kuis pasca-pelajaran](https://ff-quizzes.netlify.app/en/) -> **Catatan tentang kuis**: Semua kuis terdapat dalam folder quiz-app, dengan total 48 kuis masing-masing berisi tiga pertanyaan. Mereka terhubung dari dalam pelajaran namun aplikasi kuis dapat dijalankan secara lokal atau dideploy ke Azure; ikuti instruksi di folder `quiz-app`. Mereka sedang secara bertahap dilokalkan. +> **Catatan tentang kuis**: Semua kuis terdapat dalam folder quiz-app, dengan total 48 kuis yang masing-masing berisi tiga pertanyaan. Kuis tersebut ditautkan dari dalam pelajaran, tetapi aplikasi kuis dapat dijalankan secara lokal atau dideploy ke Azure; ikuti instruksi dalam folder `quiz-app`. Kuis secara bertahap sedang dilokalisasi. ## Pelajaran -| | Nama Proyek | Konsep yang Diajarkan | Tujuan Pembelajaran | Pelajaran Terkait | -| :---: | :------------------------------------: | :------------------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :-----------------------------------------------------------------------------------------------------------------------------: | -| 01 | [Memulai](./1-getting-started/README.md) | Pengenalan IoT | Pelajari prinsip dasar IoT dan blok bangunan dasar solusi IoT seperti sensor dan layanan cloud sambil mengatur perangkat IoT pertama Anda | [Pengenalan IoT](./1-getting-started/lessons/1-introduction-to-iot/README.md) | -| 02 | [Memulai](./1-getting-started/README.md) | Pendalaman IoT | Pelajari lebih lanjut tentang komponen sistem IoT, serta mikrokontroler dan komputer papan tunggal | [Pendalaman IoT](./1-getting-started/lessons/2-deeper-dive/README.md) | -| 03 | [Memulai](./1-getting-started/README.md) | Berinteraksi dengan dunia fisik melalui sensor dan aktuator | Pelajari tentang sensor untuk mengumpulkan data dari dunia fisik, dan aktuator untuk mengirimkan umpan balik, sambil membangun lampu tidur | [Berinteraksi dengan dunia fisik melalui sensor dan aktuator](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | -| 04 | [Memulai](./1-getting-started/README.md) | Menghubungkan perangkat ke Internet | Pelajari cara menghubungkan perangkat IoT ke Internet untuk mengirim dan menerima pesan dengan menghubungkan lampu tidur ke broker MQTT | [Menghubungkan perangkat ke Internet](./1-getting-started/lessons/4-connect-internet/README.md) | -| 05 | [Pertanian](./2-farm/README.md) | Memprediksi pertumbuhan tanaman | Pelajari cara memprediksi pertumbuhan tanaman menggunakan data suhu yang ditangkap oleh perangkat IoT | [Memprediksi pertumbuhan tanaman](./2-farm/lessons/1-predict-plant-growth/README.md) | -| 06 | [Pertanian](./2-farm/README.md) | Mendeteksi kelembapan tanah | Pelajari cara mendeteksi kelembapan tanah dan mengkalibrasi sensor kelembapan tanah | [Mendeteksi kelembapan tanah](./2-farm/lessons/2-detect-soil-moisture/README.md) | -| 07 | [Pertanian](./2-farm/README.md) | Penyiraman tanaman otomatis | Pelajari cara mengotomatiskan dan menjadwalkan penyiraman menggunakan relay dan MQTT | [Penyiraman tanaman otomatis](./2-farm/lessons/3-automated-plant-watering/README.md) | -| 08 | [Pertanian](./2-farm/README.md) | Migrasikan tanaman Anda ke cloud | Pelajari tentang cloud dan layanan IoT yang dihosting cloud serta bagaimana menghubungkan tanaman Anda ke salah satunya menggantikan broker MQTT publik | [Migrasikan tanaman Anda ke cloud](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | -| 09 | [Pertanian](./2-farm/README.md) | Migrasikan logika aplikasi Anda ke cloud | Pelajari cara menulis logika aplikasi di cloud yang merespons pesan IoT | [Migrasikan logika aplikasi Anda ke cloud](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | -| 10 | [Pertanian](./2-farm/README.md) | Amankan tanaman Anda | Pelajari tentang keamanan dengan IoT dan cara menjaga keamanan tanaman Anda dengan kunci dan sertifikat | [Amankan tanaman Anda](./2-farm/lessons/6-keep-your-plant-secure/README.md) | -| 11 | [Transportasi](./3-transport/README.md) | Pelacakan lokasi | Pelajari tentang pelacakan lokasi GPS untuk perangkat IoT | [Pelacakan lokasi](./3-transport/lessons/1-location-tracking/README.md) | -| 12 | [Transportasi](./3-transport/README.md) | Menyimpan data lokasi | Pelajari cara menyimpan data IoT untuk divisualisasikan atau dianalisis kemudian | [Menyimpan data lokasi](./3-transport/lessons/2-store-location-data/README.md) | -| 13 | [Transportasi](./3-transport/README.md) | Visualisasikan data lokasi | Pelajari tentang visualisasi data lokasi pada peta, serta cara peta merepresentasikan dunia nyata 3D dalam 2 dimensi | [Visualisasikan data lokasi](./3-transport/lessons/3-visualize-location-data/README.md) | -| 14 | [Transportasi](./3-transport/README.md) | Geofence | Pelajari tentang geofence, dan bagaimana mereka dapat digunakan untuk memberi peringatan saat kendaraan dalam rantai pasokan mendekati tujuan | [Geofence](./3-transport/lessons/4-geofences/README.md) | -| 15 | [Manufaktur](./4-manufacturing/README.md) | Melatih detektor kualitas buah | Pelajari tentang melatih pengklasifikasi gambar di cloud untuk mendeteksi kualitas buah | [Melatih detektor kualitas buah](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | -| 16 | [Manufaktur](./4-manufacturing/README.md) | Memeriksa kualitas buah dari perangkat IoT | Pelajari menggunakan detektor kualitas buah Anda dari perangkat IoT | [Memeriksa kualitas buah dari perangkat IoT](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | -| 17 | [Manufaktur](./4-manufacturing/README.md) | Menjalankan detektor buah Anda di edge | Pelajari menjalankan detektor buah Anda pada perangkat IoT di edge | [Menjalankan detektor buah Anda di edge](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | -| 18 | [Manufaktur](./4-manufacturing/README.md) | Memicu deteksi kualitas buah dari sensor | Pelajari memicu deteksi kualitas buah dari sensor | [Memicu deteksi kualitas buah dari sensor](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | -| 19 | [Ritel](./5-retail/README.md) | Melatih detektor stok | Pelajari cara menggunakan deteksi objek untuk melatih detektor stok menghitung stok di toko | [Melatih detektor stok](./5-retail/lessons/1-train-stock-detector/README.md) | -| 20 | [Ritel](./5-retail/README.md) | Memeriksa stok dari perangkat IoT | Pelajari cara memeriksa stok dari perangkat IoT menggunakan model deteksi objek | [Memeriksa stok dari perangkat IoT](./5-retail/lessons/2-check-stock-device/README.md) | -| 21 | [Konsumen](./6-consumer/README.md) | Mengenali ucapan dengan perangkat IoT | Pelajari cara mengenali ucapan dari perangkat IoT untuk membangun timer pintar | [Mengenali ucapan dengan perangkat IoT](./6-consumer/lessons/1-speech-recognition/README.md) | -| 22 | [Konsumen](./6-consumer/README.md) | Memahami bahasa | Pelajari cara memahami kalimat yang diucapkan ke perangkat IoT | [Memahami bahasa](./6-consumer/lessons/2-language-understanding/README.md) | -| 23 | [Konsumen](./6-consumer/README.md) | Mengatur timer dan memberikan umpan balik lisan | Pelajari cara mengatur timer pada perangkat IoT dan memberikan umpan balik lisan saat timer diatur dan selesai | [Mengatur timer dan memberikan umpan balik lisan](./6-consumer/lessons/3-spoken-feedback/README.md) | -| 24 | [Konsumen](./6-consumer/README.md) | Mendukung banyak bahasa | Pelajari cara mendukung banyak bahasa, baik yang diucapkan maupun respons dari timer pintar Anda | [Mendukung banyak bahasa](./6-consumer/lessons/4-multiple-language-support/README.md) | +| | Nama Proyek | Konsep yang Diajarkan | Tujuan Pembelajaran | Pelajaran yang Ditautkan | +| :---: | :------------------------------------: | :---------------------------------------------------------------: | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------: | +| 01 | [Memulai](./1-getting-started/README.md) | Pengenalan ke IoT | Pelajari prinsip dasar IoT dan blok bangunan dasar solusi IoT seperti sensor dan layanan cloud saat Anda mengatur perangkat IoT pertama Anda | [Pengenalan ke IoT](./1-getting-started/lessons/1-introduction-to-iot/README.md) | +| 02 | [Memulai](./1-getting-started/README.md) | Pendalaman tentang IoT | Pelajari lebih lanjut tentang komponen sistem IoT, serta mikrokontroler dan komputer papan tunggal | [Pendalaman tentang IoT](./1-getting-started/lessons/2-deeper-dive/README.md) | +| 03 | [Memulai](./1-getting-started/README.md) | Berinteraksi dengan dunia fisik menggunakan sensor dan aktuator | Pelajari tentang sensor untuk mengumpulkan data dari dunia fisik, dan aktuator untuk mengirim umpan balik, sambil Anda membangun lampu malam | [Berinteraksi dengan dunia fisik menggunakan sensor dan aktuator](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | +| 04 | [Memulai](./1-getting-started/README.md) | Menghubungkan perangkat Anda ke Internet | Pelajari cara menghubungkan perangkat IoT ke Internet untuk mengirim dan menerima pesan dengan menghubungkan lampu malam Anda ke broker MQTT | [Menghubungkan perangkat ke Internet](./1-getting-started/lessons/4-connect-internet/README.md) | +| 05 | [Pertanian](./2-farm/README.md) | Memprediksi pertumbuhan tanaman | Pelajari cara memprediksi pertumbuhan tanaman menggunakan data suhu yang diambil oleh perangkat IoT | [Memprediksi pertumbuhan tanaman](./2-farm/lessons/1-predict-plant-growth/README.md) | +| 06 | [Pertanian](./2-farm/README.md) | Mendeteksi kelembaban tanah | Pelajari cara mendeteksi kelembaban tanah dan mengkalibrasi sensor kelembaban tanah | [Mendeteksi kelembaban tanah](./2-farm/lessons/2-detect-soil-moisture/README.md) | +| 07 | [Pertanian](./2-farm/README.md) | Penyiraman tanaman otomatis | Pelajari cara mengotomatisasi dan menjadwalkan penyiraman menggunakan relay dan MQTT | [Penyiraman tanaman otomatis](./2-farm/lessons/3-automated-plant-watering/README.md) | +| 08 | [Pertanian](./2-farm/README.md) | Migrasikan tanaman Anda ke cloud | Pelajari tentang cloud dan layanan IoT yang di-host di cloud serta cara menghubungkan tanaman Anda ke salah satu layanan ini menggantikan broker MQTT publik | [Migrasikan tanaman Anda ke cloud](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | +| 09 | [Pertanian](./2-farm/README.md) | Migrasikan logika aplikasi Anda ke cloud | Pelajari cara menulis logika aplikasi di cloud yang merespon pesan IoT | [Migrasikan logika aplikasi Anda ke cloud](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | +| 10 | [Pertanian](./2-farm/README.md) | Jaga tanaman Anda tetap aman | Pelajari tentang keamanan di IoT dan cara menjaga tanaman Anda aman dengan kunci dan sertifikat | [Jaga tanaman Anda tetap aman](./2-farm/lessons/6-keep-your-plant-secure/README.md) | +| 11 | [Transportasi](./3-transport/README.md) | Pelacakan lokasi | Pelajari tentang pelacakan lokasi GPS untuk perangkat IoT | [Pelacakan lokasi](./3-transport/lessons/1-location-tracking/README.md) | +| 12 | [Transportasi](./3-transport/README.md) | Menyimpan data lokasi | Pelajari cara menyimpan data IoT untuk divisualisasikan atau dianalisis kemudian | [Menyimpan data lokasi](./3-transport/lessons/2-store-location-data/README.md) | +| 13 | [Transportasi](./3-transport/README.md) | Memvisualisasikan data lokasi | Pelajari tentang memvisualisasikan data lokasi di peta dan bagaimana peta merepresentasikan dunia 3D nyata dalam 2 dimensi | [Memvisualisasikan data lokasi](./3-transport/lessons/3-visualize-location-data/README.md) | +| 14 | [Transportasi](./3-transport/README.md) | Geofence | Pelajari tentang geofence dan cara penggunaannya untuk memberi peringatan saat kendaraan dalam rantai pasokan dekat dengan tujuan | [Geofence](./3-transport/lessons/4-geofences/README.md) | +| 15 | [Manufaktur](./4-manufacturing/README.md) | Melatih detektor kualitas buah | Pelajari tentang melatih pengklasifikasi gambar di cloud untuk mendeteksi kualitas buah | [Melatih detektor kualitas buah](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | +| 16 | [Manufaktur](./4-manufacturing/README.md) | Memeriksa kualitas buah dari perangkat IoT | Pelajari tentang menggunakan detektor kualitas buah dari perangkat IoT | [Memeriksa kualitas buah dari perangkat IoT](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | +| 17 | [Manufaktur](./4-manufacturing/README.md) | Menjalankan detektor buah di edge | Pelajari tentang menjalankan detektor buah Anda pada perangkat IoT di edge | [Menjalankan detektor buah di edge](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | +| 18 | [Manufaktur](./4-manufacturing/README.md) | Memicu deteksi kualitas buah dari sensor | Pelajari tentang memicu deteksi kualitas buah dari sensor | [Memicu deteksi kualitas buah dari sensor](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | +| 19 | [Ritel](./5-retail/README.md) | Melatih detektor stok | Pelajari cara menggunakan deteksi objek untuk melatih detektor stok menghitung stok di toko | [Melatih detektor stok](./5-retail/lessons/1-train-stock-detector/README.md) | +| 20 | [Ritel](./5-retail/README.md) | Memeriksa stok dari perangkat IoT | Pelajari cara memeriksa stok dari perangkat IoT menggunakan model deteksi objek | [Memeriksa stok dari perangkat IoT](./5-retail/lessons/2-check-stock-device/README.md) | +| 21 | [Konsumen](./6-consumer/README.md) | Mengenali ucapan dengan perangkat IoT | Pelajari cara mengenali ucapan dari perangkat IoT untuk membangun timer pintar | [Mengenali ucapan dengan perangkat IoT](./6-consumer/lessons/1-speech-recognition/README.md) | +| 22 | [Konsumen](./6-consumer/README.md) | Memahami bahasa | Pelajari cara memahami kalimat yang diucapkan ke perangkat IoT | [Memahami bahasa](./6-consumer/lessons/2-language-understanding/README.md) | +| 23 | [Konsumen](./6-consumer/README.md) | Mengatur timer dan memberikan umpan balik suara | Pelajari cara mengatur timer di perangkat IoT dan memberikan umpan balik suara kapan timer diatur dan selesai | [Mengatur timer dan memberikan umpan balik suara](./6-consumer/lessons/3-spoken-feedback/README.md) | +| 24 | [Konsumen](./6-consumer/README.md) | Mendukung banyak bahasa | Pelajari cara mendukung berbagai bahasa, baik saat diajak bicara maupun dalam respons dari timer pintar Anda | [Mendukung banyak bahasa](./6-consumer/lessons/4-multiple-language-support/README.md) | ## Akses offline -Anda dapat menjalankan dokumentasi ini secara offline menggunakan [Docsify](https://docsify.js.org/#/). Fork repo ini, [instal Docsify](https://docsify.js.org/#/quickstart) di mesin lokal Anda, lalu di folder root repo ini, ketik `docsify serve`. Situs web akan dilayani pada port 3000 di localhost Anda: `localhost:3000`. +Anda dapat menjalankan dokumentasi ini secara offline dengan menggunakan [Docsify](https://docsify.js.org/#/). Fork repo ini, [pasang Docsify](https://docsify.js.org/#/quickstart) di mesin lokal Anda, lalu di folder root repo ini, ketik `docsify serve`. Situs akan disajikan pada port 3000 di localhost Anda: `localhost:3000`. ## Kuis -Terima kasih kepada komunitas yang menyelenggarakan kuis interaktif yang menguji pengetahuan Anda di setiap bab. Anda dapat menguji pengetahuan Anda [di sini](https://ff-quizzes.netlify.app/en/) +Terima kasih kepada komunitas yang menyelenggarakan kuis interaktif yang menguji pengetahuan Anda pada setiap bab. Anda bisa menguji pengetahuan Anda [di sini](https://ff-quizzes.netlify.app/en/) ### PDF -Anda dapat menghasilkan PDF dari konten ini untuk akses offline jika diperlukan. Untuk melakukan ini, pastikan Anda memiliki [npm terpasang](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) dan jalankan perintah berikut di folder root repo ini: +Anda dapat membuat PDF dari konten ini untuk akses offline jika diperlukan. Untuk melakukannya, pastikan Anda telah [memasang npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) dan jalankan perintah berikut di folder root repo ini: ```sh npm i @@ -154,30 +164,29 @@ npm run convert ### Slide -Ada beberapa dek slide untuk sebagian pelajaran di folder [slides](../../slides). - +Terdapat slide untuk beberapa pelajaran di folder [slides](../../slides). ## Kurikulum Lain -Tim kami juga menghasilkan kurikulum lain! Lihat: +Tim kami juga menghasilkan kurikulum lainnya! Cek: ### LangChain -[![LangChain4j untuk Pemula](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) -[![LangChain.js untuk Pemula](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) - +[![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) +[![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- ### Azure / Edge / MCP / Agen -[![AZD untuk Pemula](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI untuk Pemula](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) [![MCP untuk Pemula](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI Agents untuk Pemula](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Seri AI Generatif -[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +### Seri Generative AI +[![Generative AI untuk Pemula](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) [![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) [![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) [![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) @@ -185,29 +194,29 @@ Tim kami juga menghasilkan kurikulum lain! Lihat: --- ### Pembelajaran Inti -[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +[![ML untuk Pemula](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Data Science untuk Pemula](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![AI untuk Pemula](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Keamanan Siber untuk Pemula](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Pengembangan Web untuk Pemula](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![IoT untuk Pemula](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![Pengembangan XR untuk Pemula](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### Seri Copilot -[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +[![Copilot untuk Pemrograman Berpasangan AI](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot untuk C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![Petualangan Copilot](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) ## Atribusi gambar -Anda dapat menemukan semua atribusi untuk gambar yang digunakan dalam kurikulum ini sesuai kebutuhan di [Atribusi](./attributions.md). +Anda dapat menemukan semua atribusi untuk gambar yang digunakan dalam kurikulum ini di mana diperlukan dalam [Atribusi](./attributions.md). --- **Penafian**: -Dokumen ini telah diterjemahkan menggunakan layanan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang sangat penting, disarankan menggunakan terjemahan manusia profesional. Kami tidak bertanggung jawab atas kesalahpahaman atau salah tafsir yang timbul dari penggunaan terjemahan ini. +Dokumen ini telah diterjemahkan menggunakan layanan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berupaya mencapai akurasi, mohon diperhatikan bahwa terjemahan otomatis dapat mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang sahih. Untuk informasi penting, disarankan menggunakan jasa penerjemah manusia profesional. Kami tidak bertanggung jawab atas kesalahpahaman atau salah tafsir yang timbul dari penggunaan terjemahan ini. \ No newline at end of file diff --git a/translations/id/hardware.md b/translations/id/hardware.md index cf0ea904a..420f891c7 100644 --- a/translations/id/hardware.md +++ b/translations/id/hardware.md @@ -26,7 +26,7 @@ Seeed Studios dengan sangat baik telah menyediakan semua perangkat keras dalam b **[IoT untuk pemula dengan Seeed dan Microsoft - Raspberry Pi 4 Starter Kit](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html)** -[![Kit perangkat keras Raspberry Pi Terminal](../../translated_images/id/pi-hardware-kit.26dbadaedb7dd44c73b0131d5d68ea29472ed0a9744f90d5866c6d82f2d16380.png)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) +[![Kit perangkat keras Raspberry Pi Terminal](../../translated_images/id/pi-hardware-kit.26dbadaedb7dd44c.webp)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) ## Arduino diff --git a/translations/it/.co-op-translator.json b/translations/it/.co-op-translator.json index 6fb30c9c8..eaa7116e7 100644 --- a/translations/it/.co-op-translator.json +++ b/translations/it/.co-op-translator.json @@ -738,8 +738,8 @@ "language_code": "it" }, "README.md": { - "original_hash": "3fcc056cd3837e33d2bdf79f9c359fcf", - "translation_date": "2026-01-30T01:50:23+00:00", + "original_hash": "accf69391fa4450eadbf492ca024cccf", + "translation_date": "2026-04-06T17:34:17+00:00", "source_file": "README.md", "language_code": "it" }, diff --git a/translations/it/1-getting-started/lessons/1-introduction-to-iot/README.md b/translations/it/1-getting-started/lessons/1-introduction-to-iot/README.md index b01981b43..74d1dbfda 100644 --- a/translations/it/1-getting-started/lessons/1-introduction-to-iot/README.md +++ b/translations/it/1-getting-started/lessons/1-introduction-to-iot/README.md @@ -1,6 +1,6 @@ # Introduzione all'IoT -![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-1.2606670fa61ee904687da5d6fa4e726639d524d064c895117da1b95b9ff6251d.jpg) +![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-1.2606670fa61ee904.webp) > Disegno di [Nitya Narasimhan](https://github.com/nitya). Clicca sull'immagine per una versione più grande. diff --git a/translations/it/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md b/translations/it/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md index c078c62a8..80313333b 100644 --- a/translations/it/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md +++ b/translations/it/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md @@ -203,7 +203,7 @@ Come secondo passo 'Hello World', eseguirai l'app CounterFit e collegherai il tu L'app inizierà a funzionare e si aprirà nel tuo browser web: - ![L'app CounterFit in esecuzione in un browser](../../../../../translated_images/it/counterfit-first-run.433326358b669b31d0e99c3513cb01bfbb13724d162c99cdcc8f51ecf5f9c779.png) + ![L'app CounterFit in esecuzione in un browser](../../../../../translated_images/it/counterfit-first-run.433326358b669b31.webp) Sarà contrassegnata come *Disconnected*, con il LED nell'angolo in alto a destra spento. @@ -224,7 +224,7 @@ Come secondo passo 'Hello World', eseguirai l'app CounterFit e collegherai il tu 1. In questo nuovo terminale, esegui il file `app.py` come prima. Lo stato di CounterFit cambierà in **Connected** e il LED si accenderà. - ![CounterFit che mostra lo stato Connected](../../../../../translated_images/it/counterfit-connected.ed30b46d8f79b0921f3fc70be10366e596a89dca3f80c2224a9d9fc98fccf884.png) + ![CounterFit che mostra lo stato Connected](../../../../../translated_images/it/counterfit-connected.ed30b46d8f79b092.webp) > 💁 Puoi trovare questo codice nella cartella [code/virtual-device](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/virtual-device). diff --git a/translations/it/1-getting-started/lessons/2-deeper-dive/README.md b/translations/it/1-getting-started/lessons/2-deeper-dive/README.md index 8dd1626b3..fc40adf0a 100644 --- a/translations/it/1-getting-started/lessons/2-deeper-dive/README.md +++ b/translations/it/1-getting-started/lessons/2-deeper-dive/README.md @@ -1,6 +1,6 @@ # Un'immersione più profonda nell'IoT -![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-2.324b0580d620c25e0a24fb7fddfc0b29a846dd4b82c08e7a9466d580ee78ce51.jpg) +![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-2.324b0580d620c25e.webp) > Illustrazione di [Nitya Narasimhan](https://github.com/nitya). Clicca sull'immagine per una versione più grande. @@ -38,7 +38,7 @@ La parte **oggetto** dell'IoT si riferisce a un dispositivo che può interagire Questi dispositivi interagiscono con il mondo fisico utilizzando sensori per raccogliere dati dall'ambiente circostante o controllando uscite o attuatori per apportare modifiche fisiche. Un esempio tipico è un termostato intelligente - un dispositivo che ha un sensore di temperatura, un mezzo per impostare una temperatura desiderata come una manopola o un touchscreen, e una connessione a un sistema di riscaldamento o raffreddamento che può essere attivato quando la temperatura rilevata è al di fuori dell'intervallo desiderato. Il sensore di temperatura rileva che la stanza è troppo fredda e un attuatore accende il riscaldamento. -![Un diagramma che mostra la temperatura e una manopola come input per un dispositivo IoT, e il controllo di un riscaldatore come output](../../../../../translated_images/it/basic-thermostat.a923217fd1f37e5a6f3390396a65c22a387419ea2dd17e518ec24315ba6ae9a8.png) +![Un diagramma che mostra la temperatura e una manopola come input per un dispositivo IoT, e il controllo di un riscaldatore come output](../../../../../translated_images/it/basic-thermostat.a923217fd1f37e5a.webp) Esiste una vasta gamma di dispositivi che possono fungere da dispositivi IoT, dall'hardware dedicato che rileva un solo parametro, a dispositivi generici, persino il tuo smartphone! Uno smartphone può utilizzare sensori per rilevare il mondo circostante e attuatori per interagire con esso - ad esempio, utilizzando un sensore GPS per rilevare la tua posizione e un altoparlante per fornire istruzioni di navigazione verso una destinazione. @@ -54,7 +54,7 @@ I dispositivi non si connettono sempre direttamente a Internet tramite WiFi o co Nel caso di un termostato intelligente, il termostato si connetterebbe utilizzando il WiFi domestico a un servizio cloud. Invierebbe i dati sulla temperatura a questo servizio cloud, che li scriverebbe in un database permettendo al proprietario di casa di controllare le temperature attuali e passate tramite un'app sul telefono. Un altro servizio nel cloud saprebbe quale temperatura desidera il proprietario di casa e invierebbe messaggi al dispositivo IoT tramite il servizio cloud per dire al sistema di riscaldamento di accendersi o spegnersi. -![Un diagramma che mostra la temperatura e una manopola come input per un dispositivo IoT, il dispositivo IoT con comunicazione bidirezionale con il cloud, che a sua volta ha comunicazione bidirezionale con un telefono, e il controllo di un riscaldatore come output dal dispositivo IoT](../../../../../translated_images/it/mobile-controlled-thermostat.4a994010473d8d6a52ba68c67e5f02dc8928c717e93ca4b9bc55525aa75bbb60.png) +![Un diagramma che mostra la temperatura e una manopola come input per un dispositivo IoT, il dispositivo IoT con comunicazione bidirezionale con il cloud, che a sua volta ha comunicazione bidirezionale con un telefono, e il controllo di un riscaldatore come output dal dispositivo IoT](../../../../../translated_images/it/mobile-controlled-thermostat.4a994010473d8d6a.webp) Una versione ancora più intelligente potrebbe utilizzare l'AI nel cloud con dati provenienti da altri sensori collegati ad altri dispositivi IoT, come sensori di occupazione che rilevano quali stanze sono in uso, oltre a dati come il meteo e persino il tuo calendario, per prendere decisioni su come impostare la temperatura in modo intelligente. Ad esempio, potrebbe spegnere il riscaldamento se legge dal tuo calendario che sei in vacanza, o spegnere il riscaldamento stanza per stanza a seconda delle stanze che utilizzi, imparando dai dati per essere sempre più preciso nel tempo. @@ -94,7 +94,7 @@ Più veloce è il ciclo del clock, più istruzioni possono essere elaborate ogni > 💁 Le CPU eseguono programmi utilizzando il [ciclo fetch-decode-execute](https://wikipedia.org/wiki/Instruction_cycle). Per ogni ticchettio del clock, la CPU recupera la prossima istruzione dalla memoria, la decodifica, quindi la esegue, ad esempio utilizzando un'unità logica aritmetica (ALU) per sommare 2 numeri. Alcune esecuzioni richiedono più ticchettii per essere completate, quindi il ciclo successivo verrà eseguito al ticchettio successivo dopo il completamento dell'istruzione. -![Il ciclo fetch-decode-execute che mostra il recupero di un'istruzione dal programma memorizzato nella RAM, quindi la decodifica e l'esecuzione su una CPU](../../../../../translated_images/it/fetch-decode-execute.2fd6f150f6280392807f4475382319abd0cee0b90058e1735444d6baa6f2078c.png) +![Il ciclo fetch-decode-execute che mostra il recupero di un'istruzione dal programma memorizzato nella RAM, quindi la decodifica e l'esecuzione su una CPU](../../../../../translated_images/it/fetch-decode-execute.2fd6f150f6280392.webp) I microcontrollori hanno velocità di clock molto più basse rispetto ai computer desktop o laptop, o persino alla maggior parte degli smartphone. Ad esempio, il Wio Terminal ha una CPU che funziona a 120MHz o 120.000.000 cicli al secondo. @@ -182,7 +182,7 @@ Le schede Arduino sono codificate in C o C++. Utilizzare C/C++ consente al tuo c Scriveresti il tuo codice di configurazione nella funzione `setup`, come la connessione al WiFi e ai servizi cloud o l'inizializzazione dei pin per input e output. Il tuo codice di elaborazione verrebbe poi inserito nella funzione `loop`, come la lettura da un sensore e l'invio del valore al cloud. Normalmente includeresti un ritardo in ogni ciclo, ad esempio, se desideri che i dati del sensore vengano inviati solo ogni 10 secondi, aggiungeresti un ritardo di 10 secondi alla fine del ciclo in modo che il microcontrollore possa dormire, risparmiando energia, quindi eseguire nuovamente il ciclo quando necessario 10 secondi dopo. -![Uno sketch Arduino che esegue prima setup, poi loop ripetutamente](../../../../../translated_images/it/arduino-sketch.79590cb837ff7a7c6a68d1afda6cab83fd53d3bb1bd9a8bf2eaf8d693a4d3ea6.png) +![Uno sketch Arduino che esegue prima setup, poi loop ripetutamente](../../../../../translated_images/it/arduino-sketch.79590cb837ff7a7c.webp) ✅ Questa architettura del programma è conosciuta come *event loop* o *message loop*. Molte applicazioni utilizzano questo approccio dietro le quinte ed è lo standard per la maggior parte delle applicazioni desktop che funzionano su OS come Windows, macOS o Linux. Il `loop` ascolta i messaggi dai componenti dell'interfaccia utente come pulsanti, o dispositivi come la tastiera, e risponde a essi. Puoi leggere di più in questo [articolo sul ciclo degli eventi](https://wikipedia.org/wiki/Event_loop). diff --git a/translations/it/1-getting-started/lessons/3-sensors-and-actuators/README.md b/translations/it/1-getting-started/lessons/3-sensors-and-actuators/README.md index 0f27890d0..1564137c6 100644 --- a/translations/it/1-getting-started/lessons/3-sensors-and-actuators/README.md +++ b/translations/it/1-getting-started/lessons/3-sensors-and-actuators/README.md @@ -1,6 +1,6 @@ # Interagire con il mondo fisico con sensori e attuatori -![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-3.cc3b7b4cd646de598698cce043c0393fd62ef42bac2eaf60e61272cd844250f4.jpg) +![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-3.cc3b7b4cd646de59.webp) > Illustrazione di [Nitya Narasimhan](https://github.com/nitya). Clicca sull'immagine per una versione più grande. @@ -92,7 +92,7 @@ I sensori digitali, come quelli analogici, rilevano il mondo circostante utilizz Il sensore digitale più semplice è un pulsante o un interruttore. Questo è un sensore con due stati: acceso o spento. -![Un pulsante riceve 5 volt. Quando non è premuto restituisce 0 volt, quando è premuto restituisce 5 volt](../../../../../translated_images/it/button.eadb560b77ac45e56f523d9d8876e40444f63b419e33eb820082d461fa79490b.png) +![Un pulsante riceve 5 volt. Quando non è premuto restituisce 0 volt, quando è premuto restituisce 5 volt](../../../../../translated_images/it/button.eadb560b77ac45e5.webp) I pin sui dispositivi IoT, come i pin GPIO, possono misurare direttamente questo segnale come 0 o 1. Se la tensione inviata è uguale a quella restituita, il valore letto è 1, altrimenti il valore letto è 0. Non c'è bisogno di convertire il segnale, può essere solo 1 o 0. @@ -125,7 +125,7 @@ Alcuni attuatori comuni includono: Segui la guida pertinente qui sotto per aggiungere un attuatore al tuo dispositivo IoT, controllato dal sensore, per costruire una luce notturna IoT. Raccoglierà i livelli di luce dal sensore di luce e utilizzerà un attuatore sotto forma di LED per emettere luce quando il livello di luce rilevato è troppo basso. -![Un diagramma di flusso dell'assegnazione che mostra i livelli di luce letti e controllati, e il LED controllato](../../../../../translated_images/it/assignment-1-flow.7552a51acb1a5ec858dca6e855cdbb44206434006df8ba3799a25afcdab1665d.png) +![Un diagramma di flusso dell'assegnazione che mostra i livelli di luce letti e controllati, e il LED controllato](../../../../../translated_images/it/assignment-1-flow.7552a51acb1a5ec8.webp) * [Arduino - Wio Terminal](wio-terminal-actuator.md) * [Computer a scheda singola - Raspberry Pi](pi-actuator.md) @@ -140,7 +140,7 @@ Come i sensori, gli attuatori possono essere analogici o digitali. Gli attuatori analogici prendono un segnale analogico e lo convertono in un'interazione, dove l'interazione cambia in base alla tensione fornita. Un esempio è una luce dimmerabile, come quelle che potresti avere in casa. La quantità di tensione fornita alla luce determina quanto è luminosa. -![Una luce attenuata a bassa tensione e più luminosa ad alta tensione](../../../../../translated_images/it/dimmable-light.9ceffeb195dec1a849da718b2d71b32c35171ff7dfea9c07bbf82646a67acf6b.png) +![Una luce attenuata a bassa tensione e più luminosa ad alta tensione](../../../../../translated_images/it/dimmable-light.9ceffeb195dec1a8.webp) Come per i sensori, il dispositivo IoT effettivo funziona con segnali digitali, non analogici. Ciò significa che per inviare un segnale analogico, il dispositivo IoT necessita di un convertitore digitale-analogico (DAC), integrato direttamente nel dispositivo IoT o su una scheda di connessione. Questo converte gli 0 e 1 del dispositivo IoT in una tensione analogica che l'attuatore può utilizzare. @@ -187,7 +187,7 @@ Gli attuatori digitali, come i sensori digitali, hanno due stati controllati da Un semplice attuatore digitale è un LED. Quando un dispositivo invia un segnale digitale di 1, viene inviata una tensione alta che accende il LED. Quando viene inviato un segnale digitale di 0, la tensione scende a 0V e il LED si spegne. -![Un LED è spento a 0 volt e acceso a 5V](../../../../../translated_images/it/led.ec6d94f66676a174ad06d9fa9ea49c2ee89beb18b312d5c6476467c66375b07f.png) +![Un LED è spento a 0 volt e acceso a 5V](../../../../../translated_images/it/led.ec6d94f66676a174.webp) ✅ Quali altri semplici attuatori a 2 stati ti vengono in mente? Un esempio è un solenoide, che è un elettromagnete che può essere attivato per fare cose come spostare un chiavistello di una porta per bloccarla/sbloccarla. diff --git a/translations/it/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md b/translations/it/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md index 9f51062bc..c50821af7 100644 --- a/translations/it/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md +++ b/translations/it/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md @@ -26,7 +26,7 @@ Il Grove LED viene fornito come modulo con una selezione di LED, permettendoti d Collega il LED. -![Un LED Grove](../../../../../translated_images/it/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![Un LED Grove](../../../../../translated_images/it/grove-led.6c853be93f473cf2.webp) 1. Scegli il tuo LED preferito e inserisci i piedini nei due fori sul modulo LED. @@ -40,7 +40,7 @@ Collega il LED. 1. Con il Raspberry Pi spento, collega l'altra estremità del cavo Grove alla presa digitale contrassegnata **D5** sul Grove Base hat collegato al Pi. Questa presa è la seconda da sinistra, nella fila di prese accanto ai pin GPIO. -![Il LED Grove collegato alla presa D5](../../../../../translated_images/it/pi-led.97f1d474981dc35d1c7996c7b17de355d3d0a6bc9606d79fa5f89df933415122.png) +![Il LED Grove collegato alla presa D5](../../../../../translated_images/it/pi-led.97f1d474981dc35d.webp) ## Programmare la luce notturna diff --git a/translations/it/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md b/translations/it/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md index baf23b2f9..0d6ba18e5 100644 --- a/translations/it/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md +++ b/translations/it/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md @@ -16,13 +16,13 @@ Il sensore di luce Grove utilizzato per rilevare i livelli di luce deve essere c Collega il sensore di luce. -![Un sensore di luce Grove](../../../../../translated_images/it/grove-light-sensor.b8127b7c434e632d6bcdb57587a14e9ef69a268a22df95d08628f62b8fa5505c.png) +![Un sensore di luce Grove](../../../../../translated_images/it/grove-light-sensor.b8127b7c434e632d.webp) 1. Inserisci un'estremità di un cavo Grove nella presa del modulo sensore di luce. Entrerà solo in un verso. 1. Con il Raspberry Pi spento, collega l'altra estremità del cavo Grove alla presa analogica contrassegnata come **A0** sul Grove Base hat collegato al Pi. Questa presa è la seconda da destra, nella fila di prese accanto ai pin GPIO. -![Il sensore di luce Grove collegato alla presa A0](../../../../../translated_images/it/pi-light-sensor.66cc1e31fa48cd7d5f23400d4b2119aa41508275cb7c778053a7923b4e972d7e.png) +![Il sensore di luce Grove collegato alla presa A0](../../../../../translated_images/it/pi-light-sensor.66cc1e31fa48cd7d.webp) ## Programma il sensore di luce diff --git a/translations/it/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md b/translations/it/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md index b1c7a2022..c201e1d29 100644 --- a/translations/it/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md +++ b/translations/it/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md @@ -36,11 +36,11 @@ Aggiungi il LED all'app CounterFit. 1. Seleziona il pulsante **Add** per creare il LED sul Pin 5. - ![Le impostazioni del LED](../../../../../translated_images/it/counterfit-create-led.ba9db1c9b8c622a635d6dfae5cdc4e70c2b250635bd4f0601c6cf0bd22b7ba46.png) + ![Le impostazioni del LED](../../../../../translated_images/it/counterfit-create-led.ba9db1c9b8c622a6.webp) Il LED verrà creato e apparirà nell'elenco degli attuatori. - ![Il LED creato](../../../../../translated_images/it/counterfit-led.c0ab02de6d256ad84d9bad4d67a7faa709f0ea83e410cfe9b5561ef0cef30b1c.png) + ![Il LED creato](../../../../../translated_images/it/counterfit-led.c0ab02de6d256ad8.webp) Una volta creato il LED, puoi cambiarne il colore utilizzando il selettore *Color*. Seleziona il pulsante **Set** per cambiare il colore dopo averlo scelto. diff --git a/translations/it/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md b/translations/it/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md index 6648be64a..62395cb45 100644 --- a/translations/it/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md +++ b/translations/it/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md @@ -28,11 +28,11 @@ Aggiungi il sensore di luce all'app CounterFit. 1. Seleziona il pulsante **Add** per creare il sensore di luce sul Pin 0. - ![Le impostazioni del sensore di luce](../../../../../translated_images/it/counterfit-create-light-sensor.9f36a5e0d4458d8d554d54b34d2c806d56093d6e49fddcda2d20f6fef7f5cce1.png) + ![Le impostazioni del sensore di luce](../../../../../translated_images/it/counterfit-create-light-sensor.9f36a5e0d4458d8d.webp) Il sensore di luce verrà creato e apparirà nella lista dei sensori. - ![Il sensore di luce creato](../../../../../translated_images/it/counterfit-light-sensor.5d0f5584df56b90f6b2561910d9cb20dfbd73eeff2177c238d38f4de54aefae1.png) + ![Il sensore di luce creato](../../../../../translated_images/it/counterfit-light-sensor.5d0f5584df56b90f.webp) ## Programmare il sensore di luce diff --git a/translations/it/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md b/translations/it/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md index 47566cd2d..2104a0731 100644 --- a/translations/it/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md +++ b/translations/it/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md @@ -26,7 +26,7 @@ Il Grove LED è fornito come modulo con una selezione di LED, permettendoti di s Collega il LED. -![Un LED Grove](../../../../../translated_images/it/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![Un LED Grove](../../../../../translated_images/it/grove-led.6c853be93f473cf2.webp) 1. Scegli il tuo LED preferito e inserisci i piedini nei due fori del modulo LED. diff --git a/translations/it/1-getting-started/lessons/4-connect-internet/README.md b/translations/it/1-getting-started/lessons/4-connect-internet/README.md index 1a86ff5e1..4e6472832 100644 --- a/translations/it/1-getting-started/lessons/4-connect-internet/README.md +++ b/translations/it/1-getting-started/lessons/4-connect-internet/README.md @@ -1,6 +1,6 @@ # Collega il tuo dispositivo a Internet -![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-4.7344e074ea68fa545fd320b12dce36d72dd62d28c3b4596cb26cf315f434b98f.jpg) +![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-4.7344e074ea68fa54.webp) > Illustrazione di [Nitya Narasimhan](https://github.com/nitya). Clicca sull'immagine per una versione più grande. @@ -47,7 +47,7 @@ MQTT è il protocollo di comunicazione più popolare per i dispositivi IoT ed è MQTT utilizza un singolo broker e più client. Tutti i client si connettono al broker, e il broker instrada i messaggi ai client pertinenti. I messaggi vengono instradati utilizzando argomenti denominati, piuttosto che essere inviati direttamente a un singolo client. Un client può pubblicare su un argomento, e tutti i client che si iscrivono a quell'argomento riceveranno il messaggio. -![Dispositivo IoT che pubblica telemetria sull'argomento /telemetry, e il servizio cloud che si iscrive a quell'argomento](../../../../../translated_images/it/mqtt.cbf7f21d9adc3e17548b359444cc11bb4bf2010543e32ece9a47becf54438c23.png) +![Dispositivo IoT che pubblica telemetria sull'argomento /telemetry, e il servizio cloud che si iscrive a quell'argomento](../../../../../translated_images/it/mqtt.cbf7f21d9adc3e17.webp) ✅ Fai una ricerca. Se hai molti dispositivi IoT, come puoi assicurarti che il tuo broker MQTT sia in grado di gestire tutti i messaggi? @@ -69,7 +69,7 @@ Piuttosto che affrontare le complessità di configurare un broker MQTT come part > 💁 Questo broker di test è pubblico e non sicuro. Chiunque potrebbe ascoltare ciò che pubblichi, quindi non dovrebbe essere utilizzato con dati che devono rimanere privati. -![Diagramma di flusso dell'assegnazione che mostra i livelli di luce letti e controllati, e il controllo del LED](../../../../../translated_images/it/assignment-1-internet-flow.3256feab5f052fd273bf4e331157c574c2c3fa42e479836fc9c3586f41db35a5.png) +![Diagramma di flusso dell'assegnazione che mostra i livelli di luce letti e controllati, e il controllo del LED](../../../../../translated_images/it/assignment-1-internet-flow.3256feab5f052fd2.webp) Segui il passaggio pertinente qui sotto per connettere il tuo dispositivo al broker MQTT: @@ -350,7 +350,7 @@ Per i macchinari, potresti voler conservare i dati, specialmente se vengono util I progettisti di dispositivi IoT dovrebbero anche considerare se il dispositivo IoT può essere utilizzato durante un'interruzione di Internet o una perdita di segnale causata dalla posizione. Un termostato intelligente dovrebbe essere in grado di prendere alcune decisioni limitate per controllare il riscaldamento se non può inviare telemetria al cloud a causa di un'interruzione. -[![Questa Ferrari è stata bloccata perché qualcuno ha provato ad aggiornarla sottoterra dove non c'è ricezione cellulare](../../../../../translated_images/it/bricked-car.dc38f8efadc6c59d76211f981a521efb300939283dee468f79503aae3ec67615.png)](https://twitter.com/internetofshit/status/1315736960082808832) +[![Questa Ferrari è stata bloccata perché qualcuno ha provato ad aggiornarla sottoterra dove non c'è ricezione cellulare](../../../../../translated_images/it/bricked-car.dc38f8efadc6c59d.webp)](https://twitter.com/internetofshit/status/1315736960082808832) Per MQTT, per gestire una perdita di connettività, il codice del dispositivo e del server dovrà essere responsabile di garantire la consegna dei messaggi se necessario, ad esempio richiedendo che tutti i messaggi inviati siano risposti con messaggi aggiuntivi su un topic di risposta, e se non lo sono, vengono messi in coda manualmente per essere riprodotti in seguito. @@ -358,7 +358,7 @@ Per MQTT, per gestire una perdita di connettività, il codice del dispositivo e I comandi sono messaggi inviati dal cloud a un dispositivo, che gli istruiscono di fare qualcosa. La maggior parte delle volte ciò comporta la generazione di un output tramite un attuatore, ma può essere un'istruzione per il dispositivo stesso, come riavviarsi o raccogliere telemetria aggiuntiva e restituirla come risposta al comando. -![Un termostato connesso a Internet che riceve un comando per accendere il riscaldamento](../../../../../translated_images/it/commands.d6c06bbbb3a02cce95f2831a1c331daf6dedd4e470c4aa2b0ae54f332016e504.png) +![Un termostato connesso a Internet che riceve un comando per accendere il riscaldamento](../../../../../translated_images/it/commands.d6c06bbbb3a02cce.webp) Un termostato potrebbe ricevere un comando dal cloud per accendere il riscaldamento. Basandosi sui dati di telemetria di tutti i sensori, se il servizio cloud ha deciso che il riscaldamento deve essere acceso, invia il comando pertinente. diff --git a/translations/it/2-farm/lessons/1-predict-plant-growth/README.md b/translations/it/2-farm/lessons/1-predict-plant-growth/README.md index 2f31f849c..22d1a3b30 100644 --- a/translations/it/2-farm/lessons/1-predict-plant-growth/README.md +++ b/translations/it/2-farm/lessons/1-predict-plant-growth/README.md @@ -1,6 +1,6 @@ # Prevedere la crescita delle piante con IoT -![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-5.42b234299279d263143148b88ab4583861a32ddb03110c6c1120e41bb88b2592.jpg) +![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-5.42b234299279d263.webp) > Illustrazione di [Nitya Narasimhan](https://github.com/nitya). Clicca sull'immagine per una versione più grande. @@ -102,7 +102,7 @@ I passaggi per farlo manualmente sono: Ad esempio, se la temperatura massima della giornata è 25°C e la minima è 12°C: -![GDD = 25 + 12 diviso per 2, poi sottrai 10 dal risultato ottenendo 8.5](../../../../../translated_images/it/gdd-calculation-strawberries.59f57db94b22adb8ff6efb951ace33af104a1c6ccca3ffb0f8169c14cb160c90.png) +![GDD = 25 + 12 diviso per 2, poi sottrai 10 dal risultato ottenendo 8.5](../../../../../translated_images/it/gdd-calculation-strawberries.59f57db94b22adb8.webp) * 25 + 12 = 37 * 37 / 2 = 18.5 diff --git a/translations/it/2-farm/lessons/1-predict-plant-growth/assignment.md b/translations/it/2-farm/lessons/1-predict-plant-growth/assignment.md index 199234366..1e329f473 100644 --- a/translations/it/2-farm/lessons/1-predict-plant-growth/assignment.md +++ b/translations/it/2-farm/lessons/1-predict-plant-growth/assignment.md @@ -33,7 +33,7 @@ Una volta che hai i dati sulla temperatura, puoi utilizzare il Jupyter Notebook Jupyter si avvierà e aprirà il notebook nel tuo browser. Segui le istruzioni nel notebook per visualizzare le temperature misurate e calcolare i gradi giorno di crescita. - ![Il jupyter notebook](../../../../../translated_images/it/gdd-jupyter-notebook.c5b52cf21094f158a61f47f455490fd95f1729777ff90861a4521820bf354cdc.png) + ![Il jupyter notebook](../../../../../translated_images/it/gdd-jupyter-notebook.c5b52cf21094f158.webp) ## Rubrica diff --git a/translations/it/2-farm/lessons/1-predict-plant-growth/pi-temp.md b/translations/it/2-farm/lessons/1-predict-plant-growth/pi-temp.md index 34642de54..621c000d4 100644 --- a/translations/it/2-farm/lessons/1-predict-plant-growth/pi-temp.md +++ b/translations/it/2-farm/lessons/1-predict-plant-growth/pi-temp.md @@ -16,13 +16,13 @@ Il sensore di temperatura Grove può essere collegato al Raspberry Pi. Collega il sensore di temperatura -![Un sensore di temperatura Grove](../../../../../translated_images/it/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![Un sensore di temperatura Grove](../../../../../translated_images/it/grove-dht11.07f8eafceee17004.webp) 1. Inserisci un'estremità di un cavo Grove nella presa del sensore di umidità e temperatura. Il cavo può essere inserito solo in un verso. 1. Con il Raspberry Pi spento, collega l'altra estremità del cavo Grove alla presa digitale contrassegnata **D5** sul Grove Base Hat collegato al Pi. Questa presa è la seconda da sinistra, nella fila di prese accanto ai pin GPIO. -![Il sensore di temperatura Grove collegato alla presa A0](../../../../../translated_images/it/pi-temperature-sensor.3ff82fff672c8e565ef25a39d26d111de006b825a7e0867227ef4e7fbff8553c.png) +![Il sensore di temperatura Grove collegato alla presa A0](../../../../../translated_images/it/pi-temperature-sensor.3ff82fff672c8e56.webp) ## Programmare il sensore di temperatura diff --git a/translations/it/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md b/translations/it/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md index 87e522e34..5350ac77f 100644 --- a/translations/it/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md +++ b/translations/it/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md @@ -38,11 +38,11 @@ Aggiungi i sensori di umidità e temperatura all'app CounterFit. 1. Seleziona il pulsante **Add** per creare il sensore di umidità sul Pin 5. - ![Impostazioni del sensore di umidità](../../../../../translated_images/it/counterfit-create-humidity-sensor.2750e27b6f30e09cf4e22101defd5252710717620816ab41ba688f91f757c49a.png) + ![Impostazioni del sensore di umidità](../../../../../translated_images/it/counterfit-create-humidity-sensor.2750e27b6f30e09c.webp) Il sensore di umidità verrà creato e apparirà nella lista dei sensori. - ![Sensore di umidità creato](../../../../../translated_images/it/counterfit-humidity-sensor.7b12f7f339e430cb26c8211d2dba4ef75261b353a01da0932698b5bebd693f27.png) + ![Sensore di umidità creato](../../../../../translated_images/it/counterfit-humidity-sensor.7b12f7f339e430cb.webp) 1. Crea un sensore di temperatura: @@ -54,11 +54,11 @@ Aggiungi i sensori di umidità e temperatura all'app CounterFit. 1. Seleziona il pulsante **Add** per creare il sensore di temperatura sul Pin 6. - ![Impostazioni del sensore di temperatura](../../../../../translated_images/it/counterfit-create-temperature-sensor.199350ed34f7343d79dccbe95eaf6c11d2121f03d1c35ab9613b330c23f39b29.png) + ![Impostazioni del sensore di temperatura](../../../../../translated_images/it/counterfit-create-temperature-sensor.199350ed34f7343d.webp) Il sensore di temperatura verrà creato e apparirà nella lista dei sensori. - ![Sensore di temperatura creato](../../../../../translated_images/it/counterfit-temperature-sensor.f0560236c96a9016bafce7f6f792476fe3367bc6941a1f7d5811d144d4bcbfff.png) + ![Sensore di temperatura creato](../../../../../translated_images/it/counterfit-temperature-sensor.f0560236c96a9016.webp) ## Programmare l'app del sensore di temperatura diff --git a/translations/it/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md b/translations/it/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md index aa06f7d5f..0226a04f6 100644 --- a/translations/it/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md +++ b/translations/it/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md @@ -18,7 +18,7 @@ Il sensore di temperatura Grove può essere collegato alla porta digitale del Wi Collega il sensore di temperatura. -![Un sensore di temperatura Grove](../../../../../translated_images/it/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![Un sensore di temperatura Grove](../../../../../translated_images/it/grove-dht11.07f8eafceee17004.webp) 1. Inserisci un'estremità di un cavo Grove nella presa del sensore di umidità e temperatura. Può essere inserito solo in un verso. diff --git a/translations/it/2-farm/lessons/2-detect-soil-moisture/README.md b/translations/it/2-farm/lessons/2-detect-soil-moisture/README.md index eaa11311d..19f404fb5 100644 --- a/translations/it/2-farm/lessons/2-detect-soil-moisture/README.md +++ b/translations/it/2-farm/lessons/2-detect-soil-moisture/README.md @@ -13,7 +13,7 @@ I²C ha un bus composto da 2 fili principali, insieme a 2 fili di alimentazione: | VCC | Voltage common collector | L'alimentazione per i dispositivi. Questo è collegato ai fili SDA e SCL per fornire loro energia tramite una resistenza pull-up che spegne il segnale quando nessun dispositivo è il controller. | | GND | Ground | Fornisce una massa comune per il circuito elettrico. | -![Bus I2C con 3 dispositivi collegati ai fili SDA e SCL, condividendo un filo di massa comune](../../../../../translated_images/it/i2c.83da845dde02256bdd462dbe0d5145461416b74930571b89d1ae142841eeb584.png) +![Bus I2C con 3 dispositivi collegati ai fili SDA e SCL, condividendo un filo di massa comune](../../../../../translated_images/it/i2c.83da845dde02256b.webp) Per inviare dati, un dispositivo emette una condizione di avvio per indicare che è pronto a inviare dati. Diventerà quindi il controller. Il controller invia l'indirizzo del dispositivo con cui vuole comunicare, insieme all'indicazione se vuole leggere o scrivere dati. Dopo che i dati sono stati trasmessi, il controller invia una condizione di stop per indicare che ha terminato. Dopo di ciò, un altro dispositivo può diventare il controller e inviare o ricevere dati. diff --git a/translations/it/2-farm/lessons/2-detect-soil-moisture/assignment.md b/translations/it/2-farm/lessons/2-detect-soil-moisture/assignment.md index ad5496a89..a9ca2f50b 100644 --- a/translations/it/2-farm/lessons/2-detect-soil-moisture/assignment.md +++ b/translations/it/2-farm/lessons/2-detect-soil-moisture/assignment.md @@ -20,7 +20,7 @@ Dovrai ripetere questi passaggi più volte per ottenere le letture necessarie, c L'umidità gravimetrica del suolo si calcola come: -![% di umidità del suolo è il peso del terreno bagnato meno il peso del terreno asciutto, diviso per il peso del terreno asciutto, moltiplicato per 100](../../../../../translated_images/it/gsm-calculation.6da38c6201eec14e7573bb2647aa18892883193553d23c9d77e5dc681522dfb2.png) +![% di umidità del suolo è il peso del terreno bagnato meno il peso del terreno asciutto, diviso per il peso del terreno asciutto, moltiplicato per 100](../../../../../translated_images/it/gsm-calculation.6da38c6201eec14e.webp) * W - il peso del terreno bagnato @@ -29,7 +29,7 @@ L'umidità gravimetrica del suolo si calcola come: Ad esempio, supponiamo di avere un campione di terreno che pesa 212g bagnato e 197g asciutto. -![Calcolo compilato](../../../../../translated_images/it/gsm-calculation-example.99f9803b4f29e97668e7c15412136c0c399ab12dbba0b89596fdae9d8aedb6fb.png) +![Calcolo compilato](../../../../../translated_images/it/gsm-calculation-example.99f9803b4f29e976.webp) * W = 212g * W = 197g diff --git a/translations/it/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md b/translations/it/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md index 42a67b30e..2d619ccfc 100644 --- a/translations/it/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md +++ b/translations/it/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md @@ -18,13 +18,13 @@ Il sensore Grove di umidità del suolo può essere collegato al Raspberry Pi. Collega il sensore di umidità del suolo. -![Un sensore Grove di umidità del suolo](../../../../../translated_images/it/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![Un sensore Grove di umidità del suolo](../../../../../translated_images/it/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. Inserisci un'estremità di un cavo Grove nella presa del sensore di umidità del suolo. Il cavo può essere inserito solo in un verso. 1. Con il Raspberry Pi spento, collega l'altra estremità del cavo Grove alla presa analogica contrassegnata come **A0** sul Grove Base Hat collegato al Raspberry Pi. Questa presa è la seconda da destra, nella fila di prese accanto ai pin GPIO. -![Il sensore Grove di umidità del suolo collegato alla presa A0](../../../../../translated_images/it/pi-soil-moisture-sensor.fdd7eb2393792cf6739cacf1985d9f55beda16d372f30d0b5a51d586f978a870.png) +![Il sensore Grove di umidità del suolo collegato alla presa A0](../../../../../translated_images/it/pi-soil-moisture-sensor.fdd7eb2393792cf6.webp) 1. Inserisci il sensore di umidità del suolo nel terreno. Il sensore ha una "linea di posizione massima" - una linea bianca che attraversa il sensore. Inserisci il sensore fino a questa linea, ma non oltre. diff --git a/translations/it/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md b/translations/it/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md index 66d4adfbd..9afac832e 100644 --- a/translations/it/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md +++ b/translations/it/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md @@ -34,11 +34,11 @@ Aggiungi il sensore di umidità del suolo all'app CounterFit. 1. Seleziona il pulsante **Add** per creare il sensore *Soil Moisture* sul Pin 0. - ![Le impostazioni del sensore di umidità del suolo](../../../../../translated_images/it/counterfit-create-soil-moisture-sensor.35266135a5e0ae68b29a684d7db0d2933a8098b2307d197f7c71577b724603aa.png) + ![Le impostazioni del sensore di umidità del suolo](../../../../../translated_images/it/counterfit-create-soil-moisture-sensor.35266135a5e0ae68.webp) Il sensore di umidità del suolo verrà creato e apparirà nella lista dei sensori. - ![Il sensore di umidità del suolo creato](../../../../../translated_images/it/counterfit-soil-moisture-sensor.81742b2de0e9de60a3b3b9a2ff8ecc686d428eb6d71820f27a693be26e5aceee.png) + ![Il sensore di umidità del suolo creato](../../../../../translated_images/it/counterfit-soil-moisture-sensor.81742b2de0e9de60.webp) ## Programmare l'app del sensore di umidità del suolo diff --git a/translations/it/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md b/translations/it/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md index 44f72172b..8b75ef8fd 100644 --- a/translations/it/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md +++ b/translations/it/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md @@ -18,7 +18,7 @@ Il sensore Grove di umidità del suolo può essere collegato alla porta analogic Collega il sensore di umidità del suolo. -![Un sensore Grove di umidità del suolo](../../../../../translated_images/it/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![Un sensore Grove di umidità del suolo](../../../../../translated_images/it/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. Inserisci un'estremità di un cavo Grove nella presa del sensore di umidità del suolo. Può essere inserito solo in un verso. diff --git a/translations/it/2-farm/lessons/3-automated-plant-watering/README.md b/translations/it/2-farm/lessons/3-automated-plant-watering/README.md index 0947238f3..dd34387d2 100644 --- a/translations/it/2-farm/lessons/3-automated-plant-watering/README.md +++ b/translations/it/2-farm/lessons/3-automated-plant-watering/README.md @@ -1,6 +1,6 @@ # Irrigazione automatica delle piante -![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-7.30b5f577d3cb8e031238751475cb519c7d6dbaea261b5df4643d086ffb2a03bb.jpg) +![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-7.30b5f577d3cb8e03.webp) > Illustrazione di [Nitya Narasimhan](https://github.com/nitya). Clicca sull'immagine per una versione più grande. @@ -32,7 +32,7 @@ I dispositivi IoT utilizzano una tensione bassa. Sebbene questa sia sufficiente La soluzione consiste nel collegare una pompa a un alimentatore esterno e utilizzare un attuatore per accendere la pompa, simile a come accenderesti una luce. Serve una quantità minima di energia (sotto forma di energia del tuo corpo) per il tuo dito per azionare un interruttore, e questo collega la luce all'elettricità di rete che funziona a 110v/240v. -![Un interruttore accende una luce](../../../../../translated_images/it/light-switch.760317ad6ab8bd6d611da5352dfe9c73a94a0822ccec7df3c8bae35da18e1658.png) +![Un interruttore accende una luce](../../../../../translated_images/it/light-switch.760317ad6ab8bd6d.webp) > 🎓 [Elettricità di rete](https://wikipedia.org/wiki/Mains_electricity) si riferisce all'elettricità fornita a case e aziende attraverso infrastrutture nazionali in molte parti del mondo. @@ -72,7 +72,7 @@ Quando la leva si muove, di solito puoi sentirla fare contatto con l'elettromagn L'elettromagnete non necessita di molta energia per attivarsi e tirare la leva, può essere controllato utilizzando l'uscita a 3.3V o 5V di un kit di sviluppo IoT. Il circuito di uscita può trasportare molta più energia, a seconda del relè, inclusa la tensione di rete o livelli di potenza ancora più elevati per uso industriale. In questo modo un kit di sviluppo IoT può controllare un sistema di irrigazione, da una piccola pompa per una singola pianta, fino a un sistema industriale massiccio per un'intera azienda agricola commerciale. -![Un relè Grove con il circuito di controllo, il circuito di uscita e il relè etichettati](../../../../../translated_images/it/grove-relay-labelled.293e068f5c3c2a199bd7892f2661fdc9e10c920b535cfed317fbd6d1d4ae1168.png) +![Un relè Grove con il circuito di controllo, il circuito di uscita e il relè etichettati](../../../../../translated_images/it/grove-relay-labelled.293e068f5c3c2a19.webp) L'immagine sopra mostra un relè Grove. Il circuito di controllo si collega a un dispositivo IoT e accende o spegne il relè utilizzando 3.3V o 5V. Il circuito di uscita ha due terminali, uno può essere alimentazione o massa. Il circuito di uscita può gestire fino a 250V a 10A, sufficiente per una gamma di dispositivi alimentati dalla rete. Puoi trovare relè che possono gestire livelli di potenza ancora più elevati. diff --git a/translations/it/2-farm/lessons/3-automated-plant-watering/pi-relay.md b/translations/it/2-farm/lessons/3-automated-plant-watering/pi-relay.md index ba1c4c6ba..189d40dc3 100644 --- a/translations/it/2-farm/lessons/3-automated-plant-watering/pi-relay.md +++ b/translations/it/2-farm/lessons/3-automated-plant-watering/pi-relay.md @@ -18,13 +18,13 @@ Il relè Grove può essere collegato al Raspberry Pi. Collega il relè. -![Un relè Grove](../../../../../translated_images/it/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) +![Un relè Grove](../../../../../translated_images/it/grove-relay.d426958ca210fbd0.webp) 1. Inserisci un'estremità di un cavo Grove nella presa del relè. Entrerà solo in un verso. 1. Con il Raspberry Pi spento, collega l'altra estremità del cavo Grove alla presa digitale contrassegnata **D5** sul Grove Base Hat collegato al Pi. Questa presa è la seconda da sinistra, nella fila di prese accanto ai pin GPIO. Lascia il sensore di umidità del suolo collegato alla presa **A0**. -![Il relè Grove collegato alla presa D5 e il sensore di umidità del suolo collegato alla presa A0](../../../../../translated_images/it/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e69ec716cd2719ce117700bd1fc933eaf93476c103c57939b.png) +![Il relè Grove collegato alla presa D5 e il sensore di umidità del suolo collegato alla presa A0](../../../../../translated_images/it/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e.webp) 1. Inserisci il sensore di umidità del suolo nel terreno, se non lo hai già fatto dalla lezione precedente. diff --git a/translations/it/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md b/translations/it/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md index e72628a63..864d3044a 100644 --- a/translations/it/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md +++ b/translations/it/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md @@ -28,11 +28,11 @@ Aggiungi il relè all'app CounterFit. 1. Seleziona il pulsante **Add** per creare il relè sul Pin 5. - ![Le impostazioni del relè](../../../../../translated_images/it/counterfit-create-relay.fa7c40fd0f2f6afc33b35ea94fcb235085be4861e14e3fe6b9b7bcfc82d1c888.png) + ![Le impostazioni del relè](../../../../../translated_images/it/counterfit-create-relay.fa7c40fd0f2f6afc.webp) Il relè verrà creato e apparirà nella lista degli attuatori. - ![Il relè creato](../../../../../translated_images/it/counterfit-relay.bbf74c1dbdc8b9acd983367fcbd06703a402aefef6af54ddb28e11307ba8a12c.png) + ![Il relè creato](../../../../../translated_images/it/counterfit-relay.bbf74c1dbdc8b9ac.webp) ## Programmare il relè diff --git a/translations/it/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md b/translations/it/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md index 5c698b8b8..767f25158 100644 --- a/translations/it/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md +++ b/translations/it/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md @@ -18,7 +18,7 @@ Il Grove relay può essere collegato alla porta digitale del Wio Terminal. Collega il relè. -![Un Grove relay](../../../../../translated_images/it/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) +![Un Grove relay](../../../../../translated_images/it/grove-relay.d426958ca210fbd0.webp) 1. Inserisci un'estremità di un cavo Grove nella presa del relè. Può essere inserito solo in un modo. diff --git a/translations/it/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md b/translations/it/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md index 63259c2fe..0f01a5b19 100644 --- a/translations/it/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md +++ b/translations/it/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md @@ -1,6 +1,6 @@ # Migra la tua pianta al cloud -![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-8.3f21f3c11159e6a0a376351973ea5724d5de68fa23b4288853a174bed9ac48c3.jpg) +![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-8.3f21f3c11159e6a0.webp) > Illustrazione di [Nitya Narasimhan](https://github.com/nitya). Clicca sull'immagine per una versione più grande. @@ -46,8 +46,8 @@ Questo poteva essere molto costoso, richiedere una vasta gamma di competenze e r Il cloud viene spesso scherzosamente definito "il computer di qualcun altro". L'idea iniziale era semplice: invece di acquistare computer, si affittano quelli di qualcun altro. Un fornitore di cloud computing gestisce enormi data center, occupandosi di acquistare e installare l'hardware, gestire alimentazione e raffreddamento, rete, sicurezza dell'edificio, aggiornamenti hardware e software, tutto. Come cliente, affitti i computer di cui hai bisogno, aumentando il numero durante i picchi di domanda e riducendolo quando la domanda cala. Questi data center cloud sono distribuiti in tutto il mondo. -![Un data center cloud di Microsoft](../../../../../translated_images/it/azure-region-existing.73f704604f2aa6cb9b5a49ed40e93d4fd81ae3f4e6af4a8ca504023902832f56.png) -![Espansione pianificata di un data center cloud di Microsoft](../../../../../translated_images/it/azure-region-planned-expansion.a5074a1e8af74f156a73552d502429e5b126ea5019274d767ecb4b9afdad442b.png) +![Un data center cloud di Microsoft](../../../../../translated_images/it/azure-region-existing.73f704604f2aa6cb.webp) +![Espansione pianificata di un data center cloud di Microsoft](../../../../../translated_images/it/azure-region-planned-expansion.a5074a1e8af74f15.webp) Questi data center possono occupare diversi chilometri quadrati. Le immagini sopra, scattate alcuni anni fa in un data center cloud di Microsoft, mostrano le dimensioni iniziali e un'espansione pianificata. L'area destinata all'espansione supera i 5 chilometri quadrati. @@ -108,11 +108,11 @@ I servizi IoT nel cloud risolvono questi problemi. Sono gestiti da grandi fornit I dispositivi IoT si connettono a un servizio cloud utilizzando un SDK per dispositivi (una libreria che fornisce codice per lavorare con le funzionalità del servizio) o direttamente tramite un protocollo di comunicazione come MQTT o HTTP. L'SDK per dispositivi è solitamente la strada più semplice, poiché gestisce tutto per te, come sapere a quali topic pubblicare o sottoscriversi e come gestire la sicurezza. -![I dispositivi si connettono a un servizio utilizzando un SDK per dispositivi. Anche il codice server si connette al servizio tramite un SDK](../../../../../translated_images/it/iot-service-connectivity.7e873847921a5d6fd60d0ba3a943210194518cee0d4e362476624316443275c3.png) +![I dispositivi si connettono a un servizio utilizzando un SDK per dispositivi. Anche il codice server si connette al servizio tramite un SDK](../../../../../translated_images/it/iot-service-connectivity.7e873847921a5d6f.webp) Il tuo dispositivo comunica quindi con altre parti della tua applicazione tramite questo servizio, in modo simile a come hai inviato telemetria e ricevuto comandi tramite MQTT. Questo avviene solitamente utilizzando un SDK per servizi o una libreria simile. I messaggi arrivano dal tuo dispositivo al servizio, dove altre componenti della tua applicazione possono leggerli, e i messaggi possono essere inviati al tuo dispositivo. -![I dispositivi senza una chiave segreta valida non possono connettersi al servizio IoT](../../../../../translated_images/it/iot-service-allowed-denied-connection.818b0063ac213fb84204a7229303764d9b467ca430fb822b4ac2fca267d56726.png) +![I dispositivi senza una chiave segreta valida non possono connettersi al servizio IoT](../../../../../translated_images/it/iot-service-allowed-denied-connection.818b0063ac213fb8.webp) Questi servizi implementano la sicurezza conoscendo tutti i dispositivi che possono connettersi e inviare dati, sia registrando i dispositivi in anticipo, sia fornendo loro chiavi segrete o certificati che possono utilizzare per registrarsi al servizio la prima volta che si connettono. I dispositivi sconosciuti non possono connettersi: se ci provano, il servizio rifiuta la connessione e ignora i messaggi inviati da loro. @@ -124,7 +124,7 @@ Altre componenti della tua applicazione possono connettersi al servizio IoT e co Ora che hai un abbonamento Azure, puoi iscriverti a un servizio IoT. Il servizio IoT di Microsoft si chiama Azure IoT Hub. -![Il logo di Azure IoT Hub](../../../../../translated_images/it/azure-iot-hub-logo.28a19de76d0a1932464d858f7558712bcdace3e5ec69c434d482ed7ce41c3a26.png) +![Il logo di Azure IoT Hub](../../../../../translated_images/it/azure-iot-hub-logo.28a19de76d0a1932.webp) Il video qui sotto offre una breve panoramica di Azure IoT Hub: diff --git a/translations/it/2-farm/lessons/5-migrate-application-to-the-cloud/README.md b/translations/it/2-farm/lessons/5-migrate-application-to-the-cloud/README.md index feb4591f1..f53ac5d3a 100644 --- a/translations/it/2-farm/lessons/5-migrate-application-to-the-cloud/README.md +++ b/translations/it/2-farm/lessons/5-migrate-application-to-the-cloud/README.md @@ -1,6 +1,6 @@ # Migrare la logica della tua applicazione al cloud -![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-9.dfe99c8e891f48e179724520da9f5794392cf9a625079281ccdcbf09bd85e1b6.jpg) +![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-9.dfe99c8e891f48e1.webp) > Illustrazione di [Nitya Narasimhan](https://github.com/nitya). Clicca sull'immagine per una versione più grande. @@ -28,7 +28,7 @@ In questa lezione tratteremo: Il serverless, o calcolo serverless, consiste nel creare piccoli blocchi di codice che vengono eseguiti nel cloud in risposta a diversi tipi di eventi. Quando si verifica l'evento, il tuo codice viene eseguito e riceve i dati relativi all'evento. Questi eventi possono provenire da molte fonti diverse, inclusi richieste web, messaggi messi in una coda, modifiche ai dati in un database o messaggi inviati a un servizio IoT da dispositivi IoT. -![Eventi inviati da un servizio IoT a un servizio serverless, tutti elaborati contemporaneamente da più funzioni in esecuzione](../../../../../translated_images/it/iot-messages-to-serverless.0194da1cc0732bb7d0f823aed3fce54735c6b1ad3bf36089804d8aaefc0a774f.png) +![Eventi inviati da un servizio IoT a un servizio serverless, tutti elaborati contemporaneamente da più funzioni in esecuzione](../../../../../translated_images/it/iot-messages-to-serverless.0194da1cc0732bb7.webp) > 💁 Se hai già utilizzato trigger di database, puoi pensare a questo come qualcosa di simile: codice attivato da un evento come l'inserimento di una riga. @@ -54,7 +54,7 @@ Come sviluppatore IoT, il modello serverless è ideale. Puoi scrivere una funzio Il servizio di calcolo serverless di Microsoft si chiama Azure Functions. -![Il logo di Azure Functions](../../../../../translated_images/it/azure-functions-logo.1cfc8e3204c9c44aaf80fcf406fc8544d80d7f00f8d3e8ed6fed764563e17564.png) +![Il logo di Azure Functions](../../../../../translated_images/it/azure-functions-logo.1cfc8e3204c9c44a.webp) Il breve video qui sotto offre una panoramica di Azure Functions. diff --git a/translations/it/2-farm/lessons/6-keep-your-plant-secure/README.md b/translations/it/2-farm/lessons/6-keep-your-plant-secure/README.md index 97c8b5a74..c4eb81575 100644 --- a/translations/it/2-farm/lessons/6-keep-your-plant-secure/README.md +++ b/translations/it/2-farm/lessons/6-keep-your-plant-secure/README.md @@ -1,6 +1,6 @@ # Mantieni la tua pianta al sicuro -![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-10.829c86b80b9403bb770929ee553a1d293afe50dc23121aaf9be144673ae012cc.jpg) +![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-10.829c86b80b9403bb.webp) > Schizzo di [Nitya Narasimhan](https://github.com/nitya). Clicca sull'immagine per una versione più grande. @@ -52,11 +52,11 @@ Questi sono scenari reali e accadono continuamente. Alcuni esempi sono stati for Quando un dispositivo si connette a un servizio IoT, utilizza un ID per identificarsi. Il problema è che questo ID può essere clonato: un hacker potrebbe configurare un dispositivo dannoso che utilizza lo stesso ID di un dispositivo reale ma invia dati falsi. -![Sia i dispositivi validi che quelli dannosi potrebbero utilizzare lo stesso ID per inviare telemetria](../../../../../translated_images/it/iot-device-and-hacked-device-connecting.e0671675df74d6d99eb1dedb5a670e606f698efa6202b1ad4c8ae548db299cc6.png) +![Sia i dispositivi validi che quelli dannosi potrebbero utilizzare lo stesso ID per inviare telemetria](../../../../../translated_images/it/iot-device-and-hacked-device-connecting.e0671675df74d6d9.webp) La soluzione è convertire i dati inviati in un formato criptato, utilizzando un valore noto solo al dispositivo e al cloud. Questo processo si chiama *crittografia*, e il valore utilizzato per crittografare i dati è chiamato *chiave di crittografia*. -![Se viene utilizzata la crittografia, solo i messaggi crittografati saranno accettati, gli altri saranno rifiutati](../../../../../translated_images/it/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f979e46f2849b573564eeb4a4dc5b52f669f62745397492fb.png) +![Se viene utilizzata la crittografia, solo i messaggi crittografati saranno accettati, gli altri saranno rifiutati](../../../../../translated_images/it/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f.webp) Il servizio cloud può quindi convertire i dati in un formato leggibile, utilizzando un processo chiamato *decrittografia*, utilizzando la stessa chiave di crittografia o una *chiave di decrittografia*. Se il messaggio crittografato non può essere decrittato dalla chiave, il dispositivo è stato hackerato e il messaggio viene rifiutato. diff --git a/translations/it/3-transport/lessons/1-location-tracking/README.md b/translations/it/3-transport/lessons/1-location-tracking/README.md index 45d05fc3e..014b6b9fc 100644 --- a/translations/it/3-transport/lessons/1-location-tracking/README.md +++ b/translations/it/3-transport/lessons/1-location-tracking/README.md @@ -1,6 +1,6 @@ # Tracciamento della posizione -![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-11.9fddbac4b664c6d50ab7ac9bb32f1fc3f945f03760e72f7f43938073762fb017.jpg) +![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-11.9fddbac4b664c6d5.webp) > Illustrazione di [Nitya Narasimhan](https://github.com/nitya). Clicca sull'immagine per una versione più grande. @@ -63,13 +63,13 @@ La Terra è una sfera - un cerchio tridimensionale. Per questo motivo, i punti v > 💁 Nessuno sa davvero il motivo originale per cui i cerchi sono divisi in 360 gradi. La [pagina Wikipedia sul grado (angolo)](https://wikipedia.org/wiki/Degree_(angle)) copre alcune delle possibili ragioni. -![Linee di latitudine da 90° al Polo Nord, 45° a metà strada tra il Polo Nord e l'equatore, 0° all'equatore, -45° a metà strada tra l'equatore e il Polo Sud, e -90° al Polo Sud](../../../../../translated_images/it/latitude-lines.11d8d91dfb2014a57437272d7db7fd6607243098e8685f06e0c5f1ec984cb7eb.png) +![Linee di latitudine da 90° al Polo Nord, 45° a metà strada tra il Polo Nord e l'equatore, 0° all'equatore, -45° a metà strada tra l'equatore e il Polo Sud, e -90° al Polo Sud](../../../../../translated_images/it/latitude-lines.11d8d91dfb2014a5.webp) La latitudine è misurata utilizzando linee che circondano la Terra e corrono parallele all'equatore, dividendo gli emisferi settentrionale e meridionale in 90° ciascuno. L'equatore è a 0°, il Polo Nord è a 90°, noto anche come 90° Nord, e il Polo Sud è a -90°, o 90° Sud. La longitudine è misurata come il numero di gradi misurati da est a ovest. L'origine a 0° della longitudine è chiamata *Primo Meridiano* ed è stata definita nel 1884 come una linea dal Polo Nord al Polo Sud che attraversa il [Royal Observatory britannico a Greenwich, Inghilterra](https://wikipedia.org/wiki/Royal_Observatory,_Greenwich). -![Linee di longitudine che vanno da -180° a ovest del Primo Meridiano, a 0° sul Primo Meridiano, a 180° a est del Primo Meridiano](../../../../../translated_images/it/longitude-meridians.ab4ef1c91c064586b0185a3c8d39e585903696c6a7d28c098a93a629cddb5d20.png) +![Linee di longitudine che vanno da -180° a ovest del Primo Meridiano, a 0° sul Primo Meridiano, a 180° a est del Primo Meridiano](../../../../../translated_images/it/longitude-meridians.ab4ef1c91c064586.webp) > 🎓 Un meridiano è una linea immaginaria che va dal Polo Nord al Polo Sud, formando un semicerchio. @@ -100,7 +100,7 @@ Le coordinate per un punto sono sempre date come `latitudine, longitudine`, quin * Una latitudine di 47.6423109 (47.6423109 gradi a nord dell'equatore) * Una longitudine di -122.1390293 (122.1390293 gradi a ovest del Primo Meridiano). -![Il campus Microsoft a 47.6423109,-122.117198](../../../../../translated_images/it/microsoft-gps-location-world.a321d481b010f6adfcca139b2ba0adc53b79f58a540495b8e2ce7f779ea64bfe.png) +![Il campus Microsoft a 47.6423109,-122.117198](../../../../../translated_images/it/microsoft-gps-location-world.a321d481b010f6ad.webp) ## Sistemi di Posizionamento Globale (GPS) @@ -112,7 +112,7 @@ I sistemi GPS funzionano grazie a un certo numero di satelliti che inviano un se > 💁 I sensori GPS necessitano di antenne per rilevare le onde radio. Le antenne integrate nei camion e nelle auto con GPS di bordo sono posizionate per ottenere un buon segnale, di solito sul parabrezza o sul tetto. Se stai utilizzando un sistema GPS separato, come uno smartphone o un dispositivo IoT, devi assicurarti che l'antenna integrata nel sistema GPS o nel telefono abbia una chiara visuale del cielo, ad esempio montandola sul parabrezza. -![Sapendo la distanza dal sensore a più satelliti, è possibile calcolare la posizione](../../../../../translated_images/it/gps-satellites.04acf1148fe25fbf1586bc2e8ba698e8d79b79a50c36824b38417dd13372b90f.png) +![Sapendo la distanza dal sensore a più satelliti, è possibile calcolare la posizione](../../../../../translated_images/it/gps-satellites.04acf1148fe25fbf.webp) I satelliti GPS orbitano attorno alla Terra, non sono fissi sopra il sensore, quindi i dati di posizione includono l'altitudine sopra il livello del mare oltre alla latitudine e alla longitudine. diff --git a/translations/it/3-transport/lessons/1-location-tracking/pi-gps-sensor.md b/translations/it/3-transport/lessons/1-location-tracking/pi-gps-sensor.md index a435a6a34..aaa30fd70 100644 --- a/translations/it/3-transport/lessons/1-location-tracking/pi-gps-sensor.md +++ b/translations/it/3-transport/lessons/1-location-tracking/pi-gps-sensor.md @@ -18,13 +18,13 @@ Il sensore GPS Grove può essere collegato al Raspberry Pi. Collega il sensore GPS. -![Un sensore GPS Grove](../../../../../translated_images/it/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![Un sensore GPS Grove](../../../../../translated_images/it/grove-gps-sensor.247943bf69b03f0d.webp) 1. Inserisci un'estremità di un cavo Grove nella presa del sensore GPS. Il cavo entrerà solo in un verso. 1. Con il Raspberry Pi spento, collega l'altra estremità del cavo Grove alla presa UART contrassegnata **UART** sul Grove Base Hat collegato al Pi. Questa presa si trova nella fila centrale, sul lato più vicino allo slot della scheda SD, opposto alle porte USB e alla presa Ethernet. - ![Il sensore GPS Grove collegato alla presa UART](../../../../../translated_images/it/pi-gps-sensor.1f99ee2b2f6528915047ec78967bd362e0e4ee0ed594368a3837b9cf9cdaca64.png) + ![Il sensore GPS Grove collegato alla presa UART](../../../../../translated_images/it/pi-gps-sensor.1f99ee2b2f652891.webp) 1. Posiziona il sensore GPS in modo che l'antenna collegata abbia visibilità verso il cielo - idealmente vicino a una finestra aperta o all'esterno. È più facile ottenere un segnale chiaro senza ostacoli davanti all'antenna. diff --git a/translations/it/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md b/translations/it/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md index 0c61db000..fd8ee3d01 100644 --- a/translations/it/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md +++ b/translations/it/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md @@ -38,11 +38,11 @@ Aggiungi il sensore GPS all'app CounterFit. 1. Seleziona il pulsante **Add** per creare il sensore GPS sulla porta `/dev/ttyAMA0`. - ![Le impostazioni del sensore GPS](../../../../../translated_images/it/counterfit-create-gps-sensor.6385dc9357d85ad1d47b4abb2525e7651fd498917d25eefc5a72feab09eedc70.png) + ![Le impostazioni del sensore GPS](../../../../../translated_images/it/counterfit-create-gps-sensor.6385dc9357d85ad1.webp) Il sensore GPS sarà creato e apparirà nella lista dei sensori. - ![Il sensore GPS creato](../../../../../translated_images/it/counterfit-gps-sensor.3fbb15af0a5367566f2f11324ef5a6f30861cdf2b497071a5e002b7aa473550e.png) + ![Il sensore GPS creato](../../../../../translated_images/it/counterfit-gps-sensor.3fbb15af0a536756.webp) ## Programmare il sensore GPS @@ -102,17 +102,17 @@ Programma l'app del sensore GPS. * Imposta la **Source** su `Lat/Lon` e specifica una latitudine, una longitudine e il numero di satelliti utilizzati per ottenere il fix GPS. Questo valore verrà inviato solo una volta, quindi seleziona la casella **Repeat** per far sì che i dati si ripetano ogni secondo. - ![Il sensore GPS con lat lon selezionato](../../../../../translated_images/it/counterfit-gps-sensor-latlon.008c867d75464fbe7f84107cc57040df565ac07cb57d2f21db37d087d470197d.png) + ![Il sensore GPS con lat lon selezionato](../../../../../translated_images/it/counterfit-gps-sensor-latlon.008c867d75464fbe.webp) * Imposta la **Source** su `NMEA` e aggiungi alcune frasi NMEA nella casella di testo. Tutti questi valori verranno inviati, con un intervallo di 1 secondo prima che ogni nuova frase GGA (fix di posizione) possa essere letta. - ![Il sensore GPS con frasi NMEA impostate](../../../../../translated_images/it/counterfit-gps-sensor-nmea.c62eea442171e17e19528b051b104cfcecdc9cd18db7bc72920f29821ae63f73.png) + ![Il sensore GPS con frasi NMEA impostate](../../../../../translated_images/it/counterfit-gps-sensor-nmea.c62eea442171e17e.webp) Puoi utilizzare uno strumento come [nmeagen.org](https://www.nmeagen.org) per generare queste frasi disegnando su una mappa. Questi valori verranno inviati solo una volta, quindi seleziona la casella **Repeat** per far sì che i dati si ripetano un secondo dopo che tutti sono stati inviati. * Imposta la **Source** su GPX file e carica un file GPX con posizioni di tracciamento. Puoi scaricare file GPX da numerosi siti di mappe e escursionismo popolari, come [AllTrails](https://www.alltrails.com/). Questi file contengono più posizioni GPS come un percorso, e il sensore GPS restituirà ogni nuova posizione a intervalli di 1 secondo. - ![Il sensore GPS con un file GPX impostato](../../../../../translated_images/it/counterfit-gps-sensor-gpxfile.8310b063ce8a425ccc8ebeec8306aeac5e8e55207f007d52c6e1194432a70cd9.png) + ![Il sensore GPS con un file GPX impostato](../../../../../translated_images/it/counterfit-gps-sensor-gpxfile.8310b063ce8a425c.webp) Questi valori verranno inviati solo una volta, quindi seleziona la casella **Repeat** per far sì che i dati si ripetano un secondo dopo che tutti sono stati inviati. diff --git a/translations/it/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md b/translations/it/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md index 7e4878774..bb799ecdf 100644 --- a/translations/it/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md +++ b/translations/it/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md @@ -18,7 +18,7 @@ Il sensore Grove GPS può essere collegato al Wio Terminal. Collega il sensore GPS. -![Un sensore Grove GPS](../../../../../translated_images/it/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![Un sensore Grove GPS](../../../../../translated_images/it/grove-gps-sensor.247943bf69b03f0d.webp) 1. Inserisci un'estremità di un cavo Grove nella presa del sensore GPS. Può essere inserito solo in un verso. diff --git a/translations/it/3-transport/lessons/2-store-location-data/README.md b/translations/it/3-transport/lessons/2-store-location-data/README.md index f3905950d..55309f1d9 100644 --- a/translations/it/3-transport/lessons/2-store-location-data/README.md +++ b/translations/it/3-transport/lessons/2-store-location-data/README.md @@ -1,6 +1,6 @@ # Memorizzare i dati di localizzazione -![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-12.ca7f53039712a3ec14ad6474d8445361c84adab643edc53fa6269b77895606bb.jpg) +![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-12.ca7f53039712a3ec.webp) > Illustrazione di [Nitya Narasimhan](https://github.com/nitya). Clicca sull'immagine per una versione più grande. @@ -75,7 +75,7 @@ I database NoSQL sono chiamati NoSQL perché non hanno la stessa struttura rigid > 💁 Nonostante il nome, alcuni database NoSQL consentono di utilizzare SQL per interrogare i dati. -![Documenti in cartelle in un database NoSQL](../../../../../translated_images/it/noqsl-database.62d24ccf5b73f60d35c245a8533f1c7147c0928e955b82cb290b2e184bb434df.png) +![Documenti in cartelle in un database NoSQL](../../../../../translated_images/it/noqsl-database.62d24ccf5b73f60d.webp) I database NoSQL non hanno uno schema predefinito che limita il modo in cui i dati vengono memorizzati; puoi invece inserire qualsiasi dato non strutturato, di solito utilizzando documenti JSON. Questi documenti possono essere organizzati in cartelle, simili ai file sul tuo computer. Ogni documento può avere campi diversi rispetto ad altri documenti. Ad esempio, se stai memorizzando dati IoT dai tuoi veicoli agricoli, alcuni potrebbero avere campi per dati di accelerometro e velocità, altri potrebbero avere campi per la temperatura nel rimorchio. Se aggiungessi un nuovo tipo di camion, come uno con bilance integrate per monitorare il peso del carico, il tuo dispositivo IoT potrebbe aggiungere questo nuovo campo e potrebbe essere memorizzato senza modifiche al database. @@ -89,7 +89,7 @@ In questa lezione utilizzerai un'archiviazione NoSQL per memorizzare i dati IoT. Nella lezione precedente hai acquisito dati GPS da un sensore GPS collegato al tuo dispositivo IoT. Per memorizzare questi dati IoT nel cloud, devi inviarli a un servizio IoT. Ancora una volta, utilizzerai Azure IoT Hub, lo stesso servizio IoT cloud che hai usato nel progetto precedente. -![Invio di telemetria GPS da un dispositivo IoT a IoT Hub](../../../../../translated_images/it/gps-telemetry-iot-hub.8115335d51cd2c1285d20e9d1b18cf685e59a8e093e7797291ef173445af6f3d.png) +![Invio di telemetria GPS da un dispositivo IoT a IoT Hub](../../../../../translated_images/it/gps-telemetry-iot-hub.8115335d51cd2c12.webp) ### Attività - inviare dati GPS a un IoT Hub @@ -171,7 +171,7 @@ I dati del percorso cold vengono archiviati in data warehouse, database progetta Una volta che i dati fluiscono nel tuo IoT Hub, puoi scrivere del codice serverless per ascoltare gli eventi pubblicati sull'endpoint compatibile con Event Hub. Questo è il percorso warm: questi dati verranno archiviati e utilizzati nella prossima lezione per creare report sul percorso. -![Invio di telemetria GPS da un dispositivo IoT a IoT Hub, quindi a Azure Functions tramite un trigger di Event Hub](../../../../../translated_images/it/gps-telemetry-iot-hub-functions.24d3fa5592455e9f4e2fe73856b40c3915a292b90263c31d652acfd976cfedd8.png) +![Invio di telemetria GPS da un dispositivo IoT a IoT Hub, quindi a Azure Functions tramite un trigger di Event Hub](../../../../../translated_images/it/gps-telemetry-iot-hub-functions.24d3fa5592455e9f.webp) ### Attività - gestire eventi GPS con codice serverless @@ -193,7 +193,7 @@ Una volta che i dati fluiscono nel tuo IoT Hub, puoi scrivere del codice serverl ## Account di Archiviazione Azure -![Il logo di Azure Storage](../../../../../translated_images/it/azure-storage-logo.605c0f602c640d482a80f1b35a2629a32d595711b7ab1d7ceea843250615ff32.png) +![Il logo di Azure Storage](../../../../../translated_images/it/azure-storage-logo.605c0f602c640d48.webp) Gli Account di Archiviazione Azure sono un servizio di archiviazione generico che può memorizzare dati in diversi modi. Puoi archiviare dati come blob, in code, in tabelle o come file, e tutto contemporaneamente. diff --git a/translations/it/3-transport/lessons/3-visualize-location-data/README.md b/translations/it/3-transport/lessons/3-visualize-location-data/README.md index a8b3d28da..3c5f9c7ed 100644 --- a/translations/it/3-transport/lessons/3-visualize-location-data/README.md +++ b/translations/it/3-transport/lessons/3-visualize-location-data/README.md @@ -1,6 +1,6 @@ # Visualizzare i dati di localizzazione -![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-13.a259db1485021be7d7c72e90842fbe0ab977529e8684c179b5fb1ea75e92b3ef.jpg) +![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-13.a259db1485021be7.webp) > Illustrazione di [Nitya Narasimhan](https://github.com/nitya). Clicca sull'immagine per una versione più grande. @@ -64,11 +64,11 @@ Prendendo un esempio semplice: nel progetto agricolo hai catturato le letture di Per un essere umano, comprendere questi dati può essere difficile. È una parete di numeri senza significato. Come primo passo per visualizzare questi dati, possono essere tracciati su un grafico a linee: -![Un grafico a linee dei dati sopra](../../../../../translated_images/it/chart-soil-moisture.fd6d9d0cdc0b5f75e78038ecb8945dfc84b38851359de99d84b16e3336d6d7c2.png) +![Un grafico a linee dei dati sopra](../../../../../translated_images/it/chart-soil-moisture.fd6d9d0cdc0b5f75.webp) Questo può essere ulteriormente migliorato aggiungendo una linea per indicare quando il sistema di irrigazione automatizzato è stato attivato a una lettura di umidità del suolo di 450: -![Un grafico a linee dell'umidità del suolo con una linea a 450](../../../../../translated_images/it/chart-soil-moisture-relay.fbb391236d34a64d0abf1df396e9197e0a24df14150620b9cc820a64a55c9326.png) +![Un grafico a linee dell'umidità del suolo con una linea a 450](../../../../../translated_images/it/chart-soil-moisture-relay.fbb391236d34a64d.webp) Questo grafico mostra molto rapidamente non solo quali erano i livelli di umidità del suolo, ma anche i punti in cui il sistema di irrigazione è stato attivato. @@ -84,7 +84,7 @@ Quando si lavora con dati GPS, la visualizzazione più chiara può essere quella Lavorare con le mappe è un esercizio interessante, e ce ne sono molte tra cui scegliere, come Bing Maps, Leaflet, Open Street Maps e Google Maps. In questa lezione, imparerai a conoscere [Azure Maps](https://azure.microsoft.com/services/azure-maps/?WT.mc_id=academic-17441-jabenn) e come possono visualizzare i tuoi dati GPS. -![Il logo di Azure Maps](../../../../../translated_images/it/azure-maps-logo.35d01dcfbd81fe6140e94257aaa1538f785a58c91576d14e0ebe7a2f6c694b99.png) +![Il logo di Azure Maps](../../../../../translated_images/it/azure-maps-logo.35d01dcfbd81fe61.webp) Azure Maps è "una raccolta di servizi geospaziali e SDK che utilizzano dati di mappatura aggiornati per fornire contesto geografico alle applicazioni web e mobili." Ai sviluppatori vengono forniti strumenti per creare mappe belle e interattive che possono fare cose come fornire percorsi di traffico consigliati, informazioni sugli incidenti stradali, navigazione interna, capacità di ricerca, informazioni sull'elevazione, servizi meteorologici e altro. @@ -185,7 +185,7 @@ Ora puoi fare il passo successivo, ovvero visualizzare la tua mappa su una pagin Se apri la tua pagina `index.html` in un browser web, dovresti vedere una mappa caricata, focalizzata sull'area di Seattle. - ![Una mappa che mostra Seattle, una città nello stato di Washington, USA](../../../../../translated_images/it/map-image.8fb2c53eb23ef39c1c0a4410a5282e879b3b452b707eb066ff04c5488d3d72b7.png) + ![Una mappa che mostra Seattle, una città nello stato di Washington, USA](../../../../../translated_images/it/map-image.8fb2c53eb23ef39c.webp) ✅ Sperimenta con i parametri di zoom e centro per modificare la visualizzazione della tua mappa. Puoi aggiungere diverse coordinate corrispondenti alla latitudine e longitudine dei tuoi dati per ricentrare la mappa. @@ -319,7 +319,7 @@ Se effettui una chiamata al tuo storage per recuperare i dati, potresti essere s 1. Carica la pagina HTML nel tuo browser. Verrà caricata la mappa, quindi tutti i dati GPS dallo storage saranno caricati e tracciati sulla mappa. - ![Una mappa del Saint Edward State Park vicino a Seattle, con cerchi che mostrano un percorso attorno al bordo del parco](../../../../../translated_images/it/map-path.896832e72dc696ffe20650e4051027d4855442d955f93fdbb80bb417ca8a406f.png) + ![Una mappa del Saint Edward State Park vicino a Seattle, con cerchi che mostrano un percorso attorno al bordo del parco](../../../../../translated_images/it/map-path.896832e72dc696ff.webp) > 💁 Puoi trovare questo codice nella [cartella del codice](../../../../../3-transport/lessons/3-visualize-location-data/code). diff --git a/translations/it/3-transport/lessons/4-geofences/README.md b/translations/it/3-transport/lessons/4-geofences/README.md index bd8967f3f..2fd6f3041 100644 --- a/translations/it/3-transport/lessons/4-geofences/README.md +++ b/translations/it/3-transport/lessons/4-geofences/README.md @@ -1,6 +1,6 @@ # Georecinzioni -![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-14.63980c5150ae3c153e770fb71d044c1845dce79248d86bed9fc525adf3ede73c.jpg) +![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-14.63980c5150ae3c15.webp) > Illustrazione di [Nitya Narasimhan](https://github.com/nitya). Clicca sull'immagine per una versione più grande. @@ -35,7 +35,7 @@ In questa lezione tratteremo: Una georecinzione è un perimetro virtuale per una regione geografica reale. Le georecinzioni possono essere cerchi definiti come un punto e un raggio (ad esempio un cerchio di 100m intorno a un edificio) o poligoni che coprono un'area come una zona scolastica, i confini di una città o un campus universitario o aziendale. -![Alcuni esempi di georecinzioni che mostrano una georecinzione circolare intorno al negozio aziendale Microsoft e una georecinzione poligonale intorno al campus ovest di Microsoft](../../../../../translated_images/it/geofence-examples.172fbc534665769f6e1a1ddcf75e3b25183cd10354c80cc603ba44b635390e1a.png) +![Alcuni esempi di georecinzioni che mostrano una georecinzione circolare intorno al negozio aziendale Microsoft e una georecinzione poligonale intorno al campus ovest di Microsoft](../../../../../translated_images/it/geofence-examples.172fbc534665769f.webp) > 💁 Potresti aver già utilizzato le georecinzioni senza saperlo. Se hai impostato un promemoria utilizzando l'app Promemoria di iOS o Google Keep basato su una posizione, hai utilizzato una georecinzione. Queste app configurano una georecinzione basata sulla posizione fornita e ti avvisano quando il tuo telefono entra nella georecinzione. @@ -212,7 +212,7 @@ Nell'immagine sopra, la georecinzione ha un search buffer di 50m. Ad esempio, immagina letture GPS che mostrano un veicolo che percorre una strada che finisce per correre accanto a una georecinzione. Se un singolo valore GPS è impreciso e colloca il veicolo all'interno della georecinzione, nonostante non ci sia accesso veicolare, allora può essere ignorato. -![Un percorso GPS che mostra un veicolo che passa accanto al campus Microsoft sulla 520, con letture GPS lungo la strada tranne una sul campus, all'interno di una georecinzione](../../../../../translated_images/it/geofence-crossing-inaccurate-gps.6a3ed911202ad9cabb66d3964888cec03a42c61d5b8f536ad5bdc99716b370f5.png) +![Un percorso GPS che mostra un veicolo che passa accanto al campus Microsoft sulla 520, con letture GPS lungo la strada tranne una sul campus, all'interno di una georecinzione](../../../../../translated_images/it/geofence-crossing-inaccurate-gps.6a3ed911202ad9ca.webp) Nell'immagine sopra, c'è una geofence che copre una parte del campus di Microsoft. La linea rossa mostra un camion che percorre la 520, con cerchi che rappresentano le letture GPS. La maggior parte di queste letture sono accurate e si trovano lungo la 520, ma c'è una lettura imprecisa all'interno della geofence. Non è possibile che questa lettura sia corretta: non ci sono strade che permettano al camion di deviare improvvisamente dalla 520 verso il campus e poi tornare sulla 520. Il codice che verifica questa geofence dovrà considerare le letture precedenti prima di agire sui risultati del test della geofence. ✅ Quali dati aggiuntivi ti servirebbero per verificare se una lettura GPS può essere considerata corretta? @@ -284,7 +284,7 @@ Come ricorderai dalle lezioni precedenti, l'IoT Hub ti consente di riprodurre ev La risposta è che non può! Invece, puoi definire più connessioni separate per leggere gli eventi, e ciascuna può gestire la riproduzione dei messaggi non letti. Questi sono chiamati *gruppi di consumatori*. Quando ti connetti all'endpoint, puoi specificare a quale gruppo di consumatori vuoi connetterti. Ogni componente della tua applicazione si connetterà a un gruppo di consumatori diverso. -![Un IoT Hub con 3 gruppi di consumatori che distribuiscono gli stessi messaggi a 3 diverse app Functions](../../../../../translated_images/it/consumer-groups.a3262e26fc27ba2092863678ad57af15c7223416e388a23f330c058cf4358630.png) +![Un IoT Hub con 3 gruppi di consumatori che distribuiscono gli stessi messaggi a 3 diverse app Functions](../../../../../translated_images/it/consumer-groups.a3262e26fc27ba20.webp) In teoria, fino a 5 applicazioni possono connettersi a ciascun gruppo di consumatori, e tutte riceveranno i messaggi quando arrivano. È una buona pratica avere una sola applicazione che accede a ciascun gruppo di consumatori per evitare l'elaborazione duplicata dei messaggi e garantire che, al riavvio, tutti i messaggi in coda vengano elaborati correttamente. Ad esempio, se lanciassi la tua app Functions localmente e la stessi eseguendo anche nel cloud, entrambe elaborerebbero i messaggi, portando a blob duplicati archiviati nell'account di archiviazione. diff --git a/translations/it/4-manufacturing/lessons/1-train-fruit-detector/README.md b/translations/it/4-manufacturing/lessons/1-train-fruit-detector/README.md index d91513dec..1c1e795f8 100644 --- a/translations/it/4-manufacturing/lessons/1-train-fruit-detector/README.md +++ b/translations/it/4-manufacturing/lessons/1-train-fruit-detector/README.md @@ -1,6 +1,6 @@ # Addestrare un rilevatore di qualità della frutta -![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-15.843d21afdc6fb2bba70cd9db7b7d2f91598859fafda2078b0bdc44954194b6c0.jpg) +![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-15.843d21afdc6fb2bb.webp) > Illustrazione di [Nitya Narasimhan](https://github.com/nitya). Clicca sull'immagine per una versione più grande. @@ -38,7 +38,7 @@ Non tutte le colture maturano uniformemente. I pomodori, ad esempio, possono ave L'ascesa della raccolta automatizzata ha spostato la selezione dei prodotti dalla raccolta alla fabbrica. Il cibo viaggiava su lunghe cinture trasportatrici con squadre di persone che selezionavano i prodotti rimuovendo tutto ciò che non soddisfaceva gli standard di qualità richiesti. La raccolta era più economica grazie ai macchinari, ma c'era ancora un costo per la selezione manuale del cibo. -![Se viene rilevato un pomodoro rosso, continua il suo percorso senza interruzioni. Se viene rilevato un pomodoro verde, viene spinto in un cestino di scarto da una leva](../../../../../translated_images/it/optical-tomato-sorting.61aa134bdda4e5b1bfb16a212c1e35a6ef0c426cbb8b1c975f79d7bfbf48d068.png) +![Se viene rilevato un pomodoro rosso, continua il suo percorso senza interruzioni. Se viene rilevato un pomodoro verde, viene spinto in un cestino di scarto da una leva](../../../../../translated_images/it/optical-tomato-sorting.61aa134bdda4e5b1.webp) L'evoluzione successiva è stata l'uso di macchine per la selezione, integrate nella mietitrice o negli impianti di lavorazione. La prima generazione di queste macchine utilizzava sensori ottici per rilevare i colori, controllando attuatori per spingere i pomodori verdi in un cestino di scarto utilizzando leve o getti d'aria, lasciando che i pomodori rossi continuassero su una rete di nastri trasportatori. @@ -62,7 +62,7 @@ Ad esempio, potresti fornire a un modello milioni di immagini di banane acerbe c > 🎓 I risultati dei modelli di ML sono chiamati *predizioni* -![2 banane, una matura con una predizione del 99,7% matura, 0,3% acerba, e una acerba con una predizione dell'1,4% matura, 98,6% acerba](../../../../../translated_images/it/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50ece4e4589e724b142da0681f35470fe3db3f7d51240f69c85.png) +![2 banane, una matura con una predizione del 99,7% matura, 0,3% acerba, e una acerba con una predizione dell'1,4% matura, 98,6% acerba](../../../../../translated_images/it/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50e.webp) I modelli di ML non forniscono una risposta binaria, ma piuttosto probabilità. Ad esempio, un modello potrebbe ricevere un'immagine di una banana e predire `matura` al 99,7% e `acerba` allo 0,3%. Il tuo codice sceglierebbe quindi la predizione migliore e deciderebbe che la banana è matura. @@ -90,7 +90,7 @@ Esistono una vasta gamma di strumenti che possono aiutarti a fare questo, inclus Custom Vision è uno strumento basato sul cloud per l'addestramento di classificatori di immagini. Ti consente di addestrare un classificatore utilizzando solo un piccolo numero di immagini. Puoi caricare immagini tramite un portale web, un'API web o un SDK, assegnando a ogni immagine un *tag* che rappresenta la classificazione di quell'immagine. Successivamente, puoi addestrare il modello e testarlo per vedere quanto bene funziona. Una volta che sei soddisfatto del modello, puoi pubblicare versioni di esso che possono essere accessibili tramite un'API web o un SDK. -![Il logo di Azure Custom Vision](../../../../../translated_images/it/custom-vision-logo.d3d4e7c8a87ec9daf825e72e210576c3cbf60312577be7a139e22dd97ab7f1e6.png) +![Il logo di Azure Custom Vision](../../../../../translated_images/it/custom-vision-logo.d3d4e7c8a87ec9da.webp) > 💁 Puoi addestrare un modello Custom Vision con solo 5 immagini per classificazione, ma più immagini sono meglio. Puoi ottenere risultati migliori con almeno 30 immagini. @@ -146,7 +146,7 @@ Per utilizzare Custom Vision, devi prima creare due risorse di servizi cognitivi Quando crei il tuo progetto, assicurati di utilizzare la risorsa `fruit-quality-detector-training` che hai creato in precedenza. Usa un tipo di progetto *Classification*, un tipo di classificazione *Multiclass* e il dominio *Food*. - ![Le impostazioni per il progetto Custom Vision con il nome impostato su fruit-quality-detector, nessuna descrizione, la risorsa impostata su fruit-quality-detector-training, il tipo di progetto impostato su classification, il tipo di classificazione impostato su multi class e il dominio impostato su food](../../../../../translated_images/it/custom-vision-create-project.cf46325b92d8b131089f6647cf5e07b664cb77850e106d66e3c057b6b69756c6.png) + ![Le impostazioni per il progetto Custom Vision con il nome impostato su fruit-quality-detector, nessuna descrizione, la risorsa impostata su fruit-quality-detector-training, il tipo di progetto impostato su classification, il tipo di classificazione impostato su multi class e il dominio impostato su food](../../../../../translated_images/it/custom-vision-create-project.cf46325b92d8b131.webp) ✅ Prenditi del tempo per esplorare l'interfaccia utente di Custom Vision per il tuo classificatore di immagini. @@ -164,7 +164,7 @@ I classificatori di immagini funzionano a risoluzioni molto basse. Ad esempio, C * Utilizzando 2 banane mature, scatta alcune foto di ciascuna da diverse angolazioni, facendo almeno 7 foto (5 per l'addestramento, 2 per il test), ma idealmente di più. - ![Foto di 2 banane diverse](../../../../../translated_images/it/banana-training-images.530eb203346d73bc23b8b990fb4609470bf4ff7c942ccc13d4cfffeed9be1ad4.png) + ![Foto di 2 banane diverse](../../../../../translated_images/it/banana-training-images.530eb203346d73bc.webp) * Ripeti lo stesso processo utilizzando 2 banane acerbe. @@ -174,7 +174,7 @@ I classificatori di immagini funzionano a risoluzioni molto basse. Ad esempio, C 1. Segui la [sezione carica e etichetta immagini del quickstart per creare un classificatore nei documenti Microsoft](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) per caricare le tue immagini di addestramento. Etichetta i frutti maturi come `ripe` e quelli acerbi come `unripe`. - ![Le finestre di dialogo di caricamento che mostrano il caricamento di immagini di banane mature e acerbe](../../../../../translated_images/it/image-upload-bananas.0751639f3815e0ec42bdbc6254d1e4357a185834d1ae10c9948a0e7d6d336695.png) + ![Le finestre di dialogo di caricamento che mostrano il caricamento di immagini di banane mature e acerbe](../../../../../translated_images/it/image-upload-bananas.0751639f3815e0ec.webp) 1. Segui la [sezione addestra il classificatore del quickstart per creare un classificatore nei documenti Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#train-the-classifier) per addestrare il classificatore di immagini sulle immagini caricate. @@ -192,7 +192,7 @@ Una volta che il tuo classificatore è stato addestrato, puoi testarlo fornendog 1. Segui la [documentazione per testare il tuo modello nei documenti Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/test-your-model?WT.mc_id=academic-17441-jabenn#test-your-model) per testare il tuo classificatore di immagini. Usa le immagini di test che hai creato in precedenza, non quelle utilizzate per l'addestramento. - ![Una banana acerba prevista come acerba con una probabilità del 98,9%, matura con una probabilità dell'1,1%](../../../../../translated_images/it/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64886422438850ea14f0be6ac918c217ea3b255c685abfabe7.png) + ![Una banana acerba prevista come acerba con una probabilità del 98,9%, matura con una probabilità dell'1,1%](../../../../../translated_images/it/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64.webp) 1. Prova tutte le immagini di test a tua disposizione e osserva le probabilità. diff --git a/translations/it/4-manufacturing/lessons/2-check-fruit-from-device/README.md b/translations/it/4-manufacturing/lessons/2-check-fruit-from-device/README.md index 80cc25ca1..56ff8c402 100644 --- a/translations/it/4-manufacturing/lessons/2-check-fruit-from-device/README.md +++ b/translations/it/4-manufacturing/lessons/2-check-fruit-from-device/README.md @@ -1,6 +1,6 @@ # Controlla la qualità della frutta con un dispositivo IoT -![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-16.215daf18b00631fbdfd64c6fc2dc6044dff5d544288825d8076f9fb83d964c23.jpg) +![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-16.215daf18b00631fb.webp) > Sketchnote di [Nitya Narasimhan](https://github.com/nitya). Clicca sull'immagine per una versione più grande. @@ -26,7 +26,7 @@ In questa lezione tratteremo: I sensori delle fotocamere, come suggerisce il nome, sono fotocamere che puoi collegare al tuo dispositivo IoT. Possono scattare immagini statiche o catturare video in streaming. Alcuni restituiscono dati grezzi dell'immagine, altri comprimono i dati in un file immagine come JPEG o PNG. Di solito, le fotocamere che funzionano con dispositivi IoT sono molto più piccole e a bassa risoluzione rispetto a quelle a cui potresti essere abituato, ma puoi ottenere fotocamere ad alta risoluzione che competono con i migliori telefoni. Puoi trovare una vasta gamma di obiettivi intercambiabili, configurazioni con più fotocamere, fotocamere termiche a infrarossi o fotocamere UV. -![La luce di una scena passa attraverso un obiettivo e viene focalizzata su un sensore CMOS](../../../../../translated_images/it/cmos-sensor.75f9cd74decb137149a4c9ea825251a4549497d67c0ae2776159e6102bb53aa9.png) +![La luce di una scena passa attraverso un obiettivo e viene focalizzata su un sensore CMOS](../../../../../translated_images/it/cmos-sensor.75f9cd74decb1371.webp) La maggior parte dei sensori delle fotocamere utilizza sensori di immagine in cui ogni pixel è un fotodiodo. Un obiettivo focalizza l'immagine sul sensore di immagine, e migliaia o milioni di fotodiodi rilevano la luce che cade su ciascuno di essi, registrandola come dati pixel. @@ -74,7 +74,7 @@ Le iterazioni vengono pubblicate dal portale Custom Vision. 1. Seleziona il pulsante **Publish** per l'iterazione. - ![Il pulsante di pubblicazione](../../../../../translated_images/it/custom-vision-publish-button.b7174e1977b0c33b8b72d4e5b1326c779e0af196f3849d09985ee2d7d5493a39.png) + ![Il pulsante di pubblicazione](../../../../../translated_images/it/custom-vision-publish-button.b7174e1977b0c33b.webp) 1. Nella finestra di dialogo *Publish Model*, imposta la *Prediction resource* sulla risorsa `fruit-quality-detector-prediction` che hai creato nella lezione precedente. Lascia il nome come `Iteration2` e seleziona il pulsante **Publish**. @@ -88,7 +88,7 @@ Le iterazioni vengono pubblicate dal portale Custom Vision. Prendi anche una copia del valore *Prediction-Key*. Questa è una chiave sicura che devi passare quando chiami il modello. Solo le applicazioni che passano questa chiave sono autorizzate a utilizzare il modello, tutte le altre applicazioni vengono rifiutate. - ![La finestra di dialogo dell'API di previsione che mostra l'URL e la chiave](../../../../../translated_images/it/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![La finestra di dialogo dell'API di previsione che mostra l'URL e la chiave](../../../../../translated_images/it/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ Quando viene pubblicata una nuova iterazione, avrà un nome diverso. Come pensi che potresti cambiare l'iterazione che un dispositivo IoT sta utilizzando? @@ -109,7 +109,7 @@ Potresti scoprire che i risultati che ottieni utilizzando la fotocamera collegat Per ottenere i migliori risultati da un classificatore di immagini, è necessario addestrare il modello con immagini il più simili possibile a quelle utilizzate per le previsioni. Se, ad esempio, hai utilizzato la fotocamera del tuo telefono per catturare immagini per l'addestramento, la qualità dell'immagine, la nitidezza e il colore saranno diversi rispetto a una fotocamera collegata a un dispositivo IoT. -![2 immagini di banane, una a bassa risoluzione con scarsa illuminazione da un dispositivo IoT e una ad alta risoluzione con buona illuminazione da un telefono](../../../../../translated_images/it/banana-picture-compare.174df164dc326a42cf7fb051a7497e6113c620e91552d92ca914220305d47d9a.png) +![2 immagini di banane, una a bassa risoluzione con scarsa illuminazione da un dispositivo IoT e una ad alta risoluzione con buona illuminazione da un telefono](../../../../../translated_images/it/banana-picture-compare.174df164dc326a42.webp) Nell'immagine sopra, la foto della banana a sinistra è stata scattata utilizzando una fotocamera Raspberry Pi, quella a destra è stata scattata della stessa banana nello stesso luogo utilizzando un iPhone. C'è una differenza evidente nella qualità: la foto dell'iPhone è più nitida, con colori più brillanti e maggiore contrasto. diff --git a/translations/it/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md b/translations/it/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md index f2db0c823..82a8c403f 100644 --- a/translations/it/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md +++ b/translations/it/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md @@ -16,7 +16,7 @@ La fotocamera può essere collegata al Raspberry Pi utilizzando un cavo a nastro ### Attività - collegare la fotocamera -![Una fotocamera Raspberry Pi](../../../../../translated_images/it/pi-camera-module.4278753c31bd6e757aa2b858be97d72049f71616278cefe4fb5abb485b40a078.png) +![Una fotocamera Raspberry Pi](../../../../../translated_images/it/pi-camera-module.4278753c31bd6e75.webp) 1. Spegni il Raspberry Pi. @@ -24,17 +24,17 @@ La fotocamera può essere collegata al Raspberry Pi utilizzando un cavo a nastro Puoi trovare un'animazione che mostra come aprire la clip e inserire il cavo nella [documentazione introduttiva del modulo fotocamera Raspberry Pi](https://projects.raspberrypi.org/en/projects/getting-started-with-picamera/2). - ![Il cavo a nastro inserito nel modulo fotocamera](../../../../../translated_images/it/pi-camera-ribbon-cable.0bf82acd251611c21ac616f082849413e2b322a261d0e4f8fec344248083b07e.png) + ![Il cavo a nastro inserito nel modulo fotocamera](../../../../../translated_images/it/pi-camera-ribbon-cable.0bf82acd251611c2.webp) 1. Rimuovi il Grove Base Hat dal Raspberry Pi. 1. Fai passare il cavo a nastro attraverso lo slot per la fotocamera nel Grove Base Hat. Assicurati che il lato blu del cavo sia rivolto verso le porte analogiche etichettate **A0**, **A1**, ecc. - ![Il cavo a nastro che passa attraverso il Grove Base Hat](../../../../../translated_images/it/grove-base-hat-ribbon-cable.501fed202fcf73b11b2b68f6d246189f7d15d3e4423c572ddee79d77b4632b47.png) + ![Il cavo a nastro che passa attraverso il Grove Base Hat](../../../../../translated_images/it/grove-base-hat-ribbon-cable.501fed202fcf73b1.webp) 1. Inserisci il cavo a nastro nella porta della fotocamera sul Raspberry Pi. Ancora una volta, solleva la clip di plastica nera, inserisci il cavo, quindi spingi la clip per fissarlo. Il lato blu del cavo dovrebbe essere rivolto verso le porte USB ed Ethernet. - ![Il cavo a nastro collegato alla presa della fotocamera sul Raspberry Pi](../../../../../translated_images/it/pi-camera-socket-ribbon-cable.a18309920b11800911082ed7aa6fb28e6d9be3a022e4079ff990016cae3fca10.png) + ![Il cavo a nastro collegato alla presa della fotocamera sul Raspberry Pi](../../../../../translated_images/it/pi-camera-socket-ribbon-cable.a18309920b118009.webp) 1. Rimonta il Grove Base Hat. @@ -101,7 +101,7 @@ Programma il dispositivo. La riga `camera.rotation = 0` imposta la rotazione dell'immagine. Il cavo a nastro entra nella parte inferiore della fotocamera, ma se la fotocamera è stata ruotata per puntare meglio verso l'oggetto da classificare, puoi modificare questa riga con il numero di gradi di rotazione. - ![La fotocamera sospesa sopra una lattina](../../../../../translated_images/it/pi-camera-upside-down.5376961ba31459883362124152ad6b823d5ac5fc14e85f317e22903bd681c2b6.png) + ![La fotocamera sospesa sopra una lattina](../../../../../translated_images/it/pi-camera-upside-down.5376961ba3145988.webp) Ad esempio, se sospendi il cavo a nastro sopra qualcosa in modo che si trovi nella parte superiore della fotocamera, imposta la rotazione a 180: diff --git a/translations/it/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md b/translations/it/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md index 5f56e97a9..79043ea7c 100644 --- a/translations/it/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md +++ b/translations/it/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md @@ -84,7 +84,7 @@ Il servizio Custom Vision dispone di un SDK Python che puoi utilizzare per class Sarai in grado di vedere l'immagine scattata e questi valori nella scheda **Predictions** in Custom Vision. - ![Una banana in Custom Vision predetta come matura al 56,8% e acerba al 43,1%](../../../../../translated_images/it/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![Una banana in Custom Vision predetta come matura al 56,8% e acerba al 43,1%](../../../../../translated_images/it/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 Puoi trovare questo codice nella cartella [code-classify/pi](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/pi) o [code-classify/virtual-iot-device](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/virtual-iot-device). diff --git a/translations/it/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md b/translations/it/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md index b1d4a7a60..8ed987226 100644 --- a/translations/it/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md +++ b/translations/it/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md @@ -34,11 +34,11 @@ Aggiungi la fotocamera all'app CounterFit. 1. Seleziona il pulsante **Add** per creare la fotocamera. - ![Le impostazioni della fotocamera](../../../../../translated_images/it/counterfit-create-camera.a5de97f59c0bd3cbe0416d7e89a3cfe86d19fbae05c641c53a91286412af0a34.png) + ![Le impostazioni della fotocamera](../../../../../translated_images/it/counterfit-create-camera.a5de97f59c0bd3cb.webp) La fotocamera verrà creata e apparirà nell'elenco dei sensori. - ![La fotocamera creata](../../../../../translated_images/it/counterfit-camera.001ec52194c8ee5d3f617173da2c79e1df903d10882adc625cbfc493525125d4.png) + ![La fotocamera creata](../../../../../translated_images/it/counterfit-camera.001ec52194c8ee5d.webp) ## Programmare la fotocamera @@ -103,7 +103,7 @@ Programma il dispositivo. 1. Configura l'immagine che la fotocamera in CounterFit catturerà. Puoi impostare il *Source* su *File*, quindi caricare un file immagine, oppure impostare il *Source* su *WebCam*, e le immagini verranno catturate dalla tua webcam. Assicurati di selezionare il pulsante **Set** dopo aver selezionato un'immagine o la tua webcam. - ![CounterFit con un file impostato come sorgente immagine e una webcam che mostra una persona che tiene una banana in un'anteprima della webcam](../../../../../translated_images/it/counterfit-camera-options.eb3bd5150a8e7dffbf24bc5bcaba0cf2cdef95fbe6bbe393695d173817d6b8df.png) + ![CounterFit con un file impostato come sorgente immagine e una webcam che mostra una persona che tiene una banana in un'anteprima della webcam](../../../../../translated_images/it/counterfit-camera-options.eb3bd5150a8e7dff.webp) 1. Un'immagine verrà catturata e salvata come `image.jpg` nella cartella corrente. Vedrai questo file nell'esploratore di VS Code. Seleziona il file per visualizzare l'immagine. Se necessita di rotazione, aggiorna la riga `camera.rotation = 0` come necessario e scatta un'altra foto. diff --git a/translations/it/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md b/translations/it/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md index 5ef5e4fbc..2d8f4d179 100644 --- a/translations/it/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md +++ b/translations/it/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md @@ -16,7 +16,7 @@ L'ArduCam non ha un connettore Grove, ma si collega ai bus SPI e I2C tramite i p Collega la fotocamera. -![Un sensore ArduCam](../../../../../translated_images/it/arducam.20e4e4cbb268296570b5914e20d6c349fc42ddac9ed4e1b9deba2188204eebae.png) +![Un sensore ArduCam](../../../../../translated_images/it/arducam.20e4e4cbb2682965.webp) 1. I pin alla base dell'ArduCam devono essere collegati ai pin GPIO del Wio Terminal. Per facilitare l'individuazione dei pin corretti, applica l'adesivo dei pin GPIO fornito con il Wio Terminal attorno ai pin: @@ -35,7 +35,7 @@ Collega la fotocamera. | SDA | 3 (I2C1_SDA) | Dati seriali I2C | | SCL | 5 (I2C1_SCL) | Clock seriale I2C | - ![Il Wio Terminal collegato all'ArduCam con cavi jumper](../../../../../translated_images/it/arducam-wio-terminal-connections.a4d5a4049bdb5ab800a2877389fc6ecf5e4ff307e6451ff56c517e6786467d0a.png) + ![Il Wio Terminal collegato all'ArduCam con cavi jumper](../../../../../translated_images/it/arducam-wio-terminal-connections.a4d5a4049bdb5ab8.webp) I collegamenti GND e VCC forniscono un'alimentazione di 5V all'ArduCam. Funziona a 5V, a differenza dei sensori Grove che funzionano a 3V. Questa alimentazione proviene direttamente dalla connessione USB-C che alimenta il dispositivo. @@ -456,7 +456,7 @@ Il Wio Terminal supporta solo schede microSD fino a 16GB di capacità. Se hai un 1. Spegni il Wio Terminal e rimuovi la scheda microSD spingendola leggermente e rilasciandola, in modo che esca. Potresti dover utilizzare uno strumento sottile per farlo. Inserisci la scheda microSD nel tuo computer per visualizzare le immagini. - ![Una foto di una banana catturata con l'ArduCam](../../../../../translated_images/it/banana-arducam.be1b32d4267a8194b0fd042362e56faa431da9cd4af172051b37243ea9be0256.jpg) + ![Una foto di una banana catturata con l'ArduCam](../../../../../translated_images/it/banana-arducam.be1b32d4267a8194.webp) 💁 Potrebbe essere necessario qualche scatto affinché il bilanciamento del bianco della fotocamera si regoli automaticamente. Noterai questo in base al colore delle immagini catturate, le prime potrebbero sembrare con colori alterati. Puoi sempre aggirare questo problema modificando il codice per catturare alcune immagini che vengono ignorate nella funzione `setup`. diff --git a/translations/it/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md b/translations/it/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md index 2f45549a7..453c85f1f 100644 --- a/translations/it/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md +++ b/translations/it/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md @@ -208,7 +208,7 @@ Questi certificati contengono chiavi pubbliche e non devono essere mantenuti seg Sarai in grado di vedere l'immagine catturata e questi valori nella scheda **Predictions** in Custom Vision. - ![Una banana in Custom Vision prevista matura al 56.8% e acerba al 43.1%](../../../../../translated_images/it/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![Una banana in Custom Vision prevista matura al 56.8% e acerba al 43.1%](../../../../../translated_images/it/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 Puoi trovare questo codice nella cartella [code-classify/wio-terminal](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/wio-terminal). diff --git a/translations/it/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md b/translations/it/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md index 8c49161c9..d0e2cd2f7 100644 --- a/translations/it/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md +++ b/translations/it/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md @@ -1,6 +1,6 @@ # Esegui il tuo rilevatore di frutta ai margini -![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-17.bc333c3c35ba8e42cce666cfffa82b915f787f455bd94e006aea2b6f2722421a.jpg) +![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-17.bc333c3c35ba8e42.webp) > Illustrazione di [Nitya Narasimhan](https://github.com/nitya). Clicca sull'immagine per una versione più grande. @@ -33,11 +33,11 @@ In questa lezione tratteremo: Il calcolo ai margini implica l'utilizzo di computer che elaborano i dati IoT il più vicino possibile al luogo in cui vengono generati. Invece di eseguire questa elaborazione nel cloud, viene spostata ai margini del cloud - sulla tua rete interna. -![Un diagramma architetturale che mostra i servizi internet nel cloud e i dispositivi IoT su una rete locale](../../../../../translated_images/it/cloud-without-edge.b4da641f6022c95ed6b91fde8b5323abd2f94e0d52073ad54172ae8f5dac90e9.png) +![Un diagramma architetturale che mostra i servizi internet nel cloud e i dispositivi IoT su una rete locale](../../../../../translated_images/it/cloud-without-edge.b4da641f6022c95e.webp) Nelle lezioni precedenti, i dispositivi raccoglievano dati e li inviavano al cloud per essere analizzati, eseguendo funzioni serverless o modelli AI nel cloud. -![Un diagramma architetturale che mostra dispositivi IoT su una rete locale che si collegano a dispositivi ai margini, e questi dispositivi ai margini si collegano al cloud](../../../../../translated_images/it/cloud-with-edge.1e26462c62c126fe150bd15a5714ddf0be599f09bacbad08b85be02b76ea1ae1.png) +![Un diagramma architetturale che mostra dispositivi IoT su una rete locale che si collegano a dispositivi ai margini, e questi dispositivi ai margini si collegano al cloud](../../../../../translated_images/it/cloud-with-edge.1e26462c62c126fe.webp) Il calcolo ai margini sposta alcuni dei servizi cloud fuori dal cloud e li esegue su computer che operano sulla stessa rete dei dispositivi IoT, comunicando con il cloud solo se necessario. Ad esempio, puoi eseguire modelli AI su dispositivi ai margini per analizzare la maturazione della frutta e inviare al cloud solo analisi, come il numero di frutti maturi rispetto a quelli acerbi. @@ -85,7 +85,7 @@ Per i sistemi IoT, spesso vorrai una combinazione di calcolo nel cloud e ai marg ## Azure IoT Edge -![Il logo di Azure IoT Edge](../../../../../translated_images/it/azure-iot-edge-logo.c1c076749b5cba2e8755262fadc2f19ca1146b948d76990b1229199ac2292d79.png) +![Il logo di Azure IoT Edge](../../../../../translated_images/it/azure-iot-edge-logo.c1c076749b5cba2e.webp) Azure IoT Edge è un servizio che ti aiuta a spostare i carichi di lavoro fuori dal cloud e ai margini. Configuri un dispositivo come dispositivo ai margini e dal cloud puoi distribuire codice a quel dispositivo. Questo ti consente di combinare le capacità del cloud e dei margini. @@ -99,7 +99,7 @@ IoT Edge è integrato in IoT Hub, quindi puoi gestire i dispositivi ai margini u IoT Edge esegue codice da *contenitori* - applicazioni autonome che vengono eseguite in isolamento rispetto al resto delle applicazioni sul tuo computer. Quando esegui un contenitore, si comporta come un computer separato che opera all'interno del tuo computer, con il proprio software, servizi e applicazioni in esecuzione. La maggior parte delle volte i contenitori non possono accedere a nulla sul tuo computer a meno che tu non scelga di condividere, ad esempio, una cartella con il contenitore. Il contenitore espone quindi i servizi tramite una porta aperta a cui puoi connetterti o esporre alla tua rete. -![Una richiesta web reindirizzata a un contenitore](../../../../../translated_images/it/container-web-browser.4ee81dd4f0d8838ce622b2a0d600b6a4322b5d4fe43159facd87b7b34f84d66a.png) +![Una richiesta web reindirizzata a un contenitore](../../../../../translated_images/it/container-web-browser.4ee81dd4f0d8838c.webp) Ad esempio, puoi avere un contenitore con un sito web in esecuzione sulla porta 80, la porta HTTP predefinita, e puoi quindi esporlo dal tuo computer sempre sulla porta 80. @@ -195,11 +195,11 @@ Una volta che il modello è stato allenato, deve essere esportato come contenito ## Prepara il tuo contenitore per il deployment -![I contenitori vengono creati, poi inviati a un registro di contenitori, e successivamente distribuiti dal registro di contenitori a un dispositivo edge utilizzando IoT Edge](../../../../../translated_images/it/container-edge-flow.c246050dd60ceefdb6ace026a4ce5c6aa4112bb5898ae23fbb2ab4be29ae3e1b.png) +![I contenitori vengono creati, poi inviati a un registro di contenitori, e successivamente distribuiti dal registro di contenitori a un dispositivo edge utilizzando IoT Edge](../../../../../translated_images/it/container-edge-flow.c246050dd60ceefd.webp) Una volta scaricato il tuo modello, deve essere costruito in un contenitore e poi inviato a un registro di contenitori - una posizione online dove puoi archiviare i contenitori. IoT Edge può quindi scaricare il contenitore dal registro e inviarlo al tuo dispositivo. -![Logo di Azure Container Registry](../../../../../translated_images/it/azure-container-registry-logo.09494206991d4b295025ebff7d4e2900325e527a59184ffbc8464b6ab59654be.png) +![Logo di Azure Container Registry](../../../../../translated_images/it/azure-container-registry-logo.09494206991d4b29.webp) Il registro di contenitori che utilizzerai per questa lezione è Azure Container Registry. Questo non è un servizio gratuito, quindi per risparmiare denaro assicurati di [pulire il tuo progetto](../../../clean-up.md) una volta terminato. diff --git a/translations/it/4-manufacturing/lessons/4-trigger-fruit-detector/README.md b/translations/it/4-manufacturing/lessons/4-trigger-fruit-detector/README.md index 61139247a..fa5176d11 100644 --- a/translations/it/4-manufacturing/lessons/4-trigger-fruit-detector/README.md +++ b/translations/it/4-manufacturing/lessons/4-trigger-fruit-detector/README.md @@ -1,6 +1,6 @@ # Attivare il rilevamento della qualità della frutta da un sensore -![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-18.92c32ed1d354caa5a54baa4032cf0b172d4655e8e326ad5d46c558a0def15365.jpg) +![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-18.92c32ed1d354caa5.webp) > Illustrazione di [Nitya Narasimhan](https://github.com/nitya). Clicca sull'immagine per una versione più grande. @@ -39,7 +39,7 @@ Le applicazioni IoT possono essere descritte come *cose* (dispositivi) che invia ### Architettura IoT di riferimento -![Un'architettura IoT di riferimento](../../../../../translated_images/it/iot-reference-architecture.2278b98b55c6d4e89bde18eada3688d893861d43507641804dd2f9d3079cfaa0.png) +![Un'architettura IoT di riferimento](../../../../../translated_images/it/iot-reference-architecture.2278b98b55c6d4e8.webp) Il diagramma sopra mostra un'architettura IoT di riferimento. @@ -49,7 +49,7 @@ Il diagramma sopra mostra un'architettura IoT di riferimento. * **Intuizioni** derivano da applicazioni serverless o da analisi eseguite su dati archiviati. * **Azioni** possono essere comandi inviati ai dispositivi o visualizzazioni di dati che permettono agli esseri umani di prendere decisioni. -![Un'architettura IoT di riferimento](../../../../../translated_images/it/iot-reference-architecture-azure.0b8d2161af924cb18ae48a8558a19541cca47f27264851b5b7e56d7b8bb372ac.png) +![Un'architettura IoT di riferimento](../../../../../translated_images/it/iot-reference-architecture-azure.0b8d2161af924cb1.webp) Il diagramma sopra mostra alcuni dei componenti e servizi trattati finora in queste lezioni e come si collegano insieme in un'architettura IoT di riferimento. @@ -89,7 +89,7 @@ Devi costruire un sistema in cui la frutta viene rilevata quando arriva sul nast ### Prototipare la tua applicazione -![Un'architettura IoT di riferimento per il controllo della qualità della frutta](../../../../../translated_images/it/iot-reference-architecture-fruit-quality.cc705f121c3b6fa71c800d9630935ac34bc08223a04601e35f41d5e9b5dd5207.png) +![Un'architettura IoT di riferimento per il controllo della qualità della frutta](../../../../../translated_images/it/iot-reference-architecture-fruit-quality.cc705f121c3b6fa7.webp) Il diagramma sopra mostra un'architettura di riferimento per questa applicazione prototipo. @@ -124,7 +124,7 @@ Segui la guida pertinente per utilizzare un sensore di prossimità per rilevare Il prototipo del rilevatore di frutta ha più componenti che comunicano tra loro. -![I componenti che comunicano tra loro](../../../../../translated_images/it/fruit-quality-detector-message-flow.adf2a65da8fd8741ac7af11361574de89adc126785d67606bb4d2ec00467e380.png) +![I componenti che comunicano tra loro](../../../../../translated_images/it/fruit-quality-detector-message-flow.adf2a65da8fd8741.webp) * Un sensore di prossimità che misura la distanza da un pezzo di frutta e invia questi dati a IoT Hub * Il comando per controllare la fotocamera proveniente da IoT Hub al dispositivo con la fotocamera diff --git a/translations/it/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md b/translations/it/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md index 57fae64c7..88bf870cd 100644 --- a/translations/it/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md +++ b/translations/it/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md @@ -20,7 +20,7 @@ Il sensore Grove Time of Flight può essere collegato al Raspberry Pi. Collega il sensore Time of Flight. -![Un sensore Grove Time of Flight](../../../../../translated_images/it/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![Un sensore Grove Time of Flight](../../../../../translated_images/it/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. Inserisci un'estremità di un cavo Grove nel connettore del sensore Time of Flight. Può essere inserito solo in un modo. diff --git a/translations/it/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md b/translations/it/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md index 1c276559f..173561ddf 100644 --- a/translations/it/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md +++ b/translations/it/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md @@ -36,11 +36,11 @@ Aggiungi il sensore di distanza all'app CounterFit. 1. Seleziona il pulsante **Add** per creare il sensore di distanza. - ![Le impostazioni del sensore di distanza](../../../../../translated_images/it/counterfit-create-distance-sensor.967c9fb98f27888d95920c9784d004c972490eb71f70397fe13bd70a79a879a3.png) + ![Le impostazioni del sensore di distanza](../../../../../translated_images/it/counterfit-create-distance-sensor.967c9fb98f27888d.webp) Il sensore di distanza verrà creato e apparirà nella lista dei sensori. - ![Il sensore di distanza creato](../../../../../translated_images/it/counterfit-distance-sensor.079eefeeea0b68afc36431ce8fcbe2f09a7e4916ed1cd5cb30e696db53bc18fa.png) + ![Il sensore di distanza creato](../../../../../translated_images/it/counterfit-distance-sensor.079eefeeea0b68af.webp) ## Programma il sensore di distanza diff --git a/translations/it/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md b/translations/it/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md index baa14d5b8..9ea49d984 100644 --- a/translations/it/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md +++ b/translations/it/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md @@ -20,7 +20,7 @@ Il sensore Grove Time of Flight può essere collegato al Wio Terminal. Collega il sensore Time of Flight. -![Un sensore Grove Time of Flight](../../../../../translated_images/it/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![Un sensore Grove Time of Flight](../../../../../translated_images/it/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. Inserisci un'estremità di un cavo Grove nella presa del sensore Time of Flight. Il cavo può essere inserito solo in un verso. diff --git a/translations/it/5-retail/lessons/1-train-stock-detector/README.md b/translations/it/5-retail/lessons/1-train-stock-detector/README.md index 01421caf3..2c3912cab 100644 --- a/translations/it/5-retail/lessons/1-train-stock-detector/README.md +++ b/translations/it/5-retail/lessons/1-train-stock-detector/README.md @@ -1,6 +1,6 @@ # Addestrare un rilevatore di scorte -![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-19.cf6973cecadf080c4b526310620dc4d6f5994c80fb0139c6f378cc9ca2d435cd.jpg) +![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-19.cf6973cecadf080c.webp) > Illustrazione di [Nitya Narasimhan](https://github.com/nitya). Clicca sull'immagine per una versione più grande. @@ -36,7 +36,7 @@ Il rilevamento di oggetti consiste nel rilevare oggetti nelle immagini utilizzan La classificazione di immagini riguarda la classificazione di un'immagine nel suo complesso - quali sono le probabilità che l'intera immagine corrisponda a ciascun tag. Ottieni indietro le probabilità per ogni tag utilizzato per addestrare il modello. -![Classificazione di immagini di anacardi e concentrato di pomodoro](../../../../../translated_images/it/image-classifier-cashews-tomato.bc2e16ab8f05cf9ac0f59f73e32efc4227f9a5b601b90b2c60f436694547a965.png) +![Classificazione di immagini di anacardi e concentrato di pomodoro](../../../../../translated_images/it/image-classifier-cashews-tomato.bc2e16ab8f05cf9a.webp) Nell'esempio sopra, due immagini sono classificate utilizzando un modello addestrato per classificare contenitori di anacardi o lattine di concentrato di pomodoro. La prima immagine è un contenitore di anacardi e ha due risultati dal classificatore di immagini: @@ -60,7 +60,7 @@ Quando lo utilizzi per prevedere immagini, invece di ottenere un elenco di tag e > 🎓 *Riquadri di delimitazione* sono i riquadri intorno a un oggetto. -![Rilevamento di oggetti di anacardi e concentrato di pomodoro](../../../../../translated_images/it/object-detector-cashews-tomato.1af7c26686b4db0e709754aeb196f4e73271f54e2085db3bcccb70d4a0d84d97.png) +![Rilevamento di oggetti di anacardi e concentrato di pomodoro](../../../../../translated_images/it/object-detector-cashews-tomato.1af7c26686b4db0e.webp) L'immagine sopra contiene sia un contenitore di anacardi che tre lattine di concentrato di pomodoro. Il rilevatore di oggetti ha rilevato gli anacardi, restituendo il riquadro di delimitazione che contiene gli anacardi con la percentuale di probabilità che il riquadro di delimitazione contenga l'oggetto, in questo caso 97.6%. Il rilevatore di oggetti ha anche rilevato tre lattine di concentrato di pomodoro e fornisce tre riquadri di delimitazione separati, uno per ogni lattina rilevata, e ciascuno ha una probabilità percentuale che il riquadro di delimitazione contenga una lattina di concentrato di pomodoro. @@ -111,7 +111,7 @@ Puoi addestrare un rilevatore di oggetti utilizzando Custom Vision, in modo simi Quando crei il tuo progetto, assicurati di utilizzare la risorsa `stock-detector-training` che hai creato in precedenza. Usa il tipo di progetto *Object Detection* e il dominio *Products on Shelves*. - ![Le impostazioni per il progetto Custom Vision con il nome impostato su fruit-quality-detector, nessuna descrizione, la risorsa impostata su fruit-quality-detector-training, il tipo di progetto impostato su classificazione, i tipi di classificazione impostati su multi class e i domini impostati su food](../../../../../translated_images/it/custom-vision-create-object-detector-project.32d4fb9aa8e7e7375f8a799bfce517aca970f2cb65e42d4245c5e635c734ab29.png) + ![Le impostazioni per il progetto Custom Vision con il nome impostato su fruit-quality-detector, nessuna descrizione, la risorsa impostata su fruit-quality-detector-training, il tipo di progetto impostato su classificazione, i tipi di classificazione impostati su multi class e i domini impostati su food](../../../../../translated_images/it/custom-vision-create-object-detector-project.32d4fb9aa8e7e737.webp) ✅ Il dominio "Products on Shelves" è specificamente mirato al rilevamento di scorte sugli scaffali dei negozi. Leggi di più sui diversi domini nella [documentazione Seleziona un dominio su Microsoft Docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/select-domain?WT.mc_id=academic-17441-jabenn#object-detection) @@ -133,11 +133,11 @@ Per addestrare il tuo modello avrai bisogno di un set di immagini contenenti gli 1. Segui la [sezione Carica e tagga immagini del quickstart per costruire un rilevatore di oggetti sulla documentazione Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/get-started-build-detector?WT.mc_id=academic-17441-jabenn#upload-and-tag-images) per caricare le tue immagini di addestramento. Crea tag pertinenti a seconda dei tipi di oggetti che vuoi rilevare. - ![I dialoghi di caricamento che mostrano il caricamento di immagini di banane mature e acerbe](../../../../../translated_images/it/image-upload-object-detector.77c7892c3093cb59b79018edecd678749a75d71a099bc8a2d2f2f76320f88a5b.png) + ![I dialoghi di caricamento che mostrano il caricamento di immagini di banane mature e acerbe](../../../../../translated_images/it/image-upload-object-detector.77c7892c3093cb59.webp) Quando disegni i riquadri di delimitazione per gli oggetti, tienili ben stretti intorno all'oggetto. Può richiedere del tempo per delineare tutte le immagini, ma lo strumento rileverà ciò che pensa siano i riquadri di delimitazione, rendendo il processo più veloce. - ![Taggando del concentrato di pomodoro](../../../../../translated_images/it/object-detector-tag-tomato-paste.f47c362fb0f0eb582f3bc68cf3855fb43a805106395358d41896a269c210b7b4.png) + ![Taggando del concentrato di pomodoro](../../../../../translated_images/it/object-detector-tag-tomato-paste.f47c362fb0f0eb58.webp) > 💁 Se hai più di 15 immagini per ciascun oggetto, puoi addestrare dopo 15 e utilizzare la funzione **Tag suggeriti**. Questo utilizzerà il modello addestrato per rilevare gli oggetti nell'immagine non taggata. Puoi quindi confermare gli oggetti rilevati o rifiutare e ridisegnare i riquadri di delimitazione. Questo può risparmiare *molto* tempo. @@ -155,7 +155,7 @@ Una volta che il tuo rilevatore di oggetti è stato addestrato, puoi testarlo fo 1. Usa il pulsante **Quick Test** per caricare immagini di test e verificare che gli oggetti siano rilevati. Usa le immagini di test che hai creato in precedenza, non quelle utilizzate per l'addestramento. - ![3 lattine di concentrato di pomodoro rilevate con probabilità del 38%, 35.5% e 34.6%](../../../../../translated_images/it/object-detector-detected-tomato-paste.52656fe87af4c37b4ee540526d63e73ed075da2e54a9a060aa528e0c562fb1b6.png) + ![3 lattine di concentrato di pomodoro rilevate con probabilità del 38%, 35.5% e 34.6%](../../../../../translated_images/it/object-detector-detected-tomato-paste.52656fe87af4c37b.webp) 1. Prova tutte le immagini di test a tua disposizione e osserva le probabilità. diff --git a/translations/it/5-retail/lessons/2-check-stock-device/README.md b/translations/it/5-retail/lessons/2-check-stock-device/README.md index d00645a7c..782e4d209 100644 --- a/translations/it/5-retail/lessons/2-check-stock-device/README.md +++ b/translations/it/5-retail/lessons/2-check-stock-device/README.md @@ -1,6 +1,6 @@ # Controllare le scorte da un dispositivo IoT -![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-20.0211df9551a8abb300fc8fcf7dc2789468dea2eabe9202273ac077b0ba37f15e.jpg) +![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-20.0211df9551a8abb3.webp) > Illustrazione di [Nitya Narasimhan](https://github.com/nitya). Clicca sull'immagine per una versione più grande. @@ -62,7 +62,7 @@ Le iterazioni vengono pubblicate dal portale Custom Vision. 1. Seleziona il pulsante **Publish** per l'iterazione. - ![Il pulsante di pubblicazione](../../../../../translated_images/it/custom-vision-object-detector-publish-button.34ee379fc650ccb9856c3868d0003f413b9529f102fc73c37168c98d721cc293.png) + ![Il pulsante di pubblicazione](../../../../../translated_images/it/custom-vision-object-detector-publish-button.34ee379fc650ccb9.webp) 1. Nella finestra di dialogo *Publish Model*, imposta la risorsa *Prediction resource* sulla risorsa `stock-detector-prediction` che hai creato nella lezione precedente. Lascia il nome come `Iteration2` e seleziona il pulsante **Publish**. @@ -76,7 +76,7 @@ Le iterazioni vengono pubblicate dal portale Custom Vision. Prendi anche una copia del valore *Prediction-Key*. Questa è una chiave sicura che devi passare quando chiami il modello. Solo le applicazioni che passano questa chiave sono autorizzate a utilizzare il modello, tutte le altre applicazioni vengono rifiutate. - ![La finestra di dialogo dell'API di predizione che mostra l'URL e la chiave](../../../../../translated_images/it/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![La finestra di dialogo dell'API di predizione che mostra l'URL e la chiave](../../../../../translated_images/it/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ Quando viene pubblicata una nuova iterazione, avrà un nome diverso. Come pensi che potresti cambiare l'iterazione che un dispositivo IoT sta utilizzando? @@ -95,7 +95,7 @@ Quando utilizzi il rilevatore di oggetti, non solo ottieni gli oggetti rilevati I risultati di una predizione nella scheda **Predictions** in Custom Vision hanno i riquadri di delimitazione disegnati sull'immagine inviata per la predizione. -![4 lattine di concentrato di pomodoro su uno scaffale con predizioni per i 4 rilevamenti di 35.8%, 33.5%, 25.7% e 16.6%](../../../../../translated_images/it/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) +![4 lattine di concentrato di pomodoro su uno scaffale con predizioni per i 4 rilevamenti di 35.8%, 33.5%, 25.7% e 16.6%](../../../../../translated_images/it/custom-vision-stock-prediction.942266ab1bcca341.webp) Nell'immagine sopra, sono state rilevate 4 lattine di concentrato di pomodoro. Nei risultati, un quadrato rosso è sovrapposto per ogni oggetto rilevato nell'immagine, indicando il riquadro di delimitazione per l'immagine. @@ -103,7 +103,7 @@ Nell'immagine sopra, sono state rilevate 4 lattine di concentrato di pomodoro. N I riquadri di delimitazione sono definiti con 4 valori - top, left, height e width. Questi valori sono su una scala da 0 a 1, rappresentando le posizioni come percentuale della dimensione dell'immagine. L'origine (la posizione 0,0) è l'angolo in alto a sinistra dell'immagine, quindi il valore top è la distanza dall'alto, e il fondo del riquadro di delimitazione è il top più l'altezza. -![Un riquadro di delimitazione attorno a una lattina di concentrato di pomodoro](../../../../../translated_images/it/bounding-box.1420a7ea0d3d15f71e1ffb5cf4b2271d184fac051f990abc541975168d163684.png) +![Un riquadro di delimitazione attorno a una lattina di concentrato di pomodoro](../../../../../translated_images/it/bounding-box.1420a7ea0d3d15f7.webp) L'immagine sopra è larga 600 pixel e alta 800 pixel. Il riquadro di delimitazione inizia a 320 pixel dall'alto, dando una coordinata top di 0.4 (800 x 0.4 = 320). Da sinistra, il riquadro di delimitazione inizia a 240 pixel, dando una coordinata left di 0.4 (600 x 0.4 = 240). L'altezza del riquadro di delimitazione è di 240 pixel, dando un valore height di 0.3 (800 x 0.3 = 240). La larghezza del riquadro di delimitazione è di 120 pixel, dando un valore width di 0.2 (600 x 0.2 = 120). @@ -118,7 +118,7 @@ Utilizzare valori percentuali da 0 a 1 significa che, indipendentemente dalla di Puoi utilizzare i riquadri di delimitazione combinati con le probabilità per valutare quanto sia accurato un rilevamento. Ad esempio, un rilevatore di oggetti può rilevare più oggetti che si sovrappongono, ad esempio rilevando una lattina dentro un'altra. Il tuo codice potrebbe esaminare i riquadri di delimitazione, capire che ciò è impossibile e ignorare qualsiasi oggetto che abbia una sovrapposizione significativa con altri oggetti. -![Due riquadri di delimitazione che si sovrappongono a una lattina di concentrato di pomodoro](../../../../../translated_images/it/overlap-object-detection.d431e03cae75072a2760430eca7f2c5fdd43045bfd72dadcbf12711f7cd6c2ae.png) +![Due riquadri di delimitazione che si sovrappongono a una lattina di concentrato di pomodoro](../../../../../translated_images/it/overlap-object-detection.d431e03cae75072a.webp) Nell'esempio sopra, un riquadro di delimitazione indica una lattina di concentrato di pomodoro con una probabilità del 78.3%. Un secondo riquadro di delimitazione è leggermente più piccolo ed è all'interno del primo riquadro con una probabilità del 64.3%. Il tuo codice può controllare i riquadri di delimitazione, vedere che si sovrappongono completamente e ignorare la probabilità più bassa poiché non è possibile che una lattina sia dentro un'altra. diff --git a/translations/it/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md b/translations/it/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md index f2172763b..25787fc31 100644 --- a/translations/it/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md +++ b/translations/it/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md @@ -67,7 +67,7 @@ Il codice che hai utilizzato per classificare le immagini è molto simile al cod Sarai in grado di vedere l'immagine catturata e questi valori nella scheda **Predictions** in Custom Vision. - ![4 lattine di concentrato di pomodoro su uno scaffale con previsioni per i 4 rilevamenti di 35.8%, 33.5%, 25.7% e 16.6%](../../../../../translated_images/it/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![4 lattine di concentrato di pomodoro su uno scaffale con previsioni per i 4 rilevamenti di 35.8%, 33.5%, 25.7% e 16.6%](../../../../../translated_images/it/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 Puoi trovare questo codice nella cartella [code-detect/pi](../../../../../5-retail/lessons/2-check-stock-device/code-detect/pi) o [code-detect/virtual-iot-device](../../../../../5-retail/lessons/2-check-stock-device/code-detect/virtual-iot-device). diff --git a/translations/it/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md b/translations/it/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md index dff2643a0..135bb4c5d 100644 --- a/translations/it/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md +++ b/translations/it/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md @@ -95,7 +95,7 @@ Il codice che hai utilizzato per classificare le immagini è molto simile a quel Sarai in grado di vedere l'immagine scattata e questi valori nella scheda **Predictions** in Custom Vision. - ![4 lattine di concentrato di pomodoro su uno scaffale con previsioni per i 4 rilevamenti di 35.8%, 33.5%, 25.7% e 16.6%](../../../../../translated_images/it/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![4 lattine di concentrato di pomodoro su uno scaffale con previsioni per i 4 rilevamenti di 35.8%, 33.5%, 25.7% e 16.6%](../../../../../translated_images/it/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 Puoi trovare questo codice nella cartella [code-detect/wio-terminal](../../../../../5-retail/lessons/2-check-stock-device/code-detect/wio-terminal). diff --git a/translations/it/6-consumer/lessons/1-speech-recognition/README.md b/translations/it/6-consumer/lessons/1-speech-recognition/README.md index 76f4a1b7e..8bfbff2b3 100644 --- a/translations/it/6-consumer/lessons/1-speech-recognition/README.md +++ b/translations/it/6-consumer/lessons/1-speech-recognition/README.md @@ -1,6 +1,6 @@ # Riconoscere il parlato con un dispositivo IoT -![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-21.e34de51354d6606fb5ee08d8c89d0222eea0a2a7aaf744a8805ae847c4f69dc4.jpg) +![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-21.e34de51354d6606f.webp) > Sketchnote di [Nitya Narasimhan](https://github.com/nitya). Clicca sull'immagine per una versione più grande. @@ -51,7 +51,7 @@ I microfoni sono disponibili in una varietà di tipi: I microfoni dinamici non necessitano di alimentazione per funzionare, il segnale elettrico è generato interamente dal microfono. - ![Patti Smith che canta in un microfono Shure SM58 (tipo cardioide dinamico)](../../../../../translated_images/it/dynamic-mic.8babac890a2d80dfb0874b5bf37d4b851fe2aeb9da6fd72945746176978bf3bb.jpg) + ![Patti Smith che canta in un microfono Shure SM58 (tipo cardioide dinamico)](../../../../../translated_images/it/dynamic-mic.8babac890a2d80df.webp) * A nastro - I microfoni a nastro sono simili ai microfoni dinamici, ma hanno un nastro metallico invece di un diaframma. Questo nastro si muove in un campo magnetico generando una corrente elettrica. Come i microfoni dinamici, i microfoni a nastro non necessitano di alimentazione per funzionare. @@ -59,11 +59,11 @@ I microfoni sono disponibili in una varietà di tipi: * Condensatore - I microfoni a condensatore hanno un diaframma metallico sottile e una piastra posteriore metallica fissa. L'elettricità viene applicata a entrambi e, mentre il diaframma vibra, la carica statica tra le piastre cambia generando un segnale. I microfoni a condensatore necessitano di alimentazione per funzionare - chiamata *Phantom power*. - ![Microfono a condensatore a piccolo diaframma C451B di AKG Acoustics](../../../../../translated_images/it/condenser-mic.6f6ed5b76ca19e0ec3fd0c544601542d4479a6cb7565db336de49fbbf69f623e.jpg) + ![Microfono a condensatore a piccolo diaframma C451B di AKG Acoustics](../../../../../translated_images/it/condenser-mic.6f6ed5b76ca19e0e.webp) * MEMS - I microfoni a sistemi microelettromeccanici, o MEMS, sono microfoni su chip. Hanno un diaframma sensibile alla pressione inciso su un chip di silicio e funzionano in modo simile a un microfono a condensatore. Questi microfoni possono essere minuscoli e integrati nei circuiti. - ![Un microfono MEMS su una scheda elettronica](../../../../../translated_images/it/mems-microphone.80574019e1f5e4d9ee72fed720ecd25a39fc2969c91355d17ebb24ba4159e4c4.png) + ![Un microfono MEMS su una scheda elettronica](../../../../../translated_images/it/mems-microphone.80574019e1f5e4d9.webp) Nell'immagine sopra, il chip etichettato **LEFT** è un microfono MEMS, con un diaframma minuscolo largo meno di un millimetro. @@ -159,7 +159,7 @@ Per evitare la complessità di addestrare e utilizzare un modello di parola di a ## Convertire voce in testo -![Logo dei servizi vocali](../../../../../translated_images/it/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![Logo dei servizi vocali](../../../../../translated_images/it/azure-speech-logo.a1f08c4befb0159f.webp) Proprio come per la classificazione delle immagini in un progetto precedente, esistono servizi di intelligenza artificiale predefiniti che possono prendere la voce come file audio e convertirla in testo. Uno di questi servizi è il Servizio Vocale, parte dei Cognitive Services, servizi di intelligenza artificiale predefiniti che puoi utilizzare nelle tue applicazioni. diff --git a/translations/it/6-consumer/lessons/1-speech-recognition/pi-audio.md b/translations/it/6-consumer/lessons/1-speech-recognition/pi-audio.md index 97614823c..5e5a42e1b 100644 --- a/translations/it/6-consumer/lessons/1-speech-recognition/pi-audio.md +++ b/translations/it/6-consumer/lessons/1-speech-recognition/pi-audio.md @@ -16,13 +16,13 @@ Il pulsante può essere collegato al Grove Base Hat. #### Attività - collegare il pulsante -![Un pulsante Grove](../../../../../translated_images/it/grove-button.a70cfbb809a8563681003250cf5b06d68cdcc68624f9e2f493d5a534ae2da1e5.png) +![Un pulsante Grove](../../../../../translated_images/it/grove-button.a70cfbb809a85636.webp) 1. Inserisci un'estremità di un cavo Grove nella presa del modulo pulsante. Entrerà solo in un verso. 1. Con il Raspberry Pi spento, collega l'altra estremità del cavo Grove alla presa digitale contrassegnata **D5** sul Grove Base Hat collegato al Pi. Questa presa è la seconda da sinistra, nella fila di prese accanto ai pin GPIO. -![Il pulsante Grove collegato alla presa D5](../../../../../translated_images/it/pi-button.c7a1a4f55943341ce1baf1057658e9a205804d4131d258e820c93f951df0abf3.png) +![Il pulsante Grove collegato alla presa D5](../../../../../translated_images/it/pi-button.c7a1a4f55943341c.webp) ## Acquisire audio diff --git a/translations/it/6-consumer/lessons/1-speech-recognition/pi-microphone.md b/translations/it/6-consumer/lessons/1-speech-recognition/pi-microphone.md index c3957c6d3..87efcdb9e 100644 --- a/translations/it/6-consumer/lessons/1-speech-recognition/pi-microphone.md +++ b/translations/it/6-consumer/lessons/1-speech-recognition/pi-microphone.md @@ -34,7 +34,7 @@ Il microfono e gli altoparlanti devono essere collegati e configurati. 1. Se stai utilizzando il ReSpeaker 2-Mics Pi HAT, puoi rimuovere il Grove base hat e montare il ReSpeaker hat al suo posto. - ![Un Raspberry Pi con un ReSpeaker hat](../../../../../translated_images/it/pi-respeaker-hat.f00fabe7dd039a93e2e0aa0fc946c9af0c6a9eb17c32fa1ca097fb4e384f69f0.png) + ![Un Raspberry Pi con un ReSpeaker hat](../../../../../translated_images/it/pi-respeaker-hat.f00fabe7dd039a93.webp) Avrai bisogno di un pulsante Grove più avanti in questa lezione, ma uno è integrato in questo hat, quindi il Grove base hat non è necessario. diff --git a/translations/it/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md b/translations/it/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md index 0651acf12..74d24848d 100644 --- a/translations/it/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md +++ b/translations/it/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md @@ -10,7 +10,7 @@ Il microfono integrato cattura un segnale analogico, che viene convertito in un ✅ Leggi di più sul DMA nella [pagina di accesso diretto alla memoria su Wikipedia](https://wikipedia.org/wiki/Direct_memory_access). -![L'audio dal microfono passa a un ADC e poi al DMAC. Questo scrive in un buffer. Quando questo buffer è pieno, viene elaborato e il DMAC scrive in un secondo buffer](../../../../../translated_images/it/dmac-adc-buffers.4509aee49145c90bc2e1be472b8ed2ddfcb2b6a81ad3e559114aca55f5fff759.png) +![L'audio dal microfono passa a un ADC e poi al DMAC. Questo scrive in un buffer. Quando questo buffer è pieno, viene elaborato e il DMAC scrive in un secondo buffer](../../../../../translated_images/it/dmac-adc-buffers.4509aee49145c90b.webp) Il DMAC può catturare audio dall'ADC a intervalli fissi, ad esempio 16.000 volte al secondo per audio a 16KHz. Può scrivere questi dati catturati in un buffer di memoria pre-allocato e, quando questo è pieno, renderlo disponibile al tuo codice per l'elaborazione. L'uso di questa memoria può ritardare la cattura dell'audio, ma puoi configurare più buffer. Il DMAC scrive nel buffer 1, quindi quando è pieno, notifica al tuo codice di elaborare il buffer 1, mentre il DMAC scrive nel buffer 2. Quando il buffer 2 è pieno, notifica al tuo codice e torna a scrivere nel buffer 1. In questo modo, finché elabori ogni buffer in meno tempo di quello necessario per riempirne uno, non perderai alcun dato. diff --git a/translations/it/6-consumer/lessons/2-language-understanding/README.md b/translations/it/6-consumer/lessons/2-language-understanding/README.md index 0ae5f476d..55da881ab 100644 --- a/translations/it/6-consumer/lessons/2-language-understanding/README.md +++ b/translations/it/6-consumer/lessons/2-language-understanding/README.md @@ -1,6 +1,6 @@ # Comprendere il linguaggio -![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-22.6148ea28500d9e00c396aaa2649935fb6641362c8f03d8e5e90a676977ab01dd.jpg) +![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-22.6148ea28500d9e00.webp) > Illustrazione di [Nitya Narasimhan](https://github.com/nitya). Clicca sull'immagine per una versione più grande. @@ -46,7 +46,7 @@ I modelli di comprensione del linguaggio sono modelli di intelligenza artificial ## Creare un modello di comprensione del linguaggio -![Il logo di LUIS](../../../../../translated_images/it/luis-logo.5cb4f3e88c020ee6df4f614e8831f4a4b6809a7247bf52085fb48d629ef9be52.png) +![Il logo di LUIS](../../../../../translated_images/it/luis-logo.5cb4f3e88c020ee6.webp) Puoi creare modelli di comprensione del linguaggio utilizzando LUIS, un servizio di comprensione del linguaggio di Microsoft che fa parte dei Servizi Cognitivi. @@ -169,7 +169,7 @@ Puoi trovare istruzioni per utilizzare il portale LUIS nella documentazione [Qui 1. Mentre inserisci ogni esempio, LUIS inizierà a rilevare le entità e sottolineerà e etichetterà quelle che trova. - ![Gli esempi con i numeri e le unità di tempo sottolineati da LUIS](../../../../../translated_images/it/luis-intent-examples.25716580b2d2723cf1bafdf277d015c7f046d8cfa20f27bddf3a0873ec45fab7.png) + ![Gli esempi con i numeri e le unità di tempo sottolineati da LUIS](../../../../../translated_images/it/luis-intent-examples.25716580b2d2723c.webp) ### Attività - addestrare e testare il modello diff --git a/translations/it/6-consumer/lessons/3-spoken-feedback/README.md b/translations/it/6-consumer/lessons/3-spoken-feedback/README.md index 74c4f5676..60a8afd2c 100644 --- a/translations/it/6-consumer/lessons/3-spoken-feedback/README.md +++ b/translations/it/6-consumer/lessons/3-spoken-feedback/README.md @@ -1,6 +1,6 @@ # Imposta un timer e fornisci feedback vocale -![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-23.f38483e1d4df4828990d3f02d60e46c978b075d384ae7cb4f7bab738e107c850.jpg) +![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-23.f38483e1d4df4828.webp) > Illustrazione di [Nitya Narasimhan](https://github.com/nitya). Clicca sull'immagine per una versione più grande. diff --git a/translations/it/6-consumer/lessons/4-multiple-language-support/README.md b/translations/it/6-consumer/lessons/4-multiple-language-support/README.md index 778fe3e80..9a7134687 100644 --- a/translations/it/6-consumer/lessons/4-multiple-language-support/README.md +++ b/translations/it/6-consumer/lessons/4-multiple-language-support/README.md @@ -1,6 +1,6 @@ # Supporto per più lingue -![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-24.4246968ed058510ab275052e87ef9aa89c7b2f938915d103c605c04dc6cd5bb7.jpg) +![Una panoramica illustrata di questa lezione](../../../../../translated_images/it/lesson-24.4246968ed058510a.webp) > Illustrazione di [Nitya Narasimhan](https://github.com/nitya). Clicca sull'immagine per una versione più grande. @@ -74,7 +74,7 @@ Esistono numerosi servizi AI che possono essere utilizzati dalle tue applicazion ### Servizio vocale di Cognitive Services -![Il logo del servizio vocale](../../../../../translated_images/it/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![Il logo del servizio vocale](../../../../../translated_images/it/azure-speech-logo.a1f08c4befb0159f.webp) Il servizio vocale che hai utilizzato nelle lezioni precedenti ha capacità di traduzione per il riconoscimento vocale. Quando riconosci il parlato, puoi richiedere non solo il testo del parlato nella stessa lingua, ma anche in altre lingue. @@ -82,7 +82,7 @@ Il servizio vocale che hai utilizzato nelle lezioni precedenti ha capacità di t ### Servizio Translator di Cognitive Services -![Il logo del servizio Translator](../../../../../translated_images/it/azure-translator-logo.c6ed3a4a433edfd2f11577eca105412c50b8396b194cbbd730723dd1d0793bcd.png) +![Il logo del servizio Translator](../../../../../translated_images/it/azure-translator-logo.c6ed3a4a433edfd2.webp) Il servizio Translator è un servizio di traduzione dedicato che può tradurre testo da una lingua a una o più lingue di destinazione. Oltre alla traduzione, supporta una vasta gamma di funzionalità extra, tra cui la mascheratura delle volgarità. Ti consente anche di fornire una traduzione specifica per una particolare parola o frase, per lavorare con termini che non vuoi tradurre o che hanno una traduzione specifica ben nota. diff --git a/translations/it/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md b/translations/it/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md index 5c858f504..a1cecf8cf 100644 --- a/translations/it/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md +++ b/translations/it/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md @@ -25,7 +25,7 @@ L'API REST del servizio di sintesi vocale non supporta traduzioni dirette, ma pu > > Ad esempio, se addestri LUIS in inglese ma vuoi utilizzare il francese come lingua utente, puoi tradurre frasi come "imposta un timer di 2 minuti e 27 secondi" dall'inglese al francese utilizzando Bing Translate, quindi utilizzare il pulsante **Ascolta traduzione** per pronunciare la traduzione nel microfono. > - > ![Il pulsante Ascolta traduzione su Bing Translate](../../../../../translated_images/it/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Il pulsante Ascolta traduzione su Bing Translate](../../../../../translated_images/it/bing-translate.348aa796d6efe2a9.webp) 1. Aggiungi la chiave API del servizio Translator sotto la variabile `speech_api_key`: diff --git a/translations/it/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md b/translations/it/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md index 1912c73eb..c8c146732 100644 --- a/translations/it/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md +++ b/translations/it/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md @@ -37,7 +37,7 @@ Il servizio di riconoscimento vocale può prendere il parlato e non solo convert > > Ad esempio, se addestri LUIS in inglese ma vuoi utilizzare il francese come lingua dell'utente, puoi tradurre frasi come "imposta un timer di 2 minuti e 27 secondi" dall'inglese al francese utilizzando Bing Translate, quindi utilizzare il pulsante **Ascolta traduzione** per pronunciare la traduzione nel tuo microfono. > - > ![Il pulsante ascolta traduzione su Bing Translate](../../../../../translated_images/it/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Il pulsante ascolta traduzione su Bing Translate](../../../../../translated_images/it/bing-translate.348aa796d6efe2a9.webp) 1. Sostituisci le dichiarazioni `recognizer_config` e `recognizer` con le seguenti: diff --git a/translations/it/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md b/translations/it/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md index e9c88fffe..9e79e9d55 100644 --- a/translations/it/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md +++ b/translations/it/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md @@ -105,7 +105,7 @@ L'API REST del servizio di sintesi vocale non supporta traduzioni dirette. Tutta > > Ad esempio, se addestri LUIS in inglese ma vuoi utilizzare il francese come lingua dell'utente, puoi tradurre frasi come "set a 2 minute and 27 second timer" dall'inglese al francese utilizzando Bing Translate, quindi utilizzare il pulsante **Ascolta traduzione** per pronunciare la traduzione nel tuo microfono. > - > ![Il pulsante ascolta traduzione su Bing Translate](../../../../../translated_images/it/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Il pulsante ascolta traduzione su Bing Translate](../../../../../translated_images/it/bing-translate.348aa796d6efe2a9.webp) 1. Aggiungi la chiave API del servizio Translator e la posizione sotto `SPEECH_LOCATION`: diff --git a/translations/it/README.md b/translations/it/README.md index 1343dcf68..65d27d217 100644 --- a/translations/it/README.md +++ b/translations/it/README.md @@ -1,16 +1,16 @@ -[![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) +[![Licenza GitHub](https://img.shields.io/github/license/microsoft/IoT-For-Beginners.svg)](https://github.com/microsoft/IoT-For-Beginners/blob/master/LICENSE) +[![Collaboratori GitHub](https://img.shields.io/github/contributors/microsoft/IoT-For-Beginners.svg)](https://GitHub.com/microsoft/IoT-For-Beginners/graphs/contributors/) +[![Problemi GitHub](https://img.shields.io/github/issues/microsoft/IoT-For-Beginners.svg)](https://GitHub.com/microsoft/IoT-For-Beginners/issues/) +[![Richieste di pull GitHub](https://img.shields.io/github/issues-pr/microsoft/IoT-For-Beginners.svg)](https://GitHub.com/microsoft/IoT-For-Beginners/pulls/) +[![PRs Benvenute](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/) +[![Osservatori GitHub](https://img.shields.io/github/watchers/microsoft/IoT-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/IoT-For-Beginners/watchers/) +[![Fork GitHub](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/network/) +[![Stelle GitHub](https://img.shields.io/github/stars/microsoft/IoT-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/IoT-For-Beginners/stargazers/) -### Unisciti alla community Azure AI Foundry +### Unisciti alla Comunità Azure AI Foundry -Se ti blocchi o hai domande sulla creazione di app AI, unisciti a compagni di apprendimento e sviluppatori esperti nelle discussioni su MCP. È una comunità di supporto dove le domande sono benvenute e la conoscenza viene condivisa liberamente. +Se resti bloccato o hai domande sulla creazione di app AI. Unisciti a studenti e sviluppatori esperti nelle discussioni su MCP. È una comunità di supporto dove le domande sono benvenute e la conoscenza viene condivisa liberamente. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) @@ -18,196 +18,206 @@ Se hai feedback sul prodotto o errori durante la creazione visita: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -Segui questi passaggi per iniziare a usare queste risorse: -1. **Forka il repository**: Clicca su [![GitHub forks](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) -2. **Clona il repository**: `git clone https://github.com/microsoft/IoT-For-Beginners.git` -3. [**Unisciti al Microsoft Foundry Discord e incontra esperti e altri sviluppatori**](https://discord.com/invite/ByRwuEEgH4) +Segui questi passaggi per iniziare a utilizzare queste risorse: +1. **Fai un fork del repository**: Clicca [![Fork GitHub](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) +2. **Clona il repository**: `git clone https://github.com/microsoft/IoT-For-Beginners.git` +3. [**Unisciti al Discord Microsoft Foundry e incontra esperti e altri sviluppatori**](https://discord.com/invite/ByRwuEEgH4) -### 🌐 Supporto multilingue +### 🌐 Supporto Multilingue #### Supportato tramite GitHub Action (Automatizzato e Sempre Aggiornato) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](./README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Arabo](../ar/README.md) | [Bengalese](../bn/README.md) | [Bulgaro](../bg/README.md) | [Birmano (Myanmar)](../my/README.md) | [Cinese (semplificato)](../zh-CN/README.md) | [Cinese (tradizionale, Hong Kong)](../zh-HK/README.md) | [Cinese (tradizionale, Macao)](../zh-MO/README.md) | [Cinese (tradizionale, Taiwan)](../zh-TW/README.md) | [Croato](../hr/README.md) | [Ceco](../cs/README.md) | [Danese](../da/README.md) | [Olandese](../nl/README.md) | [Estone](../et/README.md) | [Finlandese](../fi/README.md) | [Francese](../fr/README.md) | [Tedesco](../de/README.md) | [Greco](../el/README.md) | [Ebraico](../he/README.md) | [Hindi](../hi/README.md) | [Ungherese](../hu/README.md) | [Indonesiano](../id/README.md) | [Italiano](./README.md) | [Giapponese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Coreano](../ko/README.md) | [Lituano](../lt/README.md) | [Malese](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepalese](../ne/README.md) | [Pidgin Nigeriano](../pcm/README.md) | [Norvegese](../no/README.md) | [Persiano (Farsi)](../fa/README.md) | [Polacco](../pl/README.md) | [Portoghese (Brasile)](../pt-BR/README.md) | [Portoghese (Portogallo)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Rumeno](../ro/README.md) | [Russo](../ru/README.md) | [Serbo (Cirillico)](../sr/README.md) | [Slovacco](../sk/README.md) | [Sloveno](../sl/README.md) | [Spagnolo](../es/README.md) | [Swahili](../sw/README.md) | [Svedese](../sv/README.md) | [Tagalog (Filippino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thailandese](../th/README.md) | [Turco](../tr/README.md) | [Ucraino](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamita](../vi/README.md) > **Preferisci clonare localmente?** - -> Questo repository include oltre 50 traduzioni che aumentano significativamente la dimensione di download. Per clonare senza traduzioni, usa sparse checkout: +> +> Questo repository include più di 50 traduzioni che aumentano significativamente la dimensione del download. Per clonare senza traduzioni, usa il checkout sparso: +> +> **Bash / macOS / Linux:** > ```bash > git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git > cd IoT-For-Beginners > git sparse-checkout set --no-cone '/*' '!translations' '!translated_images' > ``` -> Questo ti dà tutto il necessario per completare il corso con un download molto più rapido. +> +> **CMD (Windows):** +> ```cmd +> git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git +> cd IoT-For-Beginners +> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" +> ``` +> +> Questo ti dà tutto il necessario per completare il corso con un download molto più veloce. -# IoT per Principianti - Un curriculum +# IoT per Principianti - Un Curriculum -Gli Azure Cloud Advocates di Microsoft sono lieti di offrire un curriculum di 12 settimane, 24 lezioni, tutto sui fondamenti dell'IoT. Ogni lezione include quiz pre e post lezione, istruzioni scritte per completare la lezione, una soluzione, un compito e altro ancora. La nostra pedagogia basata sui progetti ti consente di imparare costruendo, un modo provato affinché le nuove competenze si consolidino. +Gli Azure Cloud Advocates di Microsoft sono lieti di offrire un curriculum di 12 settimane e 24 lezioni tutto dedicato alle basi dell’IoT. Ogni lezione include quiz pre e post lezione, istruzioni scritte per completare la lezione, una soluzione, un compito e altro ancora. La nostra pedagogia basata sui progetti permette di imparare costruendo, modalità comprovata per apprendere nuove competenze in modo efficace. -I progetti coprono il percorso del cibo dalla fattoria alla tavola. Questo include agricoltura, logistica, produzione, vendita al dettaglio e consumatore – tutte aree industriali popolari per i dispositivi IoT. +I progetti coprono il percorso del cibo dalla fattoria alla tavola. Questo include agricoltura, logistica, produzione, vendita al dettaglio e consumatori - tutti settori industriali popolari per i dispositivi IoT. -![Una road map per il corso che mostra 24 lezioni che coprono introduzione, agricoltura, trasporto, elaborazione, vendita al dettaglio e cucina](../../translated_images/it/Roadmap.bb1dec285dda0eda.webp) +![Una mappa del corso che mostra 24 lezioni che coprono introduzione, agricoltura, trasporto, lavorazione, vendita al dettaglio e cucina](../../translated_images/it/Roadmap.bb1dec285dda0eda.webp) -> Sketchnote di [Nitya Narasimhan](https://github.com/nitya). Clicca l'immagine per una versione ingrandita. +> Sketchnote di [Nitya Narasimhan](https://github.com/nitya). Clicca sull’immagine per una versione più grande. -**Un sentito grazie ai nostri autori [Jen Fox](https://github.com/jenfoxbot), [Jen Looper](https://github.com/jlooper), [Jim Bennett](https://github.com/jimbobbennett), e alla nostra artista dello sketchnote [Nitya Narasimhan](https://github.com/nitya).** +**Grazie sentiti ai nostri autori [Jen Fox](https://github.com/jenfoxbot), [Jen Looper](https://github.com/jlooper), [Jim Bennett](https://github.com/jimbobbennett), e al nostro artista delle sketchnote [Nitya Narasimhan](https://github.com/nitya).** -**Grazie anche al nostro team di [Microsoft Learn Student Ambassadors](https://studentambassadors.microsoft.com?WT.mc_id=academic-17441-jabenn) che ha revisionato e tradotto questo curriculum – [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), e [Zina Kamel](https://www.linkedin.com/in/zina-kamel/).** +**Grazie anche al nostro team di [Microsoft Learn Student Ambassadors](https://studentambassadors.microsoft.com?WT.mc_id=academic-17441-jabenn) che hanno revisionato e tradotto questo curriculum - [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), e [Zina Kamel](https://www.linkedin.com/in/zina-kamel/).** Incontra il team! -[![Promo video](../../images/IOT.gif)](https://youtu.be/-wippUJRi5k) +[![Video promozionale](../../images/IOT.gif)](https://youtu.be/-wippUJRi5k) **Gif di** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Clicca l'immagine sopra per un video sul progetto! +> 🎥 Clicca sull'immagine sopra per un video sul progetto! -> **Insegnanti**, abbiamo [incluso alcuni suggerimenti](for-teachers.md) su come usare questo curriculum. Se vuoi creare le tue lezioni, abbiamo anche incluso un [modello di lezione](lesson-template/README.md). +> **Insegnanti**, abbiamo [incluso alcuni suggerimenti](for-teachers.md) su come utilizzare questo curriculum. Se vuoi creare le tue lezioni, abbiamo anche incluso un [modello di lezione](lesson-template/README.md). -> **Studenti** ([https://aka.ms/student-page](https://aka.ms/student-page)), per usare questo curriculum in autonomia, forka l'intero repo e completa gli esercizi da solo, iniziando con un quiz pre-lezione, poi leggendo la lezione e completando le restanti attività. Prova a creare i progetti comprendendo le lezioni piuttosto che copiando il codice della soluzione; tale codice è comunque disponibile nelle cartelle /solutions in ogni lezione orientata al progetto. Un'altra idea è formare un gruppo di studio con amici e analizzare insieme il contenuto. Per uno studio più approfondito, consigliamo [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn). +> **[Studenti](https://aka.ms/student-page)**, per usare questo curriculum da soli, fate il fork dell’intero repository e completate gli esercizi da soli, iniziando con un quiz pre-lezione, poi leggendo la lezione e completando le restanti attività. Cercate di creare i progetti comprendendo le lezioni piuttosto che copiando il codice soluzione; comunque quel codice è disponibile nelle cartelle /solutions in ogni lezione orientata al progetto. Un’altra idea sarebbe formare un gruppo di studio con amici e affrontare insieme i contenuti. Per ulteriori studi, consigliamo [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn). Per una panoramica video di questo corso, guarda questo video: -[![Promo video](https://img.youtube.com/vi/bccEMm8gRuc/0.jpg)](https://youtube.com/watch?v=bccEMm8gRuc "Promo video") +[![Video promozionale](https://img.youtube.com/vi/bccEMm8gRuc/0.jpg)](https://youtube.com/watch?v=bccEMm8gRuc "Video promozionale") -> 🎥 Clicca l'immagine sopra per un video sul progetto! +> 🎥 Clicca sull'immagine sopra per un video sul progetto! ## Pedagogia -Abbiamo scelto due principi pedagogici durante la costruzione di questo curriculum: garantire che sia basato su progetti e che includa quiz frequenti. Alla fine di questa serie, gli studenti avranno costruito un sistema di monitoraggio e irrigazione delle piante, un localizzatore di veicoli, una configurazione di fabbrica intelligente per tracciare e controllare il cibo e un timer da cucina controllato a voce, e avranno appreso le basi dell'Internet delle Cose, inclusi come scrivere codice per dispositivi, connettersi al cloud, analizzare la telemetria ed eseguire AI sul bordo. +Abbiamo scelto due principi pedagogici nella creazione di questo curriculum: assicurarci che sia basato su progetti e che includa quiz frequenti. Alla fine di questa serie, gli studenti avranno costruito un sistema di monitoraggio e annaffiamento piante, un localizzatore di veicoli, un’installazione smart factory per tracciare e controllare il cibo, e un timer di cottura controllato a voce, e avranno imparato le basi dell’Internet of Things inclusi come scrivere codice per dispositivi, connettersi al cloud, analizzare la telemetria ed eseguire AI sull’edge. -Garantendo che i contenuti siano allineati ai progetti, il processo diventa più coinvolgente per gli studenti e la ritenzione dei concetti aumenta. +Assicurando che il contenuto sia allineato ai progetti, il processo diventa più coinvolgente per gli studenti e la ritenzione dei concetti viene aumentata. -Inoltre, un quiz a bassa posta in gioco prima della lezione orienta l'intenzione dello studente verso l'apprendimento di un argomento, mentre un secondo quiz dopo la lezione assicura una ulteriore ritenzione. Questo curriculum è stato progettato per essere flessibile e divertente e può essere seguito integralmente o parzialmente. I progetti iniziano in piccolo e diventano progressivamente più complessi entro la fine del ciclo di 12 settimane. +Inoltre, un quiz a bassa pressione prima della lezione imposta l’intenzione dello studente verso l’apprendimento di un argomento, mentre un secondo quiz dopo la lezione assicura una maggiore ritenzione. Questo curriculum è stato progettato per essere flessibile e divertente e può essere seguito per intero o a pezzi. I progetti iniziano piccoli e diventano progressivamente più complessi entro la fine del ciclo di 12 settimane. -Ogni progetto si basa su hardware reale disponibile per studenti e hobbisti. Ogni progetto esplora il dominio specifico del progetto, fornendo conoscenze di background rilevanti. Per essere un sviluppatore di successo aiuta comprendere il dominio in cui risolvi problemi; fornire queste conoscenze di base permette agli studenti di riflettere sulle loro soluzioni e apprendimento nel contesto del tipo di problema reale che potrebbero dover risolvere come sviluppatori IoT. Gli studenti imparano il 'perché' delle soluzioni che stanno costruendo e acquisiscono un apprezzamento per l'utente finale. +Ogni progetto si basa su hardware reale disponibile agli studenti e agli hobbisti. Ogni progetto approfondisce il dominio specifico del progetto, fornendo conoscenze di base rilevanti. Per essere un sviluppatore di successo aiuta capire il dominio in cui si risolvono problemi; fornire queste conoscenze di base permette agli studenti di pensare alle loro soluzioni IoT e agli apprendimenti nel contesto del tipo di problema reale che potrebbero dover risolvere come sviluppatori IoT. Gli studenti imparano il 'perché' delle soluzioni che costruiscono, acquisendo apprezzamento per l’utente finale. ## Hardware +Abbiamo due opzioni di hardware IoT da utilizzare per i progetti a seconda delle preferenze personali, della conoscenza o preferenza del linguaggio di programmazione, degli obiettivi di apprendimento e della disponibilità. Abbiamo inoltre fornito una versione di "hardware virtuale" per chi non ha accesso all'hardware, o vuole imparare di più prima di impegnarsi in un acquisto. Puoi leggere di più e trovare una "lista della spesa" nella [pagina hardware](./hardware.md), inclusi link per acquistare kit completi dai nostri amici di Seeed Studio. -Abbiamo due scelte di hardware IoT da usare per i progetti a seconda delle preferenze personali, conoscenze o preferenze di linguaggio di programmazione, obiettivi di apprendimento e disponibilità. Abbiamo anche fornito una versione 'hardware virtuale' per chi non ha accesso a hardware o vuole imparare di più prima di effettuare un acquisto. Puoi leggere di più e trovare una 'lista della spesa' nella [pagina hardware](./hardware.md), inclusi link per acquistare kit completi dai nostri amici di Seeed Studio. -> 💁 Trova le nostre linee guida [Codice di Condotta](CODE_OF_CONDUCT.md), [Contributi](CONTRIBUTING.md) e [Traduzione](TRANSLATIONS.md). Accogliamo con piacere il tuo feedback costruttivo! +> 💁 Trova il nostro [Codice di Condotta](CODE_OF_CONDUCT.md), le linee guida per [Contributi](CONTRIBUTING.md) e [Traduzioni](TRANSLATIONS.md). Accogliamo con piacere il tuo feedback costruttivo! > -> 🔧 Problemi? Consulta la nostra [Guida alla Risoluzione dei Problemi](TROUBLESHOOTING.md) per soluzioni ai problemi comuni. +> 🔧 Hai problemi? Consulta la nostra [Guida alla Risoluzione dei Problemi](TROUBLESHOOTING.md) per soluzioni ai problemi comuni. ## Ogni lezione include: -- sketchnote +- schizzo riassuntivo - video supplementare opzionale - quiz di riscaldamento pre-lezione - lezione scritta -- per le lezioni basate su progetti, guide passo-passo su come costruire il progetto -- verifiche di apprendimento +- per le lezioni basate su progetti, guide passo-passo per costruire il progetto +- verifiche di conoscenza - una sfida - letture supplementari - compito - [quiz post-lezione](https://ff-quizzes.netlify.app/en/) -> **Una nota sui quiz**: Tutti i quiz sono contenuti nella cartella quiz-app, per un totale di 48 quiz di tre domande ciascuno. Sono collegati all'interno delle lezioni ma l'app del quiz può essere eseguita localmente o distribuita su Azure; segui le istruzioni nella cartella `quiz-app`. Sono in fase di localizzazione graduale. +> **Una nota sui quiz**: Tutti i quiz sono contenuti nella cartella quiz-app, per un totale di 48 quiz con tre domande ciascuno. Sono collegati all'interno delle lezioni, ma l'app del quiz può essere eseguita localmente o distribuita su Azure; segui le istruzioni nella cartella `quiz-app`. Sono gradualmente in fase di localizzazione. ## Lezioni -| | Nome Progetto | Concetti Insegnati | Obiettivi di Apprendimento | Lezione Collegata | -| :---: | :------------------------------------: | :---------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------: | -| 01 | [Iniziare](./1-getting-started/README.md) | Introduzione all’IoT | Impara i principi base dell’IoT e i componenti fondamentali delle soluzioni IoT come sensori e servizi cloud mentre configuri il tuo primo dispositivo IoT | [Introduzione all'IoT](./1-getting-started/lessons/1-introduction-to-iot/README.md) | -| 02 | [Iniziare](./1-getting-started/README.md) | Un’immersione più profonda nell’IoT | Impara di più sui componenti di un sistema IoT, così come sui microcontrollori e computer a scheda singola | [Un’immersione più profonda nell’IoT](./1-getting-started/lessons/2-deeper-dive/README.md) | -| 03 | [Iniziare](./1-getting-started/README.md) | Interagisci con il mondo fisico tramite sensori e attuatori | Impara sui sensori per raccogliere dati dal mondo fisico e sugli attuatori per inviare feedback, mentre costruisci una luce notturna | [Interagisci con il mondo fisico tramite sensori e attuatori](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | -| 04 | [Iniziare](./1-getting-started/README.md) | Connetti il tuo dispositivo a Internet | Impara come collegare un dispositivo IoT a Internet per inviare e ricevere messaggi connettendo la tua luce notturna a un broker MQTT | [Connetti il tuo dispositivo a Internet](./1-getting-started/lessons/4-connect-internet/README.md) | -| 05 | [Fattoria](./2-farm/README.md) | Predici la crescita delle piante | Impara a predire la crescita delle piante utilizzando dati di temperatura acquisiti da un dispositivo IoT | [Predici la crescita delle piante](./2-farm/lessons/1-predict-plant-growth/README.md) | -| 06 | [Fattoria](./2-farm/README.md) | Rileva l’umidità del suolo | Impara a rilevare l’umidità del suolo e a calibrare un sensore di umidità del suolo | [Rileva l’umidità del suolo](./2-farm/lessons/2-detect-soil-moisture/README.md) | -| 07 | [Fattoria](./2-farm/README.md) | Automatizza l’irrigazione delle piante | Impara ad automatizzare e programmare l’irrigazione usando un relè e MQTT | [Automatizza l’irrigazione delle piante](./2-farm/lessons/3-automated-plant-watering/README.md) | -| 08 | [Fattoria](./2-farm/README.md) | Migra la tua pianta sul cloud | Impara sul cloud e sui servizi IoT ospitati sul cloud e come collegare la tua pianta a uno di questi invece che a un broker MQTT pubblico | [Migra la tua pianta sul cloud](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | -| 09 | [Fattoria](./2-farm/README.md) | Migra la logica della tua applicazione sul cloud | Impara come puoi scrivere la logica applicativa nel cloud che risponde ai messaggi IoT | [Migra la logica della tua applicazione sul cloud](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | -| 10 | [Fattoria](./2-farm/README.md) | Mantieni la tua pianta sicura | Impara la sicurezza con IoT e come mantenere la tua pianta sicura con chiavi e certificati | [Mantieni la tua pianta sicura](./2-farm/lessons/6-keep-your-plant-secure/README.md) | -| 11 | [Trasporti](./3-transport/README.md) | Tracciamento della posizione | Impara il tracciamento della posizione GPS per dispositivi IoT | [Tracciamento della posizione](./3-transport/lessons/1-location-tracking/README.md) | -| 12 | [Trasporti](./3-transport/README.md) | Memorizza i dati di posizione | Impara come memorizzare i dati IoT per essere visualizzati o analizzati successivamente | [Memorizza i dati di posizione](./3-transport/lessons/2-store-location-data/README.md) | -| 13 | [Trasporti](./3-transport/README.md) | Visualizza i dati di posizione | Impara a visualizzare i dati di posizione su una mappa e come le mappe rappresentano il mondo reale 3D in 2 dimensioni | [Visualizza i dati di posizione](./3-transport/lessons/3-visualize-location-data/README.md) | -| 14 | [Trasporti](./3-transport/README.md) | Geofence | Impara i geofence e come possono essere usati per avvisare quando i veicoli nella catena di distribuzione sono vicini alla loro destinazione | [Geofence](./3-transport/lessons/4-geofences/README.md) | -| 15 | [Produzione](./4-manufacturing/README.md) | Addestra un rilevatore di qualità della frutta | Impara come addestrare un classificatore di immagini nel cloud per rilevare la qualità della frutta | [Addestra un rilevatore di qualità della frutta](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | -| 16 | [Produzione](./4-manufacturing/README.md) | Controlla la qualità della frutta da un dispositivo IoT | Impara a usare il tuo rilevatore di qualità della frutta da un dispositivo IoT | [Controlla la qualità della frutta da un dispositivo IoT](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | -| 17 | [Produzione](./4-manufacturing/README.md) | Esegui il tuo rilevatore di frutta sull’edge | Impara a far funzionare il tuo rilevatore di frutta su un dispositivo IoT sull’edge | [Esegui il tuo rilevatore di frutta sull’edge](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | -| 18 | [Produzione](./4-manufacturing/README.md) | Attiva il rilevamento della qualità della frutta da un sensore | Impara ad attivare il rilevamento della qualità della frutta da un sensore | [Attiva il rilevamento della qualità della frutta da un sensore](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | -| 19 | [Vendita al dettaglio](./5-retail/README.md) | Addestra un rilevatore di scorte | Impara a usare il rilevamento di oggetti per addestrare un rilevatore di scorte per contare le scorte in un negozio | [Addestra un rilevatore di scorte](./5-retail/lessons/1-train-stock-detector/README.md) | -| 20 | [Vendita al dettaglio](./5-retail/README.md) | Controlla le scorte da un dispositivo IoT | Impara a controllare le scorte da un dispositivo IoT usando un modello di rilevamento oggetti | [Controlla le scorte da un dispositivo IoT](./5-retail/lessons/2-check-stock-device/README.md) | -| 21 | [Consumatore](./6-consumer/README.md) | Riconosci il parlato con un dispositivo IoT | Impara a riconoscere il parlato da un dispositivo IoT per costruire un timer intelligente | [Riconosci il parlato con un dispositivo IoT](./6-consumer/lessons/1-speech-recognition/README.md) | -| 22 | [Consumatore](./6-consumer/README.md) | Comprendi il linguaggio | Impara a capire frasi pronunciate a un dispositivo IoT | [Comprendi il linguaggio](./6-consumer/lessons/2-language-understanding/README.md) | -| 23 | [Consumatore](./6-consumer/README.md) | Imposta un timer e fornisci feedback parlato | Impara a impostare un timer su un dispositivo IoT e fornire feedback parlato su quando il timer è impostato e quando finisce | [Imposta un timer e fornisci feedback parlato](./6-consumer/lessons/3-spoken-feedback/README.md) | -| 24 | [Consumatore](./6-consumer/README.md) | Supporta più lingue | Impara a supportare più lingue, sia per il parlato che per le risposte del tuo timer intelligente | [Supporta più lingue](./6-consumer/lessons/4-multiple-language-support/README.md) | +| | Nome del Progetto | Concetti Insegnati | Obiettivi di Apprendimento | Lezione Collegata | +| :---: | :-------------------------------------------: | :--------------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------: | +| 01 | [Introduzione](./1-getting-started/README.md) | Introduzione all'IoT | Impara i principi base dell’IoT e i blocchi fondamentali di soluzioni IoT come sensori e servizi cloud mentre configuri il tuo primo dispositivo IoT | [Introduzione all'IoT](./1-getting-started/lessons/1-introduction-to-iot/README.md) | +| 02 | [Introduzione](./1-getting-started/README.md) | Approfondimento sull'IoT | Approfondisci i componenti di un sistema IoT, così come microcontrollori e computer a scheda singola | [Approfondimento sull'IoT](./1-getting-started/lessons/2-deeper-dive/README.md) | +| 03 | [Introduzione](./1-getting-started/README.md) | Interagisci con il mondo fisico con sensori e attuatori | Impara a utilizzare sensori per raccogliere dati dal mondo fisico e attuatori per inviare feedback, mentre costruisci una lampada notturna | [Interagisci con il mondo fisico con sensori e attuatori](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | +| 04 | [Introduzione](./1-getting-started/README.md) | Connetti il tuo dispositivo a Internet | Scopri come connettere un dispositivo IoT a Internet per inviare e ricevere messaggi collegando la tua lampada notturna a un broker MQTT | [Connetti il tuo dispositivo a Internet](./1-getting-started/lessons/4-connect-internet/README.md) | +| 05 | [Fattoria](./2-farm/README.md) | Predici la crescita delle piante | Impara a prevedere la crescita delle piante utilizzando dati di temperatura catturati da un dispositivo IoT | [Predici la crescita delle piante](./2-farm/lessons/1-predict-plant-growth/README.md) | +| 06 | [Fattoria](./2-farm/README.md) | Rileva l'umidità del suolo | Impara a rilevare l'umidità del suolo e calibrare un sensore di umidità del terreno | [Rileva l'umidità del suolo](./2-farm/lessons/2-detect-soil-moisture/README.md) | +| 07 | [Fattoria](./2-farm/README.md) | Irrigazione automatica delle piante | Impara ad automatizzare e programmare l'irrigazione usando un relè e MQTT | [Irrigazione automatica delle piante](./2-farm/lessons/3-automated-plant-watering/README.md) | +| 08 | [Fattoria](./2-farm/README.md) | Migra la tua pianta al cloud | Scopri il cloud e i servizi IoT ospitati sul cloud e come connettere la tua pianta a uno di questi invece di un broker MQTT pubblico | [Migra la tua pianta al cloud](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | +| 09 | [Fattoria](./2-farm/README.md) | Migra la logica della tua applicazione al cloud | Impara come scrivere la logica applicativa nel cloud che risponde ai messaggi IoT | [Migra la logica della tua applicazione al cloud](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | +| 10 | [Fattoria](./2-farm/README.md) | Proteggi la tua pianta | Scopri la sicurezza in IoT e come mantenere la tua pianta al sicuro con chiavi e certificati | [Proteggi la tua pianta](./2-farm/lessons/6-keep-your-plant-secure/README.md) | +| 11 | [Trasporti](./3-transport/README.md) | Tracciamento della posizione | Scopri il tracciamento della posizione GPS per dispositivi IoT | [Tracciamento della posizione](./3-transport/lessons/1-location-tracking/README.md) | +| 12 | [Trasporti](./3-transport/README.md) | Memorizza dati di posizione | Impara a memorizzare dati IoT per visualizzarli o analizzarli in seguito | [Memorizza dati di posizione](./3-transport/lessons/2-store-location-data/README.md) | +| 13 | [Trasporti](./3-transport/README.md) | Visualizza dati di posizione | Scopri come visualizzare dati di posizione su una mappa e come le mappe rappresentano il mondo reale 3D in 2 dimensioni | [Visualizza dati di posizione](./3-transport/lessons/3-visualize-location-data/README.md) | +| 14 | [Trasporti](./3-transport/README.md) | Geofence | Scopri le geofence e come possono essere usate per avvisare quando i veicoli della catena di approvvigionamento sono vicini alla loro destinazione | [Geofence](./3-transport/lessons/4-geofences/README.md) | +| 15 | [Produzione](./4-manufacturing/README.md) | Addestra un rilevatore di qualità della frutta | Scopri come addestrare un classificatore di immagini nel cloud per rilevare la qualità della frutta | [Addestra un rilevatore di qualità della frutta](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | +| 16 | [Produzione](./4-manufacturing/README.md) | Verifica la qualità della frutta da un dispositivo IoT | Scopri come usare il rilevatore di qualità della frutta da un dispositivo IoT | [Verifica qualità della frutta da un dispositivo IoT](./4-manufacturing/lessons/2-check-fruit-from-device/README.md)| +| 17 | [Produzione](./4-manufacturing/README.md) | Esegui il tuo rilevatore di frutta sull’edge | Scopri come eseguire il tuo rilevatore di frutta su un dispositivo IoT ai margini | [Esegui il tuo rilevatore di frutta sull’edge](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md)| +| 18 | [Produzione](./4-manufacturing/README.md) | Attiva il rilevamento qualità della frutta da un sensore | Scopri come attivare il rilevamento della qualità della frutta da un sensore | [Attiva il rilevamento qualità della frutta da un sensore](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | +| 19 | [Vendita al dettaglio](./5-retail/README.md) | Addestra un rilevatore di stock | Impara a usare il rilevamento oggetti per addestrare un rilevatore di stock per contare la merce in un negozio | [Addestra un rilevatore di stock](./5-retail/lessons/1-train-stock-detector/README.md) | +| 20 | [Vendita al dettaglio](./5-retail/README.md) | Controlla lo stock da un dispositivo IoT | Impara a controllare lo stock da un dispositivo IoT usando un modello di rilevamento oggetti | [Controlla lo stock da un dispositivo IoT](./5-retail/lessons/2-check-stock-device/README.md) | +| 21 | [Consumatore](./6-consumer/README.md) | Riconosci il parlato con un dispositivo IoT | Impara a riconoscere il parlato da un dispositivo IoT per costruire un timer intelligente | [Riconosci il parlato con un dispositivo IoT](./6-consumer/lessons/1-speech-recognition/README.md) | +| 22 | [Consumatore](./6-consumer/README.md) | Comprendi il linguaggio | Impara a comprendere le frasi pronunciate a un dispositivo IoT | [Comprendi il linguaggio](./6-consumer/lessons/2-language-understanding/README.md) | +| 23 | [Consumatore](./6-consumer/README.md) | Imposta un timer e fornisci feedback vocale | Impara a impostare un timer su un dispositivo IoT e fornire feedback vocale su quando il timer è impostato e quando termina | [Imposta un timer e fornisci feedback vocale](./6-consumer/lessons/3-spoken-feedback/README.md) | +| 24 | [Consumatore](./6-consumer/README.md) | Supporta più lingue | Impara a supportare più lingue, sia quelle parlate al dispositivo sia le risposte dal tuo timer intelligente | [Supporta più lingue](./6-consumer/lessons/4-multiple-language-support/README.md) | ## Accesso offline -Puoi eseguire questa documentazione offline utilizzando [Docsify](https://docsify.js.org/#/). Fai il fork di questo repository, [installa Docsify](https://docsify.js.org/#/quickstart) sulla tua macchina locale, quindi nella cartella radice di questo repository, digita `docsify serve`. Il sito web sarà servito sulla porta 3000 sul tuo localhost: `localhost:3000`. +Puoi eseguire questa documentazione offline usando [Docsify](https://docsify.js.org/#/). Fai il fork di questo repo, [installa Docsify](https://docsify.js.org/#/quickstart) sulla tua macchina locale, e poi nella cartella principale di questo repo, digita `docsify serve`. Il sito sarà servito sulla porta 3000 sul tuo localhost: `localhost:3000`. ## Quiz -Grazie alla community per aver ospitato il quiz interattivo che verifica la tua conoscenza su ciascuno dei capitoli. Puoi testare la tua conoscenza [qui](https://ff-quizzes.netlify.app/en/) +Grazie alla community per aver ospitato il quiz interattivo che verifica la tua conoscenza su ciascuno dei capitoli. Puoi testare la tua conoscenza [qui](https://ff-quizzes.netlify.app/en/) ### PDF -Puoi generare un PDF di questo contenuto per l’accesso offline se necessario. Per farlo, assicurati di avere [npm installato](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) e esegui i seguenti comandi nella cartella radice di questo repository: +Puoi generare un PDF di questo contenuto per l'accesso offline se necessario. Per farlo, assicurati di avere [npm installato](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) ed esegui i seguenti comandi nella cartella principale di questo repo: ```sh npm i npm run convert ``` -### Diapositive +### Slide Ci sono presentazioni per alcune delle lezioni nella cartella [slides](../../slides). ## Altri Curricula -Il nostro team produce altri curricula! Dai un’occhiata a: +Il nostro team produce altri curricula! Dai un'occhiata: ### LangChain [![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) [![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) - +[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- ### Azure / Edge / MCP / Agents [![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) [![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Agenti AI per Principianti](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Serie di Intelligenza Artificiale Generativa -[![Intelligenza Artificiale Generativa per Principianti](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Intelligenza Artificiale Generativa (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![Intelligenza Artificiale Generativa (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![Intelligenza Artificiale Generativa (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +### Serie AI Generativa +[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- -### Apprendimento Fondamentale -[![ML per Principianti](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Data Science per Principianti](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![IA per Principianti](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![Cybersecurity per Principianti](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![Sviluppo Web per Principianti](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![IoT per Principianti](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![Sviluppo XR per Principianti](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +### Apprendimento di Base +[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### Serie Copilot -[![Copilot per Programmazione Assistita dall'IA](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![Copilot per C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![Avventure Copilot](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) ## Attribuzioni delle immagini -Puoi trovare tutte le attribuzioni per le immagini usate in questo curriculum dove necessario in [Attribuzioni](./attributions.md). +Puoi trovare tutte le attribuzioni per le immagini usate in questo curriculum dove necessario nella [Attribuzioni](./attributions.md). --- -**Avvertenza**: -Questo documento è stato tradotto utilizzando il servizio di traduzione automatica [Co-op Translator](https://github.com/Azure/co-op-translator). Pur impegnandoci per l’accuratezza, si prega di considerare che le traduzioni automatiche possono contenere errori o imprecisioni. Il documento originale nella sua lingua nativa deve essere considerato la fonte autorevole. Per informazioni critiche, si raccomanda una traduzione professionale effettuata da un traduttore umano. Non ci assumiamo responsabilità per eventuali malintesi o interpretazioni errate derivanti dall’uso di questa traduzione. +**Disclaimer**: +Questo documento è stato tradotto utilizzando il servizio di traduzione AI [Co-op Translator](https://github.com/Azure/co-op-translator). Pur facendo del nostro meglio per garantire l’accuratezza, si prega di notare che le traduzioni automatiche possono contenere errori o inesattezze. Il documento originale nella sua lingua nativa deve essere considerato la fonte autorevole. Per informazioni critiche si raccomanda una traduzione professionale umana. Non ci assumiamo alcuna responsabilità per eventuali malintesi o interpretazioni errate derivanti dall’uso di questa traduzione. \ No newline at end of file diff --git a/translations/it/hardware.md b/translations/it/hardware.md index 292a2e266..bc08713bd 100644 --- a/translations/it/hardware.md +++ b/translations/it/hardware.md @@ -26,7 +26,7 @@ Seeed Studios ha gentilmente reso tutto l'hardware disponibile come kit facili d **[IoT per principianti con Seeed e Microsoft - Kit iniziale Raspberry Pi 4](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html)** -[![Il kit hardware Raspberry Pi Terminal](../../translated_images/it/pi-hardware-kit.26dbadaedb7dd44c73b0131d5d68ea29472ed0a9744f90d5866c6d82f2d16380.png)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) +[![Il kit hardware Raspberry Pi Terminal](../../translated_images/it/pi-hardware-kit.26dbadaedb7dd44c.webp)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) ## Arduino diff --git a/translations/ja/.co-op-translator.json b/translations/ja/.co-op-translator.json index a05c5f73f..5cf7ec379 100644 --- a/translations/ja/.co-op-translator.json +++ b/translations/ja/.co-op-translator.json @@ -738,8 +738,8 @@ "language_code": "ja" }, "README.md": { - "original_hash": "3fcc056cd3837e33d2bdf79f9c359fcf", - "translation_date": "2026-01-30T01:29:24+00:00", + "original_hash": "accf69391fa4450eadbf492ca024cccf", + "translation_date": "2026-04-06T16:47:57+00:00", "source_file": "README.md", "language_code": "ja" }, diff --git a/translations/ja/1-getting-started/lessons/1-introduction-to-iot/README.md b/translations/ja/1-getting-started/lessons/1-introduction-to-iot/README.md index 8f4c0a180..9cb449d75 100644 --- a/translations/ja/1-getting-started/lessons/1-introduction-to-iot/README.md +++ b/translations/ja/1-getting-started/lessons/1-introduction-to-iot/README.md @@ -1,6 +1,6 @@ # IoT入門 -![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-1.2606670fa61ee904687da5d6fa4e726639d524d064c895117da1b95b9ff6251d.jpg) +![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-1.2606670fa61ee904.webp) > スケッチノート作成者:[Nitya Narasimhan](https://github.com/nitya)。画像をクリックすると拡大版が表示されます。 diff --git a/translations/ja/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md b/translations/ja/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md index c0c0ba7de..d8377f7d9 100644 --- a/translations/ja/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md +++ b/translations/ja/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md @@ -203,7 +203,7 @@ Python仮想環境が準備できたら、'Hello World'アプリケーション アプリが実行され、ブラウザで開きます: - ![ブラウザで実行中のCounterFitアプリ](../../../../../translated_images/ja/counterfit-first-run.433326358b669b31d0e99c3513cb01bfbb13724d162c99cdcc8f51ecf5f9c779.png) + ![ブラウザで実行中のCounterFitアプリ](../../../../../translated_images/ja/counterfit-first-run.433326358b669b31.webp) アプリは*Disconnected*と表示され、右上のLEDがオフになっています。 @@ -224,7 +224,7 @@ Python仮想環境が準備できたら、'Hello World'アプリケーション 1. この新しいターミナルで、先ほどと同じように`app.py`ファイルを実行します。CounterFitのステータスが**Connected**に変わり、LEDが点灯します。 - ![接続された状態を示すCounterFit](../../../../../translated_images/ja/counterfit-connected.ed30b46d8f79b0921f3fc70be10366e596a89dca3f80c2224a9d9fc98fccf884.png) + ![接続された状態を示すCounterFit](../../../../../translated_images/ja/counterfit-connected.ed30b46d8f79b092.webp) > 💁 このコードは[code/virtual-device](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/virtual-device)フォルダにあります。 diff --git a/translations/ja/1-getting-started/lessons/2-deeper-dive/README.md b/translations/ja/1-getting-started/lessons/2-deeper-dive/README.md index 660a101c7..4c1025fe9 100644 --- a/translations/ja/1-getting-started/lessons/2-deeper-dive/README.md +++ b/translations/ja/1-getting-started/lessons/2-deeper-dive/README.md @@ -1,6 +1,6 @@ # IoTの深掘り -![このレッスンのスケッチノート概要](../../../../../translated_images/ja/lesson-2.324b0580d620c25e0a24fb7fddfc0b29a846dd4b82c08e7a9466d580ee78ce51.jpg) +![このレッスンのスケッチノート概要](../../../../../translated_images/ja/lesson-2.324b0580d620c25e.webp) > スケッチノート作成者: [Nitya Narasimhan](https://github.com/nitya)。画像をクリックすると拡大版が表示されます。 @@ -38,7 +38,7 @@ IoTの**モノ(Thing)**部分は、物理的な世界とやり取りでき これらのデバイスは、センサーを使用して周囲のデータを収集したり、出力やアクチュエータを制御して物理的な変化を引き起こしたりすることで、物理的な世界とやり取りします。典型的な例としては、スマートサーモスタットがあります。このデバイスには温度センサー、ダイヤルやタッチスクリーンなどの希望温度を設定する手段、そして希望温度範囲外の場合に暖房や冷房システムをオンにするための接続が備わっています。温度センサーが部屋が寒すぎることを検知すると、アクチュエータが暖房をオンにします。 -![IoTデバイスへの入力としての温度とダイヤル、出力としてのヒーター制御を示す図](../../../../../translated_images/ja/basic-thermostat.a923217fd1f37e5a6f3390396a65c22a387419ea2dd17e518ec24315ba6ae9a8.png) +![IoTデバイスへの入力としての温度とダイヤル、出力としてのヒーター制御を示す図](../../../../../translated_images/ja/basic-thermostat.a923217fd1f37e5a.webp) IoTデバイスとして機能するものは非常に多岐にわたります。特定の機能に特化したハードウェアから、汎用デバイス、さらにはスマートフォンまで含まれます。スマートフォンは、センサーを使用して周囲の世界を検知し、アクチュエータを使用して世界とやり取りすることができます。例えば、GPSセンサーを使用して位置を検知し、スピーカーを使用して目的地へのナビゲーション指示を提供することができます。 @@ -54,7 +54,7 @@ IoTアプリケーションの**インターネット**側は、IoTデバイス スマートサーモスタットの例では、サーモスタットは家庭のWiFiを使用してクラウド上のクラウドサービスに接続します。このクラウドサービスに温度データを送信し、そこからデータベースに書き込まれ、スマートフォンアプリを使用して現在および過去の温度を確認できるようになります。クラウド内の別のサービスが、ユーザーが希望する温度を把握し、クラウドサービスを介してIoTデバイスにメッセージを送り、暖房システムをオンまたはオフにするよう指示します。 -![IoTデバイスへの入力としての温度とダイヤル、クラウドとの双方向通信、クラウドとスマートフォンとの双方向通信、IoTデバイスからの出力としてのヒーター制御を示す図](../../../../../translated_images/ja/mobile-controlled-thermostat.4a994010473d8d6a52ba68c67e5f02dc8928c717e93ca4b9bc55525aa75bbb60.png) +![IoTデバイスへの入力としての温度とダイヤル、クラウドとの双方向通信、クラウドとスマートフォンとの双方向通信、IoTデバイスからの出力としてのヒーター制御を示す図](../../../../../translated_images/ja/mobile-controlled-thermostat.4a994010473d8d6a.webp) さらにスマートなバージョンでは、クラウド内のAIが、他のIoTデバイスに接続された占有センサー(どの部屋が使用されているかを検知するセンサー)などの他のセンサーからのデータや、天気、さらにはカレンダーのデータを使用して、スマートに温度を設定する意思決定を行うことができます。例えば、カレンダーから休暇中であることを読み取って暖房をオフにしたり、使用する部屋に応じて部屋ごとに暖房をオフにしたりすることができます。このようなデータから学習し、時間とともにますます正確になることができます。 @@ -94,7 +94,7 @@ CPUは、毎秒何百万回または何十億回も刻むクロックに依存 > 💁 CPUは[フェッチ-デコード-実行サイクル](https://wikipedia.org/wiki/Instruction_cycle)を使用してプログラムを実行します。クロックの各刻みで、CPUはメモリから次の命令をフェッチし、それをデコードして実行します。例えば、算術論理ユニット(ALU)を使用して2つの数値を加算するなどです。一部の実行は複数の刻みを必要とするため、次のサイクルは命令が完了した後の次の刻みで実行されます。 -![RAMに保存されたプログラムから命令をフェッチし、それをデコードしてCPUで実行するフェッチ-デコード-実行サイクル](../../../../../translated_images/ja/fetch-decode-execute.2fd6f150f6280392807f4475382319abd0cee0b90058e1735444d6baa6f2078c.png) +![RAMに保存されたプログラムから命令をフェッチし、それをデコードしてCPUで実行するフェッチ-デコード-実行サイクル](../../../../../translated_images/ja/fetch-decode-execute.2fd6f150f6280392.webp) マイクロコントローラーのクロックスピードは、デスクトップやノートパソコン、さらにはほとんどのスマートフォンよりもはるかに低いです。例えば、Wio TerminalのCPUは120MHz、つまり1秒間に120,000,000サイクルで動作します。 @@ -176,7 +176,7 @@ ArduinoボードはCまたはC++でコード化されます。C/C++を使用す `setup`関数にはWiFiやクラウドサービスへの接続、入出力ピンの初期化などのセットアップコードを書きます。`loop`関数にはセンサーから値を読み取り、それをクラウドに送信するなどの処理コードを書きます。通常、各ループの最後に遅延を含めます。例えば、センサーのデータを10秒ごとに送信したい場合、ループの最後に10秒の遅延を追加してマイクロコントローラーをスリープ状態にし、10秒後に再びループを実行します。 -![Arduinoスケッチが最初にsetupを実行し、その後loopを繰り返し実行する様子](../../../../../translated_images/ja/arduino-sketch.79590cb837ff7a7c6a68d1afda6cab83fd53d3bb1bd9a8bf2eaf8d693a4d3ea6.png) +![Arduinoスケッチが最初にsetupを実行し、その後loopを繰り返し実行する様子](../../../../../translated_images/ja/arduino-sketch.79590cb837ff7a7c.webp) ✅ このプログラムアーキテクチャは*イベントループ*または*メッセージループ*として知られています。多くのアプリケーションがこれを内部で使用しており、Windows、macOS、LinuxなどのOSで動作するほとんどのデスクトップアプリケーションの標準です。`loop`はボタンなどのユーザーインターフェースコンポーネントやキーボードなどのデバイスからのメッセージを監視し、それに応答します。この[イベントループに関する記事](https://wikipedia.org/wiki/Event_loop)でさらに詳しく読むことができます。 diff --git a/translations/ja/1-getting-started/lessons/3-sensors-and-actuators/README.md b/translations/ja/1-getting-started/lessons/3-sensors-and-actuators/README.md index fd3cea94c..fd5405af4 100644 --- a/translations/ja/1-getting-started/lessons/3-sensors-and-actuators/README.md +++ b/translations/ja/1-getting-started/lessons/3-sensors-and-actuators/README.md @@ -1,6 +1,6 @@ # センサーとアクチュエーターで物理的な世界と対話する -![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-3.cc3b7b4cd646de598698cce043c0393fd62ef42bac2eaf60e61272cd844250f4.jpg) +![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-3.cc3b7b4cd646de59.webp) > スケッチノート作成者: [Nitya Narasimhan](https://github.com/nitya)。画像をクリックすると拡大表示されます。 @@ -92,7 +92,7 @@ IoTデバイスはデジタルで動作します。つまり、アナログ値 最も単純なデジタルセンサーはボタンやスイッチです。これはオンまたはオフの2つの状態を持つセンサーです。 -![ボタンに5ボルトが送られ、押されていないときは0ボルト、押されたときは5ボルトを返す様子](../../../../../translated_images/ja/button.eadb560b77ac45e56f523d9d8876e40444f63b419e33eb820082d461fa79490b.png) +![ボタンに5ボルトが送られ、押されていないときは0ボルト、押されたときは5ボルトを返す様子](../../../../../translated_images/ja/button.eadb560b77ac45e5.webp) IoTデバイスのGPIOピンなどは、この信号を0または1として直接測定できます。送信された電圧と返された電圧が同じであれば値は1、異なれば値は0となります。この信号を変換する必要はなく、1または0のいずれかしかありません。 @@ -125,7 +125,7 @@ IoTデバイスのGPIOピンなどは、この信号を0または1として直 以下のガイドに従って、センサーで制御されるアクチュエーターをIoTデバイスに追加し、IoTナイトライトを作成してください。このナイトライトは光センサーから光レベルを取得し、光レベルが低すぎる場合にLEDを点灯させます。 -![課題のフローチャート。光レベルを読み取り、チェックし、LEDを制御する流れを示す](../../../../../translated_images/ja/assignment-1-flow.7552a51acb1a5ec858dca6e855cdbb44206434006df8ba3799a25afcdab1665d.png) +![課題のフローチャート。光レベルを読み取り、チェックし、LEDを制御する流れを示す](../../../../../translated_images/ja/assignment-1-flow.7552a51acb1a5ec8.webp) * [Arduino - Wio Terminal](wio-terminal-actuator.md) * [シングルボードコンピュータ - Raspberry Pi](pi-actuator.md) @@ -140,7 +140,7 @@ IoTデバイスのGPIOピンなどは、この信号を0または1として直 アナログアクチュエーターはアナログ信号を受け取り、それを何らかの物理的な相互作用に変換します。この相互作用は供給される電圧によって変化します。 例として、家庭で使用される調光可能なライトがあります。このライトは供給される電圧によって明るさが変わります。 -![低電圧で暗く、高電圧で明るくなるライト](../../../../../translated_images/ja/dimmable-light.9ceffeb195dec1a849da718b2d71b32c35171ff7dfea9c07bbf82646a67acf6b.png) +![低電圧で暗く、高電圧で明るくなるライト](../../../../../translated_images/ja/dimmable-light.9ceffeb195dec1a8.webp) センサーと同様に、実際のIoTデバイスはアナログではなくデジタル信号で動作します。つまり、アナログ信号を送信するには、IoTデバイスにデジタル-アナログ変換器(DAC)が必要です。このDACは、IoTデバイス自体に直接搭載されている場合もあれば、接続ボードに搭載されている場合もあります。これにより、IoTデバイスからの0と1のデジタル信号が、アクチュエータが使用できるアナログ電圧に変換されます。 @@ -187,7 +187,7 @@ IoTデバイスからのデジタル信号をアナログ信号に変換する シンプルなデジタルアクチュエータの一例としてLEDがあります。デバイスがデジタル信号「1」を送信すると、高電圧が送られLEDが点灯します。デジタル信号「0」が送信されると、電圧が0Vに下がりLEDが消灯します。 -![0ボルトで消灯し、5Vで点灯するLED](../../../../../translated_images/ja/led.ec6d94f66676a174ad06d9fa9ea49c2ee89beb18b312d5c6476467c66375b07f.png) +![0ボルトで消灯し、5Vで点灯するLED](../../../../../translated_images/ja/led.ec6d94f66676a174.webp) ✅ 他にどのようなシンプルな2状態のアクチュエータを思いつきますか?一例としてソレノイドがあります。これは電磁石で、ドアのボルトを動かしてロックやアンロックを行うなどの動作をすることができます。 diff --git a/translations/ja/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md b/translations/ja/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md index 0d0bee836..c0dbea1b7 100644 --- a/translations/ja/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md +++ b/translations/ja/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md @@ -26,7 +26,7 @@ Grove LEDは複数のLEDがセットになったモジュールとして提供 LEDを接続します。 -![Grove LED](../../../../../translated_images/ja/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![Grove LED](../../../../../translated_images/ja/grove-led.6c853be93f473cf2.webp) 1. 好きな色のLEDを選び、LEDモジュールの2つの穴に足を差し込みます。 @@ -40,7 +40,7 @@ LEDを接続します。 1. Raspberry Piの電源を切った状態で、Groveケーブルのもう片方の端をPiに接続されたGrove Base hatのデジタルソケット**D5**に接続します。このソケットはGPIOピンの隣にあるソケット列の左から2番目です。 -![D5ソケットに接続されたGrove LED](../../../../../translated_images/ja/pi-led.97f1d474981dc35d1c7996c7b17de355d3d0a6bc9606d79fa5f89df933415122.png) +![D5ソケットに接続されたGrove LED](../../../../../translated_images/ja/pi-led.97f1d474981dc35d.webp) ## ナイトライトをプログラムする diff --git a/translations/ja/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md b/translations/ja/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md index b2ac23771..8e260a4f3 100644 --- a/translations/ja/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md +++ b/translations/ja/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md @@ -16,13 +16,13 @@ 光センサーを接続します。 -![Grove光センサー](../../../../../translated_images/ja/grove-light-sensor.b8127b7c434e632d6bcdb57587a14e9ef69a268a22df95d08628f62b8fa5505c.png) +![Grove光センサー](../../../../../translated_images/ja/grove-light-sensor.b8127b7c434e632d.webp) 1. Groveケーブルの片方の端を光センサーモジュールのソケットに差し込みます。このケーブルは一方向にしか差し込めません。 1. Raspberry Piの電源を切った状態で、Groveケーブルのもう片方の端をPiに取り付けられたGrove Base hatの**A0**と記されたアナログソケットに接続します。このソケットはGPIOピンの隣のソケット列の右から2番目にあります。 -![ソケットA0に接続されたGrove光センサー](../../../../../translated_images/ja/pi-light-sensor.66cc1e31fa48cd7d5f23400d4b2119aa41508275cb7c778053a7923b4e972d7e.png) +![ソケットA0に接続されたGrove光センサー](../../../../../translated_images/ja/pi-light-sensor.66cc1e31fa48cd7d.webp) ## 光センサーをプログラムする diff --git a/translations/ja/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md b/translations/ja/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md index a1388d8ab..dea44ed5a 100644 --- a/translations/ja/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md +++ b/translations/ja/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md @@ -36,11 +36,11 @@ CounterFitアプリにLEDを追加します。 1. **Add**ボタンを選択して、Pin 5にLEDを作成します。 - ![LEDの設定](../../../../../translated_images/ja/counterfit-create-led.ba9db1c9b8c622a635d6dfae5cdc4e70c2b250635bd4f0601c6cf0bd22b7ba46.png) + ![LEDの設定](../../../../../translated_images/ja/counterfit-create-led.ba9db1c9b8c622a6.webp) LEDが作成され、アクチュエータリストに表示されます。 - ![作成されたLED](../../../../../translated_images/ja/counterfit-led.c0ab02de6d256ad84d9bad4d67a7faa709f0ea83e410cfe9b5561ef0cef30b1c.png) + ![作成されたLED](../../../../../translated_images/ja/counterfit-led.c0ab02de6d256ad8.webp) LEDが作成されたら、*Color*ピッカーを使用して色を変更できます。色を選択した後、**Set**ボタンを選択して色を変更します。 diff --git a/translations/ja/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md b/translations/ja/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md index 26197d74f..129839a41 100644 --- a/translations/ja/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md +++ b/translations/ja/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md @@ -28,11 +28,11 @@ CounterFitアプリに光センサーを追加します。 1. **Add**ボタンを選択して、Pin 0に光センサーを作成します。 - ![光センサーの設定](../../../../../translated_images/ja/counterfit-create-light-sensor.9f36a5e0d4458d8d554d54b34d2c806d56093d6e49fddcda2d20f6fef7f5cce1.png) + ![光センサーの設定](../../../../../translated_images/ja/counterfit-create-light-sensor.9f36a5e0d4458d8d.webp) 光センサーが作成され、センサーリストに表示されます。 - ![作成された光センサー](../../../../../translated_images/ja/counterfit-light-sensor.5d0f5584df56b90f6b2561910d9cb20dfbd73eeff2177c238d38f4de54aefae1.png) + ![作成された光センサー](../../../../../translated_images/ja/counterfit-light-sensor.5d0f5584df56b90f.webp) ## 光センサーをプログラムする diff --git a/translations/ja/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md b/translations/ja/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md index ab1514c91..4f817ebd5 100644 --- a/translations/ja/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md +++ b/translations/ja/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md @@ -26,7 +26,7 @@ Grove LEDは複数のLEDがセットになったモジュールとして提供 LEDを接続します。 -![Grove LED](../../../../../translated_images/ja/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) +![Grove LED](../../../../../translated_images/ja/grove-led.6c853be93f473cf2.webp) 1. 好きな色のLEDを選び、LEDモジュールの2つの穴に足を差し込みます。 diff --git a/translations/ja/1-getting-started/lessons/4-connect-internet/README.md b/translations/ja/1-getting-started/lessons/4-connect-internet/README.md index 7876c57d4..1ec3bebb9 100644 --- a/translations/ja/1-getting-started/lessons/4-connect-internet/README.md +++ b/translations/ja/1-getting-started/lessons/4-connect-internet/README.md @@ -1,6 +1,6 @@ # デバイスをインターネットに接続する -![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-4.7344e074ea68fa545fd320b12dce36d72dd62d28c3b4596cb26cf315f434b98f.jpg) +![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-4.7344e074ea68fa54.webp) > スケッチノート作成者: [Nitya Narasimhan](https://github.com/nitya)。画像をクリックすると拡大表示されます。 @@ -47,7 +47,7 @@ MQTTはIoTデバイスに最も人気のある通信プロトコルであり、 MQTTは単一のブローカーと複数のクライアントを持ちます。すべてのクライアントはブローカーに接続し、ブローカーは関連するクライアントにメッセージをルーティングします。メッセージは個々のクライアントに直接送信されるのではなく、名前付きトピックを使用してルーティングされます。クライアントはトピックに公開(パブリッシュ)し、そのトピックを購読(サブスクライブ)しているクライアントがメッセージを受信します。 -![IoTデバイスが/telemetryトピックでテレメトリを公開し、クラウドサービスがそのトピックを購読する](../../../../../translated_images/ja/mqtt.cbf7f21d9adc3e17548b359444cc11bb4bf2010543e32ece9a47becf54438c23.png) +![IoTデバイスが/telemetryトピックでテレメトリを公開し、クラウドサービスがそのトピックを購読する](../../../../../translated_images/ja/mqtt.cbf7f21d9adc3e17.webp) ✅ 調査してみましょう。多くのIoTデバイスがある場合、MQTTブローカーがすべてのメッセージを処理できるようにするにはどうすればよいでしょうか? @@ -69,7 +69,7 @@ MQTTは単一のブローカーと複数のクライアントを持ちます。 > 💁 このテストブローカーは公開されており、安全ではありません。公開する内容を誰でも聞くことができるため、プライベートに保持する必要があるデータには使用しないでください。 -![光レベルを読み取り、チェックし、LEDを制御する課題のフローチャート](../../../../../translated_images/ja/assignment-1-internet-flow.3256feab5f052fd273bf4e331157c574c2c3fa42e479836fc9c3586f41db35a5.png) +![光レベルを読み取り、チェックし、LEDを制御する課題のフローチャート](../../../../../translated_images/ja/assignment-1-internet-flow.3256feab5f052fd2.webp) 以下の手順に従って、デバイスをMQTTブローカーに接続してください: @@ -344,7 +344,7 @@ MQTTで接続喪失を処理するには、デバイスとサーバーコード コマンドは、クラウドからデバイスに送信されるメッセージで、何かを実行するよう指示するものです。多くの場合、アクチュエータを介して何らかの出力を行いますが、デバイス自体に対する指示(例:再起動や追加のテレメトリ収集など)である場合もあります。 -![インターネット接続されたサーモスタットが暖房をオンにするコマンドを受信する様子](../../../../../translated_images/ja/commands.d6c06bbbb3a02cce95f2831a1c331daf6dedd4e470c4aa2b0ae54f332016e504.png) +![インターネット接続されたサーモスタットが暖房をオンにするコマンドを受信する様子](../../../../../translated_images/ja/commands.d6c06bbbb3a02cce.webp) 例えば、サーモスタットはクラウドから暖房をオンにするコマンドを受信することがあります。すべてのセンサーからのテレメトリデータに基づいて、クラウドサービスが暖房をオンにするべきだと判断した場合、関連するコマンドが送信されます。 diff --git a/translations/ja/2-farm/lessons/1-predict-plant-growth/README.md b/translations/ja/2-farm/lessons/1-predict-plant-growth/README.md index 4586592fd..7ba3500bc 100644 --- a/translations/ja/2-farm/lessons/1-predict-plant-growth/README.md +++ b/translations/ja/2-farm/lessons/1-predict-plant-growth/README.md @@ -1,6 +1,6 @@ # IoTで植物の成長を予測する -![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-5.42b234299279d263143148b88ab4583861a32ddb03110c6c1120e41bb88b2592.jpg) +![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-5.42b234299279d263.webp) > スケッチノート作成者:[Nitya Narasimhan](https://github.com/nitya)。画像をクリックすると拡大版が表示されます。 @@ -90,7 +90,7 @@ IoTデバイスを使用して温度を監視するための関連ガイドを GDDの完全な公式は少し複雑ですが、よく使われる簡略化された式があります: -![GDD = T max + T min divided by 2, all minus T base](../../../../../translated_images/ja/gdd-calculation.79b3660f9c5757aa92dc2dd2cdde75344e2d2c1565c4b3151640f7887edc0275.png) +![GDD = T max + T min divided by 2, all minus T base](../../../../../translated_images/ja/gdd-calculation.79b3660f9c5757aa.webp) * **GDD** - これは成長度日の数です * **T max** - これは1日の最高気温(摂氏)です @@ -118,7 +118,7 @@ GDDの完全な公式は少し複雑ですが、よく使われる簡略化さ 計算結果は以下の通りです: -![GDD = 16 + 12 divided by 2, all minus 10, giving an answer of 4](../../../../../translated_images/ja/gdd-calculation-corn.64a58b7a7afcd0dfd46ff733996d939f17f4f3feac9f0d1c632be3523e51ebd9.png) +![GDD = 16 + 12 divided by 2, all minus 10, giving an answer of 4](../../../../../translated_images/ja/gdd-calculation-corn.64a58b7a7afcd0df.webp) この日、トウモロコシは4 GDDを受け取りました。成熟に800 GDDが必要な品種の場合、成熟までにさらに796 GDDが必要です。 @@ -239,7 +239,7 @@ CSVファイルには2つの列があります - *date* と *temperature*。*dat 例えば、その日の最高温度が25°C、最低温度が12°Cの場合: -![GDD = 25 + 12を2で割り、その結果から10を引くと8.5になる](../../../../../translated_images/ja/gdd-calculation-strawberries.59f57db94b22adb8ff6efb951ace33af104a1c6ccca3ffb0f8169c14cb160c90.png) +![GDD = 25 + 12を2で割り、その結果から10を引くと8.5になる](../../../../../translated_images/ja/gdd-calculation-strawberries.59f57db94b22adb8.webp) * 25 + 12 = 37 * 37 / 2 = 18.5 diff --git a/translations/ja/2-farm/lessons/1-predict-plant-growth/assignment.md b/translations/ja/2-farm/lessons/1-predict-plant-growth/assignment.md index 7af8ce849..c0cf7694e 100644 --- a/translations/ja/2-farm/lessons/1-predict-plant-growth/assignment.md +++ b/translations/ja/2-farm/lessons/1-predict-plant-growth/assignment.md @@ -33,7 +33,7 @@ Jupyterが起動し、ブラウザでノートブックが開きます。ノートブック内の指示に従って、測定された温度を可視化し、成長度日(GDD)を計算してください。 - ![Jupyter Notebookの画面](../../../../../translated_images/ja/gdd-jupyter-notebook.c5b52cf21094f158a61f47f455490fd95f1729777ff90861a4521820bf354cdc.png) + ![Jupyter Notebookの画面](../../../../../translated_images/ja/gdd-jupyter-notebook.c5b52cf21094f158.webp) ## 評価基準 diff --git a/translations/ja/2-farm/lessons/1-predict-plant-growth/pi-temp.md b/translations/ja/2-farm/lessons/1-predict-plant-growth/pi-temp.md index c166c8c53..86921819a 100644 --- a/translations/ja/2-farm/lessons/1-predict-plant-growth/pi-temp.md +++ b/translations/ja/2-farm/lessons/1-predict-plant-growth/pi-temp.md @@ -16,13 +16,13 @@ Grove 温度センサーを Raspberry Pi に接続できます。 温度センサーを接続する -![Grove 温度センサー](../../../../../translated_images/ja/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![Grove 温度センサー](../../../../../translated_images/ja/grove-dht11.07f8eafceee17004.webp) 1. Grove ケーブルの片方の端を湿度・温度センサーのソケットに差し込みます。ケーブルは一方向にしか差し込めません。 1. Raspberry Pi の電源を切った状態で、Grove ケーブルのもう一方の端を Pi に接続された Grove Base Hat のデジタルソケット **D5** に接続します。このソケットは GPIO ピンの隣のソケット列の左から 2 番目にあります。 -![ソケット A0 に接続された Grove 温度センサー](../../../../../translated_images/ja/pi-temperature-sensor.3ff82fff672c8e565ef25a39d26d111de006b825a7e0867227ef4e7fbff8553c.png) +![ソケット A0 に接続された Grove 温度センサー](../../../../../translated_images/ja/pi-temperature-sensor.3ff82fff672c8e56.webp) ## 温度センサーをプログラムする diff --git a/translations/ja/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md b/translations/ja/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md index 00dd51148..edb2d8fe6 100644 --- a/translations/ja/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md +++ b/translations/ja/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md @@ -38,11 +38,11 @@ CounterFitアプリに湿度センサーと温度センサーを追加します 1. **Add**ボタンを選択して、Pin 5に湿度センサーを作成します。 - ![湿度センサーの設定](../../../../../translated_images/ja/counterfit-create-humidity-sensor.2750e27b6f30e09cf4e22101defd5252710717620816ab41ba688f91f757c49a.png) + ![湿度センサーの設定](../../../../../translated_images/ja/counterfit-create-humidity-sensor.2750e27b6f30e09c.webp) 湿度センサーが作成され、センサーリストに表示されます。 - ![作成された湿度センサー](../../../../../translated_images/ja/counterfit-humidity-sensor.7b12f7f339e430cb26c8211d2dba4ef75261b353a01da0932698b5bebd693f27.png) + ![作成された湿度センサー](../../../../../translated_images/ja/counterfit-humidity-sensor.7b12f7f339e430cb.webp) 1. 温度センサーを作成します: @@ -54,11 +54,11 @@ CounterFitアプリに湿度センサーと温度センサーを追加します 1. **Add**ボタンを選択して、Pin 6に温度センサーを作成します。 - ![温度センサーの設定](../../../../../translated_images/ja/counterfit-create-temperature-sensor.199350ed34f7343d79dccbe95eaf6c11d2121f03d1c35ab9613b330c23f39b29.png) + ![温度センサーの設定](../../../../../translated_images/ja/counterfit-create-temperature-sensor.199350ed34f7343d.webp) 温度センサーが作成され、センサーリストに表示されます。 - ![作成された温度センサー](../../../../../translated_images/ja/counterfit-temperature-sensor.f0560236c96a9016bafce7f6f792476fe3367bc6941a1f7d5811d144d4bcbfff.png) + ![作成された温度センサー](../../../../../translated_images/ja/counterfit-temperature-sensor.f0560236c96a9016.webp) ## 温度センサーアプリをプログラムする diff --git a/translations/ja/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md b/translations/ja/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md index 5fbbf4965..f74a546b9 100644 --- a/translations/ja/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md +++ b/translations/ja/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md @@ -18,7 +18,7 @@ Grove温度センサーは、Wio Terminalのデジタルポートに接続でき 温度センサーを接続してください。 -![Grove温度センサー](../../../../../translated_images/ja/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) +![Grove温度センサー](../../../../../translated_images/ja/grove-dht11.07f8eafceee17004.webp) 1. Groveケーブルの片方の端を湿度・温度センサーのソケットに差し込みます。このケーブルは一方向にしか差し込めません。 diff --git a/translations/ja/2-farm/lessons/2-detect-soil-moisture/README.md b/translations/ja/2-farm/lessons/2-detect-soil-moisture/README.md index 0522b4394..df8c90d29 100644 --- a/translations/ja/2-farm/lessons/2-detect-soil-moisture/README.md +++ b/translations/ja/2-farm/lessons/2-detect-soil-moisture/README.md @@ -13,7 +13,7 @@ I²Cバスは主に2本の通信線と2本の電源線で構成されていま | VCC | 電圧コモンコレクター | デバイスに電力を供給する線です。プルアップ抵抗を介してSDAとSCL線に電力を供給し、コントローラーが存在しない場合に信号をオフにします。 | | GND | グラウンド | 電気回路の共通グラウンドを提供します。 | -![I2Cバスに接続された3つのデバイスがSDAとSCL線を共有し、共通のグラウンド線を使用している](../../../../../translated_images/ja/i2c.83da845dde02256bdd462dbe0d5145461416b74930571b89d1ae142841eeb584.png) +![I2Cバスに接続された3つのデバイスがSDAとSCL線を共有し、共通のグラウンド線を使用している](../../../../../translated_images/ja/i2c.83da845dde02256b.webp) データを送信するには、1つのデバイスが開始条件を発行してデータ送信の準備ができたことを示します。このデバイスがコントローラーになります。コントローラーは通信したいデバイスのアドレスと、データを読み取るか書き込むかを指定して送信します。データ送信が完了すると、コントローラーは終了条件を発行して送信が終了したことを示します。その後、別のデバイスがコントローラーとなり、データを送受信することができます。 diff --git a/translations/ja/2-farm/lessons/2-detect-soil-moisture/assignment.md b/translations/ja/2-farm/lessons/2-detect-soil-moisture/assignment.md index 496de2459..ecb0e8123 100644 --- a/translations/ja/2-farm/lessons/2-detect-soil-moisture/assignment.md +++ b/translations/ja/2-farm/lessons/2-detect-soil-moisture/assignment.md @@ -20,14 +20,14 @@ 重力式土壌水分は以下の式で計算されます: -![土壌水分%は湿った状態の重さから乾いた状態の重さを引き、乾いた状態の重さで割り、100を掛ける](../../../../../translated_images/ja/gsm-calculation.6da38c6201eec14e7573bb2647aa18892883193553d23c9d77e5dc681522dfb2.png) +![土壌水分%は湿った状態の重さから乾いた状態の重さを引き、乾いた状態の重さで割り、100を掛ける](../../../../../translated_images/ja/gsm-calculation.6da38c6201eec14e.webp) * W - 湿った土壌の重さ * W - 乾いた土壌の重さ 例えば、湿った状態で212g、乾いた状態で197gの土壌サンプルがあるとします。 -![計算例](../../../../../translated_images/ja/gsm-calculation-example.99f9803b4f29e97668e7c15412136c0c399ab12dbba0b89596fdae9d8aedb6fb.png) +![計算例](../../../../../translated_images/ja/gsm-calculation-example.99f9803b4f29e976.webp) * W = 212g * W = 197g diff --git a/translations/ja/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md b/translations/ja/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md index 7f0ff4008..2da880cf7 100644 --- a/translations/ja/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md +++ b/translations/ja/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md @@ -18,13 +18,13 @@ Grove 土壌水分センサーを Raspberry Pi に接続できます。 土壌水分センサーを接続します。 -![Grove 土壌水分センサー](../../../../../translated_images/ja/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![Grove 土壌水分センサー](../../../../../translated_images/ja/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. Grove ケーブルの片方の端を土壌水分センサーのソケットに差し込みます。このケーブルは一方向にしか差し込めません。 1. Raspberry Pi の電源を切った状態で、Grove ケーブルのもう一方の端を Pi に取り付けられた Grove Base Hat のアナログソケット **A0** に接続します。このソケットは、GPIO ピンの隣のソケット列の右から2番目にあります。 -![A0 ソケットに接続された Grove 土壌水分センサー](../../../../../translated_images/ja/pi-soil-moisture-sensor.fdd7eb2393792cf6739cacf1985d9f55beda16d372f30d0b5a51d586f978a870.png) +![A0 ソケットに接続された Grove 土壌水分センサー](../../../../../translated_images/ja/pi-soil-moisture-sensor.fdd7eb2393792cf6.webp) 1. 土壌水分センサーを土に挿します。センサーには「最高挿入ライン」があり、白い線で示されています。このラインまで(ラインを超えないように)センサーを挿入します。 diff --git a/translations/ja/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md b/translations/ja/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md index 79d1895ef..eadba528b 100644 --- a/translations/ja/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md +++ b/translations/ja/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md @@ -34,11 +34,11 @@ CounterFitアプリに土壌水分センサーを追加します。 1. **Add**ボタンを選択して、Pin 0に*Soil Moisture*センサーを作成します。 - ![土壌水分センサーの設定](../../../../../translated_images/ja/counterfit-create-soil-moisture-sensor.35266135a5e0ae68b29a684d7db0d2933a8098b2307d197f7c71577b724603aa.png) + ![土壌水分センサーの設定](../../../../../translated_images/ja/counterfit-create-soil-moisture-sensor.35266135a5e0ae68.webp) 土壌水分センサーが作成され、センサーリストに表示されます。 - ![作成された土壌水分センサー](../../../../../translated_images/ja/counterfit-soil-moisture-sensor.81742b2de0e9de60a3b3b9a2ff8ecc686d428eb6d71820f27a693be26e5aceee.png) + ![作成された土壌水分センサー](../../../../../translated_images/ja/counterfit-soil-moisture-sensor.81742b2de0e9de60.webp) ## 土壌水分センサーアプリをプログラムする diff --git a/translations/ja/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md b/translations/ja/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md index 52549dfdb..5e3d0db66 100644 --- a/translations/ja/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md +++ b/translations/ja/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md @@ -18,7 +18,7 @@ Grove土壌水分センサーは、Wio Terminalのアナログ/デジタルポ 土壌水分センサーを接続します。 -![Grove土壌水分センサー](../../../../../translated_images/ja/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) +![Grove土壌水分センサー](../../../../../translated_images/ja/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) 1. Groveケーブルの片方の端を土壌水分センサーのソケットに差し込みます。このケーブルは一方向にしか差し込めません。 diff --git a/translations/ja/2-farm/lessons/3-automated-plant-watering/README.md b/translations/ja/2-farm/lessons/3-automated-plant-watering/README.md index 2d64306ab..3f3ce92bd 100644 --- a/translations/ja/2-farm/lessons/3-automated-plant-watering/README.md +++ b/translations/ja/2-farm/lessons/3-automated-plant-watering/README.md @@ -1,6 +1,6 @@ # 自動植物灌水 -![このレッスンの概要をスケッチノートで表した画像](../../../../../translated_images/ja/lesson-7.30b5f577d3cb8e031238751475cb519c7d6dbaea261b5df4643d086ffb2a03bb.jpg) +![このレッスンの概要をスケッチノートで表した画像](../../../../../translated_images/ja/lesson-7.30b5f577d3cb8e03.webp) > スケッチノート作成者:[Nitya Narasimhan](https://github.com/nitya)。画像をクリックすると拡大表示されます。 @@ -32,7 +32,7 @@ IoTデバイスは低電圧を使用します。この電圧はセンサーやLE この問題を解決するには、ポンプを外部電源に接続し、アクチュエーターを使用してポンプをオンにする必要があります。これは、指でスイッチを押してライトをオンにするのと似ています。指を動かすのに必要なエネルギーはわずかですが、これにより110V/240Vの電力が流れるライトが接続されます。 -![ライトスイッチがライトに電力を供給する様子](../../../../../translated_images/ja/light-switch.760317ad6ab8bd6d611da5352dfe9c73a94a0822ccec7df3c8bae35da18e1658.png) +![ライトスイッチがライトに電力を供給する様子](../../../../../translated_images/ja/light-switch.760317ad6ab8bd6d.webp) > 🎓 [家庭用電力](https://wikipedia.org/wiki/Mains_electricity)は、世界の多くの地域で国のインフラを通じて家庭や事業所に供給される電力を指します。 @@ -72,7 +72,7 @@ IoTデバイスは低電圧を使用します。この電圧はセンサーやLE 電磁石がレバーを引くために必要な電力は少なく、IoT開発キットの3.3Vまたは5V出力で制御できます。出力回路はリレーによってはるかに多くの電力を供給でき、家庭用電圧や産業用のさらに高い電力レベルを含む場合もあります。このようにして、IoT開発キットは小型の植物用ポンプから商業農場全体の大規模な産業システムまで灌水システムを制御できます。 -![制御回路、出力回路、リレーがラベル付けされたGroveリレー](../../../../../translated_images/ja/grove-relay-labelled.293e068f5c3c2a199bd7892f2661fdc9e10c920b535cfed317fbd6d1d4ae1168.png) +![制御回路、出力回路、リレーがラベル付けされたGroveリレー](../../../../../translated_images/ja/grove-relay-labelled.293e068f5c3c2a19.webp) 上の画像はGroveリレーを示しています。制御回路はIoTデバイスに接続され、3.3Vまたは5Vを使用してリレーをオンまたはオフにします。出力回路には2つの端子があり、どちらも電源またはグランドとして使用できます。出力回路は最大250Vで10Aまで対応可能で、さまざまな家庭用電力デバイスに十分です。さらに高い電力レベルに対応するリレーも入手可能です。 diff --git a/translations/ja/2-farm/lessons/3-automated-plant-watering/pi-relay.md b/translations/ja/2-farm/lessons/3-automated-plant-watering/pi-relay.md index 259631935..204cb229c 100644 --- a/translations/ja/2-farm/lessons/3-automated-plant-watering/pi-relay.md +++ b/translations/ja/2-farm/lessons/3-automated-plant-watering/pi-relay.md @@ -18,13 +18,13 @@ GroveリレーをRaspberry Piに接続します。 リレーを接続します。 -![Groveリレー](../../../../../translated_images/ja/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) +![Groveリレー](../../../../../translated_images/ja/grove-relay.d426958ca210fbd0.webp) 1. Groveケーブルの片方の端をリレーのソケットに差し込みます。ケーブルは一方向にしか差し込めません。 1. Raspberry Piの電源を切った状態で、Groveケーブルのもう一方の端をPiに接続されたGrove Base Hatのデジタルソケット**D5**に接続します。このソケットは、GPIOピンの隣のソケット列の左から2番目にあります。土壌湿度センサーは**A0**ソケットに接続したままにしておきます。 -![D5ソケットに接続されたGroveリレーと、A0ソケットに接続された土壌湿度センサー](../../../../../translated_images/ja/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e69ec716cd2719ce117700bd1fc933eaf93476c103c57939b.png) +![D5ソケットに接続されたGroveリレーと、A0ソケットに接続された土壌湿度センサー](../../../../../translated_images/ja/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e.webp) 1. 前のレッスンで既に土壌湿度センサーを土に挿していない場合は、土壌湿度センサーを土に挿します。 diff --git a/translations/ja/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md b/translations/ja/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md index 2a49f3a14..71cca81ea 100644 --- a/translations/ja/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md +++ b/translations/ja/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md @@ -28,11 +28,11 @@ CounterFitアプリにリレーを追加します。 1. **Add**ボタンを選択して、Pin 5にリレーを作成します。 - ![リレーの設定](../../../../../translated_images/ja/counterfit-create-relay.fa7c40fd0f2f6afc33b35ea94fcb235085be4861e14e3fe6b9b7bcfc82d1c888.png) + ![リレーの設定](../../../../../translated_images/ja/counterfit-create-relay.fa7c40fd0f2f6afc.webp) リレーが作成され、アクチュエータリストに表示されます。 - ![作成されたリレー](../../../../../translated_images/ja/counterfit-relay.bbf74c1dbdc8b9acd983367fcbd06703a402aefef6af54ddb28e11307ba8a12c.png) + ![作成されたリレー](../../../../../translated_images/ja/counterfit-relay.bbf74c1dbdc8b9ac.webp) ## リレーをプログラムする diff --git a/translations/ja/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md b/translations/ja/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md index 45e0f8864..2599fcfee 100644 --- a/translations/ja/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md +++ b/translations/ja/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md @@ -18,7 +18,7 @@ GroveリレーはWio Terminalのデジタルポートに接続できます。 リレーを接続してください。 -![Groveリレー](../../../../../translated_images/ja/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) +![Groveリレー](../../../../../translated_images/ja/grove-relay.d426958ca210fbd0.webp) 1. Groveケーブルの一端をリレーのソケットに差し込みます。ケーブルは一方向にしか差し込めません。 diff --git a/translations/ja/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md b/translations/ja/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md index e73cf8e7b..1bd1cfa5a 100644 --- a/translations/ja/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md +++ b/translations/ja/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md @@ -1,6 +1,6 @@ # 植物をクラウドに移行する -![このレッスンのスケッチノート概要](../../../../../translated_images/ja/lesson-8.3f21f3c11159e6a0a376351973ea5724d5de68fa23b4288853a174bed9ac48c3.jpg) +![このレッスンのスケッチノート概要](../../../../../translated_images/ja/lesson-8.3f21f3c11159e6a0.webp) > スケッチノート作成者:[Nitya Narasimhan](https://github.com/nitya)。画像をクリックすると拡大版が表示されます。 @@ -46,8 +46,8 @@ IoTデバイスは、原則を示すためにパブリックMQTTブローカー クラウドはしばしば「他人のコンピュータ」と冗談めかして呼ばれます。最初のアイデアはシンプルでした。コンピュータを購入する代わりに、他人のコンピュータを借りるのです。クラウドコンピューティングプロバイダーが巨大なデータセンターを管理します。彼らはハードウェアの購入とインストール、電力と冷却の管理、ネットワーキング、建物のセキュリティ、ハードウェアとソフトウェアの更新など、すべてを担当します。顧客としては、必要なコンピュータをレンタルし、需要が急増したときにレンタルを増やし、需要が減少したときにレンタルを減らすことができます。これらのクラウドデータセンターは世界中に存在します。 -![Microsoftクラウドデータセンター](../../../../../translated_images/ja/azure-region-existing.73f704604f2aa6cb9b5a49ed40e93d4fd81ae3f4e6af4a8ca504023902832f56.png) -![Microsoftクラウドデータセンターの計画中の拡張](../../../../../translated_images/ja/azure-region-planned-expansion.a5074a1e8af74f156a73552d502429e5b126ea5019274d767ecb4b9afdad442b.png) +![Microsoftクラウドデータセンター](../../../../../translated_images/ja/azure-region-existing.73f704604f2aa6cb.webp) +![Microsoftクラウドデータセンターの計画中の拡張](../../../../../translated_images/ja/azure-region-planned-expansion.a5074a1e8af74f15.webp) これらのデータセンターは数平方キロメートルの広さになることがあります。上記の画像は数年前にMicrosoftクラウドデータセンターで撮影されたもので、初期の規模と計画中の拡張を示しています。拡張のためにクリアされたエリアは5平方キロメートル以上です。 @@ -108,11 +108,11 @@ AzureはMicrosoftの開発者向けクラウドであり、このレッスンで IoTデバイスは、デバイスSDK(サービスの機能を操作するためのコードを提供するライブラリ)を使用して、またはMQTTやHTTPなどの通信プロトコルを介して直接クラウドサービスに接続します。デバイスSDKは通常、最も簡単なルートであり、公開するトピックや購読するトピック、セキュリティの処理方法などをすべて自動的に処理します。 -![デバイスはデバイスSDKを使用してサービスに接続します。サーバーコードもSDKを介してサービスに接続します](../../../../../translated_images/ja/iot-service-connectivity.7e873847921a5d6fd60d0ba3a943210194518cee0d4e362476624316443275c3.png) +![デバイスはデバイスSDKを使用してサービスに接続します。サーバーコードもSDKを介してサービスに接続します](../../../../../translated_images/ja/iot-service-connectivity.7e873847921a5d6f.webp) デバイスはその後、他のアプリケーションコンポーネントとこのサービスを介して通信します。これは、以前にMQTTを介してテレメトリを送信し、コマンドを受信した方法に似ています。通常、サービスSDKや類似のライブラリを使用します。メッセージはデバイスからサービスに送信され、アプリケーションの他のコンポーネントがそれを読み取ることができ、メッセージをデバイスに送り返すこともできます。 -![有効な秘密鍵を持たないデバイスはIoTサービスに接続できません](../../../../../translated_images/ja/iot-service-allowed-denied-connection.818b0063ac213fb84204a7229303764d9b467ca430fb822b4ac2fca267d56726.png) +![有効な秘密鍵を持たないデバイスはIoTサービスに接続できません](../../../../../translated_images/ja/iot-service-allowed-denied-connection.818b0063ac213fb8.webp) これらのサービスは、接続してデータを送信できるすべてのデバイスを知ることでセキュリティを実現します。これは、デバイスを事前にサービスに登録するか、デバイスに秘密鍵や証明書を与えて、初回接続時にサービスに自分自身を登録できるようにすることで行われます。未知のデバイスは接続できず、接続を試みてもサービスは接続を拒否し、送信されたメッセージを無視します。 @@ -124,7 +124,7 @@ IoTデバイスは、デバイスSDK(サービスの機能を操作するた Azureサブスクリプションを取得したら、IoTサービスに登録できます。MicrosoftのIoTサービスはAzure IoT Hubと呼ばれています。 -![Azure IoT Hubのロゴ](../../../../../translated_images/ja/azure-iot-hub-logo.28a19de76d0a1932464d858f7558712bcdace3e5ec69c434d482ed7ce41c3a26.png) +![Azure IoT Hubのロゴ](../../../../../translated_images/ja/azure-iot-hub-logo.28a19de76d0a1932.webp) 以下の動画では、Azure IoT Hubの概要を簡単に説明しています: diff --git a/translations/ja/2-farm/lessons/5-migrate-application-to-the-cloud/README.md b/translations/ja/2-farm/lessons/5-migrate-application-to-the-cloud/README.md index 20a8de391..e924cf781 100644 --- a/translations/ja/2-farm/lessons/5-migrate-application-to-the-cloud/README.md +++ b/translations/ja/2-farm/lessons/5-migrate-application-to-the-cloud/README.md @@ -1,6 +1,6 @@ # アプリケーションロジックをクラウドに移行する -![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-9.dfe99c8e891f48e179724520da9f5794392cf9a625079281ccdcbf09bd85e1b6.jpg) +![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-9.dfe99c8e891f48e1.webp) > スケッチノート作成者:[Nitya Narasimhan](https://github.com/nitya)。画像をクリックすると拡大版が表示されます。 @@ -28,7 +28,7 @@ サーバーレス、またはサーバーレスコンピューティングとは、さまざまな種類のイベントに応じてクラウドで実行される小さなコードブロックを作成することを指します。イベントが発生するとコードが実行され、そのイベントに関するデータが渡されます。これらのイベントは、Webリクエスト、キューに置かれたメッセージ、データベース内のデータの変更、またはIoTデバイスからIoTサービスに送信されたメッセージなど、さまざまなものから発生します。 -![IoTサービスからサーバーレスサービスに送信されるイベントが、複数の関数によって同時に処理される様子](../../../../../translated_images/ja/iot-messages-to-serverless.0194da1cc0732bb7d0f823aed3fce54735c6b1ad3bf36089804d8aaefc0a774f.png) +![IoTサービスからサーバーレスサービスに送信されるイベントが、複数の関数によって同時に処理される様子](../../../../../translated_images/ja/iot-messages-to-serverless.0194da1cc0732bb7.webp) > 💁 以前にデータベーストリガーを使用したことがある場合、これは同じようなものと考えられます。例えば、行を挿入するなどのイベントによってコードがトリガーされます。 @@ -54,7 +54,7 @@ IoT開発者にとって、サーバーレスモデルは理想的です。ク MicrosoftのサーバーレスコンピューティングサービスはAzure Functionsと呼ばれます。 -![Azure Functionsのロゴ](../../../../../translated_images/ja/azure-functions-logo.1cfc8e3204c9c44aaf80fcf406fc8544d80d7f00f8d3e8ed6fed764563e17564.png) +![Azure Functionsのロゴ](../../../../../translated_images/ja/azure-functions-logo.1cfc8e3204c9c44a.webp) 以下の短いビデオでは、Azure Functionsの概要を説明しています。 diff --git a/translations/ja/2-farm/lessons/6-keep-your-plant-secure/README.md b/translations/ja/2-farm/lessons/6-keep-your-plant-secure/README.md index 6750bba6d..071b39e30 100644 --- a/translations/ja/2-farm/lessons/6-keep-your-plant-secure/README.md +++ b/translations/ja/2-farm/lessons/6-keep-your-plant-secure/README.md @@ -1,6 +1,6 @@ # 植物を安全に保つ方法 -![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-10.829c86b80b9403bb770929ee553a1d293afe50dc23121aaf9be144673ae012cc.jpg) +![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-10.829c86b80b9403bb.webp) > スケッチノート作成者:[Nitya Narasimhan](https://github.com/nitya)。画像をクリックすると拡大表示されます。 @@ -52,11 +52,11 @@ IoTアプリケーションが安全でない場合、以下のようなリス デバイスがIoTサービスに接続する際、IDを使用して自分自身を識別します。しかし、このIDは複製される可能性があります。ハッカーが悪意のあるデバイスを設定し、実際のデバイスと同じIDを使用して偽のデータを送信することができます。 -![有効なデバイスと悪意のあるデバイスが同じIDを使用してテレメトリを送信する可能性があります](../../../../../translated_images/ja/iot-device-and-hacked-device-connecting.e0671675df74d6d99eb1dedb5a670e606f698efa6202b1ad4c8ae548db299cc6.png) +![有効なデバイスと悪意のあるデバイスが同じIDを使用してテレメトリを送信する可能性があります](../../../../../translated_images/ja/iot-device-and-hacked-device-connecting.e0671675df74d6d9.webp) これを防ぐ方法は、送信されるデータをデバイスとクラウドだけが知っている値を使用して暗号化することです。このプロセスは「暗号化」と呼ばれ、データを暗号化するために使用される値は「暗号鍵」と呼ばれます。 -![暗号化が使用される場合、暗号化されたメッセージのみが受け入れられ、その他は拒否されます](../../../../../translated_images/ja/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f979e46f2849b573564eeb4a4dc5b52f669f62745397492fb.png) +![暗号化が使用される場合、暗号化されたメッセージのみが受け入れられ、その他は拒否されます](../../../../../translated_images/ja/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f.webp) クラウドサービスは、暗号化されたデータを読み取り可能な形式に変換するために「復号化」と呼ばれるプロセスを使用します。この際、暗号化鍵または復号化鍵を使用します。暗号化されたメッセージが鍵によって復号化できない場合、デバイスがハッキングされていると判断され、メッセージは拒否されます。 diff --git a/translations/ja/3-transport/lessons/1-location-tracking/README.md b/translations/ja/3-transport/lessons/1-location-tracking/README.md index 14ce75cfc..55b3d1b45 100644 --- a/translations/ja/3-transport/lessons/1-location-tracking/README.md +++ b/translations/ja/3-transport/lessons/1-location-tracking/README.md @@ -1,6 +1,6 @@ # 位置追跡 -![このレッスンの概要をスケッチノートで表した画像](../../../../../translated_images/ja/lesson-11.9fddbac4b664c6d50ab7ac9bb32f1fc3f945f03760e72f7f43938073762fb017.jpg) +![このレッスンの概要をスケッチノートで表した画像](../../../../../translated_images/ja/lesson-11.9fddbac4b664c6d5.webp) > スケッチノート作成者:[Nitya Narasimhan](https://github.com/nitya)。画像をクリックすると拡大表示されます。 @@ -63,13 +63,13 @@ IoTは、*接続された車両*の車両群を作り出すことで、物資の > 💁 円が360度に分割される理由は正確には分かっていません。[Wikipediaの「角度 (度)」のページ](https://wikipedia.org/wiki/Degree_(angle))では、いくつかの可能性について説明されています。 -![北極で90°、北極と赤道の中間で45°、赤道で0°、赤道と南極の中間で-45°、南極で-90°の緯度線](../../../../../translated_images/ja/latitude-lines.11d8d91dfb2014a57437272d7db7fd6607243098e8685f06e0c5f1ec984cb7eb.png) +![北極で90°、北極と赤道の中間で45°、赤道で0°、赤道と南極の中間で-45°、南極で-90°の緯度線](../../../../../translated_images/ja/latitude-lines.11d8d91dfb2014a5.webp) 緯度は、地球を赤道に平行に走る線で分割し、北半球と南半球をそれぞれ90°に分割して測定します。赤道は0°、北極は90°(90°北とも呼ばれる)、南極は-90°(90°南とも呼ばれる)です。 経度は、東西の度数を測定します。経度の0°の起点は*本初子午線*と呼ばれ、1884年にイギリス・グリニッジの[王立天文台](https://wikipedia.org/wiki/Royal_Observatory,_Greenwich)を通る北極から南極への線として定義されました。 -![本初子午線の西側で-180°から0°、本初子午線で0°、本初子午線の東側で180°までの経度線](../../../../../translated_images/ja/longitude-meridians.ab4ef1c91c064586b0185a3c8d39e585903696c6a7d28c098a93a629cddb5d20.png) +![本初子午線の西側で-180°から0°、本初子午線で0°、本初子午線の東側で180°までの経度線](../../../../../translated_images/ja/longitude-meridians.ab4ef1c91c064586.webp) > 🎓 子午線とは、北極から南極までの直線で、半円を形成する仮想の線です。 @@ -100,7 +100,7 @@ IoTは、*接続された車両*の車両群を作り出すことで、物資の * 緯度は47.6423109(赤道から北に47.6423109度) * 経度は-122.1390293(本初子午線から西に122.1390293度) -![マイクロソフトキャンパスの位置:47.6423109,-122.117198](../../../../../translated_images/ja/microsoft-gps-location-world.a321d481b010f6adfcca139b2ba0adc53b79f58a540495b8e2ce7f779ea64bfe.png) +![マイクロソフトキャンパスの位置:47.6423109,-122.117198](../../../../../translated_images/ja/microsoft-gps-location-world.a321d481b010f6ad.webp) ## 全地球測位システム (GPS) @@ -112,7 +112,7 @@ GPSシステムは、複数の衛星が現在の位置と正確なタイムス > 💁 GPSセンサーは電波を検出するためにアンテナが必要です。車両やトラックに搭載されたオンボードGPSのアンテナは、通常、フロントガラスや屋根に設置され、良好な信号を受信できるようになっています。スマートフォンやIoTデバイスなどの外部GPSシステムを使用する場合は、GPSシステムやスマートフォンに内蔵されたアンテナが空を見渡せる位置にあることを確認する必要があります。例えば、フロントガラスに取り付けるなどです。 -![センサーから複数の衛星までの距離を知ることで位置を計算する](../../../../../translated_images/ja/gps-satellites.04acf1148fe25fbf1586bc2e8ba698e8d79b79a50c36824b38417dd13372b90f.png) +![センサーから複数の衛星までの距離を知ることで位置を計算する](../../../../../translated_images/ja/gps-satellites.04acf1148fe25fbf.webp) GPS衛星は地球を周回しており、センサーの真上に固定されているわけではないため、位置データには緯度と経度だけでなく海抜高度も含まれます。 diff --git a/translations/ja/3-transport/lessons/1-location-tracking/pi-gps-sensor.md b/translations/ja/3-transport/lessons/1-location-tracking/pi-gps-sensor.md index 4f617abf0..29f2b62dc 100644 --- a/translations/ja/3-transport/lessons/1-location-tracking/pi-gps-sensor.md +++ b/translations/ja/3-transport/lessons/1-location-tracking/pi-gps-sensor.md @@ -18,13 +18,13 @@ Grove GPSセンサーはRaspberry Piに接続できます。 GPSセンサーを接続します。 -![Grove GPSセンサー](../../../../../translated_images/ja/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![Grove GPSセンサー](../../../../../translated_images/ja/grove-gps-sensor.247943bf69b03f0d.webp) 1. Groveケーブルの片方の端をGPSセンサーのソケットに差し込みます。ケーブルは一方向にしか差し込めません。 1. Raspberry Piの電源を切った状態で、Groveケーブルのもう片方の端を、Piに取り付けられたGrove Base Hatの**UART**と記されたUARTソケットに接続します。このソケットはSDカードスロットに近い側の中央列にあり、USBポートやイーサネットソケットの反対側に位置しています。 - ![UARTソケットに接続されたGrove GPSセンサー](../../../../../translated_images/ja/pi-gps-sensor.1f99ee2b2f6528915047ec78967bd362e0e4ee0ed594368a3837b9cf9cdaca64.png) + ![UARTソケットに接続されたGrove GPSセンサー](../../../../../translated_images/ja/pi-gps-sensor.1f99ee2b2f652891.webp) 1. GPSセンサーを配置し、接続されたアンテナが空を見渡せる位置に置きます。理想的には窓の近くや屋外に置くと良いです。アンテナに障害物がない方が信号を受信しやすくなります。 diff --git a/translations/ja/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md b/translations/ja/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md index 4b3a7599e..e2091407c 100644 --- a/translations/ja/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md +++ b/translations/ja/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md @@ -38,11 +38,11 @@ CounterFitアプリにGPSセンサーを追加します。 1. **Add**ボタンを選択して、ポート`/dev/ttyAMA0`にGPSセンサーを作成します。 - ![GPSセンサーの設定](../../../../../translated_images/ja/counterfit-create-gps-sensor.6385dc9357d85ad1d47b4abb2525e7651fd498917d25eefc5a72feab09eedc70.png) + ![GPSセンサーの設定](../../../../../translated_images/ja/counterfit-create-gps-sensor.6385dc9357d85ad1.webp) GPSセンサーが作成され、センサーリストに表示されます。 - ![作成されたGPSセンサー](../../../../../translated_images/ja/counterfit-gps-sensor.3fbb15af0a5367566f2f11324ef5a6f30861cdf2b497071a5e002b7aa473550e.png) + ![作成されたGPSセンサー](../../../../../translated_images/ja/counterfit-gps-sensor.3fbb15af0a536756.webp) ## GPSセンサーをプログラムする @@ -102,17 +102,17 @@ GPSセンサーアプリをプログラムします。 * **Source**を`Lat/Lon`に設定し、明示的な緯度、経度、およびGPS固定に使用される衛星の数を設定します。この値は一度だけ送信されるため、データを毎秒繰り返すには**Repeat**ボックスをチェックします。 - ![緯度経度が選択されたGPSセンサー](../../../../../translated_images/ja/counterfit-gps-sensor-latlon.008c867d75464fbe7f84107cc57040df565ac07cb57d2f21db37d087d470197d.png) + ![緯度経度が選択されたGPSセンサー](../../../../../translated_images/ja/counterfit-gps-sensor-latlon.008c867d75464fbe.webp) * **Source**を`NMEA`に設定し、NMEA文をテキストボックスに追加します。これらの値はすべて送信され、各新しいGGA(位置固定)文が読み取られる前に1秒の遅延があります。 - ![NMEA文が設定されたGPSセンサー](../../../../../translated_images/ja/counterfit-gps-sensor-nmea.c62eea442171e17e19528b051b104cfcecdc9cd18db7bc72920f29821ae63f73.png) + ![NMEA文が設定されたGPSセンサー](../../../../../translated_images/ja/counterfit-gps-sensor-nmea.c62eea442171e17e.webp) [nmeagen.org](https://www.nmeagen.org)のようなツールを使用して、地図上で描画してこれらの文を生成できます。これらの値は一度だけ送信されるため、すべて送信された後に1秒間隔でデータを繰り返すには**Repeat**ボックスをチェックします。 * **Source**をGPXファイルに設定し、トラック位置を含むGPXファイルをアップロードします。[AllTrails](https://www.alltrails.com/)のような人気のある地図やハイキングサイトからGPXファイルをダウンロードできます。これらのファイルにはトレイルとして複数のGPS位置が含まれており、GPSセンサーは1秒間隔で各新しい位置を返します。 - ![GPXファイルが設定されたGPSセンサー](../../../../../translated_images/ja/counterfit-gps-sensor-gpxfile.8310b063ce8a425ccc8ebeec8306aeac5e8e55207f007d52c6e1194432a70cd9.png) + ![GPXファイルが設定されたGPSセンサー](../../../../../translated_images/ja/counterfit-gps-sensor-gpxfile.8310b063ce8a425c.webp) これらの値は一度だけ送信されるため、すべて送信された後に1秒間隔でデータを繰り返すには**Repeat**ボックスをチェックします。 diff --git a/translations/ja/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md b/translations/ja/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md index 20f0e7b26..0d7aeb681 100644 --- a/translations/ja/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md +++ b/translations/ja/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md @@ -18,7 +18,7 @@ Grove GPSセンサーはWio Terminalに接続できます。 GPSセンサーを接続します。 -![Grove GPSセンサー](../../../../../translated_images/ja/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) +![Grove GPSセンサー](../../../../../translated_images/ja/grove-gps-sensor.247943bf69b03f0d.webp) 1. Groveケーブルの片方の端をGPSセンサーのソケットに差し込みます。ケーブルは一方向にしか差し込めません。 diff --git a/translations/ja/3-transport/lessons/2-store-location-data/README.md b/translations/ja/3-transport/lessons/2-store-location-data/README.md index d78596dae..a5548f2b9 100644 --- a/translations/ja/3-transport/lessons/2-store-location-data/README.md +++ b/translations/ja/3-transport/lessons/2-store-location-data/README.md @@ -1,6 +1,6 @@ # 店舗位置データ -![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-12.ca7f53039712a3ec14ad6474d8445361c84adab643edc53fa6269b77895606bb.jpg) +![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-12.ca7f53039712a3ec.webp) > スケッチノート作成者:[Nitya Narasimhan](https://github.com/nitya)。画像をクリックすると拡大表示されます。 @@ -75,7 +75,7 @@ NoSQLデータベースは、SQLデータベースのような固定された構 > 💁 名前に反して、一部のNoSQLデータベースではSQLを使用してデータをクエリすることができます。 -![NoSQLデータベース内のフォルダに格納された文書](../../../../../translated_images/ja/noqsl-database.62d24ccf5b73f60d35c245a8533f1c7147c0928e955b82cb290b2e184bb434df.png) +![NoSQLデータベース内のフォルダに格納された文書](../../../../../translated_images/ja/noqsl-database.62d24ccf5b73f60d.webp) NoSQLデータベースには事前定義されたスキーマがなく、データの保存方法に制限がありません。通常、JSON文書を使用して非構造化データを挿入します。これらの文書はコンピューター上のファイルのようにフォルダに整理することができます。各文書は他の文書と異なるフィールドを持つことができます。例えば、農場車両のIoTデータを保存する場合、加速度計や速度データのフィールドを持つものもあれば、トレーラー内の温度データのフィールドを持つものもあります。新しいトラックタイプを追加する場合、例えば内蔵スケールで運搬する荷物の重量を追跡する場合、IoTデバイスはこの新しいフィールドを追加し、データベースに変更を加えることなく保存することができます。 @@ -89,7 +89,7 @@ NoSQLデータベースには事前定義されたスキーマがなく、デー 前回のレッスンでは、IoTデバイスに接続されたGPSセンサーからGPSデータを取得しました。このIoTデータをクラウドに保存するには、IoTサービスに送信する必要があります。今回も前回のプロジェクトで使用したAzure IoT Hubを使用します。 -![IoTデバイスからIoT HubにGPSテレメトリを送信する](../../../../../translated_images/ja/gps-telemetry-iot-hub.8115335d51cd2c1285d20e9d1b18cf685e59a8e093e7797291ef173445af6f3d.png) +![IoTデバイスからIoT HubにGPSテレメトリを送信する](../../../../../translated_images/ja/gps-telemetry-iot-hub.8115335d51cd2c12.webp) ### タスク - GPSデータをIoT Hubに送信する @@ -171,7 +171,7 @@ IoTデバイスからクラウドに流れるデータは、必ずしもリア データがIoT Hubに流れ込んだら、イベントハブ互換エンドポイントに公開されたイベントをリッスンするサーバーレスコードを記述できます。これはウォームパスに該当します。このデータは保存され、次のレッスンで旅程の報告に使用されます。 -![IoTデバイスからIoT HubにGPSテレメトリを送信し、イベントハブトリガーを介してAzure Functionsに送信する](../../../../../translated_images/ja/gps-telemetry-iot-hub-functions.24d3fa5592455e9f4e2fe73856b40c3915a292b90263c31d652acfd976cfedd8.png) +![IoTデバイスからIoT HubにGPSテレメトリを送信し、イベントハブトリガーを介してAzure Functionsに送信する](../../../../../translated_images/ja/gps-telemetry-iot-hub-functions.24d3fa5592455e9f.webp) ### タスク - サーバーレスコードでGPSイベントを処理する @@ -193,7 +193,7 @@ IoTデバイスからクラウドに流れるデータは、必ずしもリア ## Azure Storageアカウント -![Azure Storageのロゴ](../../../../../translated_images/ja/azure-storage-logo.605c0f602c640d482a80f1b35a2629a32d595711b7ab1d7ceea843250615ff32.png) +![Azure Storageのロゴ](../../../../../translated_images/ja/azure-storage-logo.605c0f602c640d48.webp) Azure Storageアカウントは、さまざまな方法でデータを保存できる汎用ストレージサービスです。データをBlob、キュー、テーブル、またはファイルとして保存でき、同時にすべてを利用することが可能です。 diff --git a/translations/ja/3-transport/lessons/3-visualize-location-data/README.md b/translations/ja/3-transport/lessons/3-visualize-location-data/README.md index fc0843852..386519556 100644 --- a/translations/ja/3-transport/lessons/3-visualize-location-data/README.md +++ b/translations/ja/3-transport/lessons/3-visualize-location-data/README.md @@ -1,6 +1,6 @@ # 位置データの可視化 -![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-13.a259db1485021be7d7c72e90842fbe0ab977529e8684c179b5fb1ea75e92b3ef.jpg) +![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-13.a259db1485021be7.webp) > スケッチノート作成者:[Nitya Narasimhan](https://github.com/nitya)。画像をクリックすると拡大表示されます。 @@ -64,11 +64,11 @@ 人間にとって、このデータを理解するのは難しいです。数字の壁でしかありません。このデータを視覚化する最初のステップとして、折れ線グラフにプロットすることができます: -![上記データの折れ線グラフ](../../../../../translated_images/ja/chart-soil-moisture.fd6d9d0cdc0b5f75e78038ecb8945dfc84b38851359de99d84b16e3336d6d7c2.png) +![上記データの折れ線グラフ](../../../../../translated_images/ja/chart-soil-moisture.fd6d9d0cdc0b5f75.webp) さらに、土壌湿度が450に達した時点で自動給水システムが作動したことを示す線を追加することで、グラフを改善できます: -![土壌湿度の折れ線グラフと450のライン](../../../../../translated_images/ja/chart-soil-moisture-relay.fbb391236d34a64d0abf1df396e9197e0a24df14150620b9cc820a64a55c9326.png) +![土壌湿度の折れ線グラフと450のライン](../../../../../translated_images/ja/chart-soil-moisture-relay.fbb391236d34a64d.webp) このグラフは、土壌湿度レベルだけでなく、給水システムが作動したポイントも迅速に示しています。 @@ -84,7 +84,7 @@ GPSデータを扱う場合、最も明確な視覚化方法はデータを地 地図を扱うことは興味深い課題であり、Bing Maps、Leaflet、Open Street Maps、Google Mapsなど、多くの選択肢があります。このレッスンでは、[Azure Maps](https://azure.microsoft.com/services/azure-maps/?WT.mc_id=academic-17441-jabenn)について学び、GPSデータを表示する方法を学びます。 -![Azure Mapsのロゴ](../../../../../translated_images/ja/azure-maps-logo.35d01dcfbd81fe6140e94257aaa1538f785a58c91576d14e0ebe7a2f6c694b99.png) +![Azure Mapsのロゴ](../../../../../translated_images/ja/azure-maps-logo.35d01dcfbd81fe61.webp) Azure Mapsは「最新の地図データを使用して、ウェブおよびモバイルアプリケーションに地理的コンテキストを提供する地理空間サービスとSDKのコレクション」です。開発者は、美しいインタラクティブな地図を作成するためのツールを提供され、推奨される交通ルート、交通事故情報、屋内ナビゲーション、検索機能、標高情報、天気サービスなどを提供することができます。 @@ -185,7 +185,7 @@ Azure Maps APIには、[REST API](https://docs.microsoft.com/javascript/api/azur `index.html`ページをウェブブラウザで開くと、シアトル地域にフォーカスしたマップが表示されるはずです。 - ![アメリカ合衆国ワシントン州の都市シアトルを示す地図](../../../../../translated_images/ja/map-image.8fb2c53eb23ef39c1c0a4410a5282e879b3b452b707eb066ff04c5488d3d72b7.png) + ![アメリカ合衆国ワシントン州の都市シアトルを示す地図](../../../../../translated_images/ja/map-image.8fb2c53eb23ef39c.webp) ✅ ズームや中心座標のパラメータを変更してマップ表示を試してみてください。データの緯度と経度に対応する異なる座標を追加してマップを再中心化することができます。 @@ -319,7 +319,7 @@ Azure Maps APIには、[REST API](https://docs.microsoft.com/javascript/api/azur 1. HTMLページをブラウザで読み込んでください。地図が読み込まれ、ストレージからすべてのGPSデータが読み込まれ、地図上にプロットされます。 - ![シアトル近郊のセントエドワード州立公園の地図。公園の端を囲む経路に沿って円が表示されている](../../../../../translated_images/ja/map-path.896832e72dc696ffe20650e4051027d4855442d955f93fdbb80bb417ca8a406f.png) + ![シアトル近郊のセントエドワード州立公園の地図。公園の端を囲む経路に沿って円が表示されている](../../../../../translated_images/ja/map-path.896832e72dc696ff.webp) > 💁 このコードは[code](../../../../../3-transport/lessons/3-visualize-location-data/code)フォルダーにあります。 diff --git a/translations/ja/3-transport/lessons/4-geofences/README.md b/translations/ja/3-transport/lessons/4-geofences/README.md index 3a1cc1988..c8efd9c98 100644 --- a/translations/ja/3-transport/lessons/4-geofences/README.md +++ b/translations/ja/3-transport/lessons/4-geofences/README.md @@ -1,6 +1,6 @@ # ジオフェンス -![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-14.63980c5150ae3c153e770fb71d044c1845dce79248d86bed9fc525adf3ede73c.jpg) +![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-14.63980c5150ae3c15.webp) > スケッチノート作成者:[Nitya Narasimhan](https://github.com/nitya)。画像をクリックすると拡大表示されます。 @@ -35,7 +35,7 @@ ジオフェンスは、現実世界の地理的領域に対する仮想的な境界線です。ジオフェンスは、建物周辺100mの円のように点と半径で定義される円形や、学校区域、市境界、大学やオフィスキャンパスのようなポリゴンで構成されることがあります。 -![Microsoftの会社ストア周辺の円形ジオフェンスと、Microsoft西キャンパス周辺のポリゴンジオフェンスの例](../../../../../translated_images/ja/geofence-examples.172fbc534665769f6e1a1ddcf75e3b25183cd10354c80cc603ba44b635390e1a.png) +![Microsoftの会社ストア周辺の円形ジオフェンスと、Microsoft西キャンパス周辺のポリゴンジオフェンスの例](../../../../../translated_images/ja/geofence-examples.172fbc534665769f.webp) > 💁 すでにジオフェンスを知らずに使用しているかもしれません。iOSのリマインダーアプリやGoogle Keepで位置情報に基づいてリマインダーを設定したことがある場合、それはジオフェンスを使用しています。これらのアプリは指定された位置情報に基づいてジオフェンスを設定し、スマートフォンがジオフェンス内に入ると通知を送ります。 @@ -212,7 +212,7 @@ API呼び出しから返される結果の一部には、ジオフェンスの 例えば、車両がジオフェンスの隣を走る道路を走行していることを示すGPS測定値があるとします。単一のGPS値が不正確で、車両がジオフェンス内にあると示されても、車両がアクセスできない場合は無視することができます。 -![Microsoftキャンパスを通過する520号線沿いの車両のGPSトレイル。道路沿いのGPS測定値の中に、ジオフェンス内にある1つの不正確な測定値が含まれている](../../../../../translated_images/ja/geofence-crossing-inaccurate-gps.6a3ed911202ad9cabb66d3964888cec03a42c61d5b8f536ad5bdc99716b370f5.png) +![Microsoftキャンパスを通過する520号線沿いの車両のGPSトレイル。道路沿いのGPS測定値の中に、ジオフェンス内にある1つの不正確な測定値が含まれている](../../../../../translated_images/ja/geofence-crossing-inaccurate-gps.6a3ed911202ad9ca.webp) 上記の画像では、Microsoftキャンパスの一部にジオフェンスが設定されています。赤い線は520号線を走るトラックを示しており、GPSの読み取り値を示す円が描かれています。ほとんどの読み取り値は正確で520号線上にありますが、1つの不正確な読み取り値がジオフェンス内にあります。この読み取り値が正しいはずがありません。トラックが突然520号線からキャンパス内に入り、再び520号線に戻るような道路は存在しません。このジオフェンスをチェックするコードは、ジオフェンステストの結果を処理する前に、以前の読み取り値を考慮する必要があります。 ✅ GPS読み取り値が正しいと判断するために、どのような追加データが必要ですか? @@ -284,7 +284,7 @@ API呼び出しから返される結果の一部には、ジオフェンスの その解決策として、複数の独立した接続を定義してイベントを読み取り、それぞれが未読メッセージの再生を管理することができます。これらは*コンシューマーグループ*と呼ばれます。エンドポイントに接続する際に、接続したいコンシューマーグループを指定できます。アプリケーションの各コンポーネントは異なるコンシューマーグループに接続します。 -![1つのIoT Hubが3つのコンシューマーグループを使用して同じメッセージを3つの異なるFunctionsアプリに配信する](../../../../../translated_images/ja/consumer-groups.a3262e26fc27ba2092863678ad57af15c7223416e388a23f330c058cf4358630.png) +![1つのIoT Hubが3つのコンシューマーグループを使用して同じメッセージを3つの異なるFunctionsアプリに配信する](../../../../../translated_images/ja/consumer-groups.a3262e26fc27ba20.webp) 理論的には、各コンシューマーグループに最大5つのアプリケーションが接続でき、メッセージが到着するとすべてのアプリケーションがメッセージを受信します。ただし、メッセージの重複処理を避け、再起動時にすべてのキューに入ったメッセージが正しく処理されるようにするため、各コンシューマーグループには1つのアプリケーションのみがアクセスするのがベストプラクティスです。例えば、Functionsアプリをローカルで起動し、クラウドでも実行している場合、両方がメッセージを処理し、ストレージアカウントに重複したBlobが保存される可能性があります。 diff --git a/translations/ja/4-manufacturing/lessons/1-train-fruit-detector/README.md b/translations/ja/4-manufacturing/lessons/1-train-fruit-detector/README.md index f9acc8b9c..aeb1c4924 100644 --- a/translations/ja/4-manufacturing/lessons/1-train-fruit-detector/README.md +++ b/translations/ja/4-manufacturing/lessons/1-train-fruit-detector/README.md @@ -1,6 +1,6 @@ # 果物の品質検出器を訓練する -![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-15.843d21afdc6fb2bba70cd9db7b7d2f91598859fafda2078b0bdc44954194b6c0.jpg) +![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-15.843d21afdc6fb2bb.webp) > スケッチノート作成者:[Nitya Narasimhan](https://github.com/nitya)。画像をクリックすると拡大版が表示されます。 @@ -38,7 +38,7 @@ 自動収穫の普及により、農産物の仕分けは収穫から工場へと移行しました。食品は長いコンベアベルトで運ばれ、チームが品質基準を満たさないものを取り除く作業を行います。機械による収穫でコストは削減されましたが、食品を手作業で仕分けるコストは依然として存在しました。 -![赤いトマトが検出されるとそのまま進み、緑のトマトが検出されるとレバーで廃棄箱に弾かれる](../../../../../translated_images/ja/optical-tomato-sorting.61aa134bdda4e5b1bfb16a212c1e35a6ef0c426cbb8b1c975f79d7bfbf48d068.png) +![赤いトマトが検出されるとそのまま進み、緑のトマトが検出されるとレバーで廃棄箱に弾かれる](../../../../../translated_images/ja/optical-tomato-sorting.61aa134bdda4e5b1.webp) 次の進化は、収穫機や加工工場に組み込まれた機械を使用して仕分けを行うことでした。これらの機械の第一世代は、光学センサーを使用して色を検出し、アクチュエーターを制御して緑のトマトをレバーや空気の噴射で廃棄箱に押し込み、赤いトマトをコンベアベルトのネットワークにそのまま流す仕組みでした。 @@ -62,7 +62,7 @@ > 🎓 MLモデルの結果は*予測*と呼ばれます。 -![2本のバナナ。熟したバナナは99.7%熟している、0.3%未熟という予測。未熟なバナナは1.4%熟している、98.6%未熟という予測](../../../../../translated_images/ja/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50ece4e4589e724b142da0681f35470fe3db3f7d51240f69c85.png) +![2本のバナナ。熟したバナナは99.7%熟している、0.3%未熟という予測。未熟なバナナは1.4%熟している、98.6%未熟という予測](../../../../../translated_images/ja/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50e.webp) MLモデルは二択の答えを出すのではなく、確率を提供します。例えば、モデルがバナナの写真を与えられた場合、`熟している`が99.7%、`未熟`が0.3%と予測するかもしれません。コードは最も高い予測を選び、そのバナナが熟していると判断します。 @@ -90,7 +90,7 @@ MLモデルは二択の答えを出すのではなく、確率を提供します Custom Visionは、画像分類器を訓練するためのクラウドベースのツールです。少量の画像を使用して分類器を訓練することができます。画像をWebポータル、Web API、またはSDKを通じてアップロードし、各画像にその分類を示す*タグ*を付けます。その後、モデルを訓練し、どれだけうまく機能するかをテストします。モデルに満足したら、Web APIやSDKを通じてアクセス可能なバージョンを公開できます。 -![Azure Custom Visionのロゴ](../../../../../translated_images/ja/custom-vision-logo.d3d4e7c8a87ec9daf825e72e210576c3cbf60312577be7a139e22dd97ab7f1e6.png) +![Azure Custom Visionのロゴ](../../../../../translated_images/ja/custom-vision-logo.d3d4e7c8a87ec9da.webp) > 💁 Custom Visionモデルは、分類ごとに最低5枚の画像で訓練できますが、多い方が良いです。少なくとも30枚の画像があると、より良い結果が得られます。 @@ -146,7 +146,7 @@ Custom Visionを使用するには、Azure CLIを使用してAzureに2つのCogn プロジェクトを作成する際、先ほど作成した`fruit-quality-detector-training`リソースを使用してください。*分類*プロジェクトタイプ、*マルチクラス*分類タイプ、*食品*ドメインを選択します。 - ![Custom Visionプロジェクトの設定。名前はfruit-quality-detector、説明なし、リソースはfruit-quality-detector-training、プロジェクトタイプは分類、分類タイプはマルチクラス、ドメインは食品](../../../../../translated_images/ja/custom-vision-create-project.cf46325b92d8b131089f6647cf5e07b664cb77850e106d66e3c057b6b69756c6.png) + ![Custom Visionプロジェクトの設定。名前はfruit-quality-detector、説明なし、リソースはfruit-quality-detector-training、プロジェクトタイプは分類、分類タイプはマルチクラス、ドメインは食品](../../../../../translated_images/ja/custom-vision-create-project.cf46325b92d8b131.webp) ✅ 画像分類器のCustom Vision UIを探索する時間を取ってみてください。 @@ -164,7 +164,7 @@ Custom Visionを使用するには、Azure CLIを使用してAzureに2つのCogn * 熟したバナナ2本を使用し、それぞれを異なる角度から撮影して少なくとも7枚の写真を撮ります(5枚はトレーニング用、2枚はテスト用)。理想的にはもっと多く撮影してください。 - ![異なるバナナ2本の写真](../../../../../translated_images/ja/banana-training-images.530eb203346d73bc23b8b990fb4609470bf4ff7c942ccc13d4cfffeed9be1ad4.png) + ![異なるバナナ2本の写真](../../../../../translated_images/ja/banana-training-images.530eb203346d73bc.webp) * 同じプロセスを未熟なバナナ2本でも繰り返します。 @@ -174,7 +174,7 @@ Custom Visionを使用するには、Azure CLIを使用してAzureに2つのCogn 1. [Microsoft Docsの分類器クイックスタートの画像アップロードとタグ付けセクション](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`というタグを付けます。 - ![熟したバナナと未熟なバナナの写真をアップロードするダイアログ](../../../../../translated_images/ja/image-upload-bananas.0751639f3815e0ec42bdbc6254d1e4357a185834d1ae10c9948a0e7d6d336695.png) + ![熟したバナナと未熟なバナナの写真をアップロードするダイアログ](../../../../../translated_images/ja/image-upload-bananas.0751639f3815e0ec.webp) 1. [Microsoft Docsの分類器クイックスタートの分類器をトレーニングするセクション](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#train-the-classifier)に従い、アップロードした画像で画像分類器をトレーニングします。 @@ -192,7 +192,7 @@ Custom Visionを使用するには、Azure CLIを使用してAzureに2つのCogn 1. [Microsoft Docsのモデルをテストするドキュメント](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/test-your-model?WT.mc_id=academic-17441-jabenn#test-your-model)に従い、画像分類器をテストします。以前に作成したテスト画像を使用し、トレーニングに使用した画像は使用しないでください。 - ![未熟なバナナが98.9%の確率で未熟、1.1%の確率で熟していると予測された結果](../../../../../translated_images/ja/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64886422438850ea14f0be6ac918c217ea3b255c685abfabe7.png) + ![未熟なバナナが98.9%の確率で未熟、1.1%の確率で熟していると予測された結果](../../../../../translated_images/ja/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64.webp) 1. 利用可能なすべてのテスト画像を試し、確率を観察してください。 diff --git a/translations/ja/4-manufacturing/lessons/2-check-fruit-from-device/README.md b/translations/ja/4-manufacturing/lessons/2-check-fruit-from-device/README.md index ce428b715..e47808141 100644 --- a/translations/ja/4-manufacturing/lessons/2-check-fruit-from-device/README.md +++ b/translations/ja/4-manufacturing/lessons/2-check-fruit-from-device/README.md @@ -1,6 +1,6 @@ # IoTデバイスで果物の品質をチェックする -![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-16.215daf18b00631fbdfd64c6fc2dc6044dff5d544288825d8076f9fb83d964c23.jpg) +![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-16.215daf18b00631fb.webp) > スケッチノート作成者:[Nitya Narasimhan](https://github.com/nitya)。画像をクリックすると拡大版が表示されます。 @@ -26,7 +26,7 @@ カメラセンサーは、その名の通り、IoTデバイスに接続できるカメラです。静止画を撮影したり、ストリーミングビデオをキャプチャしたりすることができます。一部のカメラは生の画像データを返し、他のカメラはJPEGやPNGなどの画像ファイル形式に圧縮されたデータを返します。通常、IoTデバイスで使用されるカメラは、一般的なカメラよりも小型で解像度が低いですが、高解像度のカメラもあり、ハイエンドのスマートフォンに匹敵するものもあります。交換可能なレンズ、複数のカメラセットアップ、赤外線サーマルカメラ、UVカメラなど、さまざまな種類のカメラが利用可能です。 -![シーンからの光がレンズを通り、CMOSセンサーに焦点を合わせる様子](../../../../../translated_images/ja/cmos-sensor.75f9cd74decb137149a4c9ea825251a4549497d67c0ae2776159e6102bb53aa9.png) +![シーンからの光がレンズを通り、CMOSセンサーに焦点を合わせる様子](../../../../../translated_images/ja/cmos-sensor.75f9cd74decb1371.webp) ほとんどのカメラセンサーは、各ピクセルがフォトダイオードで構成されたイメージセンサーを使用しています。レンズが画像をイメージセンサーに焦点を合わせ、数千または数百万のフォトダイオードがそれぞれに当たる光を検出し、ピクセルデータとして記録します。 @@ -74,7 +74,7 @@ IoTデバイスを使用して、分類するための画像をキャプチャ 1. イテレーションの**公開**ボタンを選択します。 - ![公開ボタン](../../../../../translated_images/ja/custom-vision-publish-button.b7174e1977b0c33b8b72d4e5b1326c779e0af196f3849d09985ee2d7d5493a39.png) + ![公開ボタン](../../../../../translated_images/ja/custom-vision-publish-button.b7174e1977b0c33b.webp) 1. *Publish Model*ダイアログで、*Prediction resource*を前回のレッスンで作成した`fruit-quality-detector-prediction`リソースに設定します。名前は`Iteration2`のままにして、**Publish**ボタンを選択します。 @@ -88,7 +88,7 @@ IoTデバイスを使用して、分類するための画像をキャプチャ また、*Prediction-Key*の値もコピーしてください。これはモデルを呼び出す際に渡す必要があるセキュアキーです。このキーを渡すアプリケーションのみがモデルを使用でき、それ以外のアプリケーションは拒否されます。 - ![予測APIダイアログに表示されるURLとキー](../../../../../translated_images/ja/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![予測APIダイアログに表示されるURLとキー](../../../../../translated_images/ja/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ 新しいイテレーションが公開されると、異なる名前が付けられます。IoTデバイスが使用するイテレーションをどのように変更すると思いますか? @@ -109,7 +109,7 @@ IoTデバイスに接続されたカメラを使用した場合、得られる 画像分類器で最良の結果を得るには、予測に使用される画像とできるだけ似た画像でモデルをトレーニングする必要があります。たとえば、スマートフォンのカメラを使用してトレーニング用の画像をキャプチャした場合、画像の品質、鮮明さ、色がIoTデバイスに接続されたカメラとは異なります。 -![2つのバナナの画像。左はIoTデバイスで撮影された低解像度で照明が悪い画像、右はスマートフォンで撮影された高解像度で照明が良い画像](../../../../../translated_images/ja/banana-picture-compare.174df164dc326a42cf7fb051a7497e6113c620e91552d92ca914220305d47d9a.png) +![2つのバナナの画像。左はIoTデバイスで撮影された低解像度で照明が悪い画像、右はスマートフォンで撮影された高解像度で照明が良い画像](../../../../../translated_images/ja/banana-picture-compare.174df164dc326a42.webp) 上の画像では、左のバナナの画像はRaspberry Piカメラを使用して撮影され、右の画像は同じバナナを同じ場所でiPhoneを使用して撮影されました。品質には顕著な違いがあり、iPhoneの画像はより鮮明で、色が明るく、コントラストが高いです。 diff --git a/translations/ja/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md b/translations/ja/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md index 45c0f469b..11b099cb4 100644 --- a/translations/ja/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md +++ b/translations/ja/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md @@ -16,7 +16,7 @@ Raspberry Piにはカメラが必要です。 ### タスク - カメラを接続する -![Raspberry Pi Camera](../../../../../translated_images/ja/pi-camera-module.4278753c31bd6e757aa2b858be97d72049f71616278cefe4fb5abb485b40a078.png) +![Raspberry Pi Camera](../../../../../translated_images/ja/pi-camera-module.4278753c31bd6e75.webp) 1. Piの電源を切ります。 @@ -24,17 +24,17 @@ Raspberry Piにはカメラが必要です。 クリップを開けてケーブルを挿入する方法を示すアニメーションは[Raspberry Pi Getting Started with the Camera module documentation](https://projects.raspberrypi.org/en/projects/getting-started-with-picamera/2)で確認できます。 - ![リボンケーブルがカメラモジュールに挿入された状態](../../../../../translated_images/ja/pi-camera-ribbon-cable.0bf82acd251611c21ac616f082849413e2b322a261d0e4f8fec344248083b07e.png) + ![リボンケーブルがカメラモジュールに挿入された状態](../../../../../translated_images/ja/pi-camera-ribbon-cable.0bf82acd251611c2.webp) 1. Grove Base HatをPiから取り外します。 1. Grove Base Hatのカメラスロットを通してリボンケーブルを通します。ケーブルの青い面が**A0**、**A1**などとラベル付けされたアナログポートの方向を向くようにしてください。 - ![Grove Base Hatを通過するリボンケーブル](../../../../../translated_images/ja/grove-base-hat-ribbon-cable.501fed202fcf73b11b2b68f6d246189f7d15d3e4423c572ddee79d77b4632b47.png) + ![Grove Base Hatを通過するリボンケーブル](../../../../../translated_images/ja/grove-base-hat-ribbon-cable.501fed202fcf73b1.webp) 1. リボンケーブルをPiのカメラポートに挿入します。再び黒いプラスチッククリップを引き上げ、ケーブルを挿入してクリップを元に戻します。ケーブルの青い面がUSBとイーサネットポートの方向を向くようにしてください。 - ![Piのカメラソケットに接続されたリボンケーブル](../../../../../translated_images/ja/pi-camera-socket-ribbon-cable.a18309920b11800911082ed7aa6fb28e6d9be3a022e4079ff990016cae3fca10.png) + ![Piのカメラソケットに接続されたリボンケーブル](../../../../../translated_images/ja/pi-camera-socket-ribbon-cable.a18309920b118009.webp) 1. Grove Base Hatを再装着します。 @@ -101,7 +101,7 @@ Raspberry Piは[PiCamera](https://pypi.org/project/picamera/) Pythonライブラ `camera.rotation = 0`行は画像の回転を設定します。リボンケーブルはカメラの下部に接続されますが、分類したいアイテムに向けやすくするためにカメラを回転させた場合、この行を回転角度に応じて変更できます。 - ![飲料缶の上に吊り下げられたカメラ](../../../../../translated_images/ja/pi-camera-upside-down.5376961ba31459883362124152ad6b823d5ac5fc14e85f317e22903bd681c2b6.png) + ![飲料缶の上に吊り下げられたカメラ](../../../../../translated_images/ja/pi-camera-upside-down.5376961ba3145988.webp) 例えば、リボンケーブルをカメラの上部に吊り下げた場合、回転を180に設定します: diff --git a/translations/ja/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md b/translations/ja/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md index 091e566b9..66d541dcc 100644 --- a/translations/ja/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md +++ b/translations/ja/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md @@ -84,7 +84,7 @@ Custom Visionサービスには、画像を分類するために使用できるP 撮影された画像と、**Predictions**タブでこれらの値をCustom Visionで確認できます。 - ![Custom Visionでバナナが予測され、熟している確率が56.8%、未熟な確率が43.1%と表示されている](../../../../../translated_images/ja/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![Custom Visionでバナナが予測され、熟している確率が56.8%、未熟な確率が43.1%と表示されている](../../../../../translated_images/ja/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 このコードは[code-classify/pi](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/pi)または[code-classify/virtual-iot-device](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/virtual-iot-device)フォルダーで確認できます。 diff --git a/translations/ja/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md b/translations/ja/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md index 1e72bdf3f..957cf644d 100644 --- a/translations/ja/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md +++ b/translations/ja/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md @@ -34,11 +34,11 @@ CounterFitアプリにカメラを追加します。 1. **Add**ボタンを選択してカメラを作成します。 - ![カメラ設定](../../../../../translated_images/ja/counterfit-create-camera.a5de97f59c0bd3cbe0416d7e89a3cfe86d19fbae05c641c53a91286412af0a34.png) + ![カメラ設定](../../../../../translated_images/ja/counterfit-create-camera.a5de97f59c0bd3cb.webp) カメラが作成され、センサーリストに表示されます。 - ![作成されたカメラ](../../../../../translated_images/ja/counterfit-camera.001ec52194c8ee5d3f617173da2c79e1df903d10882adc625cbfc493525125d4.png) + ![作成されたカメラ](../../../../../translated_images/ja/counterfit-camera.001ec52194c8ee5d.webp) ## カメラをプログラムする @@ -103,7 +103,7 @@ CounterFitアプリにカメラを追加します。 1. CounterFitでカメラがキャプチャする画像を設定します。*Source*を*File*に設定して画像ファイルをアップロードするか、*Source*を*WebCam*に設定してウェブカメラから画像をキャプチャします。画像を選択するかウェブカメラを選択した後、**Set**ボタンを必ず選択してください。 - ![CounterFitで画像ソースをファイルに設定し、ウェブカメラでバナナを持つ人を表示しているプレビュー](../../../../../translated_images/ja/counterfit-camera-options.eb3bd5150a8e7dffbf24bc5bcaba0cf2cdef95fbe6bbe393695d173817d6b8df.png) + ![CounterFitで画像ソースをファイルに設定し、ウェブカメラでバナナを持つ人を表示しているプレビュー](../../../../../translated_images/ja/counterfit-camera-options.eb3bd5150a8e7dff.webp) 1. 画像がキャプチャされ、現在のフォルダーに`image.jpg`として保存されます。このファイルはVS Codeのエクスプローラーに表示されます。ファイルを選択して画像を確認してください。回転が必要な場合は、`camera.rotation = 0`行を適切に更新し、再度撮影してください。 diff --git a/translations/ja/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md b/translations/ja/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md index e470b6c01..dc4175576 100644 --- a/translations/ja/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md +++ b/translations/ja/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md @@ -16,7 +16,7 @@ ArduCamにはGroveソケットがありません。その代わり、GPIOピン カメラを接続します。 -![ArduCamセンサー](../../../../../translated_images/ja/arducam.20e4e4cbb268296570b5914e20d6c349fc42ddac9ed4e1b9deba2188204eebae.png) +![ArduCamセンサー](../../../../../translated_images/ja/arducam.20e4e4cbb2682965.webp) 1. ArduCamの底部のピンをWio TerminalのGPIOピンに接続する必要があります。正しいピンを見つけやすくするために、Wio Terminalに付属しているGPIOピンステッカーをピンの周りに貼り付けます: @@ -35,7 +35,7 @@ ArduCamにはGroveソケットがありません。その代わり、GPIOピン | SDA | 3 (I2C1_SDA) | I2Cシリアルデータ | | SCL | 5 (I2C1_SCL) | I2Cシリアルクロック | - ![ジャンパーワイヤーでArduCamを接続したWio Terminal](../../../../../translated_images/ja/arducam-wio-terminal-connections.a4d5a4049bdb5ab800a2877389fc6ecf5e4ff307e6451ff56c517e6786467d0a.png) + ![ジャンパーワイヤーでArduCamを接続したWio Terminal](../../../../../translated_images/ja/arducam-wio-terminal-connections.a4d5a4049bdb5ab8.webp) GNDとVCCの接続はArduCamに5Vの電源を供給します。ArduCamは5Vで動作しますが、Groveセンサーは3Vで動作します。この電源はデバイスを供給するUSB-C接続から直接供給されます。 @@ -456,7 +456,7 @@ Wio Terminalは最大16GBのmicroSDカードのみをサポートします。よ 1. microSDカードの電源をオフにして、少し押し込んでリリースすることで取り出します。カードがポップアウトします。これを行うには薄いツールを使用する必要がある場合があります。microSDカードをコンピュータに接続して画像を表示します。 - ![ArduCamで撮影されたバナナの写真](../../../../../translated_images/ja/banana-arducam.be1b32d4267a8194b0fd042362e56faa431da9cd4af172051b37243ea9be0256.jpg) + ![ArduCamで撮影されたバナナの写真](../../../../../translated_images/ja/banana-arducam.be1b32d4267a8194.webp) 💁 カメラのホワイトバランスが調整されるまでに、数枚の画像が必要になる場合があります。これは、撮影された画像の色に基づいて気付くことができ、最初の数枚は色がずれて見えるかもしれません。この問題を回避するには、`setup`関数内で無視される数枚の画像を撮影するようにコードを変更することで対処できます。 diff --git a/translations/ja/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md b/translations/ja/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md index 3fe3df81d..bd3b92d46 100644 --- a/translations/ja/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md +++ b/translations/ja/4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md @@ -208,7 +208,7 @@ HTTPSエンドポイントとやり取りする際、クライアントコード 撮影された画像とこれらの値をCustom Visionの**Predictions**タブで確認できます。 - ![Custom Visionで予測されたバナナ。熟している確率56.8%、未熟な確率43.1%](../../../../../translated_images/ja/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) + ![Custom Visionで予測されたバナナ。熟している確率56.8%、未熟な確率43.1%](../../../../../translated_images/ja/custom-vision-banana-prediction.30cdff4e1d72db5d.webp) > 💁 このコードは[code-classify/wio-terminal](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/wio-terminal)フォルダーにあります。 diff --git a/translations/ja/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md b/translations/ja/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md index c1da59380..5ea793058 100644 --- a/translations/ja/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md +++ b/translations/ja/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md @@ -1,6 +1,6 @@ # エッジで果物検出器を実行する -![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-17.bc333c3c35ba8e42cce666cfffa82b915f787f455bd94e006aea2b6f2722421a.jpg) +![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-17.bc333c3c35ba8e42.webp) > スケッチノート作成者:[Nitya Narasimhan](https://github.com/nitya)。画像をクリックすると拡大版が表示されます。 @@ -33,11 +33,11 @@ エッジコンピューティングとは、IoTデータを生成される場所にできるだけ近いコンピュータで処理することを指します。この処理をクラウドではなく、クラウドのエッジ、つまり内部ネットワークに移動させます。 -![クラウドでのインターネットサービスとローカルネットワーク上のIoTデバイスを示すアーキテクチャ図](../../../../../translated_images/ja/cloud-without-edge.b4da641f6022c95ed6b91fde8b5323abd2f94e0d52073ad54172ae8f5dac90e9.png) +![クラウドでのインターネットサービスとローカルネットワーク上のIoTデバイスを示すアーキテクチャ図](../../../../../translated_images/ja/cloud-without-edge.b4da641f6022c95e.webp) これまでのレッスンでは、デバイスがデータを収集し、それをクラウドに送信して分析し、サーバーレス関数やAIモデルをクラウドで実行していました。 -![ローカルネットワーク上のIoTデバイスがエッジデバイスに接続し、それらのエッジデバイスがクラウドに接続するアーキテクチャ図](../../../../../translated_images/ja/cloud-with-edge.1e26462c62c126fe150bd15a5714ddf0be599f09bacbad08b85be02b76ea1ae1.png) +![ローカルネットワーク上のIoTデバイスがエッジデバイスに接続し、それらのエッジデバイスがクラウドに接続するアーキテクチャ図](../../../../../translated_images/ja/cloud-with-edge.1e26462c62c126fe.webp) エッジコンピューティングでは、クラウドサービスの一部をクラウドから切り離し、IoTデバイスと同じネットワーク上で動作するコンピュータに移動させます。クラウドとの通信は必要な場合にのみ行います。例えば、エッジデバイス上でAIモデルを実行して果物の熟度を分析し、熟した果物と未熟な果物の数などの分析結果だけをクラウドに送信することができます。 @@ -85,7 +85,7 @@ IoTシステムでは、クラウドとエッジコンピューティングを ## Azure IoT Edge -![Azure IoT Edgeのロゴ](../../../../../translated_images/ja/azure-iot-edge-logo.c1c076749b5cba2e8755262fadc2f19ca1146b948d76990b1229199ac2292d79.png) +![Azure IoT Edgeのロゴ](../../../../../translated_images/ja/azure-iot-edge-logo.c1c076749b5cba2e.webp) Azure IoT Edgeは、クラウドからエッジにワークロードを移動するのを支援するサービスです。デバイスをエッジデバイスとして設定し、クラウドからそのエッジデバイスにコードをデプロイできます。これにより、クラウドとエッジの機能を組み合わせることができます。 @@ -99,7 +99,7 @@ IoT EdgeはIoT Hubに組み込まれているため、IoTデバイスを管理 IoT Edgeは*コンテナ*からコードを実行します。コンテナとは、コンピュータ上の他のアプリケーションから隔離された状態で実行される自己完結型のアプリケーションです。コンテナを実行すると、それはコンピュータ内で別のコンピュータのように動作し、独自のソフトウェア、サービス、アプリケーションを実行します。通常、コンテナは共有を選択しない限り、コンピュータ上の何かにアクセスすることはできません。例えば、フォルダをコンテナと共有することができます。その後、コンテナはオープンポートを介してサービスを提供し、ネットワークに接続できます。 -![コンテナにリダイレクトされるWebリクエスト](../../../../../translated_images/ja/container-web-browser.4ee81dd4f0d8838ce622b2a0d600b6a4322b5d4fe43159facd87b7b34f84d66a.png) +![コンテナにリダイレクトされるWebリクエスト](../../../../../translated_images/ja/container-web-browser.4ee81dd4f0d8838c.webp) 例えば、ポート80(デフォルトのHTTPポート)で動作するWebサイトを持つコンテナを作成し、それをコンピュータ上でもポート80で公開することができます。 @@ -191,11 +191,11 @@ IoT Edgeデバイスを使用するには、IoT Hubに登録する必要があ ## コンテナをデプロイ用に準備する -![コンテナはビルドされ、コンテナレジストリにプッシュされ、IoT Edge を使用してエッジデバイスにデプロイされます](../../../../../translated_images/ja/container-edge-flow.c246050dd60ceefdb6ace026a4ce5c6aa4112bb5898ae23fbb2ab4be29ae3e1b.png) +![コンテナはビルドされ、コンテナレジストリにプッシュされ、IoT Edge を使用してエッジデバイスにデプロイされます](../../../../../translated_images/ja/container-edge-flow.c246050dd60ceefd.webp) モデルをダウンロードしたら、それをコンテナにビルドし、コンテナレジストリにプッシュする必要があります。コンテナレジストリは、コンテナを保存するためのオンラインの場所です。その後、IoT Edge がレジストリからコンテナをダウンロードし、デバイスにプッシュします。 -![Azure Container Registry のロゴ](../../../../../translated_images/ja/azure-container-registry-logo.09494206991d4b295025ebff7d4e2900325e527a59184ffbc8464b6ab59654be.png) +![Azure Container Registry のロゴ](../../../../../translated_images/ja/azure-container-registry-logo.09494206991d4b29.webp) このレッスンで使用するコンテナレジストリは Azure Container Registry です。これは無料サービスではないため、作業が完了したら[プロジェクトをクリーンアップ](../../../clean-up.md)してコストを節約してください。 diff --git a/translations/ja/4-manufacturing/lessons/4-trigger-fruit-detector/README.md b/translations/ja/4-manufacturing/lessons/4-trigger-fruit-detector/README.md index 4ebbe981b..17badd5ae 100644 --- a/translations/ja/4-manufacturing/lessons/4-trigger-fruit-detector/README.md +++ b/translations/ja/4-manufacturing/lessons/4-trigger-fruit-detector/README.md @@ -1,6 +1,6 @@ # センサーから果物の品質検査をトリガーする -![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-18.92c32ed1d354caa5a54baa4032cf0b172d4655e8e326ad5d46c558a0def15365.jpg) +![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-18.92c32ed1d354caa5.webp) > スケッチノート作成者:[Nitya Narasimhan](https://github.com/nitya)。画像をクリックすると拡大版が表示されます。 @@ -39,7 +39,7 @@ IoTアプリケーションは、デバイス(*things*)がデータを送信 ### IoTリファレンスアーキテクチャ -![IoTリファレンスアーキテクチャ](../../../../../translated_images/ja/iot-reference-architecture.2278b98b55c6d4e89bde18eada3688d893861d43507641804dd2f9d3079cfaa0.png) +![IoTリファレンスアーキテクチャ](../../../../../translated_images/ja/iot-reference-architecture.2278b98b55c6d4e8.webp) 上の図は、IoTリファレンスアーキテクチャを示しています。 @@ -49,7 +49,7 @@ IoTアプリケーションは、デバイス(*things*)がデータを送信 * **洞察(Insights)**:サーバーレスアプリケーションや保存されたデータの分析から得られます。 * **アクション(Actions)**:デバイスへのコマンド送信や、データの可視化による意思決定を含みます。 -![Azureを使用したIoTリファレンスアーキテクチャ](../../../../../translated_images/ja/iot-reference-architecture-azure.0b8d2161af924cb18ae48a8558a19541cca47f27264851b5b7e56d7b8bb372ac.png) +![Azureを使用したIoTリファレンスアーキテクチャ](../../../../../translated_images/ja/iot-reference-architecture-azure.0b8d2161af924cb1.webp) 上の図は、これまでのレッスンで取り上げたコンポーネントやサービスが、リファレンスIoTアーキテクチャでどのように連携しているかを示しています。 @@ -89,7 +89,7 @@ IoTアプリケーションは、デバイス(*things*)がデータを送信 ### アプリケーションのプロトタイピング -![果物品質検査のリファレンスIoTアーキテクチャ](../../../../../translated_images/ja/iot-reference-architecture-fruit-quality.cc705f121c3b6fa71c800d9630935ac34bc08223a04601e35f41d5e9b5dd5207.png) +![果物品質検査のリファレンスIoTアーキテクチャ](../../../../../translated_images/ja/iot-reference-architecture-fruit-quality.cc705f121c3b6fa7.webp) 上の図は、このプロトタイプアプリケーションのリファレンスアーキテクチャを示しています。 @@ -124,7 +124,7 @@ IoTデバイスには、果物が分類の準備ができたことを示す何 プロトタイプの果物検査システムには、複数のコンポーネントが相互に通信します。 -![相互に通信するコンポーネント](../../../../../translated_images/ja/fruit-quality-detector-message-flow.adf2a65da8fd8741ac7af11361574de89adc126785d67606bb4d2ec00467e380.png) +![相互に通信するコンポーネント](../../../../../translated_images/ja/fruit-quality-detector-message-flow.adf2a65da8fd8741.webp) * 近接センサーが果物までの距離を測定し、IoT Hubに送信 * カメラデバイスを制御するコマンドがIoT Hubから送信 diff --git a/translations/ja/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md b/translations/ja/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md index e17ba96de..b24beca5d 100644 --- a/translations/ja/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md +++ b/translations/ja/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md @@ -20,7 +20,7 @@ Grove Time of FlightセンサーはRaspberry Piに接続できます。 Time of Flightセンサーを接続します。 -![Grove Time of Flightセンサー](../../../../../translated_images/ja/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![Grove Time of Flightセンサー](../../../../../translated_images/ja/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. Groveケーブルの片方の端をTime of Flightセンサーのソケットに差し込みます。このケーブルは一方向にしか差し込めません。 diff --git a/translations/ja/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md b/translations/ja/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md index 85385cbcd..72faef948 100644 --- a/translations/ja/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md +++ b/translations/ja/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md @@ -36,11 +36,11 @@ CounterFitアプリに距離センサーを追加します。 1. **Add**ボタンを選択して距離センサーを作成します。 - ![距離センサーの設定](../../../../../translated_images/ja/counterfit-create-distance-sensor.967c9fb98f27888d95920c9784d004c972490eb71f70397fe13bd70a79a879a3.png) + ![距離センサーの設定](../../../../../translated_images/ja/counterfit-create-distance-sensor.967c9fb98f27888d.webp) 距離センサーが作成され、センサーリストに表示されます。 - ![作成された距離センサー](../../../../../translated_images/ja/counterfit-distance-sensor.079eefeeea0b68afc36431ce8fcbe2f09a7e4916ed1cd5cb30e696db53bc18fa.png) + ![作成された距離センサー](../../../../../translated_images/ja/counterfit-distance-sensor.079eefeeea0b68af.webp) ## 距離センサーをプログラムする diff --git a/translations/ja/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md b/translations/ja/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md index dcac52ad5..4b1b47bcd 100644 --- a/translations/ja/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md +++ b/translations/ja/4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md @@ -20,7 +20,7 @@ Grove Time of FlightセンサーはWio Terminalに接続できます。 Time of Flightセンサーを接続します。 -![Grove Time of Flightセンサー](../../../../../translated_images/ja/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) +![Grove Time of Flightセンサー](../../../../../translated_images/ja/grove-time-of-flight-sensor.d82ff2165bfded9f.webp) 1. Groveケーブルの一端をTime of Flightセンサーのソケットに挿入します。ケーブルは一方向にしか挿入できません。 diff --git a/translations/ja/5-retail/lessons/1-train-stock-detector/README.md b/translations/ja/5-retail/lessons/1-train-stock-detector/README.md index 3a1ff95b2..80584d05b 100644 --- a/translations/ja/5-retail/lessons/1-train-stock-detector/README.md +++ b/translations/ja/5-retail/lessons/1-train-stock-detector/README.md @@ -1,6 +1,6 @@ # 在庫検出器をトレーニングする -![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-19.cf6973cecadf080c4b526310620dc4d6f5994c80fb0139c6f378cc9ca2d435cd.jpg) +![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-19.cf6973cecadf080c.webp) > スケッチノート作成者: [Nitya Narasimhan](https://github.com/nitya)。画像をクリックすると拡大表示されます。 @@ -36,7 +36,7 @@ 画像分類は、画像全体を分類することに焦点を当てています。モデルをトレーニングする際に使用した各タグに対する確率を返します。 -![カシューナッツとトマトペーストの画像分類](../../../../../translated_images/ja/image-classifier-cashews-tomato.bc2e16ab8f05cf9ac0f59f73e32efc4227f9a5b601b90b2c60f436694547a965.png) +![カシューナッツとトマトペーストの画像分類](../../../../../translated_images/ja/image-classifier-cashews-tomato.bc2e16ab8f05cf9a.webp) 上記の例では、カシューナッツの容器またはトマトペーストの缶を分類するモデルを使用して、2つの画像を分類しています。最初の画像はカシューナッツの容器で、画像分類器から以下の結果が得られます: @@ -60,7 +60,7 @@ > 🎓 *バウンディングボックス*とは、オブジェクトの周りに描かれるボックスのことです。 -![カシューナッツとトマトペーストのオブジェクト検出](../../../../../translated_images/ja/object-detector-cashews-tomato.1af7c26686b4db0e709754aeb196f4e73271f54e2085db3bcccb70d4a0d84d97.png) +![カシューナッツとトマトペーストのオブジェクト検出](../../../../../translated_images/ja/object-detector-cashews-tomato.1af7c26686b4db0e.webp) 上記の画像には、カシューナッツの容器とトマトペーストの缶が3つ含まれています。オブジェクト検出器はカシューナッツを検出し、バウンディングボックスとその確率(この場合は97.6%)を返しました。また、トマトペーストの缶3つも検出し、それぞれの缶に対してバウンディングボックスと確率を提供しました。 @@ -111,7 +111,7 @@ Custom Visionを使用して、画像分類器をトレーニングした方法 プロジェクトを作成する際、先ほど作成した`stock-detector-training`リソースを使用してください。*オブジェクト検出*プロジェクトタイプと*棚の商品*ドメインを選択します。 - ![Custom Visionプロジェクトの設定画面](../../../../../translated_images/ja/custom-vision-create-object-detector-project.32d4fb9aa8e7e7375f8a799bfce517aca970f2cb65e42d4245c5e635c734ab29.png) + ![Custom Visionプロジェクトの設定画面](../../../../../translated_images/ja/custom-vision-create-object-detector-project.32d4fb9aa8e7e737.webp) ✅ 棚の商品ドメインは、店舗の棚にある在庫を検出するために特化されています。Microsoft Docsの[ドメインの選択に関するドキュメント](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/select-domain?WT.mc_id=academic-17441-jabenn#object-detection)で詳細を確認してください。 @@ -133,11 +133,11 @@ Custom Visionを使用して、画像分類器をトレーニングした方法 1. Microsoft Docsの[オブジェクト検出器を構築するクイックスタートの「画像をアップロードしてタグ付けする」セクション](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/get-started-build-detector?WT.mc_id=academic-17441-jabenn#upload-and-tag-images)に従って、トレーニング画像をアップロードします。検出したいオブジェクトの種類に応じて適切なタグを作成してください。 - ![熟したバナナと未熟なバナナの画像をアップロードするダイアログ](../../../../../translated_images/ja/image-upload-object-detector.77c7892c3093cb59b79018edecd678749a75d71a099bc8a2d2f2f76320f88a5b.png) + ![熟したバナナと未熟なバナナの画像をアップロードするダイアログ](../../../../../translated_images/ja/image-upload-object-detector.77c7892c3093cb59.webp) オブジェクトのバウンディングボックスを描く際は、オブジェクトの周りをきっちり囲むようにしてください。すべての画像をアウトライン化するのに時間がかかる場合がありますが、ツールがバウンディングボックスを自動検出するため、作業が速くなります。 - ![トマトペーストにタグを付ける様子](../../../../../translated_images/ja/object-detector-tag-tomato-paste.f47c362fb0f0eb582f3bc68cf3855fb43a805106395358d41896a269c210b7b4.png) + ![トマトペーストにタグを付ける様子](../../../../../translated_images/ja/object-detector-tag-tomato-paste.f47c362fb0f0eb58.webp) > 💁 各オブジェクトに15枚以上の画像がある場合、15枚でトレーニングを開始し、その後**推奨タグ**機能を使用できます。この機能は、トレーニング済みモデルを使用してタグ付けされていない画像内のオブジェクトを検出します。その後、検出されたオブジェクトを確認または拒否し、必要に応じてバウンディングボックスを再描画できます。これにより、作業時間を大幅に短縮できます。 @@ -155,7 +155,7 @@ Custom Visionを使用して、画像分類器をトレーニングした方法 1. **クイックテスト**ボタンを使用してテスト画像をアップロードし、オブジェクトが検出されるか確認します。トレーニングに使用した画像ではなく、以前に作成したテスト画像を使用してください。 - ![トマトペーストの缶3つが検出され、それぞれ38%、35.5%、34.6%の確率が表示されている](../../../../../translated_images/ja/object-detector-detected-tomato-paste.52656fe87af4c37b4ee540526d63e73ed075da2e54a9a060aa528e0c562fb1b6.png) + ![トマトペーストの缶3つが検出され、それぞれ38%、35.5%、34.6%の確率が表示されている](../../../../../translated_images/ja/object-detector-detected-tomato-paste.52656fe87af4c37b.webp) 1. 利用可能なすべてのテスト画像を試し、確率を観察してください。 diff --git a/translations/ja/5-retail/lessons/2-check-stock-device/README.md b/translations/ja/5-retail/lessons/2-check-stock-device/README.md index 12dc91d24..bc6f620c7 100644 --- a/translations/ja/5-retail/lessons/2-check-stock-device/README.md +++ b/translations/ja/5-retail/lessons/2-check-stock-device/README.md @@ -1,6 +1,6 @@ # IoTデバイスで在庫を確認する -![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-20.0211df9551a8abb300fc8fcf7dc2789468dea2eabe9202273ac077b0ba37f15e.jpg) +![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-20.0211df9551a8abb3.webp) > スケッチノート作成者:[Nitya Narasimhan](https://github.com/nitya)。画像をクリックすると拡大表示されます。 @@ -62,7 +62,7 @@ 1. イテレーションの**公開**ボタンを選択します。 - ![公開ボタン](../../../../../translated_images/ja/custom-vision-object-detector-publish-button.34ee379fc650ccb9856c3868d0003f413b9529f102fc73c37168c98d721cc293.png) + ![公開ボタン](../../../../../translated_images/ja/custom-vision-object-detector-publish-button.34ee379fc650ccb9.webp) 1. *モデルの公開*ダイアログで、*予測リソース*を前回のレッスンで作成した`stock-detector-prediction`リソースに設定します。名前は`Iteration2`のままにして、**公開**ボタンを選択します。 @@ -76,7 +76,7 @@ また、*予測キー*の値もコピーしてください。これはモデルを呼び出す際に渡す必要があるセキュアキーです。このキーを渡したアプリケーションのみがモデルを使用でき、その他のアプリケーションは拒否されます。 - ![予測APIダイアログに表示されるURLとキー](../../../../../translated_images/ja/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) + ![予測APIダイアログに表示されるURLとキー](../../../../../translated_images/ja/custom-vision-prediction-key-endpoint.30c569ffd0338864.webp) ✅ 新しいイテレーションが公開されると、異なる名前が付けられます。IoTデバイスが使用するイテレーションを変更する方法は何だと思いますか? @@ -95,7 +95,7 @@ Custom Visionの**予測**タブで予測結果を見ると、送信された画像にバウンディングボックスが描かれています。 -![棚にある4缶のトマトペースト。検出結果は35.8%、33.5%、25.7%、16.6%](../../../../../translated_images/ja/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) +![棚にある4缶のトマトペースト。検出結果は35.8%、33.5%、25.7%、16.6%](../../../../../translated_images/ja/custom-vision-stock-prediction.942266ab1bcca341.webp) 上記の画像では、4缶のトマトペーストが検出されています。結果には、画像内で検出された各物体に赤い四角が重ねられており、画像のバウンディングボックスを示しています。 @@ -103,7 +103,7 @@ Custom Visionの**予測**タブで予測結果を見ると、送信された画 バウンディングボックスは、上部、左側、高さ、幅の4つの値で定義されます。これらの値は0〜1のスケールで、画像サイズの割合として位置を表します。原点(0,0位置)は画像の左上にあり、上部の値は上からの距離、バウンディングボックスの下部は上部に高さを加えた位置です。 -![トマトペースト缶の周りのバウンディングボックス](../../../../../translated_images/ja/bounding-box.1420a7ea0d3d15f71e1ffb5cf4b2271d184fac051f990abc541975168d163684.png) +![トマトペースト缶の周りのバウンディングボックス](../../../../../translated_images/ja/bounding-box.1420a7ea0d3d15f7.webp) 上記の画像は幅600ピクセル、高さ800ピクセルです。バウンディングボックスは320ピクセル下から始まり、上部座標は0.4(800 x 0.4 = 320)です。左側は240ピクセルから始まり、左座標は0.4(600 x 0.4 = 240)です。バウンディングボックスの高さは240ピクセルで、高さ値は0.3(800 x 0.3 = 240)です。幅は120ピクセルで、幅値は0.2(600 x 0.2 = 120)です。 @@ -118,7 +118,7 @@ Custom Visionの**予測**タブで予測結果を見ると、送信された画 バウンディングボックスと確率を組み合わせて、検出の精度を評価することができます。例えば、物体検出器が重なり合う複数の物体を検出する場合、例えば1つの缶が別の缶の中にあると検出する場合があります。コードはバウンディングボックスを確認し、それが不可能であることを理解し、他の物体と大きく重なる物体を無視することができます。 -![トマトペースト缶を重ねて検出する2つのバウンディングボックス](../../../../../translated_images/ja/overlap-object-detection.d431e03cae75072a2760430eca7f2c5fdd43045bfd72dadcbf12711f7cd6c2ae.png) +![トマトペースト缶を重ねて検出する2つのバウンディングボックス](../../../../../translated_images/ja/overlap-object-detection.d431e03cae75072a.webp) 上記の例では、1つのバウンディングボックスが78.3%の確率でトマトペースト缶を予測しています。2つ目のバウンディングボックスは少し小さく、最初のバウンディングボックス内にあり、確率は64.3%です。コードはバウンディングボックスを確認し、それらが完全に重なっていることを確認し、低い確率を無視します。1つの缶が別の缶の中にあることはあり得ないからです。 diff --git a/translations/ja/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md b/translations/ja/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md index 5f2dab2c3..e6a1d18d8 100644 --- a/translations/ja/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md +++ b/translations/ja/5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md @@ -67,7 +67,7 @@ 撮影された画像とこれらの値をCustom Visionの**Predictions**タブで確認できます。 - ![棚の上に置かれた4つのトマトペースト缶と、それぞれの検出確率(35.8%、33.5%、25.7%、16.6%)](../../../../../translated_images/ja/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![棚の上に置かれた4つのトマトペースト缶と、それぞれの検出確率(35.8%、33.5%、25.7%、16.6%)](../../../../../translated_images/ja/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 このコードは[code-detect/pi](../../../../../5-retail/lessons/2-check-stock-device/code-detect/pi)または[code-detect/virtual-iot-device](../../../../../5-retail/lessons/2-check-stock-device/code-detect/virtual-iot-device)フォルダーで見つけることができます。 diff --git a/translations/ja/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md b/translations/ja/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md index a7261a083..fadacba5f 100644 --- a/translations/ja/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md +++ b/translations/ja/5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md @@ -95,7 +95,7 @@ 撮影された画像とこれらの値は、Custom Visionの**Predictions**タブで確認できます。 - ![棚の上にある4つのトマトペースト缶と、それぞれの検出確率(35.8%、33.5%、25.7%、16.6%)](../../../../../translated_images/ja/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) + ![棚の上にある4つのトマトペースト缶と、それぞれの検出確率(35.8%、33.5%、25.7%、16.6%)](../../../../../translated_images/ja/custom-vision-stock-prediction.942266ab1bcca341.webp) > 💁 このコードは[code-detect/wio-terminal](../../../../../5-retail/lessons/2-check-stock-device/code-detect/wio-terminal)フォルダーで確認できます。 diff --git a/translations/ja/6-consumer/lessons/1-speech-recognition/README.md b/translations/ja/6-consumer/lessons/1-speech-recognition/README.md index 756904a25..921359506 100644 --- a/translations/ja/6-consumer/lessons/1-speech-recognition/README.md +++ b/translations/ja/6-consumer/lessons/1-speech-recognition/README.md @@ -1,6 +1,6 @@ # IoTデバイスで音声を認識する -![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-21.e34de51354d6606fb5ee08d8c89d0222eea0a2a7aaf744a8805ae847c4f69dc4.jpg) +![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-21.e34de51354d6606f.webp) > スケッチノート作成者:[Nitya Narasimhan](https://github.com/nitya)。画像をクリックすると拡大版が表示されます。 @@ -51,7 +51,7 @@ ダイナミックマイクロフォンは動作に電力を必要としません。電気信号は完全にマイクロフォンから生成されます。 - ![Shure SM58(ダイナミックカーディオイド型)マイクロフォンに向かって歌うPatti Smith](../../../../../translated_images/ja/dynamic-mic.8babac890a2d80dfb0874b5bf37d4b851fe2aeb9da6fd72945746176978bf3bb.jpg) + ![Shure SM58(ダイナミックカーディオイド型)マイクロフォンに向かって歌うPatti Smith](../../../../../translated_images/ja/dynamic-mic.8babac890a2d80df.webp) * リボン - リボンマイクロフォンはダイナミックマイクロフォンに似ていますが、ダイアフラムの代わりに金属製のリボンを使用します。このリボンが磁場内で動き、電流を生成します。ダイナミックマイクロフォンと同様に、リボンマイクロフォンも動作に電力を必要としません。 @@ -59,11 +59,11 @@ * コンデンサー - コンデンサーマイクロフォンは、薄い金属製のダイアフラムと固定された金属製のバックプレートを持っています。これらの両方に電力が供給され、ダイアフラムが振動すると、プレート間の静電荷が変化して信号を生成します。コンデンサーマイクロフォンは動作に電力を必要とします。この電力は*ファンタム電源*と呼ばれます。 - ![AKG AcousticsのC451B小型ダイアフラムコンデンサーマイクロフォン](../../../../../translated_images/ja/condenser-mic.6f6ed5b76ca19e0ec3fd0c544601542d4479a6cb7565db336de49fbbf69f623e.jpg) + ![AKG AcousticsのC451B小型ダイアフラムコンデンサーマイクロフォン](../../../../../translated_images/ja/condenser-mic.6f6ed5b76ca19e0e.webp) * MEMS - マイクロエレクトロメカニカルシステムマイクロフォン、またはMEMSは、チップ上のマイクロフォンです。シリコンチップにエッチングされた圧力感知ダイアフラムを持ち、コンデンサーマイクロフォンに似た仕組みで動作します。これらのマイクロフォンは非常に小型で、回路に統合することができます。 - ![回路基板上のMEMSマイクロフォン](../../../../../translated_images/ja/mems-microphone.80574019e1f5e4d9ee72fed720ecd25a39fc2969c91355d17ebb24ba4159e4c4.png) + ![回路基板上のMEMSマイクロフォン](../../../../../translated_images/ja/mems-microphone.80574019e1f5e4d9.webp) 上の画像では、**LEFT**とラベル付けされたチップがMEMSマイクロフォンで、幅1ミリ未満の小さなダイアフラムを持っています。 @@ -159,7 +159,7 @@ MLモデルは常に同じサイズのデータを受け入れます。以前の ## 音声をテキストに変換する -![Speech services logo](../../../../../translated_images/ja/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![Speech services logo](../../../../../translated_images/ja/azure-speech-logo.a1f08c4befb0159f.webp) 以前のプロジェクトで画像分類を行ったように、音声を音声ファイルとして受け取り、テキストに変換する事前構築済みのAIサービスがあります。その一つがSpeech Serviceで、Cognitive Servicesの一部として提供される事前構築済みのAIサービスです。 diff --git a/translations/ja/6-consumer/lessons/1-speech-recognition/pi-audio.md b/translations/ja/6-consumer/lessons/1-speech-recognition/pi-audio.md index 169b33970..fe7c033b9 100644 --- a/translations/ja/6-consumer/lessons/1-speech-recognition/pi-audio.md +++ b/translations/ja/6-consumer/lessons/1-speech-recognition/pi-audio.md @@ -16,13 +16,13 @@ Raspberry Piには、オーディオ録音を制御するためのボタンが #### タスク - ボタンを接続する -![Groveボタン](../../../../../translated_images/ja/grove-button.a70cfbb809a8563681003250cf5b06d68cdcc68624f9e2f493d5a534ae2da1e5.png) +![Groveボタン](../../../../../translated_images/ja/grove-button.a70cfbb809a85636.webp) 1. Groveケーブルの片方の端をボタンモジュールのソケットに差し込みます。このケーブルは一方向にしか差し込めません。 1. Raspberry Piの電源をオフにした状態で、Groveケーブルのもう一方の端を、Piに接続されたGroveベースハットのデジタルソケット**D5**に接続します。このソケットは、GPIOピンの隣のソケット列の左から2番目にあります。 -![D5ソケットに接続されたGroveボタン](../../../../../translated_images/ja/pi-button.c7a1a4f55943341ce1baf1057658e9a205804d4131d258e820c93f951df0abf3.png) +![D5ソケットに接続されたGroveボタン](../../../../../translated_images/ja/pi-button.c7a1a4f55943341c.webp) ## オーディオの録音 diff --git a/translations/ja/6-consumer/lessons/1-speech-recognition/pi-microphone.md b/translations/ja/6-consumer/lessons/1-speech-recognition/pi-microphone.md index c1eb3dc8e..1d3f2827b 100644 --- a/translations/ja/6-consumer/lessons/1-speech-recognition/pi-microphone.md +++ b/translations/ja/6-consumer/lessons/1-speech-recognition/pi-microphone.md @@ -34,7 +34,7 @@ Raspberry Piには3.5mmヘッドフォンジャックが付属しています。 1. ReSpeaker 2-Mics Pi HATを使用する場合、Groveベースハットを取り外し、代わりにReSpeakerハットを取り付けます。 - ![ReSpeakerハットを装着したRaspberry Pi](../../../../../translated_images/ja/pi-respeaker-hat.f00fabe7dd039a93e2e0aa0fc946c9af0c6a9eb17c32fa1ca097fb4e384f69f0.png) + ![ReSpeakerハットを装着したRaspberry Pi](../../../../../translated_images/ja/pi-respeaker-hat.f00fabe7dd039a93.webp) このレッスンの後半でGroveボタンが必要になりますが、このハットにはボタンが内蔵されているため、Groveベースハットは不要です。 diff --git a/translations/ja/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md b/translations/ja/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md index 04434babd..2d00d8395 100644 --- a/translations/ja/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md +++ b/translations/ja/6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md @@ -10,7 +10,7 @@ ✅ DMAについてさらに詳しくは、[Wikipediaのダイレクトメモリアクセスのページ](https://wikipedia.org/wiki/Direct_memory_access)をご覧ください。 -![マイクからの音声がADCを通り、DMACに送られる。このデータは1つのバッファに書き込まれ、バッファが満杯になると処理され、DMACは2つ目のバッファに書き込む](../../../../../translated_images/ja/dmac-adc-buffers.4509aee49145c90bc2e1be472b8ed2ddfcb2b6a81ad3e559114aca55f5fff759.png) +![マイクからの音声がADCを通り、DMACに送られる。このデータは1つのバッファに書き込まれ、バッファが満杯になると処理され、DMACは2つ目のバッファに書き込む](../../../../../translated_images/ja/dmac-adc-buffers.4509aee49145c90b.webp) DMACは、ADCからの音声を固定間隔でキャプチャできます。例えば、16KHzの音声の場合、1秒間に16,000回キャプチャします。このキャプチャしたデータは、事前に割り当てられたメモリバッファに書き込まれ、バッファが満杯になるとコードで処理できるようになります。このメモリの使用により音声キャプチャが遅れる可能性がありますが、複数のバッファを設定することで対応できます。DMACはバッファ1に書き込み、満杯になるとコードに通知してバッファ1を処理させ、その間にDMACはバッファ2に書き込みます。バッファ2が満杯になるとコードに通知し、再びバッファ1に書き込みます。このようにして、各バッファを満杯になる前に処理できれば、データを失うことはありません。 diff --git a/translations/ja/6-consumer/lessons/2-language-understanding/README.md b/translations/ja/6-consumer/lessons/2-language-understanding/README.md index 0f679e7e7..814be4905 100644 --- a/translations/ja/6-consumer/lessons/2-language-understanding/README.md +++ b/translations/ja/6-consumer/lessons/2-language-understanding/README.md @@ -1,6 +1,6 @@ # 言語を理解する -![このレッスンのスケッチノート概要](../../../../../translated_images/ja/lesson-22.6148ea28500d9e00c396aaa2649935fb6641362c8f03d8e5e90a676977ab01dd.jpg) +![このレッスンのスケッチノート概要](../../../../../translated_images/ja/lesson-22.6148ea28500d9e00.webp) > スケッチノート作成者: [Nitya Narasimhan](https://github.com/nitya)。画像をクリックすると拡大表示されます。 @@ -46,7 +46,7 @@ ## 言語理解モデルの作成 -![LUISのロゴ](../../../../../translated_images/ja/luis-logo.5cb4f3e88c020ee6df4f614e8831f4a4b6809a7247bf52085fb48d629ef9be52.png) +![LUISのロゴ](../../../../../translated_images/ja/luis-logo.5cb4f3e88c020ee6.webp) 言語理解モデルは、MicrosoftのCognitive Servicesの一部であるLUIS(Language Understanding Intelligent Service)を使用して作成できます。 @@ -169,7 +169,7 @@ LUISポータルの使用方法については、[Microsoft DocsのLUISポータ 1. 各例文を入力すると、LUISがエンティティを検出し始め、検出された部分を下線付きでラベル付けします。 - ![LUISが例文の数字と時間単位を下線付きで表示している図](../../../../../translated_images/ja/luis-intent-examples.25716580b2d2723cf1bafdf277d015c7f046d8cfa20f27bddf3a0873ec45fab7.png) + ![LUISが例文の数字と時間単位を下線付きで表示している図](../../../../../translated_images/ja/luis-intent-examples.25716580b2d2723c.webp) ### タスク - モデルの訓練とテスト diff --git a/translations/ja/6-consumer/lessons/3-spoken-feedback/README.md b/translations/ja/6-consumer/lessons/3-spoken-feedback/README.md index 4963ad119..e225a3e62 100644 --- a/translations/ja/6-consumer/lessons/3-spoken-feedback/README.md +++ b/translations/ja/6-consumer/lessons/3-spoken-feedback/README.md @@ -1,6 +1,6 @@ # タイマーを設定して音声フィードバックを提供する -![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-23.f38483e1d4df4828990d3f02d60e46c978b075d384ae7cb4f7bab738e107c850.jpg) +![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-23.f38483e1d4df4828.webp) > スケッチノート作成者:[Nitya Narasimhan](https://github.com/nitya)。画像をクリックすると拡大表示されます。 diff --git a/translations/ja/6-consumer/lessons/4-multiple-language-support/README.md b/translations/ja/6-consumer/lessons/4-multiple-language-support/README.md index 80108fd7e..3577f5dd8 100644 --- a/translations/ja/6-consumer/lessons/4-multiple-language-support/README.md +++ b/translations/ja/6-consumer/lessons/4-multiple-language-support/README.md @@ -1,6 +1,6 @@ # 複数言語のサポート -![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-24.4246968ed058510ab275052e87ef9aa89c7b2f938915d103c605c04dc6cd5bb7.jpg) +![このレッスンの概要を示すスケッチノート](../../../../../translated_images/ja/lesson-24.4246968ed058510a.webp) > スケッチノート作成者: [Nitya Narasimhan](https://github.com/nitya)。画像をクリックすると拡大表示されます。 @@ -74,7 +74,7 @@ ### Cognitive Services 音声サービス -![音声サービスのロゴ](../../../../../translated_images/ja/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) +![音声サービスのロゴ](../../../../../translated_images/ja/azure-speech-logo.a1f08c4befb0159f.webp) これまでのレッスンで使用してきた音声サービスには、音声認識の翻訳機能があります。音声を認識する際に、同じ言語でのテキストだけでなく、他の言語でのテキストも取得することができます。 @@ -82,7 +82,7 @@ ### Cognitive Services 翻訳サービス -![翻訳サービスのロゴ](../../../../../translated_images/ja/azure-translator-logo.c6ed3a4a433edfd2f11577eca105412c50b8396b194cbbd730723dd1d0793bcd.png) +![翻訳サービスのロゴ](../../../../../translated_images/ja/azure-translator-logo.c6ed3a4a433edfd2.webp) 翻訳サービスは、特定の翻訳機能を提供する専用のサービスで、1つの言語から1つ以上のターゲット言語にテキストを翻訳することができます。翻訳だけでなく、不適切な表現をマスクする機能や、特定の単語や文の翻訳を指定する機能もサポートしています。これにより、翻訳したくない用語や、特定のよく知られた翻訳を使用することができます。 diff --git a/translations/ja/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md b/translations/ja/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md index 4f98ca551..98102c840 100644 --- a/translations/ja/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md +++ b/translations/ja/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md @@ -25,7 +25,7 @@ > > 例えば、LUISを英語でトレーニングし、ユーザー言語としてフランス語を使用したい場合、Bing Translateを使用して「2分27秒のタイマーを設定して」という文を英語からフランス語に翻訳し、その後**Listen translation**ボタンを使用して翻訳をマイクに話すことができます。 > - > ![Bing TranslateのListen translationボタン](../../../../../translated_images/ja/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Bing TranslateのListen translationボタン](../../../../../translated_images/ja/bing-translate.348aa796d6efe2a9.webp) 1. `speech_api_key`の下にTranslator APIキーを追加してください: diff --git a/translations/ja/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md b/translations/ja/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md index 247d6b627..d844e21c9 100644 --- a/translations/ja/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md +++ b/translations/ja/6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md @@ -37,7 +37,7 @@ > > 例えば、LUISを英語でトレーニングし、ユーザー言語としてフランス語を使用したい場合、"set a 2 minute and 27 second timer"のような文を英語からフランス語にBing翻訳を使用して翻訳し、**Listen translation**ボタンを使用して翻訳をマイクに話しかけることができます。 > - > ![Bing翻訳のListen translationボタン](../../../../../translated_images/ja/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Bing翻訳のListen translationボタン](../../../../../translated_images/ja/bing-translate.348aa796d6efe2a9.webp) 1. `recognizer_config`と`recognizer`の宣言を以下のコードに置き換えてください: diff --git a/translations/ja/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md b/translations/ja/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md index 5e368c0b2..16768dd2d 100644 --- a/translations/ja/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md +++ b/translations/ja/6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md @@ -105,7 +105,7 @@ > > 例えば、LUISを英語でトレーニングし、ユーザー言語としてフランス語を使用したい場合、Bing Translateを使用して英語の文「set a 2 minute and 27 second timer」をフランス語に翻訳し、**Listen translation**ボタンを使用して翻訳された音声をマイクに話すことができます。 > - > ![Bing TranslateのListen translationボタン](../../../../../translated_images/ja/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) + > ![Bing TranslateのListen translationボタン](../../../../../translated_images/ja/bing-translate.348aa796d6efe2a9.webp) 1. `SPEECH_LOCATION`の下に翻訳APIキーとロケーションを追加します: diff --git a/translations/ja/README.md b/translations/ja/README.md index 9f55ae950..aa9713fb8 100644 --- a/translations/ja/README.md +++ b/translations/ja/README.md @@ -10,142 +10,152 @@ ### Azure AI Foundry コミュニティに参加しよう -AIアプリの構築で行き詰まったり質問がある場合、MCPについて学ぶ仲間や経験豊富な開発者とディスカッションができるコミュニティに参加してください。質問が歓迎され、知識が自由に共有されるサポート体制のあるコミュニティです。 +AI アプリの開発で困ったことがあったり、質問がある場合は、同じ学習者や経験豊富な開発者と一緒に MCPについての議論に参加してください。質問が歓迎され、知識が自由に共有されるサポートコミュニティです。 [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -製品に関するフィードバックや構築時のエラーがあれば、以下をご利用ください: +製品に関するフィードバックや開発中に発生したエラーについては、こちらをご覧ください: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -これらのリソースを使い始めるには、次の手順に従ってください: -1. **リポジトリをフォーク**: クリック [![GitHub forks](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) -2. **リポジトリをクローン**: `git clone https://github.com/microsoft/IoT-For-Beginners.git` -3. [**Microsoft Foundry Discordに参加し、専門家や仲間の開発者と交流しよう**](https://discord.com/invite/ByRwuEEgH4) +これらのリソースを使い始めるには、以下の手順に従ってください: +1. リポジトリをフォーク: クリック [![GitHub forks](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/fork) +2. リポジトリをクローン: `git clone https://github.com/microsoft/IoT-For-Beginners.git` +3. [**Microsoft Foundry Discord に参加して専門家や仲間の開発者と会いましょう**](https://discord.com/invite/ByRwuEEgH4) -### 🌐 多言語対応 +### 🌐 多言語サポート -#### GitHub Actions でサポート(自動かつ常に最新) +#### GitHub Actionsを通じてサポート(自動かつ常に最新) -[アラビア語](../ar/README.md) | [ベンガル語](../bn/README.md) | [ブルガリア語](../bg/README.md) | [ビルマ語(ミャンマー)](../my/README.md) | [中国語(簡体字)](../zh-CN/README.md) | [中国語(繁体字・香港)](../zh-HK/README.md) | [中国語(繁体字・マカオ)](../zh-MO/README.md) | [中国語(繁体字・台湾)](../zh-TW/README.md) | [クロアチア語](../hr/README.md) | [チェコ語](../cs/README.md) | [デンマーク語](../da/README.md) | [オランダ語](../nl/README.md) | [エストニア語](../et/README.md) | [フィンランド語](../fi/README.md) | [フランス語](../fr/README.md) | [ドイツ語](../de/README.md) | [ギリシャ語](../el/README.md) | [ヘブライ語](../he/README.md) | [ヒンディー語](../hi/README.md) | [ハンガリー語](../hu/README.md) | [インドネシア語](../id/README.md) | [イタリア語](../it/README.md) | [日本語](./README.md) | [カンナダ語](../kn/README.md) | [韓国語](../ko/README.md) | [リトアニア語](../lt/README.md) | [マレー語](../ms/README.md) | [マラヤーラム語](../ml/README.md) | [マラーティー語](../mr/README.md) | [ネパール語](../ne/README.md) | [ナイジェリア・ピジン語](../pcm/README.md) | [ノルウェー語](../no/README.md) | [ペルシャ語(ファルシ)](../fa/README.md) | [ポーランド語](../pl/README.md) | [ポルトガル語(ブラジル)](../pt-BR/README.md) | [ポルトガル語(ポルトガル)](../pt-PT/README.md) | [パンジャブ語(グルムキー)](../pa/README.md) | [ルーマニア語](../ro/README.md) | [ロシア語](../ru/README.md) | [セルビア語(キリル)](../sr/README.md) | [スロバキア語](../sk/README.md) | [スロベニア語](../sl/README.md) | [スペイン語](../es/README.md) | [スワヒリ語](../sw/README.md) | [スウェーデン語](../sv/README.md) | [タガログ語(フィリピン)](../tl/README.md) | [タミル語](../ta/README.md) | [テルグ語](../te/README.md) | [タイ語](../th/README.md) | [トルコ語](../tr/README.md) | [ウクライナ語](../uk/README.md) | [ウルドゥー語](../ur/README.md) | [ベトナム語](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](./README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) -> **ローカルでクローンするのが好きですか?** - -> このリポジトリには50以上の言語翻訳が含まれており、ダウンロードサイズが大幅に増加します。翻訳を除いてクローンするにはスパースチェックアウトを使ってください: +> **ローカルでのクローンを希望しますか?** +> +> このリポジトリには50以上の言語の翻訳が含まれており、ダウンロードサイズが大幅に増加します。翻訳なしでクローンしたい場合はスパースチェックアウトを使用してください: +> +> **Bash / macOS / Linux:** > ```bash > git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git > cd IoT-For-Beginners > git sparse-checkout set --no-cone '/*' '!translations' '!translated_images' > ``` -> これにより、必要なものをすべて取得し、はるかに速くダウンロードできます。 +> +> **CMD (Windows):** +> ```cmd +> git clone --filter=blob:none --sparse https://github.com/microsoft/IoT-For-Beginners.git +> cd IoT-For-Beginners +> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" +> ``` +> +> これにより、はるかに高速なダウンロードでコースを完了するために必要なすべてを入手できます。 -# 初心者のためのIoT - カリキュラム +# 初心者向け IoT カリキュラム -MicrosoftのAzure Cloud Advocatesは、IoTの基本を学べる12週間・24レッスンのカリキュラムを提供しています。各レッスンには、前後のクイズ、レッスンを完了するための手順書、解答、課題などが含まれています。プロジェクトベースの教育法により、実際に作りながら学習でき、新しいスキルをしっかり身につけることが証明されています。 +Microsoft の Azure Cloud Advocates は、IoT の基本についての12週間、24レッスンのカリキュラムを提供できることを嬉しく思います。各レッスンには事前および事後のクイズ、レッスンを完了するための指示文、解答例、課題などが含まれています。当社のプロジェクトベースの教育法により、学びながら制作を進めることで新しいスキルが「定着」しやすくなります。 -プロジェクトは、農場から食卓までの食品の流れに沿った内容です。これには農業、物流、製造、小売、消費者といった、IoTデバイスに人気のある業界分野が含まれています。 +プロジェクトは、食べ物が農場から食卓に届くまでの過程をカバーしています。これには農業、物流、製造、小売、消費者—すべてIoTデバイスがよく使われる産業分野が含まれます。 -![イントロ、農業、輸送、加工、小売、調理をカバーする24レッスンのコースのロードマップ](../../translated_images/ja/Roadmap.bb1dec285dda0eda.webp) +![導入、農業、輸送、加工、小売、調理を含む24レッスンのロードマップ](../../translated_images/ja/Roadmap.bb1dec285dda0eda.webp) -> スケッチノートは [Nitya Narasimhan](https://github.com/nitya) さんによるものです。画像をクリックすると大きなバージョンが表示されます。 +> スケッチノートは [Nitya Narasimhan](https://github.com/nitya) によるものです。画像をクリックすると拡大版が表示されます。 -**著者の [Jen Fox](https://github.com/jenfoxbot)、[Jen Looper](https://github.com/jlooper)、[Jim Bennett](https://github.com/jimbobbennett)、スケッチノートアーティストの [Nitya Narasimhan](https://github.com/nitya) に深く感謝します。** +**著者の [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)、[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/) )にも感謝します。** +**また、このカリキュラムのレビューと翻訳に協力してくれた [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/) にも感謝します。** -チームをご紹介! +チームをご紹介します! -[![プロモ動画](../../images/IOT.gif)](https://youtu.be/-wippUJRi5k) +[![プロモーション動画](../../images/IOT.gif)](https://youtu.be/-wippUJRi5k) -**Gifは** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) さんによるものです。 +**Gif は [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) によるものです。** -> 🎥 プロジェクトに関する動画は上の画像をクリックしてください! +> 🎥 上の画像をクリックするとプロジェクトに関する動画がご覧いただけます! -> **先生方**、このカリキュラムの活用方法について [提案を含めています](for-teachers.md)。独自のレッスンを作成したい場合は、[レッステンプレート](lesson-template/README.md)も用意しています。 +> 教師向けには、このカリキュラムの活用方法についての[提案集](for-teachers.md)を含めています。また、ご自身でレッスンを作成したい方のために[レッスンテンプレート](lesson-template/README.md)も用意しています。 -> **[学生の皆さん](https://aka.ms/student-page)**、このカリキュラムを自分で使う場合はリポジトリ全体をフォークして、プレクイスから始めて講義を読み、残りのアクティビティを完了してください。解答コードをコピーするのではなく、レッスン内容を理解しながらプロジェクトを作ってみましょう。ただし、解答コードは各プロジェクト指向のレッスンの /solutions フォルダーにあります。友達とスタディグループを作るのも良い方法です。さらなる学習には [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn) をお勧めします。 +> **[学生の皆さん](https://aka.ms/student-page)**、このカリキュラムを自分で使う場合はリポジトリ全体をフォークし、事前のクイズ、レクチャーの読解、そしてそれ以降の課題を自力でこなしてください。解答コードは各プロジェクト指向レッスンの/solutionsフォルダーにありますが、内容を理解しながらプロジェクトを作ることでより効果的に学べます。また、友達とスタディグループを作って一緒に学習するのも良いでしょう。さらなる学習には[Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn)をお勧めします。 -このコースの概要動画はこちら: +このコースの動画概要はこちらをご覧ください: -[![プロモ動画](https://img.youtube.com/vi/bccEMm8gRuc/0.jpg)](https://youtube.com/watch?v=bccEMm8gRuc "プロモ動画") +[![プロモーション動画](https://img.youtube.com/vi/bccEMm8gRuc/0.jpg)](https://youtube.com/watch?v=bccEMm8gRuc "Promo video") -> 🎥 プロジェクトに関する動画は上の画像をクリックしてください! +> 🎥 上の画像をクリックするとプロジェクトに関する動画がご覧いただけます! ## 教育理念 -このカリキュラム作成にあたり、私たちは2つの教育原則を選びました。プロジェクトベース学習であることと、頻繁にクイズを含むことです。シリーズを終える頃には、植物モニタリング・潅水システム、車両追跡システム、食品管理のスマート工場セットアップ、音声制御の料理タイマーを作り、IoTの基本(デバイスコードの書き方、クラウド接続、テレメトリー解析、エッジ上のAI実行)を学びます。 +このカリキュラムでは、プロジェクトベースであることと頻繁なクイズを組み込むこと、の2つの教育的な柱を選びました。このシリーズを終える頃には、植物のモニタリングと水やりシステム、車両追跡機能、食品を追跡・検査するスマートファクトリー、音声制御の調理タイマーを作り、IoTの基礎であるデバイスコードの作成、クラウド接続、テレメトリ解析、エッジにおけるAIの実行などを学ぶことになります。 -プロジェクトに沿った内容を提供することで、学習プロセスがより魅力的になり、概念の定着が強化されます。 +内容がプロジェクトに適合していることで、学生の興味を引き付けて理解の定着を促進します。 -また、授業前の低リスクのクイズは学生に学ぶ意欲を持たせ、授業後のクイズは理解の定着を促進します。このカリキュラムは柔軟かつ楽しく学べるように設計されており、全体または一部のみでも受講可能です。プロジェクトは小規模から始まり、12週間のサイクル終了時にはより複雑になります。 +また、授業前の低リスクなクイズは学習への意欲を高め、授業後のクイズは学習した内容のさらなる定着を保証します。このカリキュラムは柔軟で楽しく、全体を通してでも一部だけでも受講可能です。プロジェクトは小さいところから始まり、12週間のサイクルの最後にはより高度なものとなります。 -各プロジェクトは学生やホビーistが入手可能な実際のハードウェアに基づいています。各プロジェクトは専門領域を掘り下げ、関連する背景知識を提供します。問題解決のドメインを理解することは、成功する開発者になるために役立ちます。この背景知識により、学生はIoTソリューションや学習内容を、IoT開発者として解決を求められる現実世界の問題の文脈で考えることができます。学生は作成するソリューションの「なぜ」を学び、最終利用者への理解を深めます。 +すべてのプロジェクトは学生や趣味で取り組む人が実際に入手できるハードウェアを中心に構成されています。各プロジェクトはそのドメインの背景知識を提供しながら進行します。開発者として成功するには、自分が問題を解こうとしている領域を理解することが重要です。この背景を知ることにより、IoTソリューションや学習内容を、実際の現場で直面する可能性のある問題との関連で考えられるようになります。学生は自分が作る解決策の「なぜ」を理解し、最終利用者への理解も深まります。 ## ハードウェア +プロジェクトで使用するIoTハードウェアは、お好み、プログラミング言語の知識や好み、学習目標、入手可能性に応じて2種類あります。また、ハードウェアを持っていない方や購入前にもっと学びたい方向けに「仮想ハードウェア」バージョンも提供しています。[ハードウェアページ](./hardware.md)では詳細および「ショッピングリスト」をご覧いただけます。Seeed Studioの友人たちから販売されている完全なキットの購入リンクも含まれています。 -プロジェクトに使用するIoTハードウェアには、個人の好み、プログラミング言語の知識や希望、学習目標、入手可能性によって選べる2つの選択肢があります。また、ハードウェアを持っていなかったり、購入前にもっと学びたい人のために「バーチャルハードウェア」バージョンも用意しています。[ハードウェアページ](./hardware.md)で詳細と、Seeed Studioの友人たちから購入できるキットのリンクもご覧ください。 -> 💁 私たちの[行動規範](CODE_OF_CONDUCT.md)、[貢献ガイドライン](CONTRIBUTING.md)、および[翻訳ガイドライン](TRANSLATIONS.md)をご覧ください。建設的なフィードバックを歓迎します! +> 💁 私たちの [行動規範](CODE_OF_CONDUCT.md)、[寄稿ガイド](CONTRIBUTING.md)、および[翻訳ガイドライン](TRANSLATIONS.md)をご覧ください。建設的なフィードバックを歓迎します! > -> 🔧 問題がありますか?よくある問題の解決方法については[トラブルシューティングガイド](TROUBLESHOOTING.md)をご確認ください。 +> 🔧 トラブルがありますか?よくある問題の解決法は[トラブルシューティングガイド](TROUBLESHOOTING.md)をご確認ください。 ## 各レッスンには以下が含まれます: - スケッチノート -- 任意の補足ビデオ -- レッスン前のウォームアップクイズ -- 文章によるレッスン -- プロジェクトベースのレッスンの場合、プロジェクトを構築する方法のステップバイステップガイド -- 知識チェック +- オプションの補足ビデオ +- 事前ウォームアップクイズ +- 書面によるレッスン +- プロジェクトベースのレッスンでは、プロジェクトを構築するためのステップバイステップガイド +- 知識確認 - チャレンジ -- 補足読書 +- 補足学習 - 課題 -- [レッスン後のクイズ](https://ff-quizzes.netlify.app/en/) +- [事後クイズ](https://ff-quizzes.netlify.app/en/) -> **クイズについての注意**:すべてのクイズは quiz-app フォルダーに収められており、合計48回のクイズがそれぞれ3問からなっています。レッスン内からリンクされていますが、quiz-app はローカルで実行するかAzureに展開することが可能です。quiz-app フォルダー内の指示に従ってください。クイズは徐々にローカライズされています。 +> クイズについての注意:すべてのクイズはquiz-appフォルダー内にあり、合計48回分、各3問のクイズです。レッスン内からリンクされていますが、クイズアプリはローカルで動作させるか、Azureにデプロイできます。`quiz-app`フォルダーの指示に従ってください。クイズは徐々にローカライズされています。 ## レッスン -| | プロジェクト名 | 教える概念 | 学習目標 | リンクされたレッスン | -| :---: | :------------------------------------: | :------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------: | -| 01 | [Getting started](./1-getting-started/README.md) | IoT入門 | IoTの基本原理とセンサーやクラウドサービスなどIoTソリューションの基本的な構成要素を学びながら、最初のIoTデバイスをセットアップします。 | [IoT入門](./1-getting-started/lessons/1-introduction-to-iot/README.md) | -| 02 | [Getting started](./1-getting-started/README.md) | IoTのより深い理解 | IoTシステムの構成要素、マイクロコントローラーやシングルボードコンピューターについてさらに詳しく学びます。 | [IoTのより深い理解](./1-getting-started/lessons/2-deeper-dive/README.md) | -| 03 | [Getting started](./1-getting-started/README.md) | センサーとアクチュエータで物理世界とやりとり | センサーで物理世界からデータを取得し、アクチュエータでフィードバックを送る方法を学びながらナイトライトを作ります。 | [センサーとアクチュエータで物理世界とやりとり](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | -| 04 | [Getting started](./1-getting-started/README.md) | デバイスをインターネットに接続する | IoTデバイスをインターネットに接続してメッセージを送受信する方法を学び、ナイトライトをMQTTブローカーにつなげます。 | [デバイスをインターネットに接続する](./1-getting-started/lessons/4-connect-internet/README.md) | -| 05 | [Farm](./2-farm/README.md) | 植物の成長予測 | IoTデバイスで取得した温度データを使って植物の成長を予測する方法を学びます。 | [植物の成長予測](./2-farm/lessons/1-predict-plant-growth/README.md) | -| 06 | [Farm](./2-farm/README.md) | 土壌の水分検知 | 土壌の水分を検知し、土壌水分センサーを校正する方法を学びます。 | [土壌の水分検知](./2-farm/lessons/2-detect-soil-moisture/README.md) | -| 07 | [Farm](./2-farm/README.md) | 自動植物給水 | リレーとMQTTを使って給水を自動化・タイミング制御する方法を学びます。 | [自動植物給水](./2-farm/lessons/3-automated-plant-watering/README.md) | -| 08 | [Farm](./2-farm/README.md) | 植物をクラウドに移行 | クラウドやクラウドホストのIoTサービスについて学び、植物をパブリックMQTTブローカーの代わりにその一つに接続する方法を学びます。 | [植物をクラウドに移行](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | -| 09 | [Farm](./2-farm/README.md) | アプリケーションロジックをクラウドに移行 | IoTメッセージに反応するクラウドで動作するアプリケーションロジックの書き方を学びます。 | [アプリケーションロジックをクラウドに移行](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | -| 10 | [Farm](./2-farm/README.md) | 植物のセキュリティを維持する | IoTのセキュリティについて、鍵や証明書を使って植物の安全を守る方法を学びます。 | [植物のセキュリティを維持する](./2-farm/lessons/6-keep-your-plant-secure/README.md) | -| 11 | [Transport](./3-transport/README.md) | 位置追跡 | IoTデバイス向けのGPS位置追跡について学びます。 | [位置追跡](./3-transport/lessons/1-location-tracking/README.md) | -| 12 | [Transport](./3-transport/README.md) | 位置データの保存 | 後で可視化や分析ができるようにIoTデータを保存する方法を学びます。 | [位置データの保存](./3-transport/lessons/2-store-location-data/README.md) | -| 13 | [Transport](./3-transport/README.md) | 位置データの可視化 | 位置データを地図上に可視化する方法と、地図が2次元で3次元の現実世界を表現する仕組みを学びます。 | [位置データの可視化](./3-transport/lessons/3-visualize-location-data/README.md) | -| 14 | [Transport](./3-transport/README.md) | ジオフェンス | ジオフェンスについて学び、サプライチェーンの車両が目的地付近にいるときにアラートを送る方法を学びます。 | [ジオフェンス](./3-transport/lessons/4-geofences/README.md) | -| 15 | [Manufacturing](./4-manufacturing/README.md) | 果物品質検出器の訓練 | クラウドで画像分類器をトレーニングし、果物の品質を検出する方法を学びます。 | [果物品質検出器の訓練](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | -| 16 | [Manufacturing](./4-manufacturing/README.md) | IoTデバイスでの果物品質チェック | IoTデバイスから果物品質検出器を使用する方法を学びます。 | [IoTデバイスでの果物品質チェック](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | -| 17 | [Manufacturing](./4-manufacturing/README.md) | エッジで果物検出器を動作させる | エッジ上でIoTデバイスの果物検出器を動かす方法を学びます。 | [エッジで果物検出器を動作させる](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | -| 18 | [Manufacturing](./4-manufacturing/README.md) | センサーから果物品質検出をトリガーする | センサーから果物品質検出をトリガーする方法を学びます。 | [センサーから果物品質検出をトリガーする](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | -| 19 | [Retail](./5-retail/README.md) | ストック検出器の訓練 | 物体検出を使って店舗の在庫をカウントするストック検出器をトレーニングする方法を学びます。 | [ストック検出器の訓練](./5-retail/lessons/1-train-stock-detector/README.md) | -| 20 | [Retail](./5-retail/README.md) | IoTデバイスから在庫を確認 | 物体検出モデルを使ってIoTデバイスから在庫を確認する方法を学びます。 | [IoTデバイスから在庫を確認](./5-retail/lessons/2-check-stock-device/README.md) | -| 21 | [Consumer](./6-consumer/README.md) | IoTデバイスで音声認識 | IoTデバイスから音声認識を行いスマートタイマーを作成する方法を学びます。 | [IoTデバイスで音声認識](./6-consumer/lessons/1-speech-recognition/README.md) | -| 22 | [Consumer](./6-consumer/README.md) | 言語理解 | IoTデバイスに話しかけた文を理解する方法を学びます。 | [言語理解](./6-consumer/lessons/2-language-understanding/README.md) | -| 23 | [Consumer](./6-consumer/README.md) | タイマー設定と音声フィードバック | IoTデバイスでタイマーを設定し、設定時と終了時に音声でフィードバックを提供する方法を学びます。 | [タイマー設定と音声フィードバック](./6-consumer/lessons/3-spoken-feedback/README.md) | -| 24 | [Consumer](./6-consumer/README.md) | 複数言語のサポート | スマートタイマーへの複数言語の対応(話しかける言語と応答言語双方)を学びます。 | [複数言語のサポート](./6-consumer/lessons/4-multiple-language-support/README.md) | +| | プロジェクト名 | 教えるコンセプト | 学習目標 | リンクされたレッスン | +| :---: | :------------------------------------: | :---------------------------------------------------------: | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------: | +| 01 | [はじめに](./1-getting-started/README.md) | IoTの紹介 | IoTの基本原理と、センサーやクラウドサービスなどのIoTソリューションの基本構成要素を、最初のIoTデバイスをセットアップしながら学ぶ | [IoTの紹介](./1-getting-started/lessons/1-introduction-to-iot/README.md) | +| 02 | [はじめに](./1-getting-started/README.md) | IoTの詳細 | IoTシステムの構成要素、マイクロコントローラーやシングルボードコンピューターについてさらに学ぶ | [IoTの詳細](./1-getting-started/lessons/2-deeper-dive/README.md) | +| 03 | [はじめに](./1-getting-started/README.md) | センサーとアクチュエーターで物理世界と対話する | 夜間照明を作りながら、物理世界からデータを収集するためのセンサーと、フィードバックを送るためのアクチュエーターについて学ぶ | [センサーとアクチュエーターで物理世界と対話する](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | +| 04 | [はじめに](./1-getting-started/README.md) | デバイスをインターネットに接続する | 夜間照明をMQTTブローカーに接続し、メッセージの送受信を行う方法を学ぶ | [デバイスをインターネットに接続する](./1-getting-started/lessons/4-connect-internet/README.md) | +| 05 | [ファーム](./2-farm/README.md) | 植物の成長予測 | IoTデバイスで取得した温度データを使って植物の成長を予測する方法を学ぶ | [植物の成長予測](./2-farm/lessons/1-predict-plant-growth/README.md) | +| 06 | [ファーム](./2-farm/README.md) | 土壌水分の検知 | 土壌水分センサーを使った土壌水分の検知とキャリブレーションの方法を学ぶ | [土壌水分の検知](./2-farm/lessons/2-detect-soil-moisture/README.md) | +| 07 | [ファーム](./2-farm/README.md) | 自動植物灌漑 | リレーとMQTTを使って灌漑を自動化し、タイミングを管理する方法を学ぶ | [自動植物灌漑](./2-farm/lessons/3-automated-plant-watering/README.md) | +| 08 | [ファーム](./2-farm/README.md) | 植物をクラウドに移行する | クラウドやクラウドホスト型のIoTサービスについて学び、公共のMQTTブローカーの代わりに植物をクラウドに接続する方法を学ぶ | [植物をクラウドに移行する](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | +| 09 | [ファーム](./2-farm/README.md) | アプリケーションロジックをクラウドに移行 | IoTメッセージに応答するアプリケーションロジックをクラウド上で作成する方法を学ぶ | [アプリケーションロジックをクラウドに移行](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | +| 10 | [ファーム](./2-farm/README.md) | 植物のセキュリティを保つ | IoTセキュリティについて学び、鍵や証明書を使って植物の安全を守る方法を学ぶ | [植物のセキュリティを保つ](./2-farm/lessons/6-keep-your-plant-secure/README.md) | +| 11 | [交通](./3-transport/README.md) | 位置追跡 | IoTデバイスのGPSによる位置追跡について学ぶ | [位置追跡](./3-transport/lessons/1-location-tracking/README.md) | +| 12 | [交通](./3-transport/README.md) | 位置データの保存 | 後に視覚化または分析するためのIoTデータ保存方法を学ぶ | [位置データの保存](./3-transport/lessons/2-store-location-data/README.md) | +| 13 | [交通](./3-transport/README.md) | 位置データの視覚化 | 地図上で位置データを視覚化する方法と、地図が実世界の3Dを2次元で表現する仕組みについて学ぶ | [位置データの視覚化](./3-transport/lessons/3-visualize-location-data/README.md) | +| 14 | [交通](./3-transport/README.md) | ジオフェンス | ジオフェンスについて学び、供給チェーン内の車両が目的地に近づいた時にアラートを出す用途を理解する | [ジオフェンス](./3-transport/lessons/4-geofences/README.md) | +| 15 | [製造](./4-manufacturing/README.md) | 果実品質検出器のトレーニング | クラウドで画像分類器をトレーニングして果実の品質を検出する方法を学ぶ | [果実品質検出器のトレーニング](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | +| 16 | [製造](./4-manufacturing/README.md) | IoTデバイスから果実品質をチェック | IoTデバイスで果実品質検出器を使用する方法を学ぶ | [IoTデバイスから果実品質をチェック](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | +| 17 | [製造](./4-manufacturing/README.md) | エッジで果実検出器を動かす | IoTエッジデバイスで果実検出器を稼働させる方法を学ぶ | [エッジで果実検出器を動かす](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | +| 18 | [製造](./4-manufacturing/README.md) | センサーから果実品質検出をトリガー | センサーから果実品質検出をトリガーする方法を学ぶ | [センサーから果実品質検出をトリガー](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | +| 19 | [小売](./5-retail/README.md) | 在庫検出器のトレーニング | 物体検出を利用して店舗内の在庫数をカウントする在庫検出器のトレーニング方法を学ぶ | [在庫検出器のトレーニング](./5-retail/lessons/1-train-stock-detector/README.md) | +| 20 | [小売](./5-retail/README.md) | IoTデバイスから在庫をチェック | 物体検出モデルを使ってIoTデバイスから在庫をチェックする方法を学ぶ | [IoTデバイスから在庫をチェック](./5-retail/lessons/2-check-stock-device/README.md) | +| 21 | [コンシューマー](./6-consumer/README.md) | IoTデバイスで音声認識 | IoTデバイスで音声を認識し、スマートタイマーを作る方法を学ぶ | [IoTデバイスで音声認識](./6-consumer/lessons/1-speech-recognition/README.md) | +| 22 | [コンシューマー](./6-consumer/README.md) | 言語理解 | IoTデバイスに話しかけられた文章を理解する方法を学ぶ | [言語理解](./6-consumer/lessons/2-language-understanding/README.md) | +| 23 | [コンシューマー](./6-consumer/README.md) | タイマー設定と音声フィードバック | IoTデバイスでタイマーを設定し、設定時と終了時に音声フィードバックを行う方法を学ぶ | [タイマー設定と音声フィードバック](./6-consumer/lessons/3-spoken-feedback/README.md) | +| 24 | [コンシューマー](./6-consumer/README.md) | 複数言語のサポート | スマートタイマーで話しかけられる言語と応答言語の両方で複数言語をサポートする方法を学ぶ | [複数言語のサポート](./6-consumer/lessons/4-multiple-language-support/README.md) | ## オフラインアクセス -このドキュメントは[Docsify](https://docsify.js.org/#/)を使用してオフラインで実行できます。このリポジトリをフォークし、ローカルマシンに[Docsifyをインストール](https://docsify.js.org/#/quickstart)した後、このリポジトリのルートフォルダーで `docsify serve` と入力します。Webサイトはローカルホストのポート3000で提供されます:`localhost:3000`。 +[Docsify](https://docsify.js.org/#/)を使って、このドキュメントをオフラインで実行できます。このレポジトリをフォークし、ローカル環境に[Docsifyをインストール](https://docsify.js.org/#/quickstart)し、レポジトリのルートフォルダで `docsify serve` を実行してください。ウェブサイトはポート3000でローカルホストにて提供されます:`localhost:3000`。 ## クイズ -各章の知識をテストするインタラクティブなクイズをホストしてくださったコミュニティに感謝します。知識をテストするには[こちら](https://ff-quizzes.netlify.app/en/)へ +各章の理解度を試せるインタラクティブなクイズをコミュニティに感謝して提供しています。ここで知識を試せます:[こちら](https://ff-quizzes.netlify.app/en/) ### PDF -必要に応じてこのコンテンツのPDFを生成してオフラインアクセス用に利用できます。そのためには、[npmがインストールされていること](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) を確認し、このリポジトリのルートフォルダで以下のコマンドを実行してください: +必要ならこの内容をPDFでオフラインアクセス用に生成できます。これを行うには[npmをインストール済み](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)であることを確認し、このレポジトリのルートフォルダで以下のコマンドを実行してください: ```sh npm i @@ -154,59 +164,59 @@ npm run convert ### スライド -いくつかのレッスンには[slides](../../slides)フォルダーにスライド資料があります。 +一部のレッスンには[slides](../../slides)フォルダーにスライド資料があります。 ## その他のカリキュラム -私たちのチームは他のカリキュラムも制作しています!ぜひチェックしてください: +私たちのチームは他のカリキュラムも制作しています!ぜひご覧ください: ### LangChain [![初心者向けLangChain4j](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) [![初心者向けLangChain.js](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) - +[![初心者向けLangChain](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- -### Azure / Edge / MCP / Agents +### Azure / Edge / MCP / エージェント [![初心者向けAZD](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) -[![初心者向けEdge AI](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![初心者向けMCP](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![初心者向けAIエージェント](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### 生成AIシリーズ -[![初心者向け生成AI](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![生成AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![生成AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![生成AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +### ジェネレーティブ AI シリーズ +[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- ### コア学習 -[![初心者向けML](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![初心者向けデータサイエンス](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![初心者向けAI](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![初心者向けサイバーセキュリティ](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![初心者向けウェブ開発](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![初心者向けIoT](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![初心者向けXR開発](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### コパイロットシリーズ -[![AIペアプログラミング用コパイロット](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![C#/.NET用コパイロット](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![コパイロットアドベンチャー](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +### コパイロット シリーズ +[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) ## 画像の帰属情報 -このカリキュラムで使用されている画像のすべての帰属情報は、必要に応じて[Attributions](./attributions.md)でご確認いただけます。 +このカリキュラムで使用されている画像の帰属情報は、必要に応じて[Attributions](./attributions.md)にてご覧いただけます。 --- -**免責事項**: -本書類はAI翻訳サービス[Co-op Translator](https://github.com/Azure/co-op-translator)を使用して翻訳されました。正確性の向上に努めておりますが、自動翻訳には誤りや不正確な表現が含まれる可能性があります。原文の母国語版が正式な情報源として優先されます。重要な情報については、専門の翻訳者による翻訳を推奨します。本翻訳の利用により生じたいかなる誤解や曲解に対しても、当方は責任を負いかねますのでご了承ください。 +**免責事項**: +本書類はAI翻訳サービス [Co-op Translator](https://github.com/Azure/co-op-translator) を使用して翻訳されています。正確性を期していますが、自動翻訳には誤りや不正確な部分が含まれる可能性があることをご承知ください。原文が権威ある情報源とみなされます。重要な情報については専門の人間による翻訳を推奨します。本翻訳の利用に伴う誤解や解釈違いについて当方は一切責任を負いません。 \ No newline at end of file diff --git a/translations/ja/hardware.md b/translations/ja/hardware.md index 2dd40afee..ca3c46704 100644 --- a/translations/ja/hardware.md +++ b/translations/ja/hardware.md @@ -26,7 +26,7 @@ Seeed Studiosは、すべてのハードウェアを簡単に購入できるキ **[SeeedとMicrosoftによる初心者向けIoT - Raspberry Pi 4スターターキット](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html)** -[![Raspberry Pi Terminalハードウェアキット](../../translated_images/ja/pi-hardware-kit.26dbadaedb7dd44c73b0131d5d68ea29472ed0a9744f90d5866c6d82f2d16380.png)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) +[![Raspberry Pi Terminalハードウェアキット](../../translated_images/ja/pi-hardware-kit.26dbadaedb7dd44c.webp)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) ## Arduino diff --git a/translations/km/.co-op-translator.json b/translations/km/.co-op-translator.json new file mode 100644 index 000000000..4b616aca4 --- /dev/null +++ b/translations/km/.co-op-translator.json @@ -0,0 +1,836 @@ +{ + "1-getting-started/README.md": { + "original_hash": "e2b1b891b08ef7633d285547fbe73290", + "translation_date": "2026-04-06T18:35:33+00:00", + "source_file": "1-getting-started/README.md", + "language_code": "km" + }, + "1-getting-started/lessons/1-introduction-to-iot/README.md": { + "original_hash": "9bae08314d8487cb76ddf3d8797e1544", + "translation_date": "2026-04-06T18:58:51+00:00", + "source_file": "1-getting-started/lessons/1-introduction-to-iot/README.md", + "language_code": "km" + }, + "1-getting-started/lessons/1-introduction-to-iot/assignment.md": { + "original_hash": "7ef1cec2d27b086032d46ab1958f3e99", + "translation_date": "2026-04-06T18:59:06+00:00", + "source_file": "1-getting-started/lessons/1-introduction-to-iot/assignment.md", + "language_code": "km" + }, + "1-getting-started/lessons/1-introduction-to-iot/pi.md": { + "original_hash": "8ff0d0a1d29832bb896b9c103b69a452", + "translation_date": "2026-04-06T18:54:23+00:00", + "source_file": "1-getting-started/lessons/1-introduction-to-iot/pi.md", + "language_code": "km" + }, + "1-getting-started/lessons/1-introduction-to-iot/virtual-device.md": { + "original_hash": "52b4de6144b2efdced7797a5339d6035", + "translation_date": "2026-04-06T18:56:24+00:00", + "source_file": "1-getting-started/lessons/1-introduction-to-iot/virtual-device.md", + "language_code": "km" + }, + "1-getting-started/lessons/1-introduction-to-iot/wio-terminal.md": { + "original_hash": "a4f0c166010e31fd7b6ca20bc88dec6d", + "translation_date": "2026-04-06T18:55:25+00:00", + "source_file": "1-getting-started/lessons/1-introduction-to-iot/wio-terminal.md", + "language_code": "km" + }, + "1-getting-started/lessons/2-deeper-dive/README.md": { + "original_hash": "9dd7f645ad1c6f20b72fee512987f772", + "translation_date": "2026-04-06T18:41:12+00:00", + "source_file": "1-getting-started/lessons/2-deeper-dive/README.md", + "language_code": "km" + }, + "1-getting-started/lessons/2-deeper-dive/assignment.md": { + "original_hash": "750bd75866471141f857240219084767", + "translation_date": "2026-04-06T18:41:25+00:00", + "source_file": "1-getting-started/lessons/2-deeper-dive/assignment.md", + "language_code": "km" + }, + "1-getting-started/lessons/3-sensors-and-actuators/README.md": { + "original_hash": "e9ee00eb5fc55922a73762acc542166b", + "translation_date": "2026-04-06T18:46:46+00:00", + "source_file": "1-getting-started/lessons/3-sensors-and-actuators/README.md", + "language_code": "km" + }, + "1-getting-started/lessons/3-sensors-and-actuators/assignment.md": { + "original_hash": "c5a568320b1159394108544807895337", + "translation_date": "2026-04-06T18:47:01+00:00", + "source_file": "1-getting-started/lessons/3-sensors-and-actuators/assignment.md", + "language_code": "km" + }, + "1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md": { + "original_hash": "4db8a3879a53490513571df2f6cf7641", + "translation_date": "2026-04-06T18:44:33+00:00", + "source_file": "1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md", + "language_code": "km" + }, + "1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md": { + "original_hash": "ea733bd0cdf2479e082373f765a08678", + "translation_date": "2026-04-06T18:42:16+00:00", + "source_file": "1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md", + "language_code": "km" + }, + "1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md": { + "original_hash": "9c640f93263fd9adbfda920739e09feb", + "translation_date": "2026-04-06T18:43:56+00:00", + "source_file": "1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md", + "language_code": "km" + }, + "1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md": { + "original_hash": "11f10c6760fb8202cf368422702fdf70", + "translation_date": "2026-04-06T18:42:49+00:00", + "source_file": "1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md", + "language_code": "km" + }, + "1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md": { + "original_hash": "db44083b4dc6fb06eac83c4f16448940", + "translation_date": "2026-04-06T18:43:24+00:00", + "source_file": "1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md", + "language_code": "km" + }, + "1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-sensor.md": { + "original_hash": "7f4ad0ef54f248b85b92187c94cf9dcb", + "translation_date": "2026-04-06T18:41:47+00:00", + "source_file": "1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-sensor.md", + "language_code": "km" + }, + "1-getting-started/lessons/4-connect-internet/README.md": { + "original_hash": "71b5040e0b3472f1c0949c9b55f224c0", + "translation_date": "2026-04-06T18:52:28+00:00", + "source_file": "1-getting-started/lessons/4-connect-internet/README.md", + "language_code": "km" + }, + "1-getting-started/lessons/4-connect-internet/assignment.md": { + "original_hash": "0d4033cdd7b5b5475c63770102e38480", + "translation_date": "2026-04-06T18:52:44+00:00", + "source_file": "1-getting-started/lessons/4-connect-internet/assignment.md", + "language_code": "km" + }, + "1-getting-started/lessons/4-connect-internet/single-board-computer-commands.md": { + "original_hash": "c527ce85d69b1a3875366ec61cbed8aa", + "translation_date": "2026-04-06T18:49:39+00:00", + "source_file": "1-getting-started/lessons/4-connect-internet/single-board-computer-commands.md", + "language_code": "km" + }, + "1-getting-started/lessons/4-connect-internet/single-board-computer-mqtt.md": { + "original_hash": "90fb93446e03c38f3c0e4009c2471906", + "translation_date": "2026-04-06T18:48:35+00:00", + "source_file": "1-getting-started/lessons/4-connect-internet/single-board-computer-mqtt.md", + "language_code": "km" + }, + "1-getting-started/lessons/4-connect-internet/single-board-computer-telemetry.md": { + "original_hash": "1226517aae5f5b6f904434670394c688", + "translation_date": "2026-04-06T18:48:06+00:00", + "source_file": "1-getting-started/lessons/4-connect-internet/single-board-computer-telemetry.md", + "language_code": "km" + }, + "1-getting-started/lessons/4-connect-internet/wio-terminal-commands.md": { + "original_hash": "6754c915dae64ba70fcd5e52c37f3adf", + "translation_date": "2026-04-06T18:49:18+00:00", + "source_file": "1-getting-started/lessons/4-connect-internet/wio-terminal-commands.md", + "language_code": "km" + }, + "1-getting-started/lessons/4-connect-internet/wio-terminal-mqtt.md": { + "original_hash": "d6faf0e8d3c2d6d20c0aef2a305dab18", + "translation_date": "2026-04-06T18:47:48+00:00", + "source_file": "1-getting-started/lessons/4-connect-internet/wio-terminal-mqtt.md", + "language_code": "km" + }, + "1-getting-started/lessons/4-connect-internet/wio-terminal-telemetry.md": { + "original_hash": "4bcc29fe2b65e56eada83d2476279227", + "translation_date": "2026-04-06T18:48:56+00:00", + "source_file": "1-getting-started/lessons/4-connect-internet/wio-terminal-telemetry.md", + "language_code": "km" + }, + "2-farm/README.md": { + "original_hash": "428bda82d9e6016ecea7c797564bf081", + "translation_date": "2026-04-06T18:37:15+00:00", + "source_file": "2-farm/README.md", + "language_code": "km" + }, + "2-farm/lessons/1-predict-plant-growth/README.md": { + "original_hash": "d105b44deae539165855c976dcdeca99", + "translation_date": "2026-04-06T19:59:10+00:00", + "source_file": "2-farm/lessons/1-predict-plant-growth/README.md", + "language_code": "km" + }, + "2-farm/lessons/1-predict-plant-growth/assignment.md": { + "original_hash": "1e21b012c6685f8bf73e0e76cdca3347", + "translation_date": "2026-04-06T20:00:00+00:00", + "source_file": "2-farm/lessons/1-predict-plant-growth/assignment.md", + "language_code": "km" + }, + "2-farm/lessons/1-predict-plant-growth/code-notebook/gdd.ipynb": { + "original_hash": "8fcf954f6042f0bf3601a2c836a09574", + "translation_date": "2026-04-06T20:21:00+00:00", + "source_file": "2-farm/lessons/1-predict-plant-growth/code-notebook/gdd.ipynb", + "language_code": "km" + }, + "2-farm/lessons/1-predict-plant-growth/pi-temp.md": { + "original_hash": "7678f7c67b97ee52d5727496dcd7d346", + "translation_date": "2026-04-06T19:59:43+00:00", + "source_file": "2-farm/lessons/1-predict-plant-growth/pi-temp.md", + "language_code": "km" + }, + "2-farm/lessons/1-predict-plant-growth/single-board-computer-temp-publish.md": { + "original_hash": "4efc74299e19f5d08f2f3f34451a11ba", + "translation_date": "2026-04-06T19:56:57+00:00", + "source_file": "2-farm/lessons/1-predict-plant-growth/single-board-computer-temp-publish.md", + "language_code": "km" + }, + "2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md": { + "original_hash": "70e5a428b607cd5a9a4f422c2a4df03d", + "translation_date": "2026-04-06T19:56:02+00:00", + "source_file": "2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md", + "language_code": "km" + }, + "2-farm/lessons/1-predict-plant-growth/wio-terminal-temp-publish.md": { + "original_hash": "df28cd649cd892bcce034e064913b2f3", + "translation_date": "2026-04-06T19:57:21+00:00", + "source_file": "2-farm/lessons/1-predict-plant-growth/wio-terminal-temp-publish.md", + "language_code": "km" + }, + "2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md": { + "original_hash": "59263d094f20b302053888cd236880c3", + "translation_date": "2026-04-06T19:56:36+00:00", + "source_file": "2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md", + "language_code": "km" + }, + "2-farm/lessons/2-detect-soil-moisture/README.md": { + "original_hash": "4fb20273d299dc8d07a8f06c9cd0cdd9", + "translation_date": "2026-04-06T19:39:34+00:00", + "source_file": "2-farm/lessons/2-detect-soil-moisture/README.md", + "language_code": "km" + }, + "2-farm/lessons/2-detect-soil-moisture/assignment.md": { + "original_hash": "506d21b544d5de47406c89ad496a21cd", + "translation_date": "2026-04-06T19:40:31+00:00", + "source_file": "2-farm/lessons/2-detect-soil-moisture/assignment.md", + "language_code": "km" + }, + "2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md": { + "original_hash": "9d4d00a47d5d0f3e6ce42c0d1020064a", + "translation_date": "2026-04-06T19:36:36+00:00", + "source_file": "2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md", + "language_code": "km" + }, + "2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md": { + "original_hash": "2bf65f162bcebd35fbcba5fd245afac4", + "translation_date": "2026-04-06T19:40:07+00:00", + "source_file": "2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md", + "language_code": "km" + }, + "2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md": { + "original_hash": "0d55caa8c23d73635b7559102cd17b8a", + "translation_date": "2026-04-06T19:37:02+00:00", + "source_file": "2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md", + "language_code": "km" + }, + "2-farm/lessons/3-automated-plant-watering/README.md": { + "original_hash": "f7bb24ba53fb627ddb38a8b24a05e594", + "translation_date": "2026-04-06T19:47:42+00:00", + "source_file": "2-farm/lessons/3-automated-plant-watering/README.md", + "language_code": "km" + }, + "2-farm/lessons/3-automated-plant-watering/assignment.md": { + "original_hash": "ed0fbd6aed084bfba7d5e2f206968c50", + "translation_date": "2026-04-06T19:48:07+00:00", + "source_file": "2-farm/lessons/3-automated-plant-watering/assignment.md", + "language_code": "km" + }, + "2-farm/lessons/3-automated-plant-watering/pi-relay.md": { + "original_hash": "66b81165e60f8f169bd52a401b6a0f8b", + "translation_date": "2026-04-06T19:44:21+00:00", + "source_file": "2-farm/lessons/3-automated-plant-watering/pi-relay.md", + "language_code": "km" + }, + "2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md": { + "original_hash": "f8f541ee945545017a51aaf309aa37c3", + "translation_date": "2026-04-06T19:44:49+00:00", + "source_file": "2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md", + "language_code": "km" + }, + "2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md": { + "original_hash": "f3c5d8afa2ef6a0b425ef8ff20615cb4", + "translation_date": "2026-04-06T19:45:18+00:00", + "source_file": "2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md", + "language_code": "km" + }, + "2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md": { + "original_hash": "4d8e7a066d75b625e7a979c14157041d", + "translation_date": "2026-04-06T19:54:58+00:00", + "source_file": "2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md", + "language_code": "km" + }, + "2-farm/lessons/4-migrate-your-plant-to-the-cloud/assignment.md": { + "original_hash": "bfd35499bd68d7d740242bfea784bbeb", + "translation_date": "2026-04-06T19:55:12+00:00", + "source_file": "2-farm/lessons/4-migrate-your-plant-to-the-cloud/assignment.md", + "language_code": "km" + }, + "2-farm/lessons/4-migrate-your-plant-to-the-cloud/single-board-computer-connect-hub.md": { + "original_hash": "3ac42e284a7222c0e83d2d43231a364f", + "translation_date": "2026-04-06T19:51:39+00:00", + "source_file": "2-farm/lessons/4-migrate-your-plant-to-the-cloud/single-board-computer-connect-hub.md", + "language_code": "km" + }, + "2-farm/lessons/4-migrate-your-plant-to-the-cloud/wio-terminal-connect-hub.md": { + "original_hash": "28320305a35ea3bc59c41fe146a2e6ed", + "translation_date": "2026-04-06T19:52:32+00:00", + "source_file": "2-farm/lessons/4-migrate-your-plant-to-the-cloud/wio-terminal-connect-hub.md", + "language_code": "km" + }, + "2-farm/lessons/5-migrate-application-to-the-cloud/README.md": { + "original_hash": "5f2d2f4a5a023c93ab34a0cc5b47c0c4", + "translation_date": "2026-04-06T19:43:38+00:00", + "source_file": "2-farm/lessons/5-migrate-application-to-the-cloud/README.md", + "language_code": "km" + }, + "2-farm/lessons/5-migrate-application-to-the-cloud/assignment.md": { + "original_hash": "c24b6e4d90501c9199f2ceb6a648a337", + "translation_date": "2026-04-06T19:43:58+00:00", + "source_file": "2-farm/lessons/5-migrate-application-to-the-cloud/assignment.md", + "language_code": "km" + }, + "2-farm/lessons/6-keep-your-plant-secure/README.md": { + "original_hash": "81c437c568eee1b0dda1f04e88150d37", + "translation_date": "2026-04-06T19:50:55+00:00", + "source_file": "2-farm/lessons/6-keep-your-plant-secure/README.md", + "language_code": "km" + }, + "2-farm/lessons/6-keep-your-plant-secure/assignment.md": { + "original_hash": "34010c663d96d5f419eda6ac2366a78d", + "translation_date": "2026-04-06T19:51:12+00:00", + "source_file": "2-farm/lessons/6-keep-your-plant-secure/assignment.md", + "language_code": "km" + }, + "2-farm/lessons/6-keep-your-plant-secure/single-board-computer-x509.md": { + "original_hash": "9aea84bcc7520222b0e1c50469d62d6a", + "translation_date": "2026-04-06T19:48:38+00:00", + "source_file": "2-farm/lessons/6-keep-your-plant-secure/single-board-computer-x509.md", + "language_code": "km" + }, + "2-farm/lessons/6-keep-your-plant-secure/wio-terminal-x509.md": { + "original_hash": "8a74f789f3c1bf41a13c007190360c19", + "translation_date": "2026-04-06T19:48:17+00:00", + "source_file": "2-farm/lessons/6-keep-your-plant-secure/wio-terminal-x509.md", + "language_code": "km" + }, + "3-transport/README.md": { + "original_hash": "e978534a245b000725ed2a048f943213", + "translation_date": "2026-04-06T18:36:44+00:00", + "source_file": "3-transport/README.md", + "language_code": "km" + }, + "3-transport/lessons/1-location-tracking/README.md": { + "original_hash": "52ed2bd997d08040f79a1a6ef2bac958", + "translation_date": "2026-04-06T19:30:59+00:00", + "source_file": "3-transport/lessons/1-location-tracking/README.md", + "language_code": "km" + }, + "3-transport/lessons/1-location-tracking/assignment.md": { + "original_hash": "bded364fc06ce37d7a76aed3be1ba73a", + "translation_date": "2026-04-06T19:31:12+00:00", + "source_file": "3-transport/lessons/1-location-tracking/assignment.md", + "language_code": "km" + }, + "3-transport/lessons/1-location-tracking/pi-gps-sensor.md": { + "original_hash": "3b2448c7ab4e9673e77e35a50c5e350d", + "translation_date": "2026-04-06T19:27:53+00:00", + "source_file": "3-transport/lessons/1-location-tracking/pi-gps-sensor.md", + "language_code": "km" + }, + "3-transport/lessons/1-location-tracking/single-board-computer-gps-decode.md": { + "original_hash": "cbb8c285bc64c5192fae3368fb5077d2", + "translation_date": "2026-04-06T19:27:09+00:00", + "source_file": "3-transport/lessons/1-location-tracking/single-board-computer-gps-decode.md", + "language_code": "km" + }, + "3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md": { + "original_hash": "64f18a8f8aaa1fef5e7320e0992d8b3a", + "translation_date": "2026-04-06T19:26:51+00:00", + "source_file": "3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md", + "language_code": "km" + }, + "3-transport/lessons/1-location-tracking/wio-terminal-gps-decode.md": { + "original_hash": "fbbcf96a9b63ccd661db98bbf854bb06", + "translation_date": "2026-04-06T19:28:46+00:00", + "source_file": "3-transport/lessons/1-location-tracking/wio-terminal-gps-decode.md", + "language_code": "km" + }, + "3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md": { + "original_hash": "da6ae0a795cf06be33d23ca5b8493fc8", + "translation_date": "2026-04-06T19:28:25+00:00", + "source_file": "3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md", + "language_code": "km" + }, + "3-transport/lessons/2-store-location-data/README.md": { + "original_hash": "e345843ccfeb7261d81500d19c64d476", + "translation_date": "2026-04-06T19:35:53+00:00", + "source_file": "3-transport/lessons/2-store-location-data/README.md", + "language_code": "km" + }, + "3-transport/lessons/2-store-location-data/assignment.md": { + "original_hash": "b2e0a965723082b068f735aec0faf3f6", + "translation_date": "2026-04-06T19:36:09+00:00", + "source_file": "3-transport/lessons/2-store-location-data/assignment.md", + "language_code": "km" + }, + "3-transport/lessons/3-visualize-location-data/README.md": { + "original_hash": "9095c61445c2bca7245ef9b59a186a11", + "translation_date": "2026-04-06T19:33:04+00:00", + "source_file": "3-transport/lessons/3-visualize-location-data/README.md", + "language_code": "km" + }, + "3-transport/lessons/3-visualize-location-data/assignment.md": { + "original_hash": "0ccdc1faa676a485c4c6ecbddb9f9067", + "translation_date": "2026-04-06T19:33:17+00:00", + "source_file": "3-transport/lessons/3-visualize-location-data/assignment.md", + "language_code": "km" + }, + "3-transport/lessons/4-geofences/README.md": { + "original_hash": "078ae664c7b686bf069545e9a5fc95b2", + "translation_date": "2026-04-06T19:26:02+00:00", + "source_file": "3-transport/lessons/4-geofences/README.md", + "language_code": "km" + }, + "3-transport/lessons/4-geofences/assignment.md": { + "original_hash": "5cb65a6ec4387ed177e145347e8e308e", + "translation_date": "2026-04-06T19:26:16+00:00", + "source_file": "3-transport/lessons/4-geofences/assignment.md", + "language_code": "km" + }, + "4-manufacturing/README.md": { + "original_hash": "3764e089adf2d5801272bc0895f8498b", + "translation_date": "2026-04-06T18:38:22+00:00", + "source_file": "4-manufacturing/README.md", + "language_code": "km" + }, + "4-manufacturing/lessons/1-train-fruit-detector/README.md": { + "original_hash": "f5e63c916d2dd97d58be12aaf76bd9f1", + "translation_date": "2026-04-06T20:02:17+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/README.md", + "language_code": "km" + }, + "4-manufacturing/lessons/1-train-fruit-detector/assignment.md": { + "original_hash": "e74eb2fc7cc3b81916b52e957802f182", + "translation_date": "2026-04-06T20:02:42+00:00", + "source_file": "4-manufacturing/lessons/1-train-fruit-detector/assignment.md", + "language_code": "km" + }, + "4-manufacturing/lessons/2-check-fruit-from-device/README.md": { + "original_hash": "557f4ee96b752e0651d2e6e74aa6bd14", + "translation_date": "2026-04-06T20:08:14+00:00", + "source_file": "4-manufacturing/lessons/2-check-fruit-from-device/README.md", + "language_code": "km" + }, + "4-manufacturing/lessons/2-check-fruit-from-device/assignment.md": { + "original_hash": "022e21f8629b721424c1de25195fff67", + "translation_date": "2026-04-06T20:08:30+00:00", + "source_file": "4-manufacturing/lessons/2-check-fruit-from-device/assignment.md", + "language_code": "km" + }, + "4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md": { + "original_hash": "c677667095f6133eee418c7e53615d05", + "translation_date": "2026-04-06T20:03:29+00:00", + "source_file": "4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md", + "language_code": "km" + }, + "4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md": { + "original_hash": "e5896207b304ce1abaf065b8acc0cc79", + "translation_date": "2026-04-06T20:06:45+00:00", + "source_file": "4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md", + "language_code": "km" + }, + "4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md": { + "original_hash": "3ba7150ffc4a6999f6c3cfb4906ec7df", + "translation_date": "2026-04-06T20:04:47+00:00", + "source_file": "4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md", + "language_code": "km" + }, + "4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md": { + "original_hash": "160be8c0f558687f6686dca64f10f739", + "translation_date": "2026-04-06T20:06:17+00:00", + "source_file": "4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md", + "language_code": "km" + }, + "4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md": { + "original_hash": "32a1f23e7834fbe7715da8c4ebb450b9", + "translation_date": "2026-04-06T20:04:09+00:00", + "source_file": "4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md", + "language_code": "km" + }, + "4-manufacturing/lessons/3-run-fruit-detector-edge/README.md": { + "original_hash": "2625af24587465c5547ae33d6cc000a5", + "translation_date": "2026-04-06T20:16:43+00:00", + "source_file": "4-manufacturing/lessons/3-run-fruit-detector-edge/README.md", + "language_code": "km" + }, + "4-manufacturing/lessons/3-run-fruit-detector-edge/assignment.md": { + "original_hash": "cc7ad255517f5f618f9c8899e6ff6783", + "translation_date": "2026-04-06T20:16:57+00:00", + "source_file": "4-manufacturing/lessons/3-run-fruit-detector-edge/assignment.md", + "language_code": "km" + }, + "4-manufacturing/lessons/3-run-fruit-detector-edge/single-board-computer.md": { + "original_hash": "50151d9f9dce2801348a93880ef16d86", + "translation_date": "2026-04-06T20:09:42+00:00", + "source_file": "4-manufacturing/lessons/3-run-fruit-detector-edge/single-board-computer.md", + "language_code": "km" + }, + "4-manufacturing/lessons/3-run-fruit-detector-edge/vm-iotedge.md": { + "original_hash": "24dc783a600e20251211987b36370e93", + "translation_date": "2026-04-06T20:09:02+00:00", + "source_file": "4-manufacturing/lessons/3-run-fruit-detector-edge/vm-iotedge.md", + "language_code": "km" + }, + "4-manufacturing/lessons/3-run-fruit-detector-edge/wio-terminal.md": { + "original_hash": "48ac21ec80329c930db7b84bd6b592ec", + "translation_date": "2026-04-06T20:09:21+00:00", + "source_file": "4-manufacturing/lessons/3-run-fruit-detector-edge/wio-terminal.md", + "language_code": "km" + }, + "4-manufacturing/lessons/4-trigger-fruit-detector/README.md": { + "original_hash": "f74f4ccb61f00e5f7e9f49c3ed416e36", + "translation_date": "2026-04-06T20:20:23+00:00", + "source_file": "4-manufacturing/lessons/4-trigger-fruit-detector/README.md", + "language_code": "km" + }, + "4-manufacturing/lessons/4-trigger-fruit-detector/assignment.md": { + "original_hash": "1a85e50c33c38dcd2cde2a97d132f248", + "translation_date": "2026-04-06T20:20:40+00:00", + "source_file": "4-manufacturing/lessons/4-trigger-fruit-detector/assignment.md", + "language_code": "km" + }, + "4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md": { + "original_hash": "6145a1d791731c8a9d0afd0a1bae5108", + "translation_date": "2026-04-06T20:17:25+00:00", + "source_file": "4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md", + "language_code": "km" + }, + "4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md": { + "original_hash": "7e9f05bdc50a40fd924b1d66934471bf", + "translation_date": "2026-04-06T20:17:54+00:00", + "source_file": "4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md", + "language_code": "km" + }, + "4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md": { + "original_hash": "288aebb0c59f7be1d2719b8f9660a313", + "translation_date": "2026-04-06T20:18:18+00:00", + "source_file": "4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md", + "language_code": "km" + }, + "5-retail/README.md": { + "original_hash": "22a1d6e49f2a689fe5bfa7802a7241fc", + "translation_date": "2026-04-06T18:36:25+00:00", + "source_file": "5-retail/README.md", + "language_code": "km" + }, + "5-retail/lessons/1-train-stock-detector/README.md": { + "original_hash": "8df310a42f902139a01417dacb1ffbef", + "translation_date": "2026-04-06T19:23:21+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/README.md", + "language_code": "km" + }, + "5-retail/lessons/1-train-stock-detector/assignment.md": { + "original_hash": "d93ee76fac4c2199973689ecd05baaf9", + "translation_date": "2026-04-06T19:23:37+00:00", + "source_file": "5-retail/lessons/1-train-stock-detector/assignment.md", + "language_code": "km" + }, + "5-retail/lessons/2-check-stock-device/README.md": { + "original_hash": "1c9e5fa8b7be726c75a97232b1e41c97", + "translation_date": "2026-04-06T19:21:33+00:00", + "source_file": "5-retail/lessons/2-check-stock-device/README.md", + "language_code": "km" + }, + "5-retail/lessons/2-check-stock-device/assignment.md": { + "original_hash": "3cf7783991ec0ee4f6041223924894c7", + "translation_date": "2026-04-06T19:21:44+00:00", + "source_file": "5-retail/lessons/2-check-stock-device/assignment.md", + "language_code": "km" + }, + "5-retail/lessons/2-check-stock-device/single-board-computer-count-stock.md": { + "original_hash": "9c4320311c0f2c1884a6a21265d98a51", + "translation_date": "2026-04-06T19:20:20+00:00", + "source_file": "5-retail/lessons/2-check-stock-device/single-board-computer-count-stock.md", + "language_code": "km" + }, + "5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md": { + "original_hash": "a3fdfec1d1e2cb645ea11c2930b51299", + "translation_date": "2026-04-06T19:18:35+00:00", + "source_file": "5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md", + "language_code": "km" + }, + "5-retail/lessons/2-check-stock-device/wio-terminal-count-stock.md": { + "original_hash": "0b2ae20b0fc8e73c9598dea937cac038", + "translation_date": "2026-04-06T19:19:34+00:00", + "source_file": "5-retail/lessons/2-check-stock-device/wio-terminal-count-stock.md", + "language_code": "km" + }, + "5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md": { + "original_hash": "4cf1421420a6fab9ab4f2c391bd523b7", + "translation_date": "2026-04-06T19:19:00+00:00", + "source_file": "5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md", + "language_code": "km" + }, + "6-consumer/README.md": { + "original_hash": "5de7dc1e2ddc402d415473bb795568d4", + "translation_date": "2026-04-06T18:35:50+00:00", + "source_file": "6-consumer/README.md", + "language_code": "km" + }, + "6-consumer/lessons/1-speech-recognition/README.md": { + "original_hash": "6d6aa1be033625d201a190fc9c5cbfb4", + "translation_date": "2026-04-06T19:14:29+00:00", + "source_file": "6-consumer/lessons/1-speech-recognition/README.md", + "language_code": "km" + }, + "6-consumer/lessons/1-speech-recognition/assignment.md": { + "original_hash": "5ae7654f519ae831179409dc8e528055", + "translation_date": "2026-04-06T19:14:37+00:00", + "source_file": "6-consumer/lessons/1-speech-recognition/assignment.md", + "language_code": "km" + }, + "6-consumer/lessons/1-speech-recognition/pi-audio.md": { + "original_hash": "0ac0afcfb40cb5970ef4cb74f01c32e9", + "translation_date": "2026-04-06T19:08:27+00:00", + "source_file": "6-consumer/lessons/1-speech-recognition/pi-audio.md", + "language_code": "km" + }, + "6-consumer/lessons/1-speech-recognition/pi-microphone.md": { + "original_hash": "7e45d884493c5222348b43fbc4481b6a", + "translation_date": "2026-04-06T19:07:30+00:00", + "source_file": "6-consumer/lessons/1-speech-recognition/pi-microphone.md", + "language_code": "km" + }, + "6-consumer/lessons/1-speech-recognition/pi-speech-to-text.md": { + "original_hash": "af249a24d4fe4f4de4806adbc3bc9d86", + "translation_date": "2026-04-06T19:08:51+00:00", + "source_file": "6-consumer/lessons/1-speech-recognition/pi-speech-to-text.md", + "language_code": "km" + }, + "6-consumer/lessons/1-speech-recognition/virtual-device-audio.md": { + "original_hash": "e4f2925acb211765889c3b51b9116ceb", + "translation_date": "2026-04-06T19:07:39+00:00", + "source_file": "6-consumer/lessons/1-speech-recognition/virtual-device-audio.md", + "language_code": "km" + }, + "6-consumer/lessons/1-speech-recognition/virtual-device-microphone.md": { + "original_hash": "7a65ee743f916276a2848b8a9491feb7", + "translation_date": "2026-04-06T19:07:48+00:00", + "source_file": "6-consumer/lessons/1-speech-recognition/virtual-device-microphone.md", + "language_code": "km" + }, + "6-consumer/lessons/1-speech-recognition/virtual-device-speech-to-text.md": { + "original_hash": "c0550b254b9ba2539baf1e6bb5fc05f8", + "translation_date": "2026-04-06T19:09:51+00:00", + "source_file": "6-consumer/lessons/1-speech-recognition/virtual-device-speech-to-text.md", + "language_code": "km" + }, + "6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md": { + "original_hash": "2f336726b9410e97c3aaed76cc89b0d8", + "translation_date": "2026-04-06T19:11:23+00:00", + "source_file": "6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md", + "language_code": "km" + }, + "6-consumer/lessons/1-speech-recognition/wio-terminal-microphone.md": { + "original_hash": "93d352de36526b8990e41dd538100324", + "translation_date": "2026-04-06T19:09:21+00:00", + "source_file": "6-consumer/lessons/1-speech-recognition/wio-terminal-microphone.md", + "language_code": "km" + }, + "6-consumer/lessons/1-speech-recognition/wio-terminal-speech-to-text.md": { + "original_hash": "3f92edf2975175577174910caca4a389", + "translation_date": "2026-04-06T19:12:34+00:00", + "source_file": "6-consumer/lessons/1-speech-recognition/wio-terminal-speech-to-text.md", + "language_code": "km" + }, + "6-consumer/lessons/2-language-understanding/README.md": { + "original_hash": "6f4ba69d77f16c4a5110623a96a215c3", + "translation_date": "2026-04-06T19:06:37+00:00", + "source_file": "6-consumer/lessons/2-language-understanding/README.md", + "language_code": "km" + }, + "6-consumer/lessons/2-language-understanding/assignment.md": { + "original_hash": "5a7262a0c48dfacdfe1ff91b20bf16fd", + "translation_date": "2026-04-06T19:06:51+00:00", + "source_file": "6-consumer/lessons/2-language-understanding/assignment.md", + "language_code": "km" + }, + "6-consumer/lessons/3-spoken-feedback/README.md": { + "original_hash": "b73fe10ec6b580fba2affb6f6e0a5c4d", + "translation_date": "2026-04-06T19:02:37+00:00", + "source_file": "6-consumer/lessons/3-spoken-feedback/README.md", + "language_code": "km" + }, + "6-consumer/lessons/3-spoken-feedback/assignment.md": { + "original_hash": "da5d9360fe02fdcc1e91a725016c846d", + "translation_date": "2026-04-06T19:03:48+00:00", + "source_file": "6-consumer/lessons/3-spoken-feedback/assignment.md", + "language_code": "km" + }, + "6-consumer/lessons/3-spoken-feedback/pi-text-to-speech.md": { + "original_hash": "606f3af1c78e3741e48ce77c31cea626", + "translation_date": "2026-04-06T19:03:08+00:00", + "source_file": "6-consumer/lessons/3-spoken-feedback/pi-text-to-speech.md", + "language_code": "km" + }, + "6-consumer/lessons/3-spoken-feedback/single-board-computer-set-timer.md": { + "original_hash": "64ad4ddb4de81a18b7252e968f10b404", + "translation_date": "2026-04-06T19:01:37+00:00", + "source_file": "6-consumer/lessons/3-spoken-feedback/single-board-computer-set-timer.md", + "language_code": "km" + }, + "6-consumer/lessons/3-spoken-feedback/virtual-device-text-to-speech.md": { + "original_hash": "7966848a1f870e4c42edb4db67b13c57", + "translation_date": "2026-04-06T19:03:36+00:00", + "source_file": "6-consumer/lessons/3-spoken-feedback/virtual-device-text-to-speech.md", + "language_code": "km" + }, + "6-consumer/lessons/3-spoken-feedback/wio-terminal-set-timer.md": { + "original_hash": "012b69d57d898d670adf61304f42a137", + "translation_date": "2026-04-06T19:01:06+00:00", + "source_file": "6-consumer/lessons/3-spoken-feedback/wio-terminal-set-timer.md", + "language_code": "km" + }, + "6-consumer/lessons/3-spoken-feedback/wio-terminal-text-to-speech.md": { + "original_hash": "a202fa5889790a3777bfc33dd9f4b459", + "translation_date": "2026-04-06T19:00:27+00:00", + "source_file": "6-consumer/lessons/3-spoken-feedback/wio-terminal-text-to-speech.md", + "language_code": "km" + }, + "6-consumer/lessons/4-multiple-language-support/README.md": { + "original_hash": "c16de27b0074abe81d6a8bad5e5b1a6b", + "translation_date": "2026-04-06T19:17:56+00:00", + "source_file": "6-consumer/lessons/4-multiple-language-support/README.md", + "language_code": "km" + }, + "6-consumer/lessons/4-multiple-language-support/assignment.md": { + "original_hash": "701f4a4466f9309b6e1d863077df0c06", + "translation_date": "2026-04-06T19:18:10+00:00", + "source_file": "6-consumer/lessons/4-multiple-language-support/assignment.md", + "language_code": "km" + }, + "6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md": { + "original_hash": "bbb5aa34221fe129dd3ce4d9ec33831a", + "translation_date": "2026-04-06T19:15:07+00:00", + "source_file": "6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md", + "language_code": "km" + }, + "6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md": { + "original_hash": "d620a470d9dd8614d99824832978360a", + "translation_date": "2026-04-06T19:16:39+00:00", + "source_file": "6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md", + "language_code": "km" + }, + "6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md": { + "original_hash": "5f6c164e349f8989959e02a90f37908d", + "translation_date": "2026-04-06T19:15:59+00:00", + "source_file": "6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md", + "language_code": "km" + }, + "CODE_OF_CONDUCT.md": { + "original_hash": "c06b12caf3c901eb3156e3dd5b0aea56", + "translation_date": "2026-04-06T18:31:19+00:00", + "source_file": "CODE_OF_CONDUCT.md", + "language_code": "km" + }, + "CONTRIBUTING.md": { + "original_hash": "d6f80293fa9c213283eac7e79b078671", + "translation_date": "2026-04-06T18:27:10+00:00", + "source_file": "CONTRIBUTING.md", + "language_code": "km" + }, + "README.md": { + "original_hash": "accf69391fa4450eadbf492ca024cccf", + "translation_date": "2026-04-06T18:35:03+00:00", + "source_file": "README.md", + "language_code": "km" + }, + "SECURITY.md": { + "original_hash": "8587f83cfded1bfab99fda4022f4df89", + "translation_date": "2026-04-06T18:32:35+00:00", + "source_file": "SECURITY.md", + "language_code": "km" + }, + "SUPPORT.md": { + "original_hash": "cd89329575372232e59605f7a08ae0df", + "translation_date": "2026-04-06T18:26:52+00:00", + "source_file": "SUPPORT.md", + "language_code": "km" + }, + "TROUBLESHOOTING.md": { + "original_hash": "9713e21a309662f6fcb271b573d47848", + "translation_date": "2026-04-06T18:30:35+00:00", + "source_file": "TROUBLESHOOTING.md", + "language_code": "km" + }, + "attributions.md": { + "original_hash": "4506d33bbda7acc0ab20980172687090", + "translation_date": "2026-04-06T18:35:24+00:00", + "source_file": "attributions.md", + "language_code": "km" + }, + "clean-up.md": { + "original_hash": "5a94fbab1ba737e9bd6cc6c64f114fa0", + "translation_date": "2026-04-06T18:26:42+00:00", + "source_file": "clean-up.md", + "language_code": "km" + }, + "docs/_sidebar.md": { + "original_hash": "686f22febaa2b67aa03b738c0dc0bf9b", + "translation_date": "2026-04-06T18:37:27+00:00", + "source_file": "docs/_sidebar.md", + "language_code": "km" + }, + "docs/troubleshooting.md": { + "original_hash": "271dcd720357806934b2f0d94e19410e", + "translation_date": "2026-04-06T18:37:36+00:00", + "source_file": "docs/troubleshooting.md", + "language_code": "km" + }, + "for-teachers.md": { + "original_hash": "9fd36f5dc734203ee28b6cf2573e5eab", + "translation_date": "2026-04-06T18:26:25+00:00", + "source_file": "for-teachers.md", + "language_code": "km" + }, + "hardware.md": { + "original_hash": "3dce18fab38adf93ff30b8c221b1eec5", + "translation_date": "2026-04-06T18:32:09+00:00", + "source_file": "hardware.md", + "language_code": "km" + }, + "images/README.md": { + "original_hash": "50abd54997afa7e7a3fc7019379e49e3", + "translation_date": "2026-04-06T18:36:58+00:00", + "source_file": "images/README.md", + "language_code": "km" + }, + "lesson-template/README.md": { + "original_hash": "0494be70ad7fadd13a8c3d549c23e355", + "translation_date": "2026-04-06T18:37:49+00:00", + "source_file": "lesson-template/README.md", + "language_code": "km" + }, + "lesson-template/assignment.md": { + "original_hash": "b5f62ec256c7e43e771f0d3b4e1a9130", + "translation_date": "2026-04-06T18:37:57+00:00", + "source_file": "lesson-template/assignment.md", + "language_code": "km" + }, + "quiz-app/README.md": { + "original_hash": "2a459ea9177fb0508ca96068ae1009d2", + "translation_date": "2026-04-06T18:36:10+00:00", + "source_file": "quiz-app/README.md", + "language_code": "km" + }, + "recommended-learning-model.md": { + "original_hash": "012bbd19f13171be32ac9ba21d4186c2", + "translation_date": "2026-04-06T18:31:10+00:00", + "source_file": "recommended-learning-model.md", + "language_code": "km" + } +} \ No newline at end of file diff --git a/translations/km/1-getting-started/README.md b/translations/km/1-getting-started/README.md new file mode 100644 index 000000000..ba5d4b2c7 --- /dev/null +++ b/translations/km/1-getting-started/README.md @@ -0,0 +1,23 @@ +# ការចាប់ផ្តើមជាមួយ IoT + +ក្នុងផ្នែកនេះនៃមេរៀន អ្នកនឹងត្រូវបានណែនាំអំពីអន្ដរជាតិនៃអ្វីៗ ហើយរៀនពីគំនិតមូលដ្ឋានរួមទាំងការសង់គម្រោង IoT 'Hello World' ដំបូងរបស់អ្នកដែលភ្ជាប់ទៅកាន់ពពក។ គម្រោងនេះគឺជាឡាំភ្លើងយាមដែលភ្លឺពេលកម្រិតရှိវាស់ដោយឧបករណ៍ស្ទង់ភ្លឺធ្លាក់ចុះ។ + +![ដៃបង្វិល LED ភ្ជាប់ទៅកាន់ WIO រួចបើក និងបិទពេលកម្រិតភ្លឺប្តូរ](../../../images/wio-running-assignment-1-1.gif) + +## ប្រធានបទ + +1. [ការណែនាំអំពី IoT](lessons/1-introduction-to-iot/README.md) +1. [ជម្រៅជាងនេះទៅលើ IoT](lessons/2-deeper-dive/README.md) +1. [បង្កើតឥទ្ធិពលជាមួយពិភពពិតដោយប្រើឧបករណ៍សន្ទះ និងឧបករណ៍បញ្ជា](lessons/3-sensors-and-actuators/README.md) +1. [ភ្ជាប់ឧបករណ៍របស់អ្នកទៅអ៊ីនធឺណិត](lessons/4-connect-internet/README.md) + +## ការដាក់ក្រដាសបង់ + +មេរៀនទាំងអស់ត្រូវបានសរសេរជាមួយ ♥️ ដោយ [Jim Bennett](https://GitHub.com/JimBobBennett) + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែជាភាសាខ្មែរដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខំប្រឹងប្រែងសម្រាប់ភាពត្រឹមត្រូវ សូមយល់ថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬមិនត្រូវបានច្បាស់លាស់។ ឯកសារដើមនៅក្នុងភាសាមូលដ្ឋានគួរត្រូវបានទទួលស្គាល់ជាអ្នកផ្តល់ព័ត៌មានដ៏ទូលំទូលាយ។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមផ្តល់អាទិភាពក្រុមអ្នកបកប្រែជាមនុស្សជំនាញ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសពីការប្រើប្រាស់បកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/1-getting-started/lessons/1-introduction-to-iot/README.md b/translations/km/1-getting-started/lessons/1-introduction-to-iot/README.md new file mode 100644 index 000000000..c58a5c25f --- /dev/null +++ b/translations/km/1-getting-started/lessons/1-introduction-to-iot/README.md @@ -0,0 +1,236 @@ +# ការណែនាំទៅកាន់ IoT + +![រូបភាពជារូបថតសង្ខេបនៃមេរៀននេះ](../../../../../translated_images/km/lesson-1.2606670fa61ee904.webp) + +> រូបថតសង្ខេបដោយ [Nitya Narasimhan](https://github.com/nitya)។ ចុចលើរូបភាពសម្រាប់មើលរូបភាពធំជាងនេះ។ + +មេរៀននេះត្រូវបានបង្រៀនជាផ្នែកមួយនៃស៊េរី [Hello IoT](https://youtube.com/playlist?list=PLmsFUfdnGr3xRts0TIwyaHyQuHaNQcb6-) ពី [Microsoft Reactor](https://developer.microsoft.com/reactor/?WT.mc_id=academic-17441-jabenn)។ មេរៀនត្រូវបានបង្រៀនជាវីដេអូ 2 ផ្សេងគ្នា - មេរៀន 1 ម៉ោង និងម៉ោងធ្វើការនៅការិយាល័យ 1 ម៉ោង ស្វែងយល់ជ្រាបជ្រាលជ្រៅអំពីផ្នែកនៃមេរៀន និងឆ្លើយសំណួរ។ + +[![មេរៀនទី 1៖ ការណែនាំទៅកាន់ IoT](https://img.youtube.com/vi/bVFfcYh6UBw/0.jpg)](https://youtu.be/bVFfcYh6UBw) + +[![មេរៀនទី 1៖ ការណែនាំទៅកាន់ IoT - ម៉ោងការិយាល័យ](https://img.youtube.com/vi/YI772q5v3yI/0.jpg)](https://youtu.be/YI772q5v3yI) + +> 🎥 ចុចលើរូបភាពខាងលើដើម្បីមើលវីដេអូ។ + +## សំនួរប្រឡងមុនមេរៀន + +[សំនួរប្រឡងមុនមេរៀន](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/1) + +## ការណែនាំ + +មេរៀននេះគ្របដណ្តប់លើប្រធានបទផ្នែកបឋមអំពីអ៊ីនធឺណិតនៃវត្ថុ (Internet of Things) ហើយជួយអ្នកក្នុងការតំឡើងប្រព័ន្ធឧបករណ៍របស់អ្នក។ + +ក្នុងមេរៀននេះ យើងនឹងគ្របដណ្តប់៖ + +* [អ៊ីនធឺណិតនៃវត្ថុគឺជាអ្វី?](#អ៊ីនធឺណិតនៃវត្ថុគឺជាអ្វី) +* [ឧបករណ៍ IoT](#ឧបករណ៍-iot) +* [តំឡើងឧបករណ៍របស់អ្នក](#តំឡើងឧបករណ៍របស់អ្នក) +* [កម្មវិធីប្រើប្រាស់របស់ IoT](#ការដាក់ពាក្យប្រើប្រាស់របស់-iot) +* [ឧទាហរណ៍នៃឧបករណ៍ IoT ដែលអ្នកអាចមាននៅជុំវិញអ្នក](#ឧទាហរណ៍នៃឧបករណ៍-iot-ដែលអ្នកអាចមាននៅជុំវិញអ្នក) + +## អ៊ីនធឺណិតនៃវត្ថុគឺជាអ្វី? + +ពាក្យ 'Internet of Things' ត្រូវបានបង្កើតឡើងដោយ [Kevin Ashton](https://wikipedia.org/wiki/Kevin_Ashton) នៅឆ្នាំ 1999 ដើម្បីយោងទៅកាន់ការតភ្ជាប់អ៊ីនធឺណិតទៅកាន់ពិភពបច្ចេកទេសតាមរយៈឧបករណ៍សម្គាល់ (sensors)។ ចាប់តាំងពីពេលនោះ ម.termនេះត្រូវបានប្រើសម្រាប់លើកយកឧបករណ៍ណាមួយដែលមានប្រតិបត្តិការជាមួយពិភពបរិយាកាសជុំវិញវា មិនថាជាការប្រមូលទិន្នន័យពីឧបករណ៍សម្គាល់ ឬផ្តល់នូវការប៉ះពាល់នាពិភពផ្ទាល់តាមរយៈឧបករណ៍បញ្ចូលសកម្ម (actuators) (ឧបករណ៍ដែលអាចធ្វើអ្វីមួយដូចជា បើកប៊ូតុងឬភ្លើង LED) ដែលភ្ជាប់ជាមួយឧបករណ៍ផ្សេងទៀត ឬអ៊ីនធឺណិត។ + +> **ឧបករណ៍សម្គាល់** ប្រមូលព័ត៌មានពីពិភពជុំវិញ ដូចជា វាស់ល្បឿន អាកាសធាតុ ឬទីតាំង។ +> +> **ឧបករណ៍បញ្ចូលសកម្ម** បម្លែងសញ្ញាគ្រឿងអគ្គិសនីទៅជាការប៉ះពាល់ពិភពផ្ទាល់ដូចជា បើកប៊ូតុង បើកភ្លើង បង្កើតសំឡេង ឬផ្ញើសញ្ញាពីការត្រួតពិនិត្យទៅឧបករណ៍ផ្សេងៗ ដូចជា បើកប្រអប់ភ្លើង។ + +IoT ជាតំបន់បច្ចេកវិទ្យារីកចម្រើនលឿនមិនមែនមានតែឧបករណ៍ថែមទៀតទេ - វាក៏រួមបញ្ចូលសេវាកម្មនៅលើពពកដែលអាចដំណើរការទិន្នន័យពីឧបករណ៍សម្គាល់ ឬផ្ញើសំណើទៅឧបករណ៍បញ្ចូលសកម្មដែលភ្ជាប់ទៅឧបករណ៍ IoT។ វាក៏រួមបញ្ចូលឧបករណ៍ដែលមិនមានឬមិនចាំបាច់មានការតភ្ជាប់អ៊ីនធឺណិត ដែលភាគច្រើនហៅថាឧបករណ៍គ្រោងកម្ពស់ (edge devices)។ វាជាឧបករណ៍ដែលអាចដំណើរការនិងឆ្លើយតបនឹងទិន្នន័យសម្គាល់បានដោយខ្លួនឯង ជាធម្មតាជាមួយនូវគំរូ AI ដែលបានបណ្តុះបណ្តាលនៅលើពពក។ + +IoT គឺជាផ្នែកបច្ចេកវិទ្យារហ័សមានការកើនឡើង។ យោងតាមការប៉ាន់ប្រមាណ មុនចប់ឆ្នាំ 2020 មានឧបករណ៍ IoT ប្រហែល 30 ពាន់លានគ្រប់បីនៅក្នុងទូរទស្សន៍អ៊ីនធឺណិត។ មើលទៅអនាគត វាត្រូវបានប៉ាន់ប្រមាណថា នៅឆ្នាំ 2025 ឧបករណ៍ IoT នឹងប្រមូលទិន្នន័យប្រហែល 80 zettabytes ឬ 80 ត្រីលាន gigabytes។ នេះជាទិន្នន័យច្រើនណាស់! + +![ក្រាបដែលបង្ហាញពីពីរៈប្រតិបត្តិការឧបករណ៍ IoT រយៈពេលវែង ជាមួយនឹងទិសដៅកើនឡើងពីក្រោម 5 ពាន់លានក្នុងឆ្នាំ 2015 ទៅលើ 30 ពាន់លានក្នុងឆ្នាំ 2025](../../../../../images/connected-iot-devices.svg) + +✅ សូមស្រាវជ្រាវបន្តិច៖ តើប៉ុណ្ណាដ្ឋានទិន្នន័យដែលបានបង្កើតដោយឧបករណ៍ IoT ត្រូវបានប្រើប្រាស់ពិតដោយអ្វី ខណៈណាយច្រើនត្រូវបានបោះបង់? ហេតុអ្វីបានជាទិន្នន័យច្រើនត្រូវបានមិនគិត? + +ទិន្នន័យនេះជាសោគល់សម្រាប់ភាពជោគជ័យរបស់ IoT។ ដើម្បីក្លាយជាអ្នកអភិវឌ្ឍន៍ IoT ជោគជ័យ អ្នកត្រូវយល់ពីទិន្នន័យដែលត្រូវប្រមួល វិធីសែមប្រមួល វិធីសេចក្តីសម្រេចចិត្តឡើងលើវា និងវិធីប្រើប្រាស់ការសម្រេចចិត្តទាំងនោះដើម្បីការជជែកជាមួយពិភពផ្ទាល់ ប្រសិនបើត្រូវការ។ + +## ឧបករណ៍ IoT + +អក្សរ **T** ក្នុង IoT មានន័យថា **Things** - ឧបករណ៍ដែលអាចធ្វើប្រតិបត្តិការជាមួយពិភពផ្ទាល់ជុំវិញវា មិនថាជាការប្រមូលទិន្នន័យពីឧបករណ៍សម្គាល់ ឬផ្តល់ពហុបែបបទការប៉ះពាល់ពិភពផ្ទាល់តាមរយៈឧបករណ៍បញ្ចូលសកម្ម។ + +ឧបករណ៍សម្រាប់ការផលិត ឬប្រើប្រាស់ពាណិជ្ជកម្ម ដូចជា ម៉ាស៊ីនតាមដានសមត្ថភាពអ្នកប្រើប្រាស់ ឬកម្មវិធីគ្រប់គ្រងម៉ាស៊ីនឧស្សាហកម្ម ជាឌីហ្សាញផ្ទាល់តាមតម្រូវការ។ ភាគច្រើនប្រើប្រាស់ក្រងពហុចល័តអេឡិចតុង (custom circuit boards) និងប្រព័ន្ធដំណើរការផ្ទាល់ខ្លួន ដើម្បីបំពេញតម្រូវការពិសេស មិនថាជាការតូចតាចគ្របដណ្តបបានលើកដៃ ឬធន់នឹងសីតុណ្ហភាពខ្ពស់ សម្ពាធខ្ពស់ និងកំចាត់កាំរន្ធក្នុងរោងចក្រ។ + +ជាអ្នកអភិវឌ្ឍន៍ដែលកំពុងរៀនអំពី IoT ឬបង្កើតគំរូឧបករណ៍ អ្នកត្រូវចាប់ផ្តើមជាមួយឈុតឧបករណ៍អភិវឌ្ឍន៍។ ឧបករណ៍ទាំងនេះគឺជាឧបករណ៍ IoT មានគោលបំណងទូទៅដែលធ្វើសម្រាប់អ្នកអភិវឌ្ឍន៍ប្រើប្រាស់ ជាញឹកញាប់មានលក្ខណៈពិសេសដែលត្រូវការពេលប្រើប្រាស់ក្នុងបរិស្ថានផលិត ឧបករណ៍ដែលមិនបានជ្រើសរើសដូចជា ផ្លូវខាងក្រៅសម្រាប់ភ្ជាប់ឧបករណ៍សម្គាល់ ឬឧបករណ៍បញ្ចូលសកម្ម ឧបករណ៍ជួយ debugging ឬធនធានបន្ថែមដែលបន្ថែមការចំណាយមិនចាំបាច់នៅពេលផលិតច្រើន។ + +ឈុតអភិវឌ្ឍន៍ទាំងនេះភាគច្រើនគឺចែកចេញជា២ប្រភេទគឺ microcontrollers និង single-board computers។ យើងនឹងណែនាំទាំងពីរនៅទីនេះ ហើយនឹងពិភាក្សាជាច្រើនទៀតនៅមេរៀនបន្ទាប់។ + +> 💁 ទូរស័ព្ទរបស់អ្នក មិនរហូតត្រូវគិតថាជាឧបករណ៍ IoT មានគោលបំណងទូទៅ ដែលមានឧបករណ៍សម្គាល់ និងឧបករណ៍បញ្ចូលសកម្មជាប់ក្នុងម៉ាស៊ីន ហើយកម្មវិធីផ្សេងៗប្រើវា ធ្វើការប្រើប្រាស់ឧបករណ៍សម្គាល់ និងឧបករណ៍បញ្ចូលសកម្មដោយវិធីផ្សេងៗ ជាមួយសេវាកម្មពពកផ្សេងៗ។ អ្នកអាចស្វែងរកមេរៀន IoT មួយចំនួនដែលប្រើកម្មវិធីទូរស័ព្ទជាឧបករណ៍ IoT។ + +### Microcontrollers + +microcontroller (ឬហៅផងជា MCU សំដៅមក microcontroller unit) គឺជាកុំព្យូទ័រប្រភេទតូចមួយ ដែលមាន៖ + +🧠 មួយឬច្រើនរ៉េណឺ (CPUs) - "ខួរក្បាល" របស់ microcontroller ដែលដំណើរការកម្មវិធីរបស់អ្នក + +💾 អង្គចងចាំ (RAM និងអង្គចងចាំកម្មវិធី) - ដែលផ្ទុកកម្មវិធី ទិន្នន័យ និងអថេរ + +🔌 ការតភ្ជាប់នូវបញ្ចូល/បញ្ចេញអាចបណ្ដុះបណ្ដាល (programmable input/output (I/O)) - សម្រាប់និយាយជាមួយឧបករណ៍បន្ថែមខាងក្រៅ (បានភ្ជាប់) ដូចជា ឧបករណ៍សម្គាល់ និងឧបករណ៍បញ្ចូលសកម្ម + +Microcontrollers ជាឧបករណ៍កុំព្យូទ័រសម្រាប់តំលៃទាបជាមធ្យម ដោយតម្លៃសម្រាប់ microcontrollers គ្រប់គ្នាដែលប្រើក្នុងឧបករណ៍ផ្ទាល់ខ្លួនធ្លាក់ចុះប្រហែល $0.50 ដុល្លារអាមេរិក ហើយឧបករណ៍ខ្លះមានតម្លៃថោកដូចជាប្រាក់$0.03។ ឈុតអភិវឌ្ឍន៍អាចចាប់ផ្តើមតម្លៃ $4 ដុល្លារ ហើយតម្លៃកើនឡើងបើបន្ថែមលក្ខណៈពិសេស។ [Wio Terminal](https://www.seeedstudio.com/Wio-Terminal-p-4509.html) គឺជាឈុតអភិវឌ្ឍ microcontroller មួយពី [Seeed studios](https://www.seeedstudio.com) ដែលមានឧបករណ៍សម្គាល់ ឧបករណ៍បញ្ចូលសកម្ម WiFi និងអេក្រង់ ដែលមានតម្លៃប្រហែល $30។ + +![Wio Terminal មួយ](../../../../../translated_images/km/wio-terminal.b8299ee16587db9a.webp) + +> 💁 ពេលស្វែងរក microcontroller លើអ៊ីនធឺណិត ប្រយ័ត្នក្នុងការស្វែងរកពាក្យ **MCU** ព្រោះវាអាចនាំឲ្យមានលទ្ធផលជាច្រើន ទាក់ទងទៅនឹង Marvel Cinematic Universe មិនមែន microcontroller ទេ។ + +Microcontrollers ត្រូវបានរចនាឡើងសម្រាប់ការបង្រៀនបំពេញភារកិច្ចកំណត់ពិសេសម្ខាង មិនដូចជាកុំព្យូទ័រដូច PC ឬ Mac ជាទូទៅ។ លើសពីនេះអ្នកមិនអាចភ្ជាប់បញ្ចូល monitors, គ្រាប់ស្គាល់ និងកណ្តុរ ដើម្បីប្រើវាសម្រាប់ភារកិច្ចទូទៅទេ។ + +ឈុតអភិវឌ្ឍន៍ microcontroller ជាធម្មតានឹងមានឧបករណ៍សម្គាល់ និងឧបករណ៍បញ្ចូលសកម្មលើក្តារផ្ទាល់។ ក្តារញៀនភាគច្រើននឹងមាន LEDs មួយឬច្រើនដែលអ្នកអាចកម្មង់ និងឧបករណ៍មួយចំនួនដូចជាប្លក់ឱ្យភ្ជាប់ឧបករណ៍សម្គាល់ ឬឧបករណ៍បញ្ចូលសកម្ម ជាមួយប្រភេទវត្ថុដែលផលិតដោយកម្មវិធីផ្សេងៗ ឬឧបករណ៍សម្គាល់ម្ដងទៀតដាក់ក្នុងក្តារ (ភាគច្រើនជាឧបករណ៍សម្គាល់ដែលពេញនិយមទៅដូចជា ឧបករណ៍វាស់សីតុណ្ហភាព)។ Microcontrollers មួយចំនួនមានការតភ្ជាប់ខ្សែភ្លើងឥតខ្សែក្នុងខ្លួនដូចជា Bluetooth ឬ WiFi ឬក៏មាន microcontrollers បន្ថែមលើក្តារដើម្បីបន្ថែមការតភ្ជាប់នេះ។ + +> 💁 Microcontrollers ជាទូទៅរចនាបម្រើដោយភាសា C/C++។ + +### Single-board computers + +កុំព្យូទ័រឈុតតែមួយ (single-board computer) គឺជាឧបករណ៍កុំព្យូទ័រតូចមួយ ដែលមានធាតុទាំងអស់ក្នុងកុំព្យូទ័រពេញលេញរួមនៅលើក្តារតូចតែមួយ។ នេះគឺជាឧបករណ៍ដែលមានលក្ខណៈប្រដាប់ផ្សេងៗជិតស្និតនឹងកុំព្យូទ័រតុ ឬ laptop ឬ Mac, រត់ប្រព័ន្ធប្រតិបត្តិការ ពេញលេញ ប៉ុន្តែតូច ប្រើថាមពលតិច ហើយតម្លៃថោកជាង។ + +![Raspberry Pi 4 មួយ](../../../../../translated_images/km/raspberry-pi-4.fd4590d308c3d456.webp) + +Raspberry Pi គឺជាកុំព្យូទ័រឈុតតែមួយដែលពេញនិយមបំផុត។ + +ដូចជា microcontroller, single-board computers មាន CPU, អង្គចងចាំ និង pin input/output ប៉ុន្តែមានលក្ខណៈពិសេសបន្ថែមដូចជាចីបក្រាហ្វិច ដែលអនុញ្ញាតឲ្យអ្នកភ្ជាប់ម៉ូនីទ័រ ផ្ទាំងសំឡេង និងព្រិត្តេល USB សម្រាប់ភ្ជាប់គ្រាប់ ស្គាល់កណ្ដុរ និងឧបករណ៍ USB ផ្សេងទៀតដូចជា ម៉ាស៊ីនថតវីដេអូ ឬឧបករណ៍ផ្ទុកខាងក្រៅ។ កម្មវិធីត្រូវបានផ្ទុកលើកាត SD ឬថាសរឹងជាមួយប្រព័ន្ធប្រតិបត្តិការ មិនមែននៅក្នុងជីបអង្គចងចាំរបស់ក្តារផ្ទាល់។ + +> 🎓 អ្នកអាចគិតថា single-board computer គឺជាជម្រើសតូច កំចាត់ថ្លៃជាង PC ឬ Mac ដែលអ្នកកំពុងអាននេះ ប៉ុន្តែមាន GPIO (pin បញ្ចូល/ចេញគោលបំណងទូទៅ) សម្រាប់អន្តរកម្មជាមួយឧបករណ៍សម្គាល់ និងឧបករណ៍បញ្ចូលសកម្ម។ + +កុំព្យូទ័រឈុតតែមួយគឺជាកុំព្យូទ័រដែលបានផ្ដល់លក្ខណៈពេញលេញ ហើយអាចកម្មង់ជាមួយភាសាណាមួយបាន។ ឧបករណ៍ IoT ត្រូវបានកម្មង់ជាទូទៅជាមួយភាសា Python។ + +### ជម្រើសរឹងសម្រាប់មេរៀននៅក្រោយៗ + +មេរៀនបន្ទាប់ទាំងអស់រួមបញ្ចូលកិច្ចការចៃដន្យដែលប្រើឧបករណ៍ IoT ដើម្បីប៉ះពាល់ពិភពផ្ទាល់ និងទាក់ទងជាមួយពពក។ មេរៀននីមួយៗគាំទ្រជម្រើសឧបករណ៍ ៣ ប្រភេទ - Arduino (ប្រើ Wio Terminal ពី Seeed Studios) ឬកុំព្យូទ័រឈុតតែមួយ មួយជាឧបករណ៍រឹង (Raspberry Pi 4) ឬកុំព្យូទ័រឈុតតែមួយមួយគ្រាប់វីជ្ជមានដែលរត់លើ PC ឬ Mac ។ + +អ្នកអាចស្រាវជ្រាវអំពីឧបករណ៍ដែលត្រូវការបំពេញកិច្ចការទាំងអស់នៅក្នុង [មគ្គុទេសក៍រឹង](../../../hardware.md)។ + +> 💁 អ្នកមិនចាំបាច់ទិញឧបករណ៍ IoT គ្រប់យ៉ាងដើម្បីបំពេញកិច្ចការទេ អ្នកអាចធ្វើបានទាំងអស់ដោយប្រើកុំព្យូទ័រឈុតតែមួយវីជ្ជមាន។ + +ជម្រើសរឹងដែលអ្នកជ្រើសរើស គឺទៅតាមអ្វីដែលអ្នកមានស្រាប់ ឬនៅផ្ទះ ឬនៅសាលា និងភាសាកម្មង់ដែលអ្នកស្គាល់ ឬមានចេតនាចង់រៀន។ រឹងទាំងពីរដឹងប្រើប្រាស់បរិស្ថានឧបករណ៍សម្គាល់ដូចគ្នា ដូច្នេះបើអ្នកចាប់ផ្តើមពីផ្លូវណាមួយ អ្នកអាចប្ដូរទៅផ្លូវមួយផ្សេង មិនចាំបាច់ប្ដូរ ឧបករណ៍ភាគច្រើនទេ។ កុំព្យូទ័រឈុតតែមួយវីជ្ជមាននឹងជាសមាជិកកន្លែងសិក្សានៅលើ Raspberry Pi ដែលកូដភាគច្រើនអាចផ្ទេរទៅ Pi ប្រសិនបើអ្នកចុងក្រោយមានឧបករណ៍ និងឧបករណ៍សម្គាល់។ + +### ឈុតអភិវឌ្ឍ Arduino + +ប្រសិនបើអ្នកចង់រៀនអភិវឌ្ឍ microcontroller អ្នកអាចបំពេញកិច្ចការដោយប្រើឧបករណ៍ Arduino។ អ្នកត្រូវការយល់ដឹងមូលដ្ឋានរបស់ភាសា C/C++ ពីព្រោះមេរៀននឹងបង្ហាញតែលេខាកូដដែលពាក់ព័ន្ធទៅនឹងស៊ុម Arduino ឧបករណ៍សម្គាល់ និងឧបករណ៍បញ្ចូលសកម្ម ដូចជាបណ្ណាល័យដែលទំនាក់ទំនងទៅពពក។ + +កិច្ចការនឹងប្រើ [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-17441-jabenn) ជាមួយនឹង [ពង្រីក PlatformIO សម្រាប់អភិវឌ្ឍ microcontroller](https://platformio.org)។ អ្នកអាចប្រើ Arduino IDE ផង ប្រសិនបើអ្នកមានបទពិសោធន៍ជាមួយឧបករណ៍នេះ ពីព្រោះមិនមានការណែនាំសម្រាប់វា ផ្តល់ជូនឡើងវិញទេ។ + +### ឈុតអភិវឌ្ឍ single-board computer + +ប្រសិនបើអ្នកចង់រៀនអភិវឌ្ឍ IoT ជាមួយកុំព្យូទ័រឈុតតែមួយ អ្នកអាចបំពេញកិច្ចការដោយប្រើ Raspberry Pi ឬឧបករណ៍វីជ្ជមានរត់លើ PC ឬ Mac។ + +អ្នកត្រូវការយល់ដឹងមូលដ្ឋានភាសា Python ពីព្រោះមេរៀននឹងបង្ហាញតែលេខាកូដដែលពាក់ព័ន្ធទៅនឹងឧបករណ៍សម្គាល់ និងឧបករណ៍បញ្ចូលសកម្ម និងបណ្ណាល័យដែលទំនាក់ទំនងទៅពពក។ + +> 💁 ប្រសិនបើអ្នកចង់រៀនកូដ Python សូមពិនិត្យមើលស៊េរីវីដេអូពីរខាងក្រោម៖ +> +> * [Python សម្រាប់អ្នកចាប់ផ្តើម](https://channel9.msdn.com/Series/Intro-to-Python-Development?WT.mc_id=academic-17441-jabenn) +> * [ Python បន្ថែមសម្រាប់អ្នកចាប់ផ្តើម](https://channel9.msdn.com/Series/More-Python-for-Beginners?WT.mc_id=academic-7372-jabenn) + +កិច្ចការនឹងប្រើ [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-17441-jabenn)។ + +ប្រសិនបើអ្នកប្រើ Raspberry Pi អ្នកអាចប្រើ Pi ជាមួយនឹងកំណែតុពីក្នុងពេញលេញនៃ Raspberry Pi OS ហើយធ្វើកូដអោយទាំងស្រុងលើ Pi ដោយប្រើ [កំណែ Raspberry Pi OS របស់ VS Code](https://code.visualstudio.com/docs/setup/raspberry-pi?WT.mc_id=academic-17441-jabenn) ឬរត់ Pi ជាឧបករណ៍គ្មានមុខ និងកម្មង់ផ្ទាល់ពី PC ឬ Mac របស់អ្នកដោយប្រើ VS Code ជាមួយនឹង [ពង្រីក Remote SSH](https://code.visualstudio.com/docs/remote/ssh?WT.mc_id=academic-17441-jabenn) ដែលអនុញ្ញាតឲ្យអ្នកភ្ជាប់ទៅ Pi និងកែប្រែលេខា កូដ ដើរកូដ ដូចជាកំពុងកម្មង់លើ Pi ដោយផ្ទាល់។ + +ប្រសិនបើគូរាជម្រើសឧបករណ៍វីជ្ជមាន អ្នកនឹងកម្មង់លើកុំព្យូទ័រផ្ទាល់។ ជំនួសការចូលប្រើឧបករណ៍សម្គាល់ និងឧបករណ៍បញ្ចូលសកម្ម អ្នកនឹងប្រើឧបករណ៍មួយដើម្បីសម្រួលឧបករណ៍នេះដោយផ្ដល់តម្លៃឧបករណ៍សម្គាល់ដែលអ្នកកំណត់ ហើយបង្ហាញលទ្ឋផលឧបករណ៍បញ្ចូលសកម្មលើអេក្រង់។ + +## តំឡើងឧបករណ៍របស់អ្នក + +មុននឹងចាប់ផ្តើមកម្មង់នូវឧបករណ៍ IoT របស់អ្នក អ្នកត្រូវតែធ្វើការកំណត់តួតំណាងតូចមួយ។ សូមអនុវត្តន៍តាមការណែនាំទាក់ទងទៅឧបករណ៍ដែលអ្នកនឹងប្រើ។ + +> 💁 ប្រសិនបើអ្នកមិនទាន់មានឧបករណ៍ សូមយោងទៅកាន់ [មគ្គុទេសក៍រឹង](../../../hardware.md) ដើម្បីជួយសំរេចចិត្តថាតើអ្នកនឹងប្រើឧបករណ៍មួយណា និងមានឧបករណ៍បន្ថែមអ្វីដែលត្រូវទិញ។ អ្នកមិនចាំបាច់ទិញឧបករណ៍ទេ ពីព្រោះគម្រោងទាំងអស់អាចដំណើរការលើឧបករណ៍វីជ្ជមានបាន។ + +ការណែនាំទាំងនេះមានតំណភ្ជាប់ទៅកាន់វិបសាយភាគីទីបី ពីនាក់បង្កើតឧបករណ៍ ឬឧបករណ៍កម្មវិធីដែលអ្នកនឹងប្រើ។ គោលបំណងគឺដើម្បីធានាថាអ្នកអាចប្រើការណែនាំទាន់សម័យបំផុតសម្រាប់ឧបករណ៍ និងឧបករណ៍នេះ។ +ធ្វើការរុករកតាមមគ្គុទេសក៍ពាក់ព័ន្ធដើម្បីតម្លើងឧបករណ៍របស់អ្នក និងបញ្ចប់គម្រោង 'Hello World' មួយ។ នេះគឺជជំហានដំបូងក្នុងការបង្កើតអំពូលចាក់ស្រមោលយប់ IoT តាមរយៈមេរៀន ៤ ក្នុងផ្នែកចាប់ផ្តើមនេះ។ + +* [Arduino - Wio Terminal](wio-terminal.md) +* [កំព្យូទ័រតែមួយផ្ទាល់ - Raspberry Pi](pi.md) +* [កំព្យូទ័រតែមួយផ្ទាល់ - ឧបករណ៍វីរុថល](virtual-device.md) + +✅ អ្នកនឹងប្រើ VS Code សម្រាប់ទាំង Arduino និងកំព្យូទ័រតែមួយផ្ទាល់។ ប្រសិនបើអ្នកមិនធ្លាប់ប្រើវាមុននេះទេ សូមអានព័ត៌មានបន្ថែមអំពីវានៅលើ [គេហទំព័រ VS Code](https://code.visualstudio.com?WT.mc_id=academic-17441-jabenn) + +## ការដាក់ពាក្យប្រើប្រាស់របស់ IoT + +IoT គ្របដណ្តប់លើករណីប្រើប្រាស់ធំជាច្រើន នៅក្នុងក្រុមធំៗខ្លះៗ៖ + +* IoT សម្រាប់អ្នកប្រើប្រាស់ +* IoT ពាណិជ្ជកម្ម +* IoT ឧស្សាហកម្ម +* IoT សំណង់ហេដ្ឋារចនាសម្ព័ន្ធ + +✅ សូមធ្វើការស្រាវជ្រាវស្រួលៗ៖ សម្រាប់តំបន់នីមួយៗដែលបានពិពណ៌នាខាងក្រោម សូមស្វែងរកឧទាហរណ៍ជាក់លាក់មួយដែលមិនត្រូវបានផ្តល់ក្នុងអត្ថបទ។ + +### IoT សម្រាប់អ្នកប្រើប្រាស់ + +IoT សម្រាប់អ្នកប្រើប្រាស់សំដៅទៅលើឧបករណ៍ IoT ដែលអ្នកប្រើប្រាស់នឹងទិញ និងប្រើនៅជុំវិញផ្ទះ។ ឧបករណ៍ខ្លះៗទាំងនេះមានប្រយោជន៍យ៉ាងខ្លាំង ដូចជា ឧបករណ៍ស្ពីកខឹងថនសម្លេង, ប្រព័ន្ធកំដៅឆ្លាតវៃ និងម៉ាស៊ីនបូមធូលីរ៉ូបូត។ ខ្លះគឺមានភាពសង្ស័យស្ថិតក្នុងប្រយោជន៍ រួមមានគ្រឿងទឹកប្រើបញ្ជាបានដោយសម្លេងដែលបណ្តាលអោយអ្នកមិនអាចបិទវាបាន ព្រោះការគ្រប់គ្រងតាមសម្លេងមិនអាចស្តាប់អ្នកលើសំឡេងទឹកដែលកំពុងហូរបាន។ + +ឧបករណ៍ IoT សម្រាប់អ្នកប្រើប្រាស់កំពុងបង្ហាញនូវមនុស្សឱ្យសម្រេចបានច្រើនជាងមុនក្នុងបរិយាកាសពួកគេ ជាពិសេសសម្រាប់មនុស្ស ១ ពាន់លានរូប ដែលមានជម្ងឺពិការភាព។ ម៉ាស៊ីនបូមធូលីរ៉ូបូតអាចផ្តល់ជាន់ដល់មនុស្សដែលមានបញ្ហាចលនាដែលមិនអាចបូមធូលីបានដោយខ្លួនឯង កញ្ចប់កំដៅដែលគ្រប់គ្រងដោយសម្លេងអាចអោយមនុស្សដែលមាន ចម្ងាយភ្នែកកម្រិត ឬការគ្រប់គ្រងចលនាលំបាកកំដៅកញ្ចប់ដោយសម្លេងប៉ុណ្ណោះ អ្នកតាមដានសុខភាពអាចអោយអ្នកជំងឺតាមដានសភាពជំងឺរំងាប់ដោយខ្លួនឯង ជាមួយការប្រកាសថ្មីៗដែលមានលម្អិត និងញឹកញាប់ជាងមុន។ ឧបករណ៍ទាំងនេះកំពុងក្លាយជារឿយៗ រហូតដល់ក្មេងតូចៗក៏ប្រើវាជាផ្នែកមួយនៃជីវិតប្រចាំថ្ងៃ រួមមានការសិក្សាវីរុថលក្នុងពេលជំងឺរាតត្បាត COVID ដាក់សីតមួយលើឧបករណ៍ឆ្លាតវៃដើម្បីតាមដានការសិក្សា ឬនាឡិកាបោយជូនការព្រឹត្តិការណ៍ថ្នាក់បន្ទាប់។ + +✅ តើអ្នកមានឧបករណ៍ IoT សម្រាប់អ្នកប្រើប្រាស់ណាខ្លះទៀតនៅលើខ្លួនឬក្នុងផ្ទះ? + +### IoT ពាណិជ្ជកម្ម + +IoT ពាណិជ្ជកម្មគ្របដណ្តប់ការប្រើប្រាស់ IoT នៅកន្លែងធ្វើការ។ នៅក្នុងការិយាល័យ អាចមានឧបករណ៍សម្គាល់ការស្នាក់នៅ និងឧបករណ៍ចលនាសម្រាប់គ្រប់គ្រងការបំភ្លឺ និងកំដៅ ដើម្បីបិទភ្លើងនិងកំដៅនៅពេលមិនចាំបាច់ ដែលជួយថយចុះថ្លៃ និងកាត់បន្ថយការបញ្ចេញកាបូន។ នៅក្នុងរោងចក្រ ឧបករណ៍ IoT អាចត្រួតពិនិត្យសុវត្ថិភាពដូចជា បុគ្គលិកមិនពាក់មួកសុវត្ថិភាព ឬសំលេងដែលមានកម្រិតធ្ងន់ធ្ងរ។ នៅស្ដុកទំនិញ ឧបករណ៍ IoT អាចវាស់សីតុណ្ហភាពក្នុងក្ដារសំរាប់គ្រឿងត្រជាក់ ដើម្បីជូនដំណឹងទៅម្ចាស់ហាង ប្រសិនបើទូរទឹកកក ឬទូរទឹកកកមានសីតុណ្ហភាពក្រៅជួរត្រូវការដែលបានកំណត់ ឬគេអាចត្រួតពិនិត្យទំនិញលើឆាករ, ដើម្បីផ្ដល់ទីតាំងដល់និយោជិកសម្រាប់បំពេញទំនិញដែលបានលក់ចេញ។ ឧស្សាហកម្មដឹកជញ្ជូនកំពុងពឹងផ្អែកលើ IoT ជាងមុនសម្រាប់តាមដានទីតាំងយានយន្ត គណនាគន្លងរថយន្តសម្រាប់ការបង់ថ្លៃ ប្រតិបត្តិការរថយន្ត និងការប្រកបតាមម៉ោងបក់ និងការផ្តល់ដំណឹងដល់បុគ្គលិកពេលមានយានយន្តមកដល់ឃ្លាំងសម្រាប់រៀបចំទំនិញ។ + +✅ តើអ្នកមានឧបករណ៍ IoT ពាណិជ្ជកម្មនៅសាលា ឬកន្លែងធ្វើការរបស់អ្នកទេ? + +### IoT ឧស្សាហកម្ម (IIoT) + +IoT ឧស្សាហកម្ម ឬ IIoT គឺភាពដែលប្រើប្រាស់ឧបករណ៍ IoT ដើម្បីគ្រប់គ្រង និងគ្រប់គ្រងម៉ាស៊ីនចល័តក្នុងវិស័យធំ។ វាគ្របដណ្តប់លើករណីប្រើប្រាស់ជាច្រើនពីរោងចក្រ ទៅកសិកម្មឌីជីថល។ + +រោងចក្រ ប្រើឧបករណ៍ IoT ដល់វីធីផ្សេងៗគ្នា។ ម៉ាស៊ីនអាចត្រូវបានតាមដានជាមួយឧបករណ៍សោន័រជាច្រើនដើម្បីតាមដានសីតុណ្ហភាព ការនិយាយកកា និងល្បឿនវង្វង់របស់វា។ ទិន្នន័យនេះអាចត្រូវបានតាមដាន ដើម្បីផ្អាក ម៉ាស៊ីនប្រសិនបើវាហួសកំណត់ព្រំដែន — ឧទាហរណ៍ វារត់កំដៅពេកហើយត្រូវបិទ។ ទិន្នន័យនេះក៏អាចត្រូវបានប្រមូល និងវិភាគក្នុងរយៈពេលវែង សម្រាប់ថែទាំគ្រាប់ក្រោយដោយប្រើម៉ូដែល AI ដែលពិនិត្យទិន្នន័យដែលមកមុនការបរាជ័យ ហើយប្រើវាសម្រាប់ទាយអនាគតចំពោះករណីបរាជ័យផ្សេងទៀតមុនពេលវាបានកើត។ + +កសិកម្មឌីជីថលមានសារៈសំខាន់ ប្រសិនបើភពផែនដីចង់បម្រើអាហារឱ្យប្រជាជនដែលកំពុងកើនឡើង ជាពិសេសលើមនុស្ស ២ពាន់លានរូប ក្នុង ៥០០ លានផ្ទះសំណាក់ ដែលរស់នៅលើ [ការដាំដុះស៊ីមពីដាច់ខាងខាង](https://wikipedia.org/wiki/Subsistence_agriculture)។ កសិករអាចចាប់ផ្តើមដោយតាមដានសីតុណ្ហភាព និងប្រើប្រាស់ [ថ្ងៃដំណាំកើត](https://wikipedia.org/wiki/Growing_degree-day) ដើម្បីទាយថាតើការដាំដុះអ្វីសម្រេចបានក្នុងពេលណា។ គេអាចភ្ជាប់ការតាមដានសំណើមដីទៅប្រព័ន្ធបាញ់ទឹកស្វ័យប្រវត្តិ ដើម្បីផ្តល់ទឹកត្រឹមត្រូវដល់រុក្ខជាតិរបស់ពួកគេ តែគ្មានទឹកលើសដើម្បីធានារុក្ខជាតិមិនស្ងួតដោយមិនស្ទាក់ទឹក។ កសិករលើកកម្រិតខ្ពស់ ដោយប្រើរោទិ៍ហោះទឹក អ្នកប្រើព័ត៌មានផ្ទាល់ដី និង AI ដើម្បីតាមដានកំណើតដាំដុះ ជំងឺ និងគុណភាពដីលើដីកសិកម្មធំទូលាយ។ + +✅ តើមានឧបករណ៍ IoT ផ្សេងទៀតណាអាចជួយកសិករបាន? + +### IoT សំណង់ហេដ្ឋារចនាសម្ព័ន្ធ + +IoT សំណង់ហេដ្ឋារចនាសម្ព័ន្ធគឺការតាមដាន និងគ្រប់គ្រង សំណង់ហេដ្ឋារចនាសម្ព័ន្ធក្នុងតំបន់ និងកម្រិតពិភពលោកដែលមនុស្សប្រើប្រាស់ជារៀងរាល់ថ្ងៃ។ + +[ទីក្រុងឆ្លាតវៃ](https://wikipedia.org/wiki/Smart_city) គឺជាតំបន់ស៊ីវិលដែលប្រើឧបករណ៍ IoT ដើម្បីប្រមូលទិន្នន័យអំពីទីក្រុង ហើយប្រើវាសម្រាប់ការកែលម្អរបៀបដែលទីក្រុងដំណើរការ។ ទីក្រុងទាំងនេះភាគច្រើនដំណើរការជាមួយដៃគូរវាងរដ្ឋាភិបាលតំបន់ សកលវិទ្យាល័យ និងអាជីវកម្មក្នុងតំបន់ ដើម្បីតាមដាន និងគ្រប់គ្រងអ្វីៗចាប់ពីការដឹកជញ្ជូន ទៅកាន់ចតបាន និងការបំពុល ។ ឧទាហរណ៍ នៅទីក្រុងកូបេុនហេន ប្រទេសឌេនម៉ារគ សំណើមខ្យល់មានសំខាន់សម្រាប់ប្រជាពលរដ្ឋ ដូច្នេះវាត្រូវបានវាស់ និងប្រើទិន្នន័យដើម្បីផ្ដល់ព័ត៌មានអំពីផ្លូវជិះកង់ និងរត់ហាត់ប្រាណមានសំណើមខ្យល់បំផុត។ + +[បណ្តាញភ្លើងឆ្លាតវៃ](https://wikipedia.org/wiki/Smart_grid) អាចផ្តល់កំណត់ត្រាឌីណាមិចល្អប្រសើរនៃការទាមទារភ្លើងដោយប្រមូលទិន្នន័យប្រើប្រាស់នៅកម្រិតផ្ទះរៀងៗខ្លួន។ ទិន្នន័យនេះអាចណែនាំការសម្រេចចិត្តនៅកម្រិតប្រទេស រួមមានកន្លែងនៃការសាងសង់ស្ថានីយភ្លើងថ្មី និងកម្រិតផ្ទាល់ខ្លួន ដោយផ្ដល់ឲ្យអ្នកប្រើនូវការយល់ដឹងពីចំនួនវ៉ុលដែលប្រើប្រាស់ ពេលវេលាប្រើ និងយោបល់សម្រាប់កាត់បន្ថយថ្លៃដូចជាការចំណាយសាកឡានអគ្គិសនីនៅពេលយប់។ + +✅ ប្រសិនបើអ្នកអាចដាក់ឧបករណ៍ IoT នៅកន្លែងអ្នករស់ ដើម្បីវាស់វែងអ្វីមួយ អ្វីដែលអ្នកចង់វាស់? + +## ឧទាហរណ៍នៃឧបករណ៍ IoT ដែលអ្នកអាចមាននៅជុំវិញអ្នក + +អ្នកនឹងពិតជាភ្ញាក់ផ្អើលចំពោះចំនួនឧបករណ៍ IoT ដែលអ្នកមាននៅជុំវិញអ្នក។ ខ្ញុំកំពុងសរសេរនេះពីផ្ទះ ហើយខ្ញុំមានឧបករណ៍ខាងក្រោមភ្ជាប់ទៅអ៊ីនធឺណិត ជាមួយមុខងារឆ្លាតវៃ ដូចជាការត្រួតពិនិត្យតាមកម្មវិធី ការបញ្ជារដោយសម្លេង ឬសមត្ថភាពផ្ញើទិន្នន័យទៅខ្ញុំតាមទូរសព្ទ័៖ + +* ឧបករណ៍ស្ពីកខឹងថនច្រើនគ្រឿង +* ទូរទឹកកក បូមចាន ឧបករណ៍នំ និងម៉ាញ៉ែវេវ +* ឧបករណ៍តាមដានអគ្គិសនីសម្រាប់ផ្ទៃព្រះអាទិត្យ +* ផ្លុកឆ្លាតវៃ +* កាមេរ៉ាការពារ និងទូរស័ព្ទច្រកទ្វារ​មានវីដេអូ +* ប្រដាប់កម្រិតកំដៅឆ្លាតវៃ ជាមួយឧបករណ៍សំយោគបន្ទប់ច្រើនគ្រឿង +* ឧបករណ៍បើកទ្វាការ៉ាហ្ស +* ប្រព័ន្ធកម្សាន្ដផ្ទះ និងទូរទស្សន៍គ្រប់គ្រងដោយសម្លេង +* សំពត់ភ្លើង +* ឧបករណ៍តាមដានសុខភាព និងការហាត់ប្រាណ + +ឧបករណ៍ទាំងនេះទាំងអស់មានឧបករណ៍សែនសំរាប់អារម្មណ៍ និង/ឬឧបករណ៍បញ្ចេញសញ្ញា ហើយនិយាយទៅអ៊ីនធឺណិត។ ខ្ញុំអាចដឹងពីទូរស័ព្ទរបស់ខ្ញុំថាតើទ្វាការ៉ាហ្សរបស់ខ្ញុំបើកឬទេ ហើយសុំឲ្យស្ពីកខឹងថនបិទវាឲ្យខ្ញុំ។ ខ្ញុំអាចកំណត់វានៅម៉ោងដើម្បីបិទវាដោយស្វ័យប្រវត្តិ ប្រសិនបើវាពិតជាបើកនៅយប់។ ពេលទូរស័ព្ទច្រកទ្វាររបស់ខ្ញុំធ្វើការបិទ ខ្ញុំអាចមើលពីទូរស័ព្ទរបស់ខ្ញុំថាមនុស្សណាកំពុងនៅទីនោះ ហើយនិយាយជាមួយពួកគេតាមបាស៊ិកព្រមទាំងមីក្រូហ្វូនរបស់ទូរស័ព្ទ។ ខ្ញុំអាចតាមដានកំនត់ស្ករឈាម ចង្វាក់បេះដូង និងលំនាំអន្លក់ដេក រកលំនាំក្នុងទិន្នន័យសម្រាប់ធ្វើឲ្យសុខភាពរបស់ខ្ញុំប្រសើរឡើង។ ខ្ញុំអាចគ្រប់គ្រងសំពត់ភ្លើងរបស់ខ្ញុំតាមពពក ហើយអាចអង្គុយនៅក្នុងភាពងុងងើចពេលការតភ្ជាប់អ៊ីនធឺណិតរបស់ខ្ញុំបាត់។ + +--- + +## 🚀 챌린지 + +រាយនាមឧបករណ៍ IoT ជាច្រើនដែលអ្នកអាចមាននៅផ្ទះ សាលា ឬកន្លែងធ្វើការរបស់អ្នក — ប្រហែលជាច្រើនជាងដែលអ្នកគិត! + +## ប្រលងក្រោយថ្នាក់សិក្សា + +[ប្រលងក្រោយថ្នាក់សិក្សា](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/2) + +## ការពិនិត្យឡើងវិញ និងអាណាព្យាបាលដោយខ្លួនឯង + +អានអំពីអត្ថប្រយោជន៍ និងភាពបរាជ័យរបស់គម្រោង IoT សម្រាប់អ្នកប្រើប្រាស់។ ពិនិត្យគេហទំព័រព័ត៌មានសម្រាប់អត្ថបទអំពីពេលវាបានបរាជ័យ ដូចជា បញ្ហាព័ត៌មានឯកជន បញ្ហាឧបករណ៍ ឬបញ្ហាដែលបណ្តាលមកពីការខ្វះការតភ្ជាប់។ + +ឧទាហរណ៍មួយចំនួន៖ + +* ពិនិត្យមើលគណនី Twitter **[Internet of Sh*t](https://twitter.com/internetofshit)** *(ការព្រមានភាសាមិនល្អ)* សម្រាប់ឧទាហរណ៍ល្អៗនៃភាពបរាជ័យក្នុង IoT សម្រាប់អ្នកប្រើប្រាស់។ +* [c|net - ម៉ោង Apple របស់ខ្ញុំបានជួយសង្គ្រោះជីវិត: អ្នក ៥ រូបចែករំលែករឿងរបស់ពួកគេ](https://www.cnet.com/news/apple-watch-lifesaving-health-features-read-5-peoples-stories/) +* [c|net - បុគ្គលិក ADT ទទួលសារព័ត៌មានចំពោះការជ្រៀតជ្រែកកាមេរ៉ាជូនអតិថិជនជាឆ្នាំ](https://www.cnet.com/news/adt-home-security-technician-pleads-guilty-to-spying-on-customer-camera-feeds-for-years/) *(ការព្រមាន - ការបង្កត់ថ្លៃដោយមិនសុពលកម្ម)* + +## ការផ្ដល់ការងារ + +[សាកសួរឧបករណ៍ IoT គម្រោង](assignment.md) + +--- + + +**ការព្រមាន**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ក្នុងខណៈពេលដែលយើងខិតខំបំផុតដើម្បីឲ្យបានភាពត្រឹមត្រូវ សូមយល់ថាការបកប្រែដោយស្វ័យប្រវត្តិក្រោយខ្លះអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមនៅក្នុងភាសាដើមគួរត្រូវបានចាត់ទុកជាថ្នាក់ដំបូងនៃប្រភពទិន្នន័យដែលមានសុពលភាព។ សម្រាប់ព័ត៌មានសំខាន់ៗ យើងណែនាំឲ្យមានការបកប្រែមនុស្សជំនាញវិជ្ជាជីវៈ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសឆ្គងណាមួយដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/1-getting-started/lessons/1-introduction-to-iot/assignment.md b/translations/km/1-getting-started/lessons/1-introduction-to-iot/assignment.md new file mode 100644 index 000000000..799d7461b --- /dev/null +++ b/translations/km/1-getting-started/lessons/1-introduction-to-iot/assignment.md @@ -0,0 +1,20 @@ +# ស៊ើបអង្កេតគម្រោង IoT + +## សេចក្តីណែនាំ + +មានគម្រោង IoT ដ៏ធំនិងតូចជាច្រើនកំពុងត្រូវបានដាក់ចេញនៅទូទាំងពិភពលោក ចាប់ពីកសិដ្ឋានឆ្លាតវៃទៅកាន់ទីក្រុងឆ្លាតវៃ ក្នុងការត្រួតពិនិត្យសុខភាព ការដឹកជញ្ជូន និងសម្រាប់ការប្រើប្រាស់នៅក្នុងកន្លែងសាធារណៈ។ + +ស្វែងរកព័ត៌មានលម្អិតពីគម្រោងដែលមានចំណាប់អារម្មណ៍ចំពោះអ្នក ត្រូវ preferably គម្រោងមួយដែលនៅជិតកន្លែងដែលអ្នកនៅ។ ពន្យល់ពីអត្ថប្រយោជន៍ និងគុណវិបត្តិរបស់គម្រោង ដូចជាអត្ថប្រយោជន៍ដែលមានចេញពីវា បញ្ហាណាដែលវាបង្ករឡើង និងរបៀបដែលការពារ​ឯកជនភាពត្រូវបានគិតគូរចូល។ + +## ការវាយតម្លៃ + +| កriteria | ឧទាហរណ៍ល្អ | គ្រប់គ្រាន់ | ត្រូវការកែលម្អ | +| -------- | --------- | -------- | ----------------- | +| ពន្យល់អំពីអត្ថប្រយោជន៍ និងគុណវិបត្តិ | បានឲ្យពន្យល់យ៉ាងច្បាស់អំពីអត្ថប្រយោជន៍ និងគុណវិបត្តិរបស់គម្រោង | បានឲ្យពន្យល់ខ្លីអំពីអត្ថប្រយោជន៍ និងគុណវិបត្តិ | មិនបានពន្យល់អំពីអត្ថប្រយោជន៍ ឬ គុណវិបត្តិ | + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខំធ្វើឲ្យបានត្រឹមត្រូវ អ្នកគួរតែដឹងថាការបកប្រែប្រព័ន្ធស្វ័យប្រវត្តិអាចមានកំហុសឬមិនត្រឹមត្រូវ។ ឯកសារដើមនៅក្នុងភាសាធម្មតា គួរត្រូវបានចាត់ទុកជាផ្លូវការបំផុត។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយមនុស្សជំនាញត្រូវបានណែនាំ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែមិនត្រឹមត្រូវណាមួយ ដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/1-getting-started/lessons/1-introduction-to-iot/pi.md b/translations/km/1-getting-started/lessons/1-introduction-to-iot/pi.md new file mode 100644 index 000000000..09b812cc5 --- /dev/null +++ b/translations/km/1-getting-started/lessons/1-introduction-to-iot/pi.md @@ -0,0 +1,279 @@ +# Raspberry Pi + +[Raspberry Pi](https://raspberrypi.org) គឺជាកុំព្យូទ័រប្រភេទsingle-board។ អ្នកអាចបន្ថែមឧបករណ៍សេនស័រនិងអាស៊ីដទ័របានដោយប្រើឧបករណ៍និងប្រព័ន្ធបរិស្ថានច្រើនប្រភេទ ហើយសម្រាប់មេរៀនទាំងនេះ ប្រើប្រព័ន្ធបរិស្ថានរឹង called [Grove](https://www.seeedstudio.com/category/Grove-c-1003.html)។ អ្នកនឹងកូដ Pi របស់អ្នក និងចូលដំណើរការសេនស័រ Grove ដោយប្រើ Python។ + +![A Raspberry Pi 4](../../../../../translated_images/km/raspberry-pi-4.fd4590d308c3d456.webp) + +## ការតំឡើង + +បើអ្នកប្រើ Raspberry Pi ជាជំរើស IoT របស់អ្នក អ្នកមានជម្រើសពីរទី - អ្នកអាចធ្វើការតាមមេរៀនទាំងនេះទាំងអស់ និងកូដដោយផ្ទាល់លើ Pi ឬអ្នកអាចភ្ជាប់ពីចម្ងាយទៅ Pi ដែលគ្មានអេក្រង់ និងកូដពីកំព្យូទ័ររបស់អ្នក។ + +មុនចាប់ផ្ដើម អ្នកត្រូវភ្ជាប់ Grove Base Hat ទៅ Pi របស់អ្នកផងដែរ។ + +### បេសកកម្ម - តំឡើង + +តំឡើង Grove base hat លើ Pi របស់អ្នក និងកំណត់រចនាសម្ព័ន្ធ Pi + +1. ភ្ជាប់ Grove base hat ទៅ Pi របស់អ្នក។ ឈុតភ្លៅនៅលើ hat ត្រូវបានភ្ជាប់លើពាំង GPIO ទាំងអស់នៅលើ Pi ដោយរអិលចុះលើលេខ pin ទាំងអស់ ដើម្បីអង្គុយយ៉ាងរឹងមាំលើមូលដ្ឋាន។ វាអង្គុយលើ Pi ភ្ជាប់វា។ + + ![Fitting the grove hat](../../../../../images/pi-grove-hat-fitting.gif) + +1. សម្រាច់ថាអ្នកចង់កម្មវិធី Pi របស់អ្នកយ៉ាងដូចម្តេច ហើយទៅផ្នែកពាក់ព័ន្ធខាងក្រោម: + + * [ធ្វើការផ្ទាល់លើ Pi](#ធ្វើការផ្ទាល់លើ-pi-របស់អ្នក) + * [ចូលប្រើពីចម្ងាយដើម្បីកូដ Pi](#ចូលប្រើពីចម្ងាយដើម្បីកូដ-pi) + +### ធ្វើការផ្ទាល់លើ Pi របស់អ្នក + +បើអ្នកចង់ធ្វើការប្រកបផ្ទាល់លើ Pi អ្នកអាចប្រើកំណែ Desktop នៃ Raspberry Pi OS ហើយតំឡើងឧបករណ៍ទាំងអស់ដែលអ្នកត្រូវការ។ + +#### បេសកកម្ម - ធ្វើការផ្ទាល់លើ Pi របស់អ្នក + +ដាក់តំឡើង Pi សម្រាប់អភិវឌ្ឍន៍។ + +1. អនុវត្តតាមសេចក្ដីណែនាំក្នុង [មគ្គុទេសក៍កំណត់រចនាសម្ព័ន្ធ Raspberry Pi](https://projects.raspberrypi.org/en/projects/raspberry-pi-setting-up) ដើម្បីកំណត់រចនាសម្ព័ន្ធ Pi របស់អ្នក ភ្ជាប់វាទៅកាន់ក្តារចុច/កណ្តុរ/អេក្រង់ ភ្ជាប់វាទៅកាន់បណ្តាញ WiFi រឺអ៊ីធឺណិត ហើយធ្វើឱ្យកម្មវិធីទាន់សម័យ។ + +ដើម្បីកម្មវិធី Pi ដោយប្រើ Grove sensors និង actuators អ្នកត្រូវតែដំឡើងកម្មវិធីគូរលើកដើម្បីអាចសរសេរកូដឧបករណ៍ ហើយមានបណ្ណាល័យនិងឧបករណ៍ជាច្រើនដែលប្រតិបត្តិការជាមួយរឹង Grove។ + +1. បន្ទាប់ពី Pi របស់អ្នកបានដំណើរការឡើងវិញ អើព្រីម Terminal ដោយចុចរូបតំណាង **Terminal** នៅមើលបញ្ជីម៉ឺនុយខាងលើ ឬជ្រើស *Menu -> Accessories -> Terminal* + +1. រត់ពាក្យបញ្ជាទាំងនេះដើម្បីធានាថាកម្មវិធីប្រតិបត្តិការនិងកម្មវិធីដែលបានដំឡើងទាន់សម័យ៖ + + ```sh + sudo apt update && sudo apt full-upgrade --yes + ``` + +1. រត់ពាក្យបញ្ជាទាំងនេះដើម្បីដំឡើងបណ្ណាល័យទាំងអស់ដែលចាំបាច់សម្រាប់រឹង Grove: + + ```sh + sudo apt install git python3-dev python3-pip --yes + + git clone https://github.com/Seeed-Studio/grove.py + cd grove.py + sudo pip3 install . + + sudo raspi-config nonint do_i2c 0 + ``` + + វាស្តារដោយដំឡើង Git រួមជាមួយ Pip ដើម្បីដំឡើងកញ្ចប់ Python។ + + មុខងារដ៏មានអំណាចមួយនៃ Python គឺភាពអាចដំឡើង [កញ្ចប់ Pip](https://pypi.org) - គឺជាកញ្ចប់កូដដែលសរសេរដោយអ្នកផ្សេង និងបានផ្សាយនៅលើអ៊ីនធឺណិត។ អ្នកអាចដំឡើងកញ្ចប់ Pip មួយនៅលើកុំព្យូទ័ររបស់អ្នកជាមួយពាក្យបញ្ជាមួយ ហើយប្រើកញ្ចប់នោះក្នុងកូដរបស់អ្នក។ + + កញ្ចប់ Python Grove របស់ Seeed ត្រូវបានដំឡើងពីប្រភព។ ពាក្យបញ្ជាទាំងនេះនឹងចម្លង repo ដែលមានកូដប្រភពសម្រាប់កញ្ចប់នេះ ហើយដំឡើងវាទៅក្នុងតំបន់ក្នុងមូលដ្ឋាន។ + + > 💁 ដើមពីការដំឡើងកញ្ចប់ វានឹងអាចប្រើបានទូទាំងកុំព្យូទ័ររបស់អ្នក ហើយនេះអាចបណ្តាលឲ្យមានបញ្ហាជាមួយព្រៀវរបស់កញ្ចប់ - ដូចជា​កម្មវិធី​មួយ​ផ្អែកលើ​កំណែ​មួយ​នៃ​កញ្ចប់​ដែល​ផាត់​ធ្វើ​ឲ្យ​ខូច​ពេលដែល​អ្នក​ដំឡើង​កំណែ​ថ្មី​សម្រាប់​កម្មវិធី​ផ្សេង​ទៀត។ ដើម្បីដោះស្រាយបញ្ហានេះ អ្នកអាចប្រើ [បរិស្ថាន Python សម្រាប់កីឡាអវត្ដម](https://docs.python.org/3/library/venv.html) ដែលជាការចម្លង Python នៅក្នុងថតផ្ទាល់មួយ និងពេលដែលអ្នកដំឡើងកញ្ចប់ Pip វានឹងត្រូវដំឡើងក្នុងថតនោះតែប៉ុណ្ណោះ។ អ្នកមិនត្រូវប្រើបរិស្ថានវីនុអាល់នៅពេលប្រើ Pi ទេ។ ស្គ្រីបដំឡើង Grove នឹងដំឡើងកញ្ចប់ Python Grove ទាំងមូលនៅលើប្រព័ន្ធ ដូច្នេះដើម្បីប្រើបរិស្ថានវីនុអាល់ អ្នកត្រូវតែបង្កើតវីនុអាល់ហើយដំឡើងកញ្ចប់ Grove ជាថ្មីនៅក្នុងបរិស្ថាននោះ។ វាងាយស្រួលជាងក្នុងការប្រើកញ្ចប់ទូទៅជាវិធីសាស្រ្តពិសេស ពីព្រោះអ្នកអភិវឌ្ឍ Pi ច្រើននឹងដុត SD card ស្អាតសម្រាប់គម្រោងនីមួយៗ។ + + ចុងក្រោយ វាអនុញ្ញាតអ៊ីនធ្វែរ I2C។ + +1. ផ្ដើមឡើងវិញ Pi ដោយប្រើម៉ឺនុយ ឬរត់ពាក្យបញ្ជានៅ Terminal ដូចខាងក្រោម៖ + + ```sh + sudo reboot + ``` + +1. បន្ទាប់ពី Pi បានរត់ឡើងវិញ ម្ដងទៀតបើក Terminal ហើយរត់ពាក្យបញ្ជាដើម្បីដំឡើង [Visual Studio Code (VS Code)](https://code.visualstudio.com?WT.mc_id=academic-17441-jabenn) - គឺជាយន្តករណ៍សរសេរកូដដែលអ្នកនឹងប្រើសម្រាប់សរសេរកូដឧបករណ៍អ្នកជាមួយ Python ។ + + ```sh + sudo apt install code + ``` + + បន្ទាប់ពីដំឡើងរួច VS Code នឹងមាននៅក្នុងម៉ឺនុយខាងលើ។ + + > 💁 អ្នកអាចប្រើ IDE Python ឬកម្មវិធីកែសម្រួលណាមួយសម្រាប់មេរៀនទាំងនេះបាន បើអ្នកមានឧបករណ៍ដែលចូលចិត្ត ប៉ុន្តែមេរៀនទាំងនេះនឹងផ្តល់ការណែនាំផ្អែកលើការប្រើ VS Code។ + +1. តំឡើង Pylance។ វាជា​កម្មវិធីបន្ថែមសម្រាប់ VS Code ដែលផ្តល់​ជំនួយភាសា Python។ សូមយោងទៅ [ឯកសារកម្មវិធីបន្ថែម Pylance](https://marketplace.visualstudio.com/items?WT.mc_id=academic-17441-jabenn&itemName=ms-python.vscode-pylance) សម្រាប់ការណែនាំពីការដំឡើងកម្មវិធីបន្ថែមនេះនៅក្នុង VS Code។ + +### ចូលប្រើពីចម្ងាយដើម្បីកូដ Pi + +ជំនួសជាការសរសេរកូដដោយផ្ទាល់លើ Pi វាអាចបញ្ចូលជាម៉ូដ 'headless' ដែលគ្មានការភ្ជាប់ក្តារចុច/កណ្តុរ/អេក្រង់ ហើយកំណត់រចនាសម្ព័ន្ធនិងរក់សរសេរកូដពីកុំព្យូទ័ររបស់អ្នក ដោយប្រើ Visual Studio Code។ + +#### កំណត់រចនាសម្ព័ន្ធ Pi OS + +ដើម្បីកូដពីចម្ងាយ Pi OS ត្រូវត្រូវបានដំឡើងលើកាត SD។ + +##### បេសកកម្ម - កំណត់រចនាសម្ព័ន្ធ Pi OS + +កំណត់រចនាសម្ព័ន្ធ headless Pi OS។ + +1. ទាញយក **Raspberry Pi Imager** ពី [ទំព័រម៉ាស៊ីនផ្សាយរបស់ Raspberry Pi OS](https://www.raspberrypi.org/software/) ហើយដំឡើងវា។ + +1. ដាក់កាត SD ទៅកុំព្យូទ័ររបស់អ្នក ប្រើស្វយបន្ទុកប្តូរវានៅករណីចាំបាច់។ + +1. បើក Raspberry Pi Imager + +1. នៅក្នុង Raspberry Pi Imager ជ្រើសប៊ូតុង **CHOOSE OS** រួចជ្រើស *Raspberry Pi OS (Other)* បន្ទាប់មកជ្រើស *Raspberry Pi OS Lite (32-bit)* + + ![The Raspberry Pi Imager with Raspberry Pi OS Lite selected](../../../../../translated_images/km/raspberry-pi-imager.24aedeab9e233d84.webp) + + > 💁 Raspberry Pi OS Lite គឺជាកំណែរបស់ Raspberry Pi OS ដែលគ្មាន UI តុបតែង ឬឧបករណ៍ UI ជាគ្រឿងផ្សេងៗ។ ពួកវា​មិន​ចាំបាច់​សម្រាប់ headless Pi និងធ្វើឲ្យការដំឡើងតូចជាង និងបង្កើតឡើងយ៉ាងលឿនជាង។ + +1. ជ្រើសប៊ូតុង **CHOOSE STORAGE** រួចជ្រើសកាត SD របស់អ្នក។ + +1. បើក **Advanced Options** ដោយចុច `Ctrl+Shift+X`។ ជម្រើសទាំងនេះអាចអនុញ្ញាតឲ្យកំណត់រចនាសម្ព័ន្ធជាមុនសម្រាប់ Raspberry Pi OS មុនពេលដំឡើងទៅកាត SD។ + + 1. ពិនិត្យប្រអប់ **Enable SSH** ហើយកំណត់ពាក្យសម្ងាត់សម្រាប់អ្នកប្រើ `pi`។ នេះជាពាក្យសម្ងាត់ដែលអ្នកនឹងប្រើចូលទៅ Pi បន្ទាប់មក។ + + 1. ប្រសិនបើអ្នកមានផែនការភ្ជាប់ Pi ជាមួយ WiFi ពិនិត្យប្រអប់ **Configure WiFi** ហើយបញ្ចូល WiFi SSID និងពាក្យសម្ងាត់របស់អ្នក ផងដែរជ្រើសប្រទេសរបស់អ្នកសម្រាប់ WiFi។ អ្នកមិនចាំបាច់ធ្វើចំណោមនេះ ប្រសិនបើអ្នកប្រើខ្សែកាប Ethernet ទេ។ ត្រូវប្រាកដថាបណ្តាញដែលអ្នកភ្ជាប់ទៅគឺដូចគ្នានឹងដែលកុំព្យូទ័ររបស់អ្នកស្ថិតនៅលើ។ + + 1. ពិនិត្យប្រអប់ **Set locale settings** ហើយកំណត់ប្រទេស និងម៉ោងជាTimezone របស់អ្នក។ + + 1. ជ្រើសប៊ូតុង **SAVE** + +1. ជ្រើសប៊ូតុង **WRITE** ដើម្បីសរសេរកម្មប្រតិបត្តិការ OS ទៅកាត SD។ ប្រសិនបើអ្នកប្រើ macOS អ្នកនឹងត្រូវបានស្នើសុំបញ្ចូលពាក្យសម្ងាត់ ដោយសារឧបករណ៍ក្រោមគ្រប់គ្រងការសរសេររូបភាពភាសារក្នុងថាសដែលត្រូវការចូលដំណើរការសិទ្ធិជាម្ចាស់។ + +OS នឹងត្រូវបានសរសេរទៅកាត SD ហើយបន្ទាប់ពីបញ្ចប់ កាតនឹងត្រូវបានបញ្ចេញដោយ OS ហើយអ្នកនឹងបានជូនដំណឹង។ ដកកាត SD ពីកុំព្យូទ័រអូររបស់អ្នកដាក់វាទៅ Pi បើកភ្លើង Pi ហើយរង់ចាំប្រមាណរយៈពេល 2នាទីសម្រាប់វាការចាប់ផ្ដើមឡើងវិញបានយ៉ាងត្រឹមត្រូវ។ + +#### ភ្ជាប់ទៅ Pi + +ជំហានបន្ទាប់គឺចូលប្រើ Pi ពីចម្ងាយ។ អ្នកអាចធ្វើបានក្នុងការប្រើ `ssh` ដែលមាននៅលើ macOS, Linux និងកំណែថ្មីនៃ Windows។ + +##### បេសកកម្ម - ភ្ជាប់ទៅ Pi + +ចូលប្រើ Pi ពីចម្ងាយ។ + +1. បើក Terminal ឬ Command Prompt ហើយបញ្ចូលពាក្យបញ្ជាតាមខាងក្រោមដើម្បីភ្ជាប់ទៅ Pi: + + ```sh + ssh pi@raspberrypi.local + ``` + + ប្រសិនបើអ្នកប្រើ Windows មានកំណែចាស់មួយដែលមិនមាន `ssh` តម្លើង អ្នកអាចប្រើ OpenSSH។ អ្នកអាចស្វែងរកការណែនាំដំឡើងនៅក្នុង [ឯកសារដំឡើង OpenSSH](https://docs.microsoft.com//windows-server/administration/openssh/openssh_install_firstuse?WT.mc_id=academic-17441-jabenn)។ + +1. វានឹងភ្ជាប់ទៅ Pi ហើយស្នើសុំពាក្យសម្ងាត់។ + + ការស្វែងរកកុំព្យូទ័រនៅលើបណ្តាញរបស់អ្នកដោយប្រើ `.local` គឺជារឿងថ្មីមួយសម្រាប់ Linux និង Windows។ ប្រសិនបើអ្នកប្រើ Linux ឬ Windows ហើយទទួលការកំហុសថា Hostname មិនត្រូវបានរកឃើញ អ្នកត្រូវតែដំឡើងកម្មវិធីបន្ថែមដើម្បីអនុញ្ញាតឲ្យធ្វើការបណ្តាញ ZeroConf (ដែល Apple គេស្គាល់ថាជา Bonjour): + + 1. បើអ្នកប្រើ Linux ដំឡើង Avahi ដោយប្រើពាក្យបញ្ជាខាងក្រោម: + + ```sh + sudo apt-get install avahi-daemon + ``` + + 1. ប្រសិនបើអ្នកប្រើ Windows វិធីងាយជាងគេលើការអនុញ្ញាត ZeroConf គឺដំឡើង [Bonjour Print Services for Windows](http://support.apple.com/kb/DL999)។ អ្នកអាចដំឡើង [iTunes សម្រាប់ Windows](https://www.apple.com/itunes/download/) ដើម្បីទទួលបានកំណែថ្មីនៃឧបករណ៍នេះ (ដែលមិនមានជាម៉ូឌុលបែក). + + > 💁 ប្រសិនបើអ្នកមិនអាចភ្ជាប់ដោយប្រើ `raspberrypi.local` អ្នកអាចប្រើអាសយដ្ឋាន IP របស់ Pi។ សូមយោងទៅ [ឯកសារអំពីអាសយដ្ឋាន IP Raspberry Pi](https://www.raspberrypi.org/documentation/remote-access/ip-address.md) សម្រាប់ការណែនាំពីវិធីនានាក្នុងការស្វែងរកអាសយដ្ឋាន IP។ + +1. បញ្ចូលពាក្យសម្ងាត់ដែលអ្នកកំណត់នៅក្នុង Advanced Options របស់ Raspberry Pi Imager + +#### កំណត់រចនាសម្ព័ន្ធកម្មវិធីនៅលើ Pi + +បន្ទាប់ពីអ្នកភ្ជាប់ទៅ Pi អ្នកត្រូវតែធ្វើឲ្យប្រាកដថាកម្មវិធីប្រតិបត្តិការ OS ទាន់សម័យហើយដំឡើងបណ្ណាល័យនិងឧបករណ៍ផ្សេងៗដែលប្រតិបត្តិការជាមួយរឹង Grove។ + +##### បេសកកម្ម - កំណត់រចនាសម្ព័ន្ធកម្មវិធីលើ Pi + +កំណត់រចនាសម្ព័ន្ធកម្មវិធី Pi ដែលបានដំឡើង និង ដំឡើងបណ្ណាល័យ Grove។ + +1. ពីសេស្យុង `ssh` របស់អ្នក រត់ពាក្យបញ្ជាតាមដូចខាងក្រោមដើម្បីអាប់ដេតហើយផ្ដើមឡើងវិញ Pi: + + ```sh + sudo apt update && sudo apt full-upgrade --yes && sudo reboot + ``` + + Pi នឹងត្រូវបានអាប់ដេត និងផ្ដើមឡើងវិញ។ សេស្យុង `ssh` នឹងបញ្ចប់ពេល Pi ផ្ដើមឡើងវិញ ដូច្នេះចាកចេញសម្រាប់ប្រមាណ 30 វិនាទី ហើយភ្ជាប់ឡើងវិញ។ + +1. ពីសេស្យុង `ssh` ដែលភ្ជាប់ឡើងវិញ រត់ពាក្យបញ្ជាទាំងនេះដើម្បីដំឡើងបណ្ណាល័យទាំងអស់ចាំបាច់សម្រាប់រឹង Grove: + + ```sh + sudo apt install git python3-dev python3-pip --yes + + git clone https://github.com/Seeed-Studio/grove.py + cd grove.py + sudo pip3 install . + + sudo raspi-config nonint do_i2c 0 + ``` + + វាស្តារដោយដំឡើង Git រួមជាមួយ Pip ដើម្បីដំឡើងកញ្ចប់ Python។ + + មុខងារដ៏មានអំណាចមួយនៃ Python គឺភាពអាចដំឡើង [កញ្ចប់ Pip](https://pypi.org) - គឺជាកញ្ចប់កូដដែលសរសេរដោយអ្នកផ្សេង និងបានផ្សាយនៅលើអ៊ីនធឺណិត។ អ្នកអាចដំឡើងកញ្ចប់ Pip មួយនៅលើកុំព្យូទ័ររបស់អ្នកជាមួយពាក្យបញ្ជាមួយ ហើយប្រើកញ្ចប់នោះក្នុងកូដរបស់អ្នក។ + + កញ្ចប់ Python Grove របស់ Seeed ត្រូវបានដំឡើងពីប្រភព។ ពាក្យបញ្ជាទាំងនេះនឹងចម្លង repo ដែលមានកូដប្រភពសម្រាប់កញ្ចប់នេះ ហើយដំឡើងវាទៅក្នុងតំបន់ក្នុងមូលដ្ឋាន។ + + > 💁 ដើមពីការដំឡើងកញ្ចប់ វានឹងអាចប្រើបានទូទាំងកុំព្យូទ័ររបស់អ្នក ហើយនេះអាចបណ្តាលឲ្យមានបញ្ហាជាមួយព្រៀវរបស់កញ្ចប់ - ដូចជា​កម្មវិធី​មួយ​ផ្អែកលើ​កំណែ​មួយ​នៃ​កញ្ចប់​ដែល​ផាត់​ធ្វើ​ឲ្យ​ខូច​ពេលដែល​អ្នក​ដំឡើង​កំណែ​ថ្មី​សម្រាប់​កម្មវិធី​ផ្សេង​ទៀត។ ដើម្បីដោះស្រាយបញ្ហានេះ អ្នកអាចប្រើ [បរិស្ថាន Python សម្រាប់កីឡាអវត្ដម](https://docs.python.org/3/library/venv.html) ដែលជាការចម្លង Python នៅក្នុងថតផ្ទាល់មួយ និងពេលដែលអ្នកដំឡើងកញ្ចប់ Pip វានឹងត្រូវដំឡើងក្នុងថតនោះតែប៉ុណ្ណោះ។ អ្នកមិនត្រូវប្រើបរិស្ថានវីនុអាល់នៅពេលប្រើ Pi ទេ។ ស្គ្រីបដំឡើង Grove នឹងដំឡើងកញ្ចប់ Python Grove ទាំងមូលនៅលើប្រព័ន្ធ ដូច្នេះដើម្បីប្រើបរិស្ថានវីនុអាល់ អ្នកត្រូវតែបង្កើតវីនុអាល់ហើយដំឡើងកញ្ចប់ Grove ជាថ្មីនៅក្នុងបរិស្ថាននោះ។ វាងាយស្រួលជាងក្នុងការប្រើកញ្ចប់ទូទៅជាវិធីសាស្រ្តពិសេស ពីព្រោះអ្នកអភិវឌ្ឍ Pi ច្រើននឹងដុត SD card ស្អាតសម្រាប់គម្រោងនីមួយៗ។ + + ចុងក្រោយ វាអនុញ្ញាតអ៊ីនធ្វែរ I2C។ + +1. ផ្ដើមឡើងវិញ Pi ដោយរត់ពាក្យបញ្ជាដូចខាងក្រោម៖ + + ```sh + sudo reboot + ``` + + សេស្យុង `ssh` នឹងបញ្ចប់ពេល Pi ផ្ដើមឡើងវិញ។ មិនចាំបាច់ភ្ជាប់ឡើងវិញទេ។ + +#### កំណត់រចនាសម្ព័ន្ធ VS Code សម្រាប់ចូលប្រើពីចម្ងាយ + +បន្ទាប់ពីការកំណត់រចនាសម្ព័ន្ធ Pi រួច អ្នកអាចភ្ជាប់វាទៅដោយប្រើ Visual Studio Code (VS Code) ពីកុំព្យូទ័ររបស់អ្នក - វាជាកម្មវិធីកែសម្រួលអត្ថបទឥតគិតថ្លៃសម្រាប់អ្នកអភិវឌ្ឍដែលអ្នកនឹងប្រើសម្រាប់សរសេរកូដឧបករណ៍ជាមួយ Python។ + +##### បេសកកម្ម - កំណត់រចនាសម្ព័ន្ធ VS Code សម្រាប់ចូលប្រើពីចម្ងាយ + +ដំឡើងកម្មវិធីចាំបាច់ និងភ្ជាប់ពីចម្ងាយទៅ Pi របស់អ្នក។ +1. ដំឡើង VS Code លើកុំព្យូទ័ររបស់អ្នកដោយអនុវត្តតាម [ឯកសារ VS Code](https://code.visualstudio.com?WT.mc_id=academic-17441-jabenn) + +1. អនុវត្តការណែនាំក្នុង [ឯកសារអភិវឌ្ឍន៍ពីចម្ងាយ VS Code ជាមួយ SSH](https://code.visualstudio.com/docs/remote/ssh?WT.mc_id=academic-17441-jabenn) ដើម្បីដំឡើងបង្គោលដែលត្រូវការ + +1. ធ្វើតាមការណែនាំដូចគ្នា ដើម្បីភ្ជាប់ VS Code ទៅកាន់ Pi + +1. នៅពេលបានភ្ជាប់រួច សូមអនុវត្តតាមការណែនាំ [ការគ្រប់គ្រងបន្ថែម](https://code.visualstudio.com/docs/remote/ssh#_managing-extensions?WT.mc_id=academic-17441-jabenn) ដើម្បីដំឡើងបន្ថែម [Pylance extension](https://marketplace.visualstudio.com/items?WT.mc_id=academic-17441-jabenn&itemName=ms-python.vscode-pylance) ឆ្ងាយទៅលើ Pi + +## សួស្តី​ពិភពលោក + +វាជាទំនៀមទម្លាប់ពេលចាប់ផ្តើមជាមួយភាសាកម្មវិធីឬបច្ចេកវិទ្យាថ្មី មួយក្នុងការបង្កើតកម្មវិធី 'សួស្តី​ពិភពលោក' - ជាកម្មវិធីតូចមួយដែលបង្ហាញអ្វីមួយដូចជា `"Hello World"` ដើម្បីបង្ហាញថា​ឧបករណ៍ទាំងអស់​បានកំណត់ត្រឹមត្រូវ។ + +កម្មវិធី Hello World សម្រាប់ Pi នឹងធានាថាអ្នកបានដំឡើង Python និង Visual Studio Code ត្រឹមត្រូវរួចរាល់។ + +កម្មវិធីនេះនឹងស្ថិតនៅក្នុងថតឈ្មោះ `nightlight` ហើយវានឹងត្រូវប្រើឡើងវិញជាមួយកូដផ្សេងៗនៅក្នុងផ្នែកបន្ទាប់នៃបេសកកម្មនេះដើម្បីបង្កើតកម្មវិធី nightlight។ + +### បេសកកម្ម - សួស្តី​ពិភពលោក + +បង្កើតកម្មវិធី Hello World។ + +1. បើក VS Code, មុខងារជាផ្ទាល់លើ Pi ឬលើកុំព្យូទ័ររបស់អ្នក ហើយភ្ជាប់ទៅ Pi ជាមួយបន្ថែម Remote SSH + +1. បើក VS Code Terminal ដោយជ្រើស *Terminal -> New Terminal* ឬចុច `` CTRL+` ``។ វានឹងបើកនៅថតផ្ទះអ្នកប្រើប្រាស់ `pi`។ + +1. ប្រតិបត្តិពាក្យបញ្ជាដូចខាងក្រោម ដើម្បីបង្កើតថតសម្រាប់កូដរបស់អ្នក និងបង្កើតឯកសារ Python ឈ្មោះ `app.py` ខាងក្នុងថតនោះ៖ + + ```sh + mkdir nightlight + cd nightlight + touch app.py + ``` + +1. បើកថតនេះក្នុង VS Code ដោយជ្រើស *File -> Open...* ហើយជ្រើសថត *nightlight* បន្ទាប់មកជ្រើស **OK** + + ![ការបង្ហាញប្រអប់បើក VS Code អំពីថត nightlight](../../../../../translated_images/km/vscode-open-nightlight-remote.d3d2a4011e30d535.webp) + +1. បើកឯកសារ `app.py` ពីអ្នកបង្ហាញ VS Code ហើយបន្ថែមកូដដូចខាងក្រោម៖ + + ```python + print('Hello World!') + ``` + + មុខងារ `print` នឹងបោះពុម្ពអ្វីក៏បានដែលផ្ញើទៅវាទៅកាន់ម៉ុងទ័រ។ + +1. ពី VS Code Terminal ប្រតិបត្តិពាក្យបញ្ជាដូចខាងក្រោមដើម្បីរត់កម្មវិធី Python របស់អ្នក៖ + + ```sh + python app.py + ``` + + > 💁 អ្នកប្រហែលជាត្រូវការហៅ `python3` ដោយច្បាស់ដើម្បីរត់កូដនេះ ប្រសិនបើអ្នកបានដំឡើង Python 2 រួចជាមួយ Python 3 (ជំនាន់ចុងក្រោយ)។ ប្រសិនបើអ្នកមាន Python2 ដំឡើង ហៅ `python` នឹងប្រើ Python 2 ជំនួស Python 3។ តាមលំនាំដើម ចុងក្រោយ Raspberry Pi OS មានតែ Python 3 ប៉ុណ្ណោះ។ + + លទ្ធផលបង្ហាញដូចខាងក្រោមនឹងបង្ហាញនៅក្នុង terminal៖ + + ```output + pi@raspberrypi:~/nightlight $ python3 app.py + Hello World! + ``` + +> 💁 អ្នកអាចស្វែងរកកូដនេះនៅក្នុងថត [code/pi](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/pi)។ + +😀 កម្មវិធី 'Hello World' របស់អ្នកទទួលបានជោគជ័យ! + +--- + + +**ការព្រមាន**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំប្រឹងប្រែងដើម្បីបានភាពត្រឹមត្រូវ សូមយល់ថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវបានបញ្ចូល។ ឯកសារដើមជាភាសាទីតាំងដើមគួរត្រូវបានចាត់ទុកជាឯកសារដើមសម្រាប់ព័ត៌មាន។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមអនុញ្ញាតឲ្យប្រើបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសៗកើតឡើងពីការប្រើប្រាស់បកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md b/translations/km/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md new file mode 100644 index 000000000..76570d1ae --- /dev/null +++ b/translations/km/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md @@ -0,0 +1,238 @@ +# កុំព្យូទ័រថ្មីមួយក្រុមហ៊ុន + +ជំនួសការទិញឧបករណ៍ IoT រួមជាមួយឧបករណ៍ចាប់សញ្ញា និងឧបករណ៍បញ្ចេញសញ្ញា អ្នកអាចប្រើកុំព្យូទ័ររបស់អ្នកក្នុងការស្ទួចឧបករណ៍ IoT ។ គម្រោង [CounterFit](https://github.com/CounterFit-IoT/CounterFit) អនុញ្ញាតឱ្យអ្នករត់កម្មវិធីមួយនៅលើកុំព្យូទ័រពីរមានតែអ្នកដែលច្បាស់លាស់ថាអ្នកកំពុងស្ទួចឧបករណ៍ IoT ដូចជាឧបករណ៍ចាប់សញ្ញា និងឧបករណ៍បញ្ចេញសញ្ញា ហើយអាចចូលប្រើឧបករណ៍ចាប់សញ្ញា និងឧបករណ៍បញ្ចេញសញ្ញាពីកូដ Python នៅក្នុងកុំព្យូទ័រដដែលដែលត្រូវបានសរសេរដូចដដែលនៅលើកូដដែលអ្នកនឹងសរសេរលើ Raspberry Pi ដែលប្រើឧបករណ៍រឹង។ + +## ការតំឡើង + +ដើម្បីប្រើ CounterFit អ្នកត្រូវតែដំឡើងកម្មវិធីឥតគិតថ្លៃមួយចំនួននៅលើកុំព្យូទ័ររបស់អ្នក។ + +### បេសកកម្ម + +ដំឡើងកម្មវិធីដែលត្រូវការទាំងអស់។ + +1. ដំឡើង Python។ សូមយោងទៅ​កាន់ [ទំព័រទាញយក Python](https://www.python.org/downloads/) សម្រាប់ការណែនាំអំពីការដំឡើង Python កំណែថ្មីបំផុត។ + +1. ដំឡើង Visual Studio Code (VS Code) ។ នេះគឺជាឧបករណ៍កែសម្រួលដែលអ្នកនឹងប្រើសរសេរកូដឧបករណ៍វីរុសក្នុង Python ។ សូមយោងទៅកាន់ [ឯកសារវិចិត្ររូប VS Code](https://code.visualstudio.com?WT.mc_id=academic-17441-jabenn) សម្រាប់បណ្តោតទាក់ទងនឹងការដំឡើង VS Code ។ + + > 💁 អ្នកអាចប្រើ IDE ឬកម្មវិធីកែសម្រួល Python ដដែលសម្រាប់មេរៀនទាំងនេះ ប្រសិនបើអ្នកមានឧបករណ៍ចូលចិត្ត ប៉ុន្តែមេរៀននឹងផ្តល់ណែនាំដោយផ្អែកទៅលើការប្រើ VS Code ។ + +1. ដំឡើងកម្មវិធីបន្ថែម Pylance របស់ VS Code ។ នេះគឺជាកម្មវិធីបន្ថែមសម្រាប់ VS Code ដែលផ្តល់ការគាំទ្រភាសា Python ។ សូមយោងឯកសារ [Pylance extension](https://marketplace.visualstudio.com/items?WT.mc_id=academic-17441-jabenn&itemName=ms-python.vscode-pylance) សម្រាប់ការណែនាំដំឡើងកម្មវិធីបន្ថែមនេះនៅក្នុង VS Code ។ + +ការណែនាំដំឡើង និងកំណត់រចនាសម្ព័ន្ធកម្មវិធី CounterFit នឹងផ្តល់នៅពេលដែលសមាជិកនៃការងារត្រូវបានបញ្ជាក់ដោយវាត្រូវបានដំឡើងជាលក្ខណៈគម្រោងមួយ។ + +## សួស្តីពិភពលោក + +វាជារបៀបប្រពៃណីនៅពេលចាប់ផ្តើមជាមួយភាសាកម្មវិធី ឬបច្ចេកវិទ្យាថ្មីមួយ ដើម្បីបង្កើតកម្មវិធី 'Hello World' — កម្មវិធីតូចមួយដែលបង្ហាញអត្ថបទដូចជា `"Hello World"` ដើម្បីបង្ហាញថា ឧបករណ៍ទាំងអស់ត្រូវបានកំណត់ត្រឹមត្រូវ។ + +កម្មវិធី Hello World សម្រាប់ឧបករណ៍ IoT វីរុសនឹងធានាថាអ្នកបានដំឡើង Python និង Visual Studio Code ត្រឹមត្រូវ។ វានឹងភ្ជាប់ទៅ CounterFit សម្រាប់ឧបករណ៍ IoT ចាប់សញ្ញា និងបញ្ចេញសញ្ញាវីរុស។ វានឹងមិនប្រើឧបករណ៍រឹងណាមួយទេ តែភ្ជាប់ក្នុងការបញ្ជាក់ថាភាគីទាំងអស់កំពុងដំណើរការ។ + +កម្មវិធីនេះនឹងមានក្នុងថតឈ្មោះ `nightlight` ហើយវានឹងត្រូវបានប្រើជាបន្ត ដោយកូដផ្សេងៗនៅផ្នែកក្រោយនៃបេសកកម្មនេះសម្រាប់បង្កើតកម្មវិធី nightlight ។ + +### កំណត់បរិស្ថាន Python វីរុសមួយ + +មួយក្នុងចំណោមលក្ខណៈដ៏សក្ដិសមនៃ Python គឺសមត្ថភាពក្នុងការដំឡើង [កញ្ចប់ Pip](https://pypi.org) — ស្លាកកញ្ចប់នៃកូដដែលនរណាម្នាក់បានសរសេរ និងផ្សព្វផ្សាយលើអ៊ីនធឺណេត។ អ្នកអាចដំឡើងកញ្ចប់ Pip មួយទៅកុំព្យូទ័ររបស់អ្នកជាមួយពាក្យបញ្ជាមួយ ហើយប្រើកញ្ចប់នោះក្នុងកូដអ្នក។ អ្នកនឹងប្រើ Pip ដើម្បីដំឡើងកញ្ចប់មួយសម្រាប់និយាយទៅកាន់ CounterFit ។ + +ដោយលំនាំដើមពេលអ្នកដំឡើងកញ្ចប់ វានឹងអាចប្រើបានគ្រប់ទីកន្លែងលើកុំព្យូទ័ររបស់អ្នក ហើយវាអាចបង្ករបញ្ហាជាមួយកំណែកម្មវិធី - ដូចជា កម្មវិធីមួយចាំបាច់ក្នុងការពឹងផ្អែកលើកំណែម្ដងមួយនៃកញ្ចប់ ដែលបង្ករបានកំហុសពេលអ្នកដំឡើងកំណែថ្មីសម្រាប់កម្មវិធីផ្សេងទៀត។ ដើម្បីដោះស្រាយបញ្ហានេះ អ្នកអាចប្រើ [បរិស្ថាន Python វីរុស](https://docs.python.org/3/library/venv.html) ដែលជាអចិន្រ្តៃយ៍ Python មួយដែលត្រូវបានចម្លងទៅក្នុងថតឯកជនមួយ ហើយពេលដែលអ្នកដំឡើងកញ្ចប់ Pip វានឹងត្រូវដំឡើងនៅក្នុងថតនោះតែប៉ុណ្ណោះ។ + +> 💁 បើអ្នកប្រើ Raspberry Pi អ្នកមិនបានកំណត់បរិស្ថានវីរុសនៅលើឧបករណ៍នោះសម្រាប់គ្រប់គ្រងកញ្ចប់ Pip ទេ ប៉ុន្តែអ្នកកំពុងប្រើកញ្ចប់សកល ដែលកញ្ចប់ Grove ត្រូវបានដំឡើងសកលដោយស្គ្រីបដំឡើង។ + +#### បេសកកម្ម - កំណត់បរិស្ថាន Python វីរុស + +កំណត់បរិស្ថាន Python វីរុសមួយ ហើយដំឡើងកញ្ចប់ Pip សម្រាប់ CounterFit។ + +1. ពីទ្រីមីនែល ឬបន្ទាត់ពាក្យបញ្ជារបស់អ្នក ប្រតិបត្តិការដូចខាងក្រោមនៅទីតាំងអ្នកចូលចិត្ត ដើម្បីបង្កើត និងចូលទៅក្នុងថតថ្មីមួយ៖ + + ```sh + mkdir nightlight + cd nightlight + ``` + +1. ឥឡូវនេះ ប្រតិបត្តិការដូចខាងក្រោម ដើម្បីបង្កើតបរិស្ថានវីរុសមួយនៅក្នុងថត `.venv` + + ```sh + python3 -m venv .venv + ``` + + > 💁 អ្នកត្រូវហៅតែ `python3` ដើម្បីបង្កើតបរិស្ថានវីរុស ព្រោះបើអ្នកមាន Python 2 ដំឡើងជាមួយ Python 3 កាល Version ថ្មីបំផុត។ ប្រសិនបើអ្នកមាន Python2 ដំឡើង ហៅ `python` នឹងប្រើ Python 2 ជំនួស Python 3 ។ + +1. បើកបរិស្ថានវីរុស៖ + + * នៅលើ Windows: + * ប្រសិនបើអ្នកប្រើ Command Prompt ឬ Command Prompt តាមរយៈ Windows Terminal ចូរប្រតិបត្តិការដូចខាងក្រោម៖ + + ```cmd + .venv\Scripts\activate.bat + ``` + + * ប្រសិនបើអ្នកប្រើ PowerShell ចូរប្រតិបត្តិការដូចខាងក្រោម៖ + + ```powershell + .\.venv\Scripts\Activate.ps1 + ``` + + > ប្រសិនបើអ្នកមានកំហុសអំពីការបដិសេធបើក script នៅលើប្រព័ន្ធនេះ អ្នកនឹងត្រូវបើក script ដោយកំណត់យុទ្ធសាស្ត្រអនុវត្តឱ្យសមរម្យ។ អ្នកអាចធ្វើនេះដោយបើក PowerShell ជាអ្នកគ្រប់គ្រង ហើយប្រតិបត្តាក់ពាក្យបញ្ជាលើកក្រោម៖ + + ```powershell + Set-ExecutionPolicy -ExecutionPolicy Unrestricted + ``` + + ពេលដោយស្នើឱ្យបញ្ជាក់។ ចន្ទពីបើក PowerShell ម្ដងទៀត ហើយសាកល្បងម្តងទៀត។ + + អ្នកអាចកំណត់យុទ្ធសាស្ត្រអនុវត្តវិញនៅពេលក្រោយ ប្រសិនបើចាំបាច់។ អ្នកអាចអានបន្ថែមនៅលើ [ទំព័រ Execution Policies នៅលើ Microsoft Docs](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_execution_policies?WT.mc_id=academic-17441-jabenn) ។ + + * នៅលើ macOS ឬ Linux ចូរប្រតិបត្តិការដូចខាងក្រោម៖ + + ```cmd + source ./.venv/bin/activate + ``` + + > 💁 ពាក្យបញ្ជាខាងលើគួរកត់សម្គាល់ថានឹងត្រូវអនុវត្តនៅទីតាំងដែលអ្នកបានបង្កើតបរិស្ថានវីរុសជាមុន។ អ្នកមិនចាំបាច់ចូលទៅក្នុងថត `.venv` ទេ។ អ្នកគួររៀបចំបញ្ជាដើម្បីដំណើរការកញ្ចប់ ឬបញ្ជាដើម្បីអនុវត្តកូដ ពីទីតាំងដែលអ្នកបង្កើតបរិស្ថានវីរុស។ + +1. ពេលបរិស្ថានវីរុសត្រូវបានបើក យោងទៅ​លំនាំ​ដើម ពាក្យបញ្ជា `python` នឹងអនុវត្តកំណែ Python ដែលបានប្រើបង្កើតបរិស្ថានវីរុស។ ប្រតិបត្តិការដូចខាងក្រោមដើម្បីទទួលបានកំណែ Python: + + ```sh + python --version + ``` + + លទ្ធផលគួរតែមានដូចខាងក្រោម៖ + + ```output + (.venv) ➜ nightlight python --version + Python 3.9.1 + ``` + + > 💁 កំណែ Python របស់អ្នកអាចខុសគ្នា តែបើត្រឹមតែជាកំណែ 3.6 ឬខ្ពស់ជាងនេះ អ្នកសមរម្យហើយ។ ប្រសិនបើមិនដូចនេះ សូមលុបថតនេះ ចាក់កំណែ Python ថ្មី ហើយសាកល្បងម្ដងទៀត។ + +1. ប្រតិបត្តិការដូចខាងក្រោមដើម្បីដំឡើងកញ្ចប់ Pip សម្រាប់ CounterFit ។ កញ្ចប់ទាំងនេះរួមមានកម្មវិធី CounterFit មុខងារប្រតិបត្តិ និង shims សម្រាប់ឧបករណ៍ Grove ។ shims ទាំងនេះអនុញ្ញាតឱ្យអ្នកសរសេរកូដដូចជាអ្នកកំពុងកម្មវិធីប្រើឧបករណ៍ និងឧបករណ៍ចាប់សញ្ញា ពីវិស័យ Grove ប៉ុន្តែលោកអ្នកភ្ជាប់ទៅឧបករណ៍ IoT វីរុស ។ + + ```sh + pip install CounterFit + pip install counterfit-connection + pip install counterfit-shims-grove + ``` + + កញ្ចប់ pip ទាំងនេះនឹងត្រូវបានដំឡើងតែក្នុងបរិស្ថានវីរុស ប៉ុន្តែមិនអាចប្រើបានក្រៅបរិស្ថាននេះទេ។ + +### សរសេរកូដ + +ពេលបរិស្ថាន Python វីរុសរួចរាល់ អ្នកអាចសរសេរកូដកម្មវិធី 'Hello World'។ + +#### បេសកកម្ម - សរសេរកូដ + +បង្កើតកម្មវិធី Python មួយ ដើម្បីបោះពុម្ភ `"Hello World"` ទៅលើថាសកំណត់។ + +1. ពីទ្រីមីនែល ឬបន្ទាត់ពាក្យបញ្ជារ បញ្ចូលកូដខាងក្រោមនៅក្នុងបរិស្ថានវីរុស ដើម្បីបង្កើតឯកសារ Python មានឈ្មោះ `app.py`: + + * នៅលើ Windows ប្រតិបត្តិការដូចខាងក្រោម៖ + + ```cmd + type nul > app.py + ``` + + * នៅលើ macOS ឬ Linux ប្រតិបត្តិការដូចខាងក្រោម៖ + + ```cmd + touch app.py + ``` + +1. បើកថតបច្ចុប្បន្ននៅក្នុង VS Code៖ + + ```sh + code . + ``` + + > 💁 ប្រសិនបើទ្រីមីនែលរបស់អ្នកបញ្ជាក់ថា `command not found` នៅលើ macOS ន័យថា VS Code មិនត្រូវបានបញ្ចូលទៅ PATH របស់អ្នកទេ។ អ្នកអាចបញ្ចូល VS Code ទៅ PATH ដោយអនុវត្តតាមការណែនាំនៅក្នុង [ផ្នែក Launching from the command line របស់ឯកសារ VS Code](https://code.visualstudio.com/docs/setup/mac?WT.mc_id=academic-17441-jabenn#_launching-from-the-command-line) ហើយបន្ទាប់មករាងពាក្យបញ្ជានេះម្ដងទៀត។ VS Code ត្រូវបានបញ្ចូលទៅ PATH ដោយលំនាំដើមនៅលើ Windows និង Linux ។ + +1. ពេល VS Code បើកជំនួយវានឹងបញ្ចូលបរិស្ថាន Python វីរុស។ បរិស្ថានវីរុសដែលបានជ្រើសរើសនឹងបង្ហាញនៅខាងក្រោមក្នុង status bar៖ + + ![VS Code showing the selected virtual environment](../../../../../translated_images/km/vscode-virtual-env.8ba42e04c3d533cf.webp) + +1. ប្រសិនបើ VS Code Terminal បានរត់នៅពេល VS Code ចាប់ផ្តើម វានឹងមិនមានបរិស្ថានវីរុសបានបើកនៅក្នុងវា ទេ វិធីងាយស្រួលបំផុតគឺគប់ terminal ដោយប្រើប៊ូតុង **Kill the active terminal instance**៖ + + ![VS Code Kill the active terminal instance button](../../../../../translated_images/km/vscode-kill-terminal.1cc4de7c6f25ee08.webp) + + អ្នកអាចមើលឃើញថាតើ terminal មានបរិស្ថានវីរុសបានបើក ឬនៅដោយឈ្មោះបរិស្ថានវីរុសនឹងត្រូវដាក់ជាគម្របនៅលើបន្ទាត់បញ្ជា។ ឧទាហរណ៍ វាអាចជា: + + ```sh + (.venv) ➜ nightlight + ``` + + ប្រសិនបើអ្នកមិនមាន `.venv` ជាគម្របនៅលើបន្ទាត់បញ្ជា ន័យថាបរិស្ថានវីរុសមិនមានសកម្មក្នុង terminal នោះទេ។ + +1. បើក Terminal ថ្មីនៅក្នុង VS Code ដោយជ្រើសរើស *Terminal -> New Terminal* ឬចុច `` CTRL+` `` ។ Terminal ថ្មីនឹងផ្ទុកបរិស្ថានវីរុស ហើយប្រសាយបញ្ជាបញ្ជូលនឹងបង្ហាញនៅក្នុង terminal។ បន្ទាត់បញ្ជានឹងមានឈ្មោះបរិស្ថានវីរុស (`.venv`)៖ + + ```output + ➜ nightlight source .venv/bin/activate + (.venv) ➜ nightlight + ``` + +1. បើកឯកសារ `app.py` ពីស្វែងរក VS Code ហើយបន្ថែមកូដខាងក្រោម៖ + + ```python + print('Hello World!') + ``` + + មុខងារ `print` នឹងបោះពុម្ភអ្វីដែលបានផ្តល់ឱ្យវាទៅលើថាសកំណត់។ + +1. ពី terminal VS Code ប្រតិបត្តិការដូចខាងក្រោមដើម្បីរត់កម្មវិធី Python របស់អ្នក៖ + + ```sh + python app.py + ``` + + លទ្ធផលនឹងមានដូចខាងក្រោម៖ + + ```output + (.venv) ➜ nightlight python app.py + Hello World! + ``` + +😀 កម្មវិធី 'Hello World' របស់អ្នកបានជោគជ័យ! + +### ភ្ជាប់ទៅ 'ឧបករណ៍រឹង' + +ជាជំហ៊ាន Hello World ទីពីរ អ្នកនឹងរត់កម្មវិធី CounterFit ហើយភ្ជាប់កូដរបស់អ្នកទៅកាន់វា។ នេះជាការភ្ជាប់ដូចការតភ្ជាប់ឧបករណ៍ IoT ជាតិទៅកាន់ dev kit ។ + +#### បេសកកម្ម - ភ្ជាប់ទៅ 'ឧបករណ៍រឹង' + +1. ពី terminal VS Code បើកកម្មវិធី CounterFit តាមពាក្យបញ្ជាខាងក្រោម៖ + + ```sh + counterfit + ``` + + កម្មវិធីនឹងចាប់ផ្តើមរត់ ហើយបើកក្នុងកម្មវិបថតអ៊ីនធឺណិតរបស់អ្នក៖ + + ![The Counter Fit app running in a browser](../../../../../translated_images/km/counterfit-first-run.433326358b669b31.webp) + + វានឹងត្រូវសម្គាល់ថា *Disconnected* ជាមួយ LED នៅមុខខាងស្តាំលើបានបិទ។ + +1. បន្ថែមកូដខាងក្រោមទៅកំពូលឯកសារ `app.py`៖ + + ```python + from counterfit_connection import CounterFitConnection + CounterFitConnection.init('127.0.0.1', 5000) + ``` + + កូដនេះនាំចូលថ្នាក់ `CounterFitConnection` ពីម៉ូឌុល `counterfit_connection` ដែលបានមកពីកញ្ចប់ pip `counterfit-connection` ដែលអ្នកបានដំឡើងមុននេះ។ វាបន្ទាប់មកបង្កើតការភ្ជាប់ទៅកម្មវិធី CounterFit ដែលកំពុងរត់នៅលើអាសយដ្ឋាន IP `127.0.0.1` ដែលជាអាសយដ្ឋានមួយដែលអ្នកអាចប្រើបាន គ្រប់ពេលដើម្បីចូលទៅកាន់កុំព្យូទ័រផ្ទាល់ខ្លួនដោយកណ្តាល (ភាគច្រើនហៅថា *localhost*), នៅព្រលៀង 5000 ។ + + > 💁 ប្រសិនបើអ្នកមានកម្មវិធីផ្សេងកំពុងរត់នៅលើព្រលៀង 5000 អ្នកអាចផ្លាស់ប្ដូរតាមកូដរបស់អ្នក ហើយរត់ CounterFit ដោយប្រើ `CounterFit --port ` ដើម្បីជំនួស `` ជាមួយព្រលៀងដែលអ្នកចង់ប្រើ។ + +1. អ្នកត្រូវបើក terminal ថ្មីមួយក្នុង VS Code ដោយជ្រើសរើសប៊ូតុង **Create a new integrated terminal**។ នេះដោយសារតែកម្មវិធី CounterFit កំពុងរត់ក្នុង terminal បច្ចុប្បន្ននេះ។ + + ![VS Code Create a new integrated terminal button](../../../../../translated_images/km/vscode-new-terminal.77db8fc0f9cd3182.webp) + +1. ក្នុង terminal ថ្មីនេះ ប្រតិបត្តិការឯកសារ `app.py` ដូចមុន។ ស្ថានភាព CounterFit នឹងផ្លាស់ប្ដូរទៅជា **Connected** ហើយ LED នឹងភ្លឺ។ + + ![Counter Fit showing as connected](../../../../../translated_images/km/counterfit-connected.ed30b46d8f79b092.webp) + +> 💁 អ្នកអាចរកឃើញកូដនេះបានក្នុងថត [code/virtual-device](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/virtual-device) ។ + +😀 ការតភ្ជាប់របស់អ្នកទៅឧបករណ៍រឹងបានជោគជ័យ! + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែក្នុងការប្រើប្រាស់សេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំប្រឹងប្រែងដើម្បីភាពត្រឹមត្រូវ សូមយល់ថាការបកប្រែដោយស្វ័យ​ប្រវត្តិអាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមនៅក្នុងភាសាតិចត្រូវតែកត់សម្គាល់ថាជាផ្លូវការតែមួយ។ សម្រាប់ព័ត៌មានដ៏សំខាន់ សូមណែនាំឱ្យប្រើការបកប្រែម由អ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/1-getting-started/lessons/1-introduction-to-iot/wio-terminal.md b/translations/km/1-getting-started/lessons/1-introduction-to-iot/wio-terminal.md new file mode 100644 index 000000000..cafeb5f1f --- /dev/null +++ b/translations/km/1-getting-started/lessons/1-introduction-to-iot/wio-terminal.md @@ -0,0 +1,220 @@ +# Wio Terminal + +The [Wio Terminal from Seeed Studios](https://www.seeedstudio.com/Wio-Terminal-p-4509.html) គឺជាម៉ាយខ្រីកន្ត្រោលដែលសមស្របជាមួយ Arduino មាន WiFi និងឧបករណ៍សងៅងនិងការចលករខ្លះបញ្ចូលមកមុន ជាមួយនឹងផតបណ្ដាញសម្រាប់បន្ថែមឧបករណ៍សងៅងនិងការចលករ ដែលប្រើប្រព័ន្ធឧបករណ៍ហារ៉វិដដែលឈ្មោះ [Grove](https://www.seeedstudio.com/category/Grove-c-1003.html)។ + +![A Seeed studios Wio Terminal](../../../../../translated_images/km/wio-terminal.b8299ee16587db9a.webp) + +## Setup + +ដើម្បីប្រើប្រាស់ Wio Terminal របស់អ្នក អ្នកត្រូវតែដំឡើងកម្មវិធីឥតគិតថ្លៃខ្លះៗលើកុំព្យូទ័រ។ អ្នកក៏ត្រូវធ្វើបច្ចុប្បន្នភាពហ្វើមវែរមុនពេលភ្ជាប់វាចូល WiFi។ + +### Task - setup + +ដំឡើងកម្មវិធីដែលត្រូវការ និងធ្វើបច្ចុប្បន្នភាពហ្វើមវែរ។ + +1. ដំឡើង Visual Studio Code (VS Code)។ នេះជាកម្មវិធីកែសម្រួលដែលអ្នកនឹងប្រើសរសេរកូដឧបករណ៍របស់អ្នកជាភាសា C/C++។ សូមយោងទៅកាន់ [ឯកសារ VS Code](https://code.visualstudio.com?WT.mc_id=academic-17441-jabenn) សម្រាប់ការណែនាំអំពីការដំឡើង VS Code។ + + > 💁 IDE ពេញនិយមមួយផ្សេងទៀតសម្រាប់ការអភិវឌ្ឍ Arduino គឺ [Arduino IDE](https://www.arduino.cc/en/software)។ ប្រសិនបើអ្នកធ្លាប់ស្គាល់ឧបករណ៍នេះ អ្នកអាចប្រើវាជាជំនួស VS Code និង PlatformIO ប៉ុន្តែមេរៀននេះនឹងផ្ដល់ជាណែនាំដោយផ្អែកលើការប្រើ VS Code។ + +1. ដំឡើងផ្នែកបន្ថែម VS Code PlatformIO។ នេះជាផ្នែកបន្ថែមសម្រាប់ VS Code ដែលគាំទ្រការសរសេរកូដម៉ាយក្រោនត្រឡូលជាភាសា C/C++។ សូមយោងទៅកាន់ [ឯកសារផ្នែកបន្ថែម PlatformIO](https://marketplace.visualstudio.com/items?WT.mc_id=academic-17441-jabenn&itemName=platformio.platformio-ide) សម្រាប់ការណែនាំអំពីការដំឡើងផ្នែកនេះនៅក្នុង VS Code។ ផ្នែកបន្ថែមនេះត្រូវការផ្នែកបន្ថែម Microsoft C/C++ ដើម្បីធ្វើការងារជាមួយកូដ C និង C++ ហើយផ្នែកបន្ថែម C/C++ នឹងត្រូវបានដំឡើងដោយស្វ័យប្រវត្តិពេលអ្នកដំឡើង PlatformIO។ + +1. ភ្ជាប់ Wio Terminal របស់អ្នកទៅកុំព្យូទ័រ។ Wio Terminal មានច្រក USB-C នៅខាងក្រោម ហើយត្រូវបានភ្ជាប់ទៅច្រក USB លើកុំព្យូទ័រ។ Wio Terminal មានខ្សែ USB-C ទៅ USB-A ជាមួយ ប៉ុន្តែនៅករណីកុំព្យូទ័ររបស់អ្នកមានតែច្រក USB-C អ្នកនឹងត្រូវខ្សែ USB-C ឬអាចប្រើឧបករណ៍បម្លែង USB-A ទៅ USB-C។ + +1. អនុវត្តតាមការណែនាំក្នុង [Wio Terminal Wiki WiFi Overview documentation](https://wiki.seeedstudio.com/Wio-Terminal-Network-Overview/) ដើម្បីរៀបចំ Wio Terminal របស់អ្នក និងធ្វើបច្ចុប្បន្នភាពហ្វើមវែរ។ + +## Hello world + +វាជាប្រពៃណីនៅពេលចាប់ផ្តើមភាសាកម្មវិធីថ្មី ឬបច្ចេកវិទ្យាថ្មី ដើម្បីបង្កើតកម្មវិធី 'Hello World' ដែលជាកម្មវិធីតូចមួយបង្ហាញអត្ថបទ `"Hello World"` ដើម្បីបង្ហាញថា​ឧបករណ៍ទាំងអស់ត្រូវបានតម្លើងបានត្រឹមត្រូវ។ + +កម្មវិធី Hello World សម្រាប់ Wio Terminal នឹងធានាថា អ្នកបានដំឡើង Visual Studio Code ជាមួយ PlatformIO ដោយត្រឹមត្រូវ និងរៀបចំសម្រាប់ការអភិវឌ្ឍម៉ាយក្រោនត្រឡួល។ + +### Create a PlatformIO project + +ជំហានដំបូងគឺការបង្កើតគម្រោងថ្មីប្រើ PlatformIO ដែលបានកំណត់សម្រាប់ Wio Terminal។ + +#### Task - create a PlatformIO project + +បង្កើតគម្រោង PlatformIO។ + +1. ភ្ជាប់ Wio Terminal ទៅកុំព្យូទ័ររបស់អ្នក + +1. បើក VS Code + +1. រូបសញ្ញា PlatformIO គឺនៅលើបាតម៉ឺនុយផ្នែកខាងស្តាំ៖ + + ![The Platform IO menu option](../../../../../translated_images/km/vscode-platformio-menu.297be26b9733e5c4.webp) + + ជ្រើសរើសមឺនុយនេះ បន្ទាប់ជ្រើសរើស *PIO Home -> Open* + + ![The Platform IO open option](../../../../../translated_images/km/vscode-platformio-home-open.3f9a41bfd3f4da1c.webp) + +1. ពីផ្ទាំងស្វាគមន៍ ជ្រើសរើសប៊ូតុង **+ New Project** + + ![The new project button](../../../../../translated_images/km/vscode-platformio-welcome-new-button.ba6fc8a4c7b78cc8.webp) + +1. កំណត់រចនាសម្ព័ន្ធគម្រោងនៅក្នុង *Project Wizard*៖ + + 1. ឈ្មោះគម្រោង `nightlight` + + 1. ពីបញ្ជីជ្រើសសន្លឹក *Board* វាយ `WIO` ដើម្បីច្រោះប័រទុយ អោយជ្រើស *Seeeduino Wio Terminal* + + 1. សម្រាប់ *Framework* ទុកដដែលជា *Arduino* + + 1. ឬជ្រើស *Use default location* ឬមិនជ្រើស ហើយជ្រើសទីតាំងសម្រាប់គម្រោងរបស់អ្នក + + 1. ចុចប៊ូតុង **Finish** + + ![The completed project wizard](../../../../../translated_images/km/vscode-platformio-nightlight-project-wizard.5c64db4da6037420.webp) + + PlatformIO នឹងទាញយកចំនុចផ្សេងៗដែលត្រូវការ ដើម្បីបង្រ្កាបកូដសម្រាប់ Wio Terminal ហើយបង្កើតគម្រោងរបស់អ្នក។ វា​អាចនឹងចំណាយពេលប៉ុន្មាននាទី។ + +### Investigate the PlatformIO project + +ជំហានរុករកក្នុង VS Code នឹងបង្ហាញឯកសារ និងថត ដែលបានបង្កើតដោយកម្មវិធី PlatformIO wizard។ + +#### Folders + +* `.pio` - ថតនេះផ្ទុកទិន្នន័យបណ្តោះអាសន្នដែលត្រូវការដោយ PlatformIO ដូចជា​បណ្ណាល័យ ឬកូដដែលបានបង្រ្កាប។ វានឹងត្រូវបង្កើតឡើងវិញដោយស្វ័យប្រវត្តិ ប្រសិនបើលុបចោល ហើយអ្នកមិនត្រូវបន្ថែមវាចូលទៅការគ្រប់គ្រងកូដប្រភព ប្រសិនបើអ្នកចែករំលែកគម្រោងនៅលើគេហទំព័រដូចជា GitHub ។ + +* `.vscode` - ថតនេះផ្ទុកការកំណត់រចនាសម្ព័ន្ធដែលបានប្រើដោយ PlatformIO និង VS Code។ វានឹងត្រូវបង្កើតឡើងវិញដោយស្វ័យប្រវត្តិ ប្រសិនបើលុបចោល ហើយអ្នកមិនត្រូវបន្ថែមវាចូលទៅការគ្រប់គ្រងកូដប្រភព ប្រសិនបើអ្នកចែករំលែកគម្រោងនៅលើគេហទំព័រដូចជា GitHub ។ + +* `include` - ថតនេះសម្រាប់ឯកសារមុខបែបក្រៅដែលត្រូវបានប្រើពេលបន្ថែមបណ្ណាល័យបន្ថែមចូលដើម្បីកូដ។ អ្នកមិនអាចប្រើថតនេះក្នុងមេរៀនទេសាទនេះទេ។ + +* `lib` - ថតនេះសម្រាប់បណ្ណាល័យក្រៅដែលអ្នកចង់ហៅពីកូដរបស់អ្នក។ អ្នកមិនអាចប្រើថតនេះក្នុងមេរៀនទេសាទនេះទេ។ + +* `src` - ថតនេះផ្ទុកកូដរួមសម្រាប់កម្មវិធីរបស់អ្នក។ ក្នុងដំបូង វានឹងមានឯកសារតែមួយគត់គឺ `main.cpp`។ + +* `test` - ថតនេះសម្រាប់ដាក់ការសាកល្បងម៉ូឌុលឯកតាសម្រាប់កូដរបស់អ្នក។ + +#### Files + +* `main.cpp` - ឯកសារនេះនៅក្នុងថត `src` មានចំណុចចូលសម្រាប់កម្មវិធីរបស់អ្នក។ បើកឯកសារនេះ វានឹងមានកូដដូចខាងក្រោម៖ + + ```cpp + #include + + void setup() { + // ដាក់កូដតំឡើង​របស់អ្នកនៅទីនេះ ដើម្បីរត់តែម្តង៖ + } + + void loop() { + // ដាក់កូដសំខាន់​របស់អ្នកនៅទីនេះ ដើម្បីរត់ជាបន្តបន្ទាប់៖ + } + ``` + + នៅពេលឧបករណ៍ចាប់ផ្តើម ម៉ាយក្រោនត្រឡួល Arduino នឹងដំណើរការលំនាំ `setup` ម្តងហើយបន្តដំណើរការលំនាំ `loop` ជារឿយៗរហូតដល់ឧបករណ៍បានផ្អាក។ + +* `.gitignore` - ឯកសារនេះបញ្ជីឯកសារ និងថតដែលត្រូវចៀសវាងពេលបញ្ចូលកូដទៅក្នុងប្រព័ន្ធគ្រប់គ្រងកូដប្រភព git ដូចជាការបញ្ចូលទៅក្នុងrepository លើ GitHub។ + +* `platformio.ini` - ឯកសារនេះផ្ទុកកំណត់រចនាសម្ព័ន្ធសម្រាប់ឧបករណ៍ និងកម្មវិធីរបស់អ្នក។ បើកឯកសារនេះ វានឹងមានកូដដូចខាងក្រោម៖ + + ```ini + [env:seeed_wio_terminal] + platform = atmelsam + board = seeed_wio_terminal + framework = arduino + ``` + + ផ្នែក `[env:seeed_wio_terminal]` មានកំណត់រចនាសម្ព័ន្ធសម្រាប់ Wio Terminal។ អ្នកអាចមានផ្នែក `env` ច្រើនដែលអាចបង្កើតកូដសម្រាប់ក្តារម៉ាយក្រោនច្រើនប្រភេទបាន។ + + តម្លៃផ្សេងទៀតគឺតម្រូវការផ្អែកលើកំណត់គម្រោង៖ + + * `platform = atmelsam` កំណត់ហារ៉វែរដែល Wio Terminal ប្រើ (ម៉ាយក្រោនលើគ្រឹះ ATSAMD51) + * `board = seeed_wio_terminal` កំណត់ក្តារម៉ាយក្រោនប្រភេទ Wio Terminal + * `framework = arduino` កំណត់ថាគម្រោងនេះប្រើប្រព័ន្ធ Arduino ។ + +### Write the Hello World app + +ឥឡូវនេះអ្នករួចរាល់ក្នុងការសរសេរកម្មវិធី Hello World។ + +#### Task - write the Hello World app + +សរសេរកម្មវិធី Hello World។ + +1. បើកឯកសារ `main.cpp` នៅក្នុង VS Code + +1. ប្តូរកូដឲ្យត្រូវនឹងខាងក្រោម៖ + + ```cpp + #include + + void setup() + { + Serial.begin(9600); + + while (!Serial) + ; // រង់ចាំស៊េរីយ៉ាល់ឲ្យរួចរាល់ + + delay(1000); + } + + void loop() + { + Serial.println("Hello World"); + delay(5000); + } + ``` + + លំនាំ `setup` ចាប់ផ្តើមការតភ្ជាប់ទៅច្រកស៊េរី - ក្នុងករណីនេះ គឺច្រក USB ដែលប្រើភ្ជាប់ Wio Terminal ទៅកុំព្យូទ័រ។ ប៉ារ៉ាម៉ែត្រ `9600` គឺជា [អត្រាប៉ុស្តិ៍សំរាប់ទិន្នន័យ](https://wikipedia.org/wiki/Symbol_rate) (ហៅថា Symbol rate ផងដែរ) ឬល្បឿនបញ្ជូនទិន្នន័យតាមច្រកស៊េរីជាចំណុចក្នុងមួយវិនាទី។ កំណត់នេះមានន័យថាផ្ញើ 9,600 ប៊ីត (0 និង 1) នៃទិន្នន័យរៀងរាល់វិនាទី។ បន្ទាប់មករង់ចាំរហូតដល់ច្រកស៊េរីរួចរាល់។ + + លំនាំ `loop` ផ្ញើជួរដេក `Hello World!` ទៅដល់ច្រកស៊េរី ដូច្នេះតួអាក្សរ `Hello World!` ជាមួយតួអក្សរសម្រាប់បន្ទាប់ជួររួមផង។ បន្ទាប់មកវាដេករយៈពេល 5,000 មីលីវិនាទី ឬ 5 វិនាទី។ បន្ទាប់​ពី​លំនាំ `loop` បញ្ចប់ វានឹងរត់ម្តងទៀតជារឿយៗ ជានិរន្តរភាព នៅពេលម៉ាយក្រោនត្រឡួលមានថាមពល។ + +1. ដាក់ Wio Terminal របស់អ្នកចូលទៅក្នុងរបៀបផ្ទុកកូដ (upload mode)។ អ្នកត្រូវធ្វើបែបនេះរៀងរាល់ពេល អ្នកផ្ទុកកូដថ្មីទៅឧបករណ៍៖ + + 1. បត់បញ្ឈរម្តងពីរដងលឿនលើប៊ូតុងបិទ/បើក - វានឹងត្រឡប់មកទីតាំងបើកគ្រប់ពេល។ + + 1. ពិនិត្យមើល LED ពណ៌ខៀវនៅចំហៀងស្តាំនៃច្រក USB។ វាគួរតែដំណើរការជារលក។ + + [![វីដេអូបង្ហាញពីរបៀបដាក់ Wio Terminal ចូលរបៀបផ្ទុកកូដ](https://img.youtube.com/vi/LeKU_7zLRrQ/0.jpg)](https://youtu.be/LeKU_7zLRrQ) + + ចុចលើរូបភាពខាងលើដើម្បីមើលវីដេអូមាត្រូវធ្វើរបៀបនេះ។ + +1. សង់ និងផ្ទុកកូដទៅ Wio Terminal + + 1. បើកផ្ទាំងបញ្ជារបស់ VS Code + + 1. វាយ `PlatformIO Upload` ដើម្បីស្វែងរកជម្រើសផ្ទុកកូដ ហើយជ្រើស *PlatformIO: Upload* + + ![The PlatformIO upload option in the command palette](../../../../../translated_images/km/vscode-platformio-upload-command-palette.9e0f49cf80d1f1c3.webp) + + PlatformIO នឹងសង់កូដស្វ័យប្រវត្តិប្រសិនបើចាំបាច់ មុនការផ្ទុកកូដ។ + + 1. កូដនឹងត្រូវបានកូដផ្សំនិងផ្ទុកទៅ Wio Terminal + + > 💁 ប្រសិនបើអ្នកប្រើប្រាស់ macOS ប្រសាសន៍បិទដ្រាយមិនបានត្រឹមត្រូវនឹងបង្ហាញ។ នេះគឺដោយសារតែ Wio Terminal ត្រូវបានភ្ជាប់ជាឌ្រាយក្នុងដំណើរការផ្ទុកកូដ ហើយវាត្រូវបានដកចេញពេលកូដដែលបានបង្រ្កាបបានសរសេរចូលឧបករណ៍។ អ្នកអាចមិនយកចិត្តទុកដាក់អំពីប្រសាសន៍នេះ។ + + ⚠️ ប្រសិនបើអ្នកទទួលបានកំហុសអំពីច្រកផ្ទុកកូដមិនអាចប្រើបាន សូមប្រាកដថា នឹងភ្ជាប់ Wio Terminal ទៅកុំព្យូទ័ររបស់អ្នក ហើយបើកវាតាមប៊ូតុងនៅខាងឆ្វេងនៃអេក្រង់ និងដាក់វាចូលរបៀបផ្ទុកកូដ។ ពន្លឺបៃតងនៅខាងក្រោមគួរតែបើក និងពន្លឺខៀវគួរតែរលកលើ។ ប្រសិនបើនៅតែមានកំហុស សូមបត់ប៊ូតុងបិទ/បើកពីរដងលឿនម្តងទៀត ដើម្បីបង្ខំ Wio Terminal ចូលរបៀបផ្ទុកកូដ ហើយព្យាយាមផ្ទុកកូដម្តងទៀត។ + +PlatformIO មានកម្មវិធី Serial Monitor ដែលអាចតាមដានទិន្នន័យផ្ញើតាមខ្សែ USB ពី Wio Terminal។ នេះអនុញ្ញាតឲ្យអ្នកតាមដានទិន្នន័យដែលបញ្ជូនដោយការណែនាំ `Serial.println("Hello World");`។ + +1. បើកផ្ទាំងបញ្ជារបស់ VS Code + +1. វាយ `PlatformIO Serial` ដើម្បីស្វែងរកជម្រើស Serial Monitor ហើយជ្រើស *PlatformIO: Serial Monitor* + + ![The PlatformIO Serial Monitor option in the command palette](../../../../../translated_images/km/vscode-platformio-serial-monitor-command-palette.b348ec841b8a1c14.webp) + + ផ្ទាំងតែមួយថ្មីនឹងបើកឡើង ហើយទិន្នន័យដែលផ្ញើតាមច្រកស៊េរីនឹងចាក់បញ្ចាំងក្នុងផ្ទាំងនេះ៖ + + ```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.usbmodem101 9600,8,N,1 --- + --- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H --- + Hello World + Hello World + ``` + + `Hello World` នឹងបញ្ចូលទៅក្នុង serial monitor រៀងរាល់ 5 វិនាទី។ + +> 💁 អ្នកអាចរកកូដនេះបាននៅក្នុងថត [code/wio-terminal](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/wio-terminal)។ + +😀 កម្មវិធី 'Hello World' របស់អ្នកបានជោគជ័យហើយ! + +--- + + +**ការព្រមាន**៖ +ឯកសារនេះត្រូវបានបំប្រែប្រើសេវាកម្មបំប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំស្វែងរកភាពត្រឹមត្រូវ សូមជ្រាបថាការបំប្រែដោយស្វ័យប្រវត្តិក្នុងឯកសារនេះអាចមានកំហុស ឬអច្បាប់មិនច្បាស់។ ឯកសារដើមដែលនៅក្នុងភាសាមូលដ្ឋាន គួរត្រូវបានគេចាត់ទុកជាធនាគារច្បាស់លាស់។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឲ្យបំប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុស បង្កឡើងពីការប្រើប្រាស់ការបំប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/1-getting-started/lessons/2-deeper-dive/README.md b/translations/km/1-getting-started/lessons/2-deeper-dive/README.md new file mode 100644 index 000000000..4fe9d3c0e --- /dev/null +++ b/translations/km/1-getting-started/lessons/2-deeper-dive/README.md @@ -0,0 +1,271 @@ +# ការធ្វើជ្រៅជាងនេះលើ IoT + +![A sketchnote overview of this lesson](../../../../../translated_images/km/lesson-2.324b0580d620c25e.webp) + +> Sketchnote by [Nitya Narasimhan](https://github.com/nitya). Click the image for a larger version. + +មេរៀននេះត្រូវបានបង្រៀនជាផ្នែកមួយនៃ [ស៊េរី Hello IoT](https://youtube.com/playlist?list=PLmsFUfdnGr3xRts0TIwyaHyQuHaNQcb6-) ពី [Microsoft Reactor](https://developer.microsoft.com/reactor/?WT.mc_id=academic-17441-jabenn)។ មេរៀននេះត្រូវបានបង្រៀនជា​វីដេអូ ២ខ្សែ​ — មេរៀន ១ម៉ោង និងម៉ោងការិយាល័យ ១ម៉ោង សម្រាប់ធ្វើជ្រៅក្នុងផ្នែកនានារបស់មេរៀន និងឆ្លើយសំណួរ។ + +[![Lesson 2: A deeper dive into IoT](https://img.youtube.com/vi/t0SySWw3z9M/0.jpg)](https://youtu.be/t0SySWw3z9M) + +[![Lesson 2: A deeper dive into IoT - Office hours](https://img.youtube.com/vi/tTZYf9EST1E/0.jpg)](https://youtu.be/tTZYf9EST1E) + +> 🎥 ចុចរូបភាពខាងលើដើម្បីមើលវីដេអូ + +## វិញ្ញាសាក្នុងមុនម៉ោងបង្រៀន + +[វិញ្ញាសាក្នុងមុនម៉ោងបង្រៀន](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/3) + +## ការណែនាំ + +មេរៀននេះធ្វើជ្រៅជាងមុខទៅលើគំនិតខ្លះៗដែលបានគ្របដណ្តប់ក្នុងមេរៀនមុន។ + +នៅក្នុងមេរៀននេះ យើងនឹងគ្របដណ្តប់៖ + +* [ផ្នែកផ្សំនៃកម្មវិធី IoT](#ផ្នែកផ្សំនៃកម្មវិធី-iot) +* [ការធ្វើជ្រៅជាងទៅលើ microcontrollers](#ការធ្វើជ្រៅជាងទៅលើ-microcontrollers) +* [ការធ្វើជ្រៅជាងទៅលើ single-board computers](#ចំណត្រាប់វែងទៅក្នុងកុំព្យូទ័រថតតែមួយក្តារ) + +## ផ្នែកផ្សំនៃកម្មវិធី IoT + +ផ្នែក២ របស់កម្មវិធី IoT គឺ *អ៊ីនធឺណិត* និង *របស់*។ យើងមកមើលផ្នែកទាំងពីរនេះយ៉ាងលម្អិតជាងនេះ។ + +### របស់ + +![A Raspberry Pi 4](../../../../../translated_images/km/raspberry-pi-4.fd4590d308c3d456.webp) + +**របស់** គឺជាឧបករណ៍ដែលអាចអន្តរកម្មជាមួយពិភពរាងកាយ។ ឧបករណ៍ទាំងនេះជាទូទៅជាកុំព្យូទ័រតូចៗ តម្លៃចុះថោក ម្ហូបឥន្ធនៈតិច និងដំណើរការល្បឿនទាប — ឧទាហរណ៍ microcontrollers ងាយស្រួលដែលមាន RAM គិតជាគីឡូបៃ (ផ្ទុយពីជាគីឡូបៃនៅ PC) ដោយដំណើរការត្រឹមរយៈម៉េហ្គាហ៊ែរីត (ផ្ទុយពីជាគីឡូហ៊ែរីតនៅ PC) ប៉ុន្តែប្រើថាមពលតិចពេក ដែលអាចដំណើរការបានជាសប្តាហ៏ ខែ ឬឆ្នាំ អាស្រ័យលើថ្ម។ + +ឧបករណ៍ទាំងនេះអន្តរកម្មជាមួយពិភពរាងកាយ ដោយប្រើសេនសឺរចំលងទិន្នន័យពីបរិយាកាស ឬគ្រប់គ្រងចេញលទ្ធផល ឬ actuator ដើម្បីបង្កើតការផ្លាស់ប្តូរជារូបរាង។ ឧទាហរណ៍ធម្មតាមួយគឺ smart thermostat — ឧបករណ៍ដែលមានសេនសឺរកំដៅ, វិធីកំណត់សីតុណ្ហភាពដែលចង់បានដូចជា dial ឬ touchscreen, និងការតភ្ជាប់ទៅប្រព័ន្ធកំដៅ ឬត្រជាក់ដែលអាចបើកពេលវាស់សីតុណ្ហភាពខុសពីជួរដែលចង់បាន។ សេនសឺរកំដៅវាស់បានថាមេឌៀមត្រជាក់ពេក ហើយ actuator បើកកំដៅ។ + +![A diagram showing temperature and a dial as inputs to an IoT device, and control of a heater as an output](../../../../../translated_images/km/basic-thermostat.a923217fd1f37e5a.webp) + +មានរបស់ជាច្រើនគ្រឿងផ្សេងៗដែលអាចធ្វើជាឧបករណ៍ IoT បាន ចាប់ពី hardware ផ្ដោតសំខាន់លើ sensing មួយមុខ ដល់ឧបករណ៍ប្រើប្រាស់ទូទៅ រួមទាំង smartphone របស់អ្នកផងដែរ! Smartphone អាចប្រើសេនសឺរដើម្បីគិតថា អ្វីកើតឡើងនៅជុំវិញ ហើយ actuator ដើម្បីអន្តរកម្មជាមួយពិភពពីក្រៅ — ឧទាហរណ៍ ប្រើសេនសឺរជាផ្នែក GPS ដើម្បីស្គាល់ទីតាំងរបស់អ្នក និង Speaker ដើម្បីផ្តល់ការណែនាំផ្លូវទៅកាន់គោលដៅ។ + +✅ សូមគិតអំពីប្រព័ន្ធផ្សេងៗទៀតដែលអ្នកមាននៅជុំវិញ ដែលអានទិន្នន័យពីសេចក្ដីថ្លែងសេនសឺរនិងប្រើវាទៅធ្វើការសម្រេចចិត្ត។ ឧទាហរណ៍មួយគឺ thermostat នៅលើចង្ក្រាន។ តើអ្នកអាចរកឃើញបន្ថែមទៀតទេ? + +### អ៊ីនធឺណិត + +ផ្នែក **អ៊ីនធឺណិត** នៃកម្មវិធី IoT រួមមានកម្មវិធីដែលឧបករណ៍ IoT អាចភ្ជាប់ទៅ ដើម្បីផ្ញើនិងទទួលទិន្នន័យ ជាមួយកម្មវិធីផ្សេងៗដែលអាចដំណើរការទិន្នន័យពីឧបករណ៍ IoT និងជួយធ្វើការសម្រេចចិត្តលើសំណើសុំដល់ actuator របស់ឧបករណ៍ IoT។ + +លំនៅធម្មតាមួយ គឺប្រើសេវាកម្ម cloud មួយ ដែលឧបករណ៍ IoT តភ្ជាប់ទៅ ហើយសេវាកម្ម cloud នោះគ្រប់គ្រងធាតុដូចជា សុវត្ថិភាព និងទទួលសារ ព្រមទាំងផ្ញើសារទៅឧបករណ៍វិញ។ សេវាកម្ម cloud នឹងភ្ជាប់ទៅកម្មវិធីផ្សេងទៀត ដើម្បីដំណើរការ ឬរក្សាទុកទិន្នន័យសេនសឺរ ឬប្រើទិន្នន័យសេនសឺរជាមួយទិន្នន័យពីប្រព័ន្ធផ្សេង ដើម្បីធ្វើការសម្រេចចិត្ត។ + +ឧបករណ៍មិនតែងតែភ្ជាប់ទៅអ៊ីនធឺណិតដោយផ្ទាល់តាម WiFi ឬខ្សែ។ ឧបករណ៍មួយចំនួនប្រើអ៊ិនធឺណិត mesh ដើម្បីនិយាយគ្នាតាមបច្ចេកវិទ្យាដូចជា Bluetooth តភ្ជាប់តាមឧបករណ៍ hub ដែលមានការតភ្ជាប់អ៊ីនធឺណិត។ + +ជាឧទាហរណ៍ thermostat ដើម្បី Smarter thermostat នឹងភ្ជាប់តាម WiFi ផ្ទះទៅសេវាកម្ម cloud។ វាសំដៅផ្ញើទិន្នន័យសីតុណ្ហភាពទៅសេវាកម្ម cloud ហើយទិន្នន័យនឹងត្រូវស្នាក់នៅវេបសាយអនុញ្ញាតឲ្យម្ចាស់ផ្ទះពិនិត្យសីតុណ្ហភាពបច្ចុប្បន្ននិងកន្លងមកដោយកម្មវិធីទូរស័ព្ទ។ សេវាផ្សេងមួយក្នុង cloud នឹងស្គាល់ថាសីតុណ្ហភាពដែលម្ចាស់ផ្ទះចង់បាន ហើយផ្ញើសារទៅឧបករណ៍ IoT តាមរយៈសេវាកម្ម cloud ដើម្បីបើក ឬបិទប្រព័ន្ធកំដៅ។ + +![A diagram showing temperature and a dial as inputs to an IoT device, the IoT device with 2 way communication to the cloud, which in turn has 2 way communication to a phone, and control of a heater as an output from the IoT device](../../../../../translated_images/km/mobile-controlled-thermostat.4a994010473d8d6a.webp) + +កំណែឆ្លាតចាងនៅចុងក្រោយអាចប្រើ AI នៅក្នុង cloud ជាមួយទិន្នន័យពីសេនសឺរផ្សេងទៀតភ្ជាប់ទៅឧបករណ៍ IoT ផ្សេងៗ ដូចជា សេនសឺរចំនួនអ្នកនៅក្នុងបន្ទប់ ដូចជា weather និង calendar របស់អ្នក ដើម្បីសម្រេចចិត្តពីរបៀបកំណត់សីតុណ្ហភាពយ៉ាងឆ្លាតវៃ។ ឧទាហរណ៍ វាអាចបិទកំដៅបើវាអានពីប្រតិទិនថាអ្នកកំពុងចាកច្រីទៅចំរៀង ឬបិទកំដៅនៅបន្ទប់មួយៗ សម្រាប់បន្ទប់ដែលអ្នកប្រើប្រាស់ដោយរៀនពីទិន្នន័យ ដើម្បីកាន់តែមានភាពត្រឹមត្រូវកាលពីខ្លះៗ។ + +![A diagram showing multiple temperature sensors and a dial as inputs to an IoT device, the IoT device with 2 way communication to the cloud, which in turn has 2 way communication to a phone, a calendar and a weather service, and control of a heater as an output from the IoT device](../../../../../translated_images/km/smarter-thermostat.a75855f15d2d9e63.webp) + +✅ តើទិន្នន័យផ្សេងទៀតអ្វីខ្លះដែលអាចជួយឲ្យ thermostat ភ្ជាប់អ៊ីនធឺណិតកាន់តែឆ្លាត? + +### IoT នៅតំបន់ Edge + +បើទោះបីជា I ក្នុង IoT មានន័យថា Internet ក៏ដោយ ឧបករណ៍ទាំងនេះមិនចាំបាច់ភ្ជាប់ទៅអ៊ីនធឺណិតឡើយ។ ក្នុងករណីខ្លះៗ ឧបករណ៍អាចភ្ជាប់ទៅឧបករណ៍ 'edge' គឺឧបករណ៍ gateway ដែលដំណើរការនៅបណ្តាញក្នុងតំបន់របស់អ្នក មានន័យថាអ្នកអាចដំណើរការទិន្នន័យដោយមិនចាំបាច់ហៅទៅអ៊ីនធឺណិត។ វាអាចលឿនជាងពេលមានទិន្នន័យច្រើន ឬការតភ្ជាប់អ៊ីនធឺណិតយឺត អនុញ្ញាតឱ្យដំណើរការផ្អាកខណ:ពេលអ៊ីនធឺណិតមិនអាចចូលបាន ដូចជា លើកបញ្ចាក់ទូក ឬតំបន់គ្រោះមហ៉ាអាសន្ន ដើម្បីឆ្លើយតបនឹងវិបត្តិក្នុងមនុស្សសាស្ត្រ បន្ទាប់ពីនោះអាចរក្សាទិន្នន័យឲ្យឯកជន។ ឧបករណ៍ខ្លះៗនឹងមានកូដដំណើរការដែលបានបង្កើតដោយបច្ចេកវិទ្យា cloud ហើយដំណើរការនៅក្នុងតំបន់ ដើម្បីប្រមូលនិងឆ្លើយតបទិន្នន័យដោយមិនប្រើការតភ្ជាប់អ៊ីនធឺណិតសម្រាប់សម្រេចចិត្ត។ + +ឧទាហរណ៍មួយគឺឧបករណ៍ផ្ទះឆ្លាតដូចជា Apple HomePod, Amazon Alexa ឬ Google Home ដែលនឹងស្តាប់សំឡេងអ្នកដោយប្រើម៉ូដែល AI ដែលបានបណ្ដុះបណ្ដាលក្នុង cloud ប៉ុន្តែដំណើរការនៅលើឧបករណ៍ផ្ទាល់ខ្លួន។ ឧបករណ៍ទាំងនេះនឹង "រួមគ្នា" នៅពេលពាក្យឬប្រយោគជាក់លាក់ត្រូវបាននិយាយ ហើយបន្ទាប់មកផ្ញើសំឡេងរបស់អ្នកទៅអ៊ីនធឺណិតសម្រាប់ដំណើរការ។ ឧបករណ៍នឹងបញ្ឈប់ផ្ញើសំឡេងនៅពេលដែលវាវាស់បានថាមានការឈប់សំឡេងយ៉ាងត្រឹមត្រូវ។ អ្វីដែលអ្នកនិយាយមុនពេលឧបករណ៍រួមគ្នានឹងពាក្យផ្ដល់សញ្ញា និងអ្វីដែលអ្នកនិយាយបន្ទាប់ពីឧបករណ៍ឈប់ស្ដាប់​នឹងមិនត្រូវបានផ្ញើទៅអ្នកផ្តល់សេវាឧបករណ៍នោះនិងត្រូវបានរក្សាឯកជន។ + +✅ សូមគិតអំពីស្ថានการณ์ផ្សេងទៀតដែលភាពឯកជនមានសារៈសំខាន់ ដូច្នេះការដំណើរការទិន្នន័យល្អជាងនៅតំបន់ edge ជាងនៅក្នុង cloud។ ជាគន្លងសម្រាប់គិត— គិតអំពីឧបករណ៍ IoT ដែលមានកាមេរ៉ា ឬឧបករណ៍ថតរូបផ្សេងៗ។ + +### សន្តិសុខ IoT + +ជាមួយនឹងការតភ្ជាប់អ៊ីនធឺណិតណាមួយ សន្តិសុខជាកត្តាសំខាន់។ មានកំប្លែងចាស់មួយថា 'S ក្នុង IoT មានន័យថា Security' — ប៉ុន្តែជាក់ស្តែងមិនមាន S ក្នុង IoT ប្រាប់ថាវាមិនមានសន្តិសុខឡើយ។ + +ឧបករណ៍ IoT ភ្ជាប់ទៅសេវាកម្ម cloud ហើយដូច្នេះមានសន្តិសុខតែប៉ុណ្ណោះដូចសេវាកម្ម cloud នោះ — បើសេវាកម្ម cloud អនុញ្ញាតឲ្យឧបករណ៍ណាមួយភ្ជាប់បាន ទិន្នន័យពុលអាចត្រូវបានផ្ញើឬវីរុសអាចឆ្លង។ វាអាចមានផលប៉ះពាល់ពិតប្រាកដ ព្រោះឧបករណ៍ IoT អន្តរកម្មនិងគ្រប់គ្រងឧបករណ៍ផ្សេងទៀត។ ឧទាហរណ៍ [Stuxnet worm](https://wikipedia.org/wiki/Stuxnet) បានប្រែប្រួលវ៉ាល់វ៉ាល់សម្រាប់ centrifuges ដើម្បីបំផ្លាញវា។ អ្នកចោរកម្មក៏បានយកអត្ថប្រយោជន៍ពី [សន្តិសុខអន់ៗក្នុងការចូលដំណើរការតាមរយៈ baby monitors](https://www.npr.org/sections/thetwo-way/2018/06/05/617196788/s-c-mom-says-baby-monitor-was-hacked-experts-say-many-devices-are-vulnerable) និងឧបករណ៍តាមដានផ្ទះផ្សេងទៀត។ + +> 💁 អ្នកឧបករណ៍ IoT និង edge device មួយចំនួនដំណើរការលើបណ្ដាញដែលបិទស្របពីអ៊ីនធឺណិត ដើម្បីរក្សាទិន្នន័យឲ្យឯកជននិងសុវត្ថិភាព។ នេះគឺហៅថា [air-gapping](https://wikipedia.org/wiki/Air_gap_(networking))។ + +## ការធ្វើជ្រៅជាងទៅលើ microcontrollers + +ក្នុងមេរៀនមុន យើងបានណែនាំ microcontrollers។ ឥឡូវនេះមកមើលជ្រៅជាងពីពួកវា។ + +### CPU + +CPU គឺជាឆ្នើមមួយនៃ microcontroller។ វាជាផ្នែកដំណើរការដែលអនុវត្តកូដរបស់អ្នក និងអាចផ្ញើនិងទទួលទិន្នន័យពីឧបករណ៍ភ្ជាប់ផ្សេងៗបាន។ CPU អាចមានមួយច្រើន core — ជាច្រើន CPU ដែលអាចធ្វើការជាមួយគ្នាដើម្បីដំណើរការកូដរបស់អ្នក។ + +CPU អាស្រ័យលើក្លុកកាឡង់ធ្វើការត្រូស៊ីច្រើនលានលាននាក់ទបីលានបួនលានពីរខ្នាតក្នុងមួយវិនាទី។ រាល់ក្លុយ ឬ វគ្គសិក្សា ត្រូវតែសម្របសម្រួលសកម្មភាពដែល CPU អាចបំពេញ។ រាល់ក្លុយ CPU អាចអនុវត្តន៍សេចក្ដីណែនាំពីកម្មវិធី ដូចជាការទទួលទិន្នន័យពីឧបករណ៍ក្រៅផ្សេងទៀត ឬធ្វើការគណនាគណិតវិទ្យា។ វគ្គសិក្សាប្រក្រតីនេះធ្វើឲ្យសកម្មភាពទាំងអស់បញ្ចប់មុនពេលប្រាកដថាសេចក្ដីណែនាំបន្ទាប់ត្រូវបានប្រតិបត្តិតាម។ + +ក្លុកពីលឿន ប្រាប់អំពីចំនួនសេចក្ដីណែនាំដែលអាចដំណើរការបានក្នុងមួយវិនាទី ហើយដូច្នេះគឺ CPU លឿនជាង។ ល្បឿន CPU មានអង្គភាពជា [Hertz (Hz)](https://wikipedia.org/wiki/Hertz) ដែល 1 Hz មានន័យថាវគ្គមួយឬក្លុកត្រូស៊ីមួយក្នុងមួយវិនាទី។ + +> 🎓 ល្បឿន CPU ជាទូទៅមើលជា MHz ឬ GHz។ 1MHz គឺ ១លានហឺត (million Hz), 1GHz គឺ ១ពាន់លានហឺត (billion Hz)។ + +> 💁 CPU អនុវត្តកម្មវិធីតាមរយៈ [វគ្គ fetch-decode-execute](https://wikipedia.org/wiki/Instruction_cycle)។ រាល់ក្លុកកន្លែង CPU នឹងទាញសេចក្ដីណែនាំបន្ទាប់ពីម៉ែមម៉រី decode វា ហើយបន្ទាប់មកអនុវត្តវា ដែលជាឧទាហរណ៍ដូចជា ALU ដើម្បីបូកលេខពីរចំនួន។ អនុវត្តខ្លះៗចំណាយច្រើនក្លុក ដូច្នេះវគ្គបន្ទាប់នឹងរត់នៅកន្លែងក្លុកបន្ទាប់បន្ទាប់ពីការអនុវត្តបានបញ្ចប់។ + +![The fetch decode execute cycles showing the fetch taking an instruction from the program stored in RAM, then decoding and executing it on a CPU](../../../../../translated_images/km/fetch-decode-execute.2fd6f150f6280392.webp) + +Microcontrollers មានល្បឿនក្លុកទាបជាងកុំព្យូទ័រលើតុ ឬ laptop ឬទូរស័ព្ទដៃភាគច្រើន។ ឧទាហរណ៍ Wio Terminal មាន CPU ដំណើរការនៅ 120MHz ឬ 120,000,000 វគ្គក្នុងមួយវិនាទី។ + +✅ គណនាប្រហែលកន្លែង PC ឬ Mac មធ្យមមាន CPU ដែលមាន cores ច្រើនដំណើរការនៅពហុ GHz សំខាន់ដែលន័យថាក្លុកត្រូស៊ីលានលានក្នុងមួយវិនាទី។ ស្រាវជ្រាវល្បឿនក្លុករបស់កុំព្យូទ័រអ្នក ហើយប្រៀបធៀបទំហំល្បឿននឹងតាម Wio Terminal។ + +រាល់វគ្គក្លុកប្រាស់ថាមពល និងបង្កើតកំដៅ។ ល្បឿនក្លុកបំផុត ចំណាយថាមពលច្រើននិងកម្លាំងកំដៅច្រើន។ PC មាន heat sinks និងវីសស្វីងកាត់ត្រជាក់ បើគ្មានពួកវានឹងកំដៅខ្លួន ហើយបិទខ្ទប់ក្នុងរយៈពេលតូច។ Microcontrollers ភាគច្រើនគ្មានទាំងពីរ ដោយសារតែវាដំណើរការត្រជាក់ជាង និងដំណើរការប្រហែលលឿនតិចជាង។ PC អាចដំណើរការដោយថាមពលអគ្គិសនី ឬថ្មធំៗរយៈពេលប៉ុន្មានម៉ោង ខណៈ microcontrollers អាចដំណើរការបានជាប៉ុន្មានថ្ងៃ ខែ ចូតដល់ឆ្នាំដោយថ្មតូចៗ។ Microcontrollers ក៏អាចមាន cores ដែលដំណើរការជាល្បឿនខុសគ្នា បានផ្លាស់ប្ដូរទៅ core ថាមពលទាបពេល CPU ចាំបាច់តិច ដើម្បីកាត់បន្ថយការប្រើថាមពល។ + +> 💁 PC និង Mac ខ្លះៗកំពុងយករបៀបរួមបញ្ចូលរវាង cores កម្លាំងខ្ពស់ និង cores សន្សំថាមពល ដើម្បីផ្លាស់ប្ដូរជៀសវាងថ្មប្រើលឿន។ ឧទាហរណ៍ chip M1 ក្នុង laptop Apple ថ្មីៗអាចផ្លាស់ប្ដូរវា រវាង 4 performance cores និង 4 efficiency cores ដើម្បីបង្កើតខ្សែពេលជីវភាពថ្មឬល្បឿនផ្អែកលើកិច្ចការដំណើរការ។ + +✅ ស្រាវជ្រាវបន្តិច៖ អានអំពី CPU នៅលើ [អត្ថបទ CPU Wikipedia](https://wikipedia.org/wiki/Central_processing_unit) + +#### ការងារ + +ចាប់ផ្តើមស្រាវជ្រាវ Wio Terminal។ + +បើអ្នកកំពុងប្រើ Wio Terminal សម្រាប់មេរៀនទាំងនេះ សូមស្វែងរក CPU។ សូមរកផ្នែក *Hardware Overview* នៅលើ [ទំព័រផលិតផល Wio Terminal](https://www.seeedstudio.com/Wio-Terminal-p-4509.html) សម្រាប់រូបភាពផ្នែកខាងក្នុង ហើយសាកល្បងរក CPU តាមរយៈបង្អួចប្លാസ്റ്റិចច្បាស់នៅផ្នែកខាងក្រោយ។ + +### អង្គចងចាំ + +Microcontrollers ភាគច្រើនមានអង្គចងចាំពីរប្រភេទ — អង្គចងចាំកម្មវិធី និងអង្គចងចាំចៃដន្យ (RAM)។ + +អង្គចងចាំកម្មវិធីគឺមិនបាត់បង់ទិន្នន័យ ក្រោយពេលនៅពេលគ្មានថាមពលទៅឧបករណ៍ទេ។ នេះជាអង្គចងចាំដែលផ្ទុកកូដកម្មវិធីរបស់អ្នក។ + +RAM ជាអង្គចងចាំដែលកម្មវិធីប្រើដំណើរការ រួមមានអថេរ និងទិន្នន័យដែលបានប្រមូលពីឧបករណ៍ភរិយា។ RAM គឺបាត់បង់ទិន្នន័យក្រោយពេលគ្មានថាមពល បញ្ចេញការកំណត់មួយឡើងវិញឆាប់ៗ។ +> 🎓 កម្មវិធីស្ដុកផ្ទុកកូដរបស់អ្នក ហើយនៅតែមាននៅពេលគ្មានថាមពល។ + +> 🎓 RAM ត្រូវបានប្រើដើម្បីរត់កម្មវិធីរបស់អ្នក ហើយត្រូវបានកំណត់ឡើងវិញពេលគ្មានថាមពល + +ដូចជាមួយ CPU អង្គចងចាំលើមីក្រូកុងត្រូលឡឺគឺមានទំហំតូចជាងកុំព្យូទ័រ PC ឬ Mac។ កុំព្យូទ័រមួយធម្មតាអាចមាន RAM 8 Gigabytes (GB) ឬ 8,000,000,000 បៃ ខណៈដែលបៃមួយគឺជា​ទីតាំងគ្រប់គ្រាន់ដើម្បីផ្ទុកអក្សរតែមួយឬលេខពី 0-255។ មីក្រូកុងត្រូលឡឺគ្រាន់តែមាន RAM ត្រឹមតែ Kilobytes (KB) បែបដែលខីឡូបៃជាប្រមាណ 1,000 បៃ។ Wio terminal ដែលបានរៀបរាប់ខាងលើមាន RAM 192KB ឬ 192,000 បៃ - តូចជាងកុំព្យូទ័រពីរយៈជាង 40,000 ដង! + +គំនូសតាងខាងក្រោមបង្ហាញពីភាពខុសគ្នានៃទំហំរវាង 192KB និង 8GB - ចំណុចតូចនៅកណ្តាលបង្ហាញ 192KB។ + +![ការ​ប្រៀបធៀប​រវាង 192KB និង 8GB - ធំជាងជាង 40,000 ដង](../../../../../translated_images/km/ram-comparison.6beb73541b42ac6f.webp) + +ការផ្ទុកកម្មវិធីក៏តូចជាងកុំព្យូទ័រផងដែរ។ កុំព្យូទ័រធម្មតា អាចមានឌីសដ្រាយ 500GB សម្រាប់ផ្ទុកកម្មវិធី ខណៈមីក្រូកុងត្រូលឡឺអាចមានតែជាកីឡូបៃ ឬមេកាបៃ (MB) តិចតួច (1MB គឺ 1,000KB ឬ 1,000,000 បៃ)។ Wio terminal មានផ្ទុកកម្មវិធី 4MB ។ + +✅ ស្រាវជ្រាវអ្វីមួយ៖ តើ RAM និងការផ្ទុករបស់កុំព្យូទ័រដែលអ្នកកំពុងប្រើដើម្បីអានអត្ថបទនេះមានប៉ុន្មាន? វាប្រៀបធៀបយ៉ាងដូចម្តេចជាមួយមីក្រូកុងត្រូលឡឺ? + +### Input/Output + +មីក្រូកុងត្រូលឡឺត្រូវការតំណភ្ជាប់បញ្ចូល/បញ្ចេញ (I/O) ដើម្បីអានទិន្នន័យពីសាំងស័រនិងផ្ញើសញ្ញាបញ្ជាជូនឱ្យឧបករណ៍បញ្ជាកម្ម។ ពួកវាទូទៅមានចំនួនមួយនៃពាំងបញ្ចូល/បញ្ចេញគោលបំណងទូទៅ (GPIO)។ ពាំងទាំងនេះអាចត្រូវបានកំណត់រចនាសម្ព័ន្ធក្នុងកម្មវិធី ដូចជាបញ្ចូល (រំលឹកថាពួកវាបានទទួលសញ្ញា) ឬបញ្ចេញ (ផ្ញើសញ្ញា)។ + +🧠⬅️ ពាំងបញ្ចូលត្រូវបានប្រើសម្រាប់អានតម្លៃពីសាំងស័រ + +🧠➡️ ពាំងបញ្ចេញផ្ញើសេចក្ដីណែនាំទៅឧបករណ៍បញ្ជា + +✅ អ្នកនឹងរៀនបន្ថែមអំពីនេះនៅថ្នាក់រៀនបន្ទាប់។ + +#### តួនាទី + +ស៊ើបអង្កេត Wio Terminal។ + +បើអ្នកកំពុងប្រើ Wio Terminal សម្រាប់ថ្នាក់រៀនទាំងនេះ សូមស្វែងរកពាំង GPIO។ ស្វែងរកផ្នែក *Pinout diagram* នៅលើ [ទំព័រផលិតផល Wio Terminal](https://www.seeedstudio.com/Wio-Terminal-p-4509.html) ដើម្បីសិក្សាថាតើពាំងណាអ្វីជា​ពាំងណា។ Wio Terminal មានស្ទីកគឺដែលអ្នកអាចដាក់នៅខាងក្រោយជាមួយលេខពាំង ដូច្នេះសូមបន្ថែមវាឥឡូវប្រសិនបើអ្នកមិនទាន់មាន។ + +### ទំហំរូបវីទ្យា + +មីក្រូកុងត្រូលឡឺ មានទំហំតូចជាទូទៅ ដូចជា [Freescale Kinetis KL03 MCU ដែលតូចគ្រប់គ្រាន់ដើម្បីដាក់ក្នុង depresion របស់បាល់ហ្គោល](https://www.edn.com/tiny-arm-cortex-m0-based-mcu-shrinks-package/)។ CPU តែមួយនៅក្នុង PC អាចមានវិមាត្ររបស់វា 40mm x 40mm ហើយនេះមិនរាប់បំពង់កំដៅនិងសំណឹតដែលត្រូវការដើម្បីធានាថា CPU អាចដំណើរការបានលើសពីប៉ុន្មានវិនាទីដោយគ្មានកម្ដៅច្រើនទេទេ ដែលធំជាងមីក្រូកុងត្រូលមួយម៉េចជាច្រើន។ ឧបករណ៍វិនិយោគ Wio terminal ដែលមានមីក្រូកុងត្រូលឡឺ កេស អេក្រង់ និងការតភ្ជាប់នានារួមទាំងសមាសធាតុ គឺមិនធំជាង CPU Intel i9 ឯកោ និងតិចជាង CPU មានសំណឹតកម្ដៅនិងកីឡាគ្រឿងត្រជាក់ទេ! + +| ឧបករណ៍ | ទំហំ | +| ------------------------------ | ------------------------ | +| Freescale Kinetis KL03 | 1.6mm x 2mm x 1mm | +| Wio terminal | 72mm x 57mm x 12mm | +| Intel i9 CPU, Heat sink and fan| 136mm x 145mm x 103mm | + +### Frames ជំនួយ និង​ប្រព័ន្ធ​ប្រតិបត្តិការ + +ដោយសារតែប្រេស័ររត់ និងទំហំអង្គចងចាំមានកម្រិតទាប មីក្រូកុងត្រូលឡឺមិនដំណើរការ​ប្រព័ន្ធប្រតិបត្តិការ (OS) តាមអត្ថន័យនៅលើតុ។ ប្រព័ន្ធប្រតិបត្តិការ ដែលធ្វើឱ្យកុំព្យូទ័ររបស់អ្នកដំណើរការ (Windows, Linux ឬ macOS) ត្រូវការអង្គចងចាំនិងសមត្ថភាពដំណើរការច្រើនសម្រាប់រត់ភារកិច្ចមិនចាំបាច់សម្រាប់មីក្រូកុងត្រូលឡឺឡើយ។ ចងចាំថាមីក្រូកុងត្រូលឡឺ ត្រូវបានកម្មវិធីក្នុងការបំពេញភារកិច្ចច្បាស់លាស់មួយឬច្រើន មិនដូចជា​កុំព្យូទ័រប្រភេទទូទៅដូចជា PC ឬ Mac ដែលត្រូវការគាំទ្រ​អាំងធើហ្វេសរប្រើប្រាស់ អ្នកតន្រ្តី ឬវីដេអូ ផ្តល់ឧបករណ៍សម្រាប់សរសេរឯកសារឬកូដ លេងហ្គេម ឬរុករកអ៊ិនធឺណិត។ + +ដើម្បីកម្មវិធីមីក្រូកុងត្រូលឥតប្រព័ន្ធប្រតិបត្តិការ អ្នកត្រូវការឧបករណ៍ឱ្យអាចកសាងកូដរបស់អ្នកដោយរបៀបដែលមីក្រូកុងត្រូលឡឺអាចរត់បាន ប្រើ API ដែលអាចនិយាយទៅនឹងឧបករណ៍បញ្ជា បី្ជួតមីក្រូកុងត្រូល គឺខុសគ្នា ដូច្នេះហេតុផលដើមផលិតផលធម្មតានឹងគាំទ្រ frames ជំនួយស្តង់ដារដែលអនុញ្ញាតឱ្យអ្នកបន្តផ្លូវការ 'វិធីសាស្ត្រ' ក្នុងការសង់កូដរបស់អ្នក ហើយដំណើរការលើមីក្រូកុងត្រូលណាមួយដែលគាំទ្រ frames នោះ។ + +អ្នកអាចកម្មវិធីមីក្រូកុងត្រូលដោយប្រើប្រព័ន្ធប្រតិបត្តិការ - ដែលភាគច្រើនហៅថាប្រព័ន្ធប្រតិបត្តិការ​ពេលវេលាច្រាស (RTOS) ដូចដែលបានរចនាឡើងដើម្បីគ្រប់គ្រងការផ្ញើទិន្នន័យទៅ និងមកពីឧបករណ៍បញ្ជា ក្នុងពេលវេលាពិតប្រាកដ។ ប្រព័ន្ធប្រតិបត្តិការ​នេះមានទំងន់ខ្ទាតបំផុត ហើយផ្តល់លក្ខណៈពិសេសដូចជា៖ + +* មើលថែការរត់កម្មវិធីច្រើនជួរ (multi-threading) អនុញ្ញាតឱ្យកូដរបស់អ្នករត់block កូដច្រើនជាងមួយក្នុងពេលតែមួយ ដូចជាតាមកូរ(cores) ច្រើន ឬប្ដូរចុះជុំលើកូរ១ +* បណ្ដាញ ដើម្បីឲ្យអាចទំនាក់ទំនងអ៊ីនធឺណិតបានយ៉ាងសុវត្ថិភាព +* ទំបន់ចំណុចអាំងធើហ្វេសរូបភាព (GUI) សម្រាប់សង់អាំងធើហ្វេសរប្រើប្រាស់ (UI) លើឧបករណ៍ដែលមានអេក្រង់។ + +✅ អានបន្ថែមអំពី RTOS ពីរ: [Azure RTOS](https://azure.microsoft.com/services/rtos/?WT.mc_id=academic-17441-jabenn), [FreeRTOS](https://www.freertos.org), [Zephyr](https://www.zephyrproject.org) + +#### Arduino + +![រូបសញ្ញា Arduino](../../../../../images/arduino-logo.svg) + +[Arduino](https://www.arduino.cc) ប្រហែលជាជា frames ជំនួយមីក្រូកុងត្រូលល្បីល្បាញជាងគេ ពិសេសសម្រាប់សិស្ស មនោគមវិទ្យា និងអ្នកបង្កើត។ Arduino គឺជាវេទិកាសៀវភៅអេឡិចត្រូនិចបើកចំហរដែលបញ្ចូលទាំងកម្មវិធីនិងរ៉ូបូតិក។ អ្នកអាចទិញក្តារចងក្រង Arduino ដែលសមនឹង Arduino មកពីប្រភេទផលិតផលផ្ទាល់ខ្លួនឬក្រុមហ៊ុនផ្សេងៗ ហើយបន្ទាប់មកសរសេរកូដប្រើ frames Arduino ។ + +ក្តារចងក្រង Arduino ត្រូវ​បានសរសេរជា C ឬ C++។ ការប្រើ C/C++ អនុញ្ញាតឲ្យកូដរបស់អ្នកត្រូវបានបញ្ចូលធ្វើជាកូដតូចៗ និងរត់លឿន ដែលជាអ្វីដែលចាំបាច់សម្រាប់ឧបករណ៍មានការកំណត់ដូចមីក្រូកុងត្រូល។ ស្នូលកម្មវិធី Arduino មានឈ្មោះថា sketch ហើយជាកូដ C/C++ មានមុខងារ 2 ឈ្មោះ `setup` និង `loop`។ ពេលក្តារចងក្រងផុសឡើងកូដនៅក្នុង frames Arduino នឹងរត់មុខងារ `setup` ម្តងមួយ បន្ទាប់មកវានឹងរត់មុខងារ `loop` ជាបន្តបន្ទាប់ ដំណើរការនេះបន្តរហូតដល់ថាមពលខាត។ + +អ្នកនឹងសរសេរកូដផ្តើមនៅក្នុងមុខងារ `setup` ដូចជា ការតភ្ជាប់ទៅ WiFi និងសេវាកម្មពពក ឬការចាប់ផ្តើមកំណត់ពាំងសម្រាប់បញ្ចូល និងបញ្ចេញ។ កូដទាញមុខងារ `loop` នឹងមានកូដកំណត់ដំណើរការ ដូចជាការអានពីសាំងស័រនិងផ្ញើតម្លៃទៅកាន់ពពក។ ជាទូទៅ អ្នកនឹងបញ្ចូលការយឺតនៅក្នុងមូលដ្ឋាននីមួយៗ (loop) ឧ. ប្រសិនបើអ្នកចង់ផ្ញើទិន្នន័យសាំងស័រត្រឹមតែគ្រោងរក់ 10 វិនាទី អ្នកនឹងបន្ថែមការយឺត 10 វិនាទីនៅចុងមូលដ្ឋានដើម្បីអោយមីក្រូកុងត្រូលឡឺអាចឡើងស្ដាំ និងសន្សំថាមពល បន្ទាប់មករត់ឡើងលើទៀតនៅពេលចាំបាច់នៅពេល 10 វិនាទីទៀត។ + +![ស្គេត Arduino រត់មុខងារ setup ជាលើកដំបូង បន្ទាប់មករត់មុខងារ loop ជាបន្តបន្ទាប់](../../../../../translated_images/km/arduino-sketch.79590cb837ff7a7c.webp) + +✅ វិមុះកម្មវិធីនេះគឺហៅថា *event loop* ឬ *message loop*។ កម្មវិធីជាច្រើនប្រើស្ទាត់ក្រោមពីរហោងនេះ ហើយគឺផ្លូវការសម្រាប់កម្មវិធីតុតូចដែលដំណើរការលើប្រព័ន្ធដូចជា Windows, macOS ឬ Linux។ `loop` រង់ចាំសារពីឧបករណ៍ UI ដូចជាផ្ដាក់ប៊ូតុង ឬឧបករណ៍ដូចជា តម្រង់ពាក្យ និងឆ្លើយតប។ អ្នកអាចអានបន្ថែមនៅក្នុង [អត្ថបទអំពី event loop](https://wikipedia.org/wiki/Event_loop)។ + +Arduino ផ្តល់បណ្ណាល័យស្តង់ដារសម្រាប់ទំនាក់ទំនងជាមួយមីក្រូកុងត្រូលឡឺ និងពាំង I/O ដោយមានការអនុវត្តខុសគ្នាក្នុងស្ទាត់ក្រោម ដើម្បីរត់លើមីក្រូកុងត្រូលផ្សេងៗ។ ឧ. មុខងារ [`delay`](https://www.arduino.cc/reference/en/language/functions/time/delay/) នឹងឈប់កម្មវិធីរយៈពេលកំណត់ មុខងារ [`digitalRead`](https://www.arduino.cc/reference/en/language/functions/digital-io/digitalread/) នឹងអានតម្លៃ `HIGH` ឬ `LOW` ពីពាំងណាមួយដែលកូដរត់ ទោះជាប៊ូតុងនោះស្ថិតលើក្តារចងក្រងណាមួយ។ បណ្ណាល័យស្តង់ដារទាំងនេះធានាថា កូដ Arduino ដែលសរសេរជាមួយក្តារចងក្រងលើគ្រាន់ប្ដូរ ក៏អាចធ្វើការ compile សម្រាប់ក្តារចងក្រង Arduino ផ្សេងទៀតបាន ហើយដំណើរការ ប្រសិនបើពាំងគឺដូចគ្នា ហើយក្តារចងក្រងគាំទ្រអំពើដែលដូចគ្នា។ + +មានប្រព័ន្ធបណ្ណាល័យទីបី​ច្រើនសម្រាប់ Arduino ដែលអនុញ្ញាតឱ្យអ្នកបន្ថែមលក្ខណៈពិសេសបន្ថែមទៅក្នុងគម្រោង Arduino របស់អ្នក ដូចជាការប្រើសង់សSensor និង actuator ឬការតភ្ជាប់ទៅកាន់សេវាកម្ម IoT លើពពក។ + +##### តួនាទី + +ស៊ើបអង្កេត Wio Terminal។ + +បើអ្នកកំពុងប្រើ Wio Terminal សម្រាប់ថ្នាក់រៀនទាំងនេះ សូមអានមើលកូដដែលអ្នកបានសរសេរនៅថ្នាក់មុន។ ស្វែងរកមុខងារ `setup` និង `loop`។ ត្រួតពិនិត្យចេញតាមរយៈ serial output សម្រាប់មុខងារ loop ដែលត្រូវបានហៅជាបន្តបន្ទាប់។ ព្យាយាមបន្ថែមកូដ​នៅក្នុងមុខងារ `setup` ដើម្បីសរសេរដល់ច្រកស៊េរី និងមើលថាកូដនេះត្រូវបានហៅតែម្ដងក្នុងមួយដងបើកឡើង។ សាកល្បងបើកឡើងវិញឧបករណ៍របស់អ្នកដោយប្រើប៊ូតុងថាមពលនៅក្បែរដើម្បីបង្ហាញថាគ្រាន់តែហៅម្តងក្នុងមួយដងបើកឡើង។ + +## ចំណត្រាប់វែងទៅក្នុងកុំព្យូទ័រថតតែមួយក្តារ + +នៅថ្នាក់មុន យើងបានណែនាំកុំព្យូទ័រថតតែមួយក្តារដើម្បីមើលជ្រាលជ្រៅ។ + +### Raspberry Pi + +![រូបសញ្ញា Raspberry Pi](../../../../../translated_images/km/raspberry-pi-logo.4efaa16605cee054.webp) + +[ដៃគូសហគ្រាស Raspberry Pi](https://www.raspberrypi.org) គឺជាអង្គការមិនរកប្រាក់ចំណេញពីចក្រភពហ្សខាងលិចដែលបានបង្កើតឡើងនៅឆ្នាំ 2009 ដើម្បីផ្សព្វផ្សាយការសិក្សាជាក់លាក់អំពីវិទ្យាសាស្ត្រកុំព្យូទ័រ រួមទាំងនៅកម្រិតសាលារៀន។ ជាផ្នែកមួយនៃបេសកកម្មនេះ ពួកគេបានបង្កើតកុំព្យូទ័រថតតែមួយ ក្រោមឈ្មោះ Raspberry Pi។ Raspberry Pi មានប្រភេទ 3 ដំណាក់កាលសំខាន់ - រូបរាងទំហំពេញលេញ មួយ Pi Zero តូចជាង និងម៉ូឌុលកំព្យូទ័រ (compute module) ដែលអាចបញ្ចូលទៅក្នុងឧបករណ៍ IoT ផ្លូវចុងក្រោយរបស់អ្នក។ + +![Raspberry Pi 4](../../../../../translated_images/km/raspberry-pi-4.fd4590d308c3d456.webp) + +កម្មវិធីថ្មីបំផុតនៃ Raspberry Pi ទំហំពេញលេញគឺ Raspberry Pi 4B។ វាមាន CPU ពីរូបករណី (quad-core) រត់ល្បឿន 1.5GHz មាន RAM ជា 2, 4 ឬ 8GB មានទីតាំងអ៊ីធឺណិត (gigabit ethernet) WiFi ច្រក HDMI 2 ច្រក គាំទ្រអេក្រង់ 4k ច្រកបញ្ចេញសំឡេង និងវីដេអូ សមាសភាគ USB (2 USB 2.0 និង 2 USB 3.0) ពាំង GPIO 40 ខ្សែភ្ជាប់កាមេរ៉ា SD card slot ព្រមទាំងតារាងវាស់ទំហំ 88mm x 58mm x 19.5mm និងមានថាមពលផ្គត់ផ្គង់ USB-C 3A។ តម្លៃចាប់ពី 35 ដុល្លារ សម្រួលជាង PC ឬ Mac។ + +> 💁 ក៏មានកុំព្យូទ័រតែមួយ Pi400 ដែលភ្ជាប់ Pi4 ទៅក្នុងក្តារចុច។ + +![Raspberry Pi Zero](../../../../../translated_images/km/raspberry-pi-zero.f7a4133e1e7d54bb.webp) + +Pi Zero តូចជាង សមត្ថភាពថាមពលទាប។ វាមាន CPU ម៉ូណូកូរ 1GHz RAM 512MB WiFi (ម៉ូដែល Zero W) ច្រក HDMI តែមួយ ច្រក micro-USB ពាំង GPIO 40 ខ្សែ ភ្ជាប់កាមេរ៉ា និង SD card slot។ វាមានវិមាត្រនៅ 65mm x 30mm x 5mm និងប្រើថាមពលតិចខ្លាំង។ តម្លៃ Zero គឺ 5 ដុល្លារ ហើយម៉ូដែល W មាន WiFi តម្លៃ 10 ដុល្លារ។ + +> 🎓 CPU ទាំងពីរនេះគឺជាផលិតផល ARM មិនមែនដូចជា Intel/AMD ប្រភេទ x86 ឬ x64 ដែលអ្នកប្រើភាគច្រើននៅលើ PC និង Mac ផ្សេងៗទេ។ វាដូចនឹង CPU ដែលអ្នកអាចឃើញនៅក្នុងមីក្រូកុងត្រូល និងទូរស័ព្ទចល័តច្រើន គ្រឿង Microsoft Surface X និងកុំព្យូទ័រនៃ Apple Silicon លើ Mac នាពេលថ្មីនេះ។ + +Variant ទាំងអស់នៃ Raspberry Pi រត់ Debian Linux ជាប្រភេទ Raspberry Pi OS។ វាមាននៅក្នុងបែបវែងកម្រិត lite ដែលគ្មាន desktop សម្រាប់គម្រោង 'headless' ក្នុងកំឡុងដែលអ្នកមិនចាំបាច់អេក្រង់ ឬបែបវែងពេញគណៈ desktop មានកម្មវិធីកំណត់សម្រាប់ browser វេប សូហ្វវេអ៊ីហ្វិស សមត្ថភាពសរសេរកូដ និងហ្គេម។ ពីព្រោះប្រព័ន្ធប្រតិបត្តិការ​គឺ Debian Linux អ្នកអាចដំឡើងកម្មវិធីឬឧបករណ៍ណាមួយចេញផ្សាយសម្រាប់ Debian ដែលត្រូវបានបង្កើតសម្រាប់ CPU ARM ក្នុង Pi។ + +#### តួនាទី + +ស៊ើបអង្កេត Raspberry Pi។ + +បើអ្នកកំពុងប្រើ Raspberry Pi សម្រាប់ថ្នាក់រៀនទាំងនេះ សូមអានអំពីកុំព្យូទ័រទុននិងសមាសភាគនៅលើក្តារចងក្រង។ + +* អ្នកអាចស្វែងរកព័ត៌មានលម្អិតអំពី CPU ដែលប្រើនៅលើ [ទំព័រឯកសារផលិតផល Raspberry Pi](https://www.raspberrypi.org/documentation/hardware/raspberrypi/). អានពី CPU ដែលប្រើនៅរបក Pi ដែលអ្នកកំពុងប្រើ។ +* ស្វែងរកពាំង GPIO។ អានបន្ថែមអំពីពាំងទាំងនេះនៅ [ឯកសារពី GPIO Raspberry Pi](https://www.raspberrypi.org/documentation/hardware/raspberrypi/gpio/README.md)។ ប្រើ [មគ្គុទេសក៍ការប្រើប្រាស់ GPIO Pin](https://www.raspberrypi.org/documentation/usage/gpio/README.md) ដើម្បីកំណត់ពាំងផ្សេងៗលើ Pi របស់អ្នក។ + +### កម្មវិធីសម្រាប់កុំព្យូទ័រថតតែមួយក្តារ + +កុំព្យូទ័រថតតែមួយក្តារជាកុំព្យូទ័រដែលមានប្រព័ន្ធប្រតិបត្តិការពេញលេញ។ នេះមានន័យថាមានភាសាកម្មវិធី ជំនួយ និងឧបករណ៍កូដដ៏ច្រើនដែលអ្នកអាចប្រើបាន ដំណើរការពួកវា មិនដូចជាមីក្រូកុងត្រូលដែលពឹងផ្អែកលើការគាំទ្រជាមួយក្តារចងក្រងក្នុង frames ដូចជា Arduino។ ភាសាកម្មវិធីភាគច្រើនមានបណ្ណាល័យដែលអាចចូលប្រើពាំង GPIO ដើម្បីផ្ញើ និងទទួលទិន្នន័យពីសាំងស័រនិង actuator។ + +✅ តើអ្នកស្គាល់ភាសាកម្មវិធីអ្វីខ្លះ? តើភាសាទាំងនោះគាំទ្រលើ Linux ទេ? +ភាសាកម្មវិធីដែលគេប្រើប្រាស់ច្រើនបំផុតសម្រាប់ការសង់កម្មវិធី IoT លើ Raspberry Pi គឺ Python។ មានប្រព័ន្ធបរិស្ថានធំមួយសម្រាប់ឧបករណ៍ហាដវេរដែលបានរចនាសម្រាប់ Pi ហើយជិតស្ទើរតែទាំងអស់នៃឧបករណ៍ទាំងនេះមានកូដទាក់ទងដែលត្រូវការដើម្បីប្រើប្រាស់ពួកវាជាឪបករណ៍បណ្ណាល័យ Python។ ប្រព័ន្ធបរិស្ថានខ្លះៗទាំងនេះផ្អែកលើ 'hats' - ហៅយ៉ាងនេះព្រោះពួកវាអង្គុយលើ Pi ដូចជាក្រឡាហើយភ្ជាប់ជាមួយស៊កខ្សែធំទៅកាន់ 40 ពូល GPIO។ ពួក hats ទាំងនេះផ្តល់នូវសមត្ថភាពបន្ថែម ដូចជា អេក្រង់ ភ្នួង ឡានគ្រប់គ្រងពីចម្ងាយ ឬឧបករណ៍ផ្គូរផ្គងដើម្បីអនុញ្ញាតឲ្យអ្នកភ្ជាប់ភ្នួងជាមួយខ្សែដែលមានស្តង់ដារ។ + +### ការប្រើប្រាស់កុំព្យូទ័រតែមួយបន្ទះក្នុងការដាក់បញ្ចូល IoT ជាជំនាញវិជ្ជាជីវៈ + +កុំព្យូទ័រតែមួយបន្ទះត្រូវបានប្រើសម្រាប់ការដាក់បញ្ចូល IoT ជាជំនាញវិជ្ជាជីវៈ មិនមែនត្រឹមតែជាឧបករណ៍សម្រាប់អ្នកអភិវឌ្ឍន៍ឡើងមួយទេ។ ពួកវាអាចផ្តល់វិធីសាស្រ្តពេញលេញក្នុងការគ្រប់គ្រងឧបករណ៍ហាដវេរនិងរត់ការងារលំបាកដូចជាការរត់ម៉ូដែលបណ្ដុះបណ្ដាលម៉ាស៊ីន។ ឧទាហរណ៍មាន [ម៉ូឌុល Raspberry Pi 4 compute module](https://www.raspberrypi.org/blog/raspberry-pi-compute-module-4/) ដែលផ្តល់សមត្ថភាពដូច Raspberry Pi 4 ទាំងមូល ប៉ុន្តែក្នុងទម្រង់តូច និងថ្លៃថោកជាង ដែលគ្មានច្រកភាគច្រើន ត្រូវបានរចនាឡើងសម្រាប់តំឡើងទៅក្នុងឧបករណ៍ផ្ទាល់ខ្លួន។ + +--- + +## 🚀 បញ្ហា + +បញ្ហាក្នុងម៉ោងសិក្សាចុងក្រោយគឺបញ្ជីឈ្មោះឧបករណ៍ IoT ច្រើនបំផុតដែលអ្នកអាចរកឃើញនៅផ្ទះ សាលា ឬកន្លែងធ្វើការ។ សម្រាប់ឧបករណ៍រាល់មួយក្នុងបញ្ជីនេះ អ្នកគិតថាវាត្រូវបានសង់ជាព្រមទាំង microcontrollers ឬកុំព្យូទ័រតែមួយបន្ទះ ឬបើកញ្ចូលទាំងពីរទៅ? + +## សំណួរបញ្ញៀនក្រោយមេរៀន + +[សំណួរបញ្ញៀនក្រោយមេរៀន](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/4) + +## ការត្រួតពិនិត្យ និងសិក្សាឯករាជ្យ + +* អាន [មគ្គុទ្ទេសក៍ចាប់ផ្តើម Arduino](https://www.arduino.cc/en/Guide/Introduction) ដើម្បីយល់ដឹងបន្ថែមអំពីវេទិកា Arduino។ +* អាន [ការ​ដែល​បានណែនាំ​ពី Raspberry Pi 4](https://www.raspberrypi.org/products/raspberry-pi-4-model-b/) ដើម្បីស្វែងយល់បន្ថែមអំពី Raspberry Pis។ +* ស្វែងយល់បន្ថែមលើមួយចំនួននៃគំនិត និងពាក្យគន្លងនៅក្នុងអត្ថបទ [What the FAQ are CPUs, MPUs, MCUs, and GPUs នៅក្នុងទស្សនាវិជ្ជាអគ្គិសនី Engineering Journal](https://www.eejournal.com/article/what-the-faq-are-cpus-mpus-mcus-and-gpus/)។ + +✅ ប្រើប្រាស់មគ្គុទេសក៍ទាំងនេះ រួមជាមួយនឹងតម្លៃដែលបង្ហាញតាមតំណះនៅ [មគ្គុទេសក៍ហាដវែររបស់](../../../hardware.md) ដើម្បីសម្រេចចិត្តលើវេទិកាហាដវែរដែលអ្នកចង់ប្រើប្រាស់ ឬប្រសិនបើអ្នកចង់ប្រើឧបករណ៍វើរចអស់។ + +## ងារសិក្សា + +[ប្រៀបធៀប និងផ្ទុយគ្នារវាង microcontrollers និងកុំព្យូទ័រតែមួយបន្ទះ](assignment.md) + +--- + + +**លាយសំណើច**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំរកភាពត្រឹមត្រូវ សូមយល់ថា ការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាគោលរបស់វាគួរត្រូវបានចាត់ទុកថាជា ប្រភពដែលមានស្រោចស្រង់។ សម្រាប់ព័ត៌មានដ៏សំខាន់ ការបកប្រែដោយមនុស្សព្រមទាំងមានជំនាញត្រូវបានណែនាំ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/1-getting-started/lessons/2-deeper-dive/assignment.md b/translations/km/1-getting-started/lessons/2-deeper-dive/assignment.md new file mode 100644 index 000000000..1997d2ae5 --- /dev/null +++ b/translations/km/1-getting-started/lessons/2-deeper-dive/assignment.md @@ -0,0 +1,19 @@ +# ប្រៀបធៀប និងប្រៀបធៀបពី microcontrollers និង single-board computers + +## សេចក្តីណែនាំ + +មេរៀននេះបានគ្របដណ្តប់ microcontrollers និង single-board computers។ បង្កើតតារាងមួយដែលប្រៀបធៀប និងបង្ហាញភាពខុសគ្នារវាងពួកវា ហើយសូមចំណាំពីហេតុផលយ៉ាងហោចណាស់ ២ករណីដែលអ្នកនឹងប្រើ microcontroller ជាង single-board computer និងហេតុផលយ៉ាងហោចណាស់ ២ករណីដែលអ្នកនឹងប្រើ single-board computer ជាជម្រើសលើ microcontroller។ + +## Rubric + +| Criteria | Exemplary | Adequate | Needs Improvement | +| -------- | --------- | -------- | ----------------- | +| Create a table comparing microcontrollers to single-board computers | បានបង្កើតបញ្ជីមានអត្ថបទច្រើនដែលប្រៀបធៀប និងបង្ហាញភាពខុសគ្នា | បានបង្កើតបញ្ជីដែលមានតែពីរប្រភេទតែប៉ុណ្ណោះ | ត្រឹមតែរកបានមួយឬគ្មានអត្ថបទណាមួយសម្រាប់ប្រៀបធៀប និងបង្ហាញភាពខុសគ្នា | +| Reasons for using one over the other | អាចផ្តល់ហេតុផល២ ឬច្រើនសម្រាប់ microcontrollers និង ២ ឬច្រើនសម្រាប់ single-board computers | អាចផ្តល់ហេតុផល១-២សម្រាប់ microcontroller និង ១-២សម្រាប់ single-board computer | មិនអាចផ្តល់ហេតុផល១ ឬច្រើនសម្រាប់ microcontroller ឬសម្រាប់ single-board computer បានទេ | + +--- + + +**ការរក្សាទុក**: +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំសំរាប់ភាពត្រឹមត្រូវ សូមជ្រាបថា ការបកប្រែដោយស្វ័យប្រវត្តិក្នុងខ្លះអាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមជាភាសាតំបន់របស់វាគួរត្រូវបានគេចាត់ទុកថាជាផ្លូវការជាមុន។ សម្រាប់ព័ត៌មានសំខាន់ សូមផ្តល់អនុសាសន៏ឲ្យប្រើការបកប្រែក្នុងមនុស្សជំនាញវិជ្ជាជីវៈ។ យើងខ្លួនមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសទេដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះ។ + \ No newline at end of file diff --git a/translations/km/1-getting-started/lessons/3-sensors-and-actuators/README.md b/translations/km/1-getting-started/lessons/3-sensors-and-actuators/README.md new file mode 100644 index 000000000..6cf4b4a2c --- /dev/null +++ b/translations/km/1-getting-started/lessons/3-sensors-and-actuators/README.md @@ -0,0 +1,225 @@ +# ផ្ទះប្រតិកម្មជាមួយពិភពរូបិយវត្ថុដោយប្រើឧបករណ៍ស្វែថ៍ និងឧបករណ៍បង្ហូរ + +![សេចក្ដីសង្ខេបស្គេតឈូកនៃមេរៀននេះ](../../../../../translated_images/km/lesson-3.cc3b7b4cd646de59.webp) + +> ស្គេតឈូកដោយ [Nitya Narasimhan](https://github.com/nitya)। ចុចលើរូបភាពសម្រាប់កំណែទំហំធំជាងនេះ។ + +មេរៀននេះត្រូវបានបង្រៀនជាផ្នែកមួយនៃ [ស៊េរី Hello IoT](https://youtube.com/playlist?list=PLmsFUfdnGr3xRts0TIwyaHyQuHaNQcb6-) ពី [Microsoft Reactor](https://developer.microsoft.com/reactor/?WT.mc_id=academic-17441-jabenn)។ មេរៀនត្រូវបានបង្រៀនជាវីដេអូ ២ ដង - មេរៀនរយៈពេល១ម៉ោង និងម៉ោងការិយាល័យរយៈពេល ១ ម៉ោង ស្វែងយល់ជ្រៅអំពីផ្នែកនានានៃមេរៀន និងឆ្លើយសំណួរ។ + +[![មេរៀន ៣៖ ផ្ទះប្រតិកម្មជាមួយពិភពរូបិយវត្ថុដោយប្រើឧបករណ៍ស្វែថ៍ និងឧបករណ៍បង្ហូរ](https://img.youtube.com/vi/Lqalu1v6aF4/0.jpg)](https://youtu.be/Lqalu1v6aF4) + +[![មេរៀន ៣៖ ផ្ទះប្រតិកម្មជាមួយពិភពរូបិយវត្ថុដោយប្រើឧបករណ៍ស្វែថ៍ និងឧបករណ៍បង្ហូរ - ម៉ោងការិយាល័យ](https://img.youtube.com/vi/qR3ekcMlLWA/0.jpg)](https://youtu.be/qR3ekcMlLWA) + +> 🎥 ចុចលើរូបភាពខាងលើដើម្បីមើលវីដេអូ + +## ប្រឡងមុនមេរៀន + +[ប្រឡងមុនមេរៀន](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/5) + +## ការណែនាំ + +មេរៀននេះណែនាំពីគំនិតសំខាន់ពីរដែលសម្រាប់ឧបករណ៍ IoT របស់អ្នក - ឧបករណ៍ស្វែថ៍ និងឧបករណ៍បង្ហូរ។ អ្នកនឹងបានអនុវត្តជាមួយពួកវាទាំងពីរ ដោយបន្ថែមឧបករណ៍ស្វែថ៍ពន្លឺទៅក្នុងគម្រោង IoT របស់អ្នក បន្ទាប់មកបន្ថែម LED ដែលគ្រប់គ្រងដោយកម្រិតពន្លឺ ដូច្នេះក៏បង្កើតប្រភពពន្លឺរាត្រី។ + +ក្នុងមេរៀននេះយើងនឹងគ្របដណ្តប់៖ + +* [ឧបករណ៍ស្វែថ៍គឺជាអ្វី?](#ឧបករណ៍ស្វែថ៍គឺជាអ្វី) +* [ការប្រើឧបករណ៍ស្វែថ៍](#ការប្រើឧបករណ៍ស្វែថ៍) +* [ប្រភេទឧបករណ៍ស្វែថ៍](#ប្រភេទឧបករណ៍ស្វែថ៍) +* [ឧបករណ៍បង្ហូរគឺជាអ្វី?](#ឧបករណ៍បង្ហូរគឺជាអ្វី) +* [ការប្រើឧបករណ៍បង្ហូរ](#ការប្រើឧបករណ៍បង្ហូរ) +* [ប្រភេទឧបករណ៍បង្ហូរ](#ប្រភេទឧបករណ៍បង្ហូរ) + +## ឧបករណ៍ស្វែថ៍គឺជាអ្វី? + +ឧបករណ៍ស្វែថ៍គឺជាឧបករណ៍រឹងដែលស្វែងយល់ពីពិភពរូបិយវត្ថុ - គឺវាវាស់មួយឬច្រើនលក្ខណៈនៅជុំវិញវា ហើយផ្ញើព័ត៌មានទៅឧបករណ៍ IoT។ ឧបករណ៍ស្វែថ៍បំពាក់ជាមួយឧបករណ៍ច្រើនព្រោះមានវត្ថុខ្លះដែលអាចវាស់បាន ពីលក្ខណៈធម្មជាតិដូចជាសីតុណ្ហភាពខ្យល់ ទៅការប៉ះពាល់រូបិយវត្ថុ ដូចជាចលនា។ + +ឧបករណ៍ស្វែថ៍គ្រប់គ្រាន់មានដូចជា៖ + +* ឧបករណ៍វាស់សីតុណ្ហភាព - វាស្វែងយល់សីតុណ្ហភាពខ្យល់ ឬសីតុណ្ហភាពរបស់វត្ថុដែលវាបញ្ចូលនៅក្នុងនេះ។ សម្រាប់អ្នកចំណង់ចំណូលចិត្ត និងអ្នកអwick ការផលិតវាគឺតែងរួមបញ្ចូលជាមួយសម្ពាធខ្យល់ និងភាពសើមក្នុងឧបករណ៍ស្វែថ៍តែមួយ។ +* ប៊ូតុង - វាស្វែងយល់ពេលដែលវាត្រូវបានចុច។ +* ឧបករណ៍ស្វែថ៍ពន្លឺ - វាស្វែងយល់កម្រិតពន្លឺ ហើយអាចមានសម្រាប់ពណ៌ជាក់លាក់, ពន្លឺ UV, ពន្លឺ IR, ឬពន្លឺមើលឃើញទូទៅ។ +* កាមេរ៉ា - វាស្វែងយល់ការតំណាងរូបភាពនៅលើពិភពដោយការថតរូប ឬផ្សាយវីដេអូ។ +* ឧបករណ៍វាស់ចលនា (Accelerometers) - វាស្វែងយល់ចលនាជាច្រើនទិសដៅ។ +* សម្លេងបង្ហាប់ (microphones) - វាស្វែងយល់សម្លេង ទាំងកម្រិតសម្លេងទូទៅ ឬសម្លេងទៅទិស។ + +✅ ស្វែងយល់ជ្រៅ។ តើទូរស័ព្ទរបស់អ្នកមានឧបករណ៍ស្វែថ៍អ្វីខ្លះ? + +ឧបករណ៍ស្វែថ៍ទាំងអស់មានចំណុចមួយគ្នា - វាបម្លែងអ្វីដែលវាស្វែងយល់ទៅជាសញ្ញាអគ្គិសនី ដែលអាចត្រូវបានបកស្រាយដោយឧបករណ៍ IoT។ របៀបកំណត់សញ្ញាអគ្គិសនីនេះអាស្រ័យទាមទារនៅលើឧបករណ៍ស្វែថ៍ ដូចជាព្រោះធ្វើប្រតិបត្តិការប្រាស្រ័យដោយប្រើប្រព័ន្ធសម្ព័ន្ធប្រតិបត្តិការបានប្រើសម្រាប់ប្រាស្រ័យទាក់ទងទៅឧបករណ៍ IoT។ + +## ការប្រើឧបករណ៍ស្វែថ៍ + +អនុវត្តការណែនាំដែលពាក់ព័ន្ធខាងក្រោមក្នុងការបន្ថែមឧបករណ៍ស្វែថ៍ទៅឧបករណ៍ IoT របស់អ្នក៖ + +* [Arduino - Wio Terminal](wio-terminal-sensor.md) +* [កុំព្យូទ័រតែមួយផ្ទាំង - Raspberry Pi](pi-sensor.md) +* [កុំព្យូទ័រតែមួយផ្ទាំង - ឧបករណ៍វីរុច (Virtual device)](virtual-device-sensor.md) + +## ប្រភេទឧបករណ៍ស្វែថ៍ + +ឧបករណ៍ស្វែថ៍មានប្រភេទសទិដ្ឋីមួយគឺអាណាឡុក (analog) ឬឌីជីថល (digital)។ + +### ឧបករណ៍ស្វែថ៍អាណាឡុក + +ឧបករណ៍ស្វែថ៍មូលដ្ឋានខ្លះៗជាឧបករណ៍ស្វែថ៍អាណាឡុក។ ឧបករណ៍ស្វែថ៍ទាំងនេះទទួលតង់ស្យុងពីឧបករណ៍ IoT, ចំណុចនៃឧបករណ៍ស្វែថ៍ប្ដូរតង់ស្យុងនេះ ហើយតង់ស្យុងត្រូវបានបញ្ចេញពីឧបករណ៍ស្វែថ៍នោះត្រូវបានវាស់សម្រាប់បញ្ជាក់តម្លៃស្វែថ៍។ + +> 🎓 តង់ស្យុងគឺជាមាត្រដ្ឋានមួយ នៃកម្លាំងបង្កការបញ្ចេញអគ្គិសនីពីកន្លែងមួយទៅកន្លែងមួយទៀត ដូចជាពីขាតមួយយ៉ាងវិជ្ជមានទៅចំណុចវិជ្ជមានរបស់ថ្មបាទ។ ឧទាហរណ៍ ថ្មទូទៅ AA មានតង់ស្យុង ១.៥V (V ជារូបសញ្ញាសម្រាប់វ៉ុល) និងអាចបញ្ចេញអគ្គិសនីជាមួយកម្លាំង ១.៥V ពីចំណុចវិជ្ជមានទៅចំណុចអវិជ្ជមាន។ គ្រឿងម៉ាស៊ីនអគ្គិសនីខុសគ្នាតម្រូវការតង់ស្យុងខុសគ្នាសម្រាប់ដំណើរការ ឧទាហរណ៍ LED អាចភ្លឺដោយជួរតង់ស្យុង ២-៣V ប៉ុន្តែបំពង់ភ្លឺ ១០០វ៉ាតត្រូវការតង់ស្យុង ២៤០V។ អ្នកអាចអានបន្ថែមពីតង់ស្យុងនៅលើ [ទំព័រតង់ស្យុងរបស់វិគីភីឌា](https://wikipedia.org/wiki/Voltage)។ + +ឧទាហរណ៍មួយនៃឧបករណ៍នេះគឺ potentiometer។ វាជាដែកបង្វិលដែលអ្នកអាចបង្វិលចេញចូលរវាងទីតាំងពីរនិងឧបករណ៍ស្វែថ៍វាស់ការបង្វិលនោះ។ + +![Potentiometer ត្រូវបានដាក់នៅចំណុចមួយ ពេលផ្ញើតង់ស្យុង ៥ វ៉ុល និងត្រឡប់មកវិញ ៣.៨ វ៉ុល](../../../../../translated_images/km/potentiometer.35a348b9ce22f6ec.webp) + +ឧបករណ៍ IoT នឹងផ្ញើសញ្ញាអគ្គិសនីទៅ potentiometer នៅតង់ស្យុងមួយ ដូចជា ៥ វ៉ុល (5V)។ ពេល potentiometer ត្រូវបានកំណត់ វាប្ដូរតង់ស្យុងដែលចេញពីចំហៀងផ្សេងទៀត។ សូមគិតថាអ្នកមាន potentiometer ដែលបានស្លាកដាក់ជាដែកបង្វិលពី ០ ទៅ [១១](https://wikipedia.org/wiki/Up_to_eleven) ដូចជា knob កម្រិតសំឡេងនៅលើ amplifier។ ពេល potentiometer នៅទីតាំងបិទពេញលេញ (០) តង់ស្យុង ០ វ៉ុល (០V) នឹងចេញ។ ពេលវានៅទីតាំងបើកពេញលេញ (11) តង់ស្យុង ៥ វ៉ុល (5V) នឹងចេញ។ + +> 🎓 នេះគ្រាន់តែជាការពិពណ៌នាផ្ទាល់យ៉ាងសាមញ្ញ ហើយអ្នកអាចអានបន្ថែមពី potentiometers និង variable resistors នៅលើ [ទំព័រ potentiometer របស់វិគីភីឌា](https://wikipedia.org/wiki/Potentiometer)។ + +តង់ស្យុងដែលចេញពីឧបករណ៍ស្វែថ៍នឹងត្រូវបានអ្នក IoT អាន ហើយឧបករណ៍អាចឆ្លើយតបការប្រើប្រាស់វា។ ឧបករណ៍ស្វែថ៍នីតិវិធីនេះ អាចជាតម្លៃចៃដន្យ ឬអាចផ្គូផ្គងទៅឯកតាតម្លៃស្តង់ដារមួយ។ ឧទាហរណ៍ឧបករណ៍វាស់សីតុណ្ហភាពអាណាឡុកដែលផ្អែកលើ [thermistor](https://wikipedia.org/wiki/Thermistor) នឹងប្ដូរ Resistance ដោយផ្អែកលើសីតុណ្ហភាព។ តង់ស្យុងបញ្ចេញអាចបម្លែងទៅជា សីតុណ្ហភាពក្នុងគេលវីន (Kelvin) ហើយបំលែងទៅ °C ឬ °F តាមរយៈកូដគណនា។ + +✅ តើអ្នកគិតថាអ្វីនឹងកើតឡើង ប្រសិនបើឧបករណ៍ស្វែថ៍ផ្ដល់តង់ស្យុងខ្ពស់ជាងតង់ស្យុងដែលបានផ្ញើ (ឧទាហរណ៍ មកពីប្រភពថាមពលខាងក្រៅ)? ⛔️ សូមកុំស៊ើបអង្កេតរឿងនេះ។ + +#### ការបម្លែងពីអាណាឡុកទៅឌីជីថល + +ឧបករណ៍ IoT ជាឌីជីថល - វាមិនអាចដំណើរការជាមួយតម្លៃអាណាឡុកទេ វាដំណើរការជាមួយតែលេខ 0 និង 1 តែប៉ុណ្ណោះ។ មានន័យថាតម្លៃស្វែថ៍អាណាឡុកត្រូវបានបម្លែងទៅជាសញ្ញាឌីជីថល មុនពេលវាអាចដំណើរការ។ ឧបករណ៍ IoT ច្រើនមានឧបករណ៍បម្លែងអាណាឡុកទៅឌីជីថល (ADC) សម្រាប់បម្លែងបញ្ចូលអាណាឡុកទៅជា តំណាងឌីជីថលនៃតម្លៃរបស់វា។ ឧបករណ៍ស្វែថ៍អាចដំណើរការជាមួយ ADC តាមរយៈផ្ទាំងភ្ជាប់។ ឧទាហរណ៍ នៅក្នុងប្រព័ន្ធ Seeed Grove ជាមួយ Raspberry Pi ឧបករណ៍ស្វែថ៍អាណាឡុកភ្ជាប់ទៅពិន្ទុច្រកជាក់លាក់លើ 'hat' ដែលអង្គុយលើ Pi និងភ្ជាប់ទៅរ៉ូបោត GPIO របស់ Pi ហើយ hat នោះមាន ADC សម្រាប់បម្លែងតង់ស្យុងទៅជាសញ្ញាឌីជីថលដែលអាចផ្ញើចេញពីរ៉ូបោត GPIO របស់ Pi។ + +សូមគិតថាអ្នកមានឧបករណ៍ស្វែថ៍ពន្លឺអាណាឡុកដែលភ្ជាប់ទៅឧបករណ៍ IoT ដែលប្រើ 3.3V និងត្រឡប់តម្លៃចេញ 1V។ តង់ស្យុង 1V នេះមិនមានអត្ថន័យនៅក្នុងពិភព 0 និង 1 ទេ ដូច្នេះវាត្រូវបានបម្លែង។ តង់ស្យុងនេះនឹងត្រូវបានបម្លែងទៅតម្លៃអាណាឡុកដោយការវាស់តាមការតម្រូវរបស់ឧបករណ៍ និងស្វែថ៍។ ឧទាហរណ៍មួយមកពីឧបករណ៍ស្វែថ៍ពន្លឺ Seeed Grove ដែលអំពាវនាវតម្លៃចាប់ពី 0 ទៅ 1,023។ សម្រាប់ឧបករណ៍នេះដំណើរការនៅ 3.3V តង់ស្យុងចេញ 1V នឹងជាតម្លៃ 300។ ឧបករណ៍ IoT មិនអាចដោះស្រាយ 300 ជាតម្លៃអាណាឡុកបានទេ ដូចនេះតម្លៃនេះនឹងត្រូវបានបម្លែងទៅជា `0000000100101100` ដែលជារូបមន្តប៊៊ីណារីរបស់ 300 ដោយ Grove hat។ វានឹងត្រូវបានដំណើរការដោយឧបករណ៍ IoT។ + +✅ ប្រសិនបើអ្នកមិនស្គាល់របៀបបង្ហាញលេខជាប៊៊ីណារី សូមស្វែងយល់បន្តិចពីរបៀបតំណាងលេខជាមួយ 0 និង 1។ [មេរៀនណែនាំប៊៊ីណារីរបស់ BBC Bitesize](https://www.bbc.co.uk/bitesize/guides/zwsbwmn/revision/1) គឺជាកន្លែងល្អក្នុងការចាប់ផ្តើម។ + +ក្នុងប្រធានបទកម្មវិធី អ្វីៗទាំងនេះភាគច្រើនត្រូវបានគ្រប់គ្រងដោយបណ្ណាល័យដែលភ្ជាប់ជាមួយឧបករណ៍ស្វែថ៍ ដូច្នេះអ្នកមិនចាំបាច់បារម្ភអំពីការបម្លែងនេះជារបស់អ្នកឯងទេ។ សម្រាប់ឧបករណ៍ស្វែថ៍ពន្លឺ Grove អ្នកនឹងប្រើបណ្ណាល័យ Python ហើយហៅទ្រនិច `light` ឬប្រើបណ្ណាល័យ Arduino ហើយហៅ `analogRead` ដើម្បីទទួលបានតម្លៃ 300។ + +### ឧបករណ៍ស្វែថ៍ឌីជីថល + +ឧបករណ៍ស្វែថ៍ឌីជីថល ដូចជាឧបករណ៍ស្វែថ៍អាណាឡុក វាស្វែងយល់ពីពិភពដោយប្រើប្រាស់ការប្រែប្រួលតង់ស្យុងអគ្គិសនី។ ខុសគ្នាគឺវាបញ្ចេញសញ្ញាឌីជីថល មួយនេះអាចធ្វើបានដោយវាស់តែរដ្ឋខ្ទង់ពីរឬក៏ដោយប្រើ ADC នៅក្នុងឧបករណ៍ផ្ទាល់។ ឧបករណ៍ស្វែថ៍ឌីជីថលកំពុងក្លាយជារឿងទូទៅកើនឡើង ដើម្បីជៀសវាងករណីត្រូវប្រើ ADC នៅក្នុងផ្ទាំងភ្ជាប់ ឬលើឧបករណ៍ IoT ផ្ទាល់។ + +ឧបករណ៍ស្វែថ៍ឌីជីថលធម្មតាសាមញ្ញគឺប៊ូតុង ឬស្វ៊ីច។ នេះគឺជាឧបករណ៍ស្វែថ៍មានរដ្ឋពីរគឺ បើក ឬបិទ។ + +![ប៊ូតុងប្រាប់ថាបានផ្ញើ ៥ វ៉ុល។ ពេលមិនបានចុច វាទទួល ០ វ៉ុល ប្រសិនបើបានចុច វាទទួល ៥ វ៉ុល](../../../../../translated_images/km/button.eadb560b77ac45e5.webp) + +ពិន្ទុ (Pins) លើឧបករណ៍ IoT ដូចជា GPIO អាចវាស់សញ្ញានេះផ្ទាល់ជាលេខ ០ ឬ ១។ ប្រសិនបើតង់ស្យុងដែលផ្ញើនិងតង់ស្យុងដែលត្រឡប់ជាមួយគ្នា តម្លៃដែលអានបានគឺ 1 មិនដូច្នេះទៅ តម្លៃនឹងគឺ 0។ មិនចាំបាច់បម្លែងសញ្ញាទេ វាមានតែ 0 ឬ 1 ប៉ុណ្ណោះ។ + +> 💁 តង់ស្យុងមិនត្រូវបញ្ចេញតម្លៃត្រឹមត្រូវពេញលេញទេ ព្រោះមុខងារពិសេសនៃឧបករណ៍មួយចំនួនមានការប្រឆាំងប្រឆាំងលើសរសៃឆ្លងបន្ទាត់ក្នុងឧបករណ៍។ ឧទាហរណ៍ GPIO យ៉ាងច្បាស់នៅលើ Raspberry Pi ដំណើរការលើ 3.3V ហើយអានតង់ស្យុងត្រឡប់ដែលលើស 1.8V ជា 1 ខណៈពេលនៅក្រោម 1.8V ជា 0។ + +* 3.3V ចូលទៅប៊ូតុង។ ប៊ូតុងបិទដូច្នេះ 0V ចេញ ដោយផ្ដល់តម្លៃ 0 +* 3.3V ចូលទៅប៊ូតុង។ ប៊ូតុងបើកដូច្នេះ 3.3V ចេញ ដោយផ្ដល់តម្លៃ 1 + +ឧបករណ៍ស្វែថ៍ឌីជីថលកំពុងឆ្លាស់ តម្លៃអាណាឡុក បន្ទាប់មកបម្លែងតាម ADC នៅលើឧបករណ៍ទៅជាសញ្ញាឌីជីថល។ ឧទាហរណ៍ឧបករណ៍ស្វែថ៍សីតុណ្ហភាពឌីជីថលមិនប្រែប្រួលពីតម្រូវការនៃ thermocouple ដូចជាឧបករណ៍អាណាឡុកទេ ហើយវានឹងវាស់ការប្រែប្រួលតង់ស្យុងដែលបង្កដោយ resistance នៃ thermocouple នៅសីតុណ្ហភាពចុងក្រោយ។ ជំនួសការផ្ដល់តម្លៃអាណាឡុក ហើយទុកឱ្យឧបករណ៍ឬផ្ទាំងភ្ជាប់បម្លែងសញ្ញា វាមាន ADC ត្រូវបានបង្កើតនៅក្នុងឧបករណ៍ស្វែថ៍ ផ្ទាល់បម្លែងតម្លៃនោះហើយផ្ញើវាជាសត្វ 0 និង 1 ទៅឧបករណ៍ IoT។ 0 និង 1 ទាំងនេះនឹងផ្ញើអត្រាសញ្ញាដូចគ្នាទៅសញ្ញាឌីជីថលសម្រាប់ប៊ូតុង ដែល 1 ជាតង់ស្យុងពេញ និង 0 ជាតង់ស្យុង 0V។ + +![ឧបករណ៍ស្វែថ៍សីតុណ្ហភាពឌីជីថលបម្លែងការអានអាណាឡុកទៅទិន្នន័យប៊៊ីណារី ដែល 0 គឺ 0 វ៉ុល និង 1 គឺ 5 វ៉ុល មុនផ្ញើទៅឧបករណ៍ IoT](../../../../../translated_images/km/temperature-as-digital.85004491b977bae1.webp) + +ការផ្ញើទិន្នន័យឌីជីថលអនុញ្ញាតឲ្យឧបករណ៍ស្វែថ៍ក្លាយទៅស្មុគស្មាញជាងមុន និងផ្ញើទិន្នន័យលម្អិតជាងមុន រហូតដល់ទិន្នន័យបោះពុម្ពចូលសម្ងាត់សម្រាប់ឧបករណ៍ស្វែថ៍មានសុវត្តិភាព។ ឧទាហរណ៍មួយគឺកាមេរ៉ា។ នេះគឺជាឧបករណ៍ស្វែថ៍ ដែលចាប់យករូបភាព និងផ្ញើវាជាទិន្នន័យឌីជីថល រួមមានរូបភាពនោះ ជាទូទៅក្នុងទ្រង់ទ្រាយស្ងៀមស្ងាត់ដូចជា JPEG ដើម្បីឧបករណ៍ IoT អាចអានបាន។ វាពិសេសត្រូវបានផ្សាយវីដេអូដោយចាប់យករូបភាព ហើយផ្ញើនូវគ្រាប់រូបភាពពេញលេញឬជាវីដេអូតូច។ + +## ឧបករណ៍បង្ហូរគឺជាអ្វី? + +ឧបករណ៍បង្ហូរជាឯកយ៉ាងផ្ទុយពីឧបករណ៍ស្វែថ៍ - វាបម្លែងសញ្ញាអគ្គិសនីពីឧបករណ៍ IoT របស់អ្នក ទៅនឹងប្រតិកម្មជាមួយពិភពរូបិយវត្ថុ ដូចជាបញ្ចេញពន្លឺ ឬសម្លេង ឬចល័តម៉ូទ័រ។ + +ឧបករណ៍បង្ហូរគ្រប់គ្រាន់មានដូចជា៖ + +* LED - វាបញ្ចេញពន្លឺពេលបើក +* ឯកស្បែក (Speaker) - បញ្ចេញសំឡេងដោយផ្អែកលើសញ្ញាផ្ញើពីក្រុម ពី buzzer មូលដ្ឋាន ដល់ឯកស្បែកអូឌីយោដែលអាចលេងតន្ត្រីបាន +* ម៉ូទ័រស្ដេប (Stepper motor) - បម្លែងសញ្ញាទៅជាចំនួនបង្វិលកំណត់ ដូចជា បង្វិល knob ៩០° +* Relay - ជាស្វ៊ីចដែលអាចបើក ឬបិទ ដោយសញ្ញាអគ្គិសនី។ វាអនុញ្ញាតឲ្យតង់ស្យុងតូចពីឧបករណ៍ IoT បើកតង់ស្យុងធំនៅខាងក្រៅ។ +* អេក្រង់ - ជាឧបករណ៍បង្ហូរស្មុគស្មាញ និងបង្ហាញព័ត៌​មានលើការបង្ហាញជាច្រើនផ្នែក។ អេក្រង់មានពីលម្អង LED ងាយស្រួលទៅអេក្រង់វិដេអូកម្រិតខ្ពស់។ + +✅ ស្វែងយល់ជ្រៅ។ តើទូរស័ព្ទរបស់អ្នកមានឧបករណ៍បង្ហូរអ្វីខ្លះ? + +## ការប្រើឧបករណ៍បង្ហូរ + +អនុវត្តការណែនាំដែលពាក់ព័ន្ធខាងក្រោមក្នុងការបន្ថែមឧបករណ៍បង្ហូរទៅឧបករណ៍ IoT របស់អ្នក ដែលគ្រប់គ្រងដោយឧបករណ៍ស្វែថ៍ ដើម្បីបង្កើតមណ្ឌលពន្លឺរាត្រី IoT។ វានឹងប្រមូលកម្រិតពន្លឺពីឧបករណ៍ស្វែថ៍ពន្លឺ ហើយប្រើឧបករណ៍បង្ហូរដាច់ដោយ LED ដើម្បីបញ្ចេញពន្លឺពេលកម្រិតពន្លឺគេរកឃើញទាបពេក។ + +![ក្រាបតំណ flow របស់ភារកិច្ចបង្ហាញ កម្រិតពន្លឺត្រូវបានអាន និងពិនិត្យ ហើយ LED ត្រូវបានគ្រប់គ្រង](../../../../../translated_images/km/assignment-1-flow.7552a51acb1a5ec8.webp) + +* [Arduino - Wio Terminal](wio-terminal-actuator.md) +* [កុំព្យូទ័រតែមួយផ្ទាំង - Raspberry Pi](pi-actuator.md) +* [កុំព្យូទ័រតែមួយផ្ទាំង - ឧបករណ៍វីរុច (Virtual device)](virtual-device-actuator.md) + +## ប្រភេទឧបករណ៍បង្ហូរ + +ដូចជា ឧបករណ៍ស្វែថ៍ ឧបករណ៍បង្ហូរមានប្រភេទអាណាឡុក ឬឌីជីថល។ + +### ឧបករណ៍បង្ហូរអាណាឡុក + +ឧបករណ៍បង្ហូរអាណាឡុកទទួលសញ្ញាអាណាឡុក ហើយបម្លែងទៅជាប្រតិកម្ម មួយដែលប្រតិកម្មនឹងផ្លាស់ប្ដូរតាមតង់ស្យុងដែលផ្តល់។ + + +ឧទាហរណ៍​មួយ​គឺ​ជា​អំពូល​អាច​កែ​បាន​ពន្លឺ ដូច​ជាអំពូល​ដែល​អ្នក​ខ្លះ​អាច​មាន​នៅក្នុង​ផ្ទះ​របស់​អ្នក។ បរិមាណ​វ៉ុល​វ៉ាល់​ដែល​ផ្គត់ផ្គង់​ទៅកាន់​អំពូល កំណត់​ថា​វា​បំភ្លឺ​ប៉ុណ្ណា។ + +![A light dimmed at a low voltage and brighter at a higher voltage](../../../../../translated_images/km/dimmable-light.9ceffeb195dec1a8.webp) + +ដូច​ជា​ជាមួយ​ឧបករណ៍​ស៊ិន​ស័រ​ណ៍ ហើយ​ឧបករណ៍ IoT ពិតប្រាកដ​ធ្វើការ​លើ​សញ្ញា​ឌីជីថល មិនមែន​សញ្ញា​អាណា​ឡូក​ទេ។ នេះ​មានន័យ​ថា​ដើម្បី​បញ្ជូន​សញ្ញា​អាណា​ឡូក​ ឧបករណ៍ IoT ត្រូវ​ការ​អ្នក​បម្លែង​ឌីជីថល​ទៅ​អាណា​ឡូក (DAC) ដែល​អាច​មាន​លើ​ឧបករណ៍ IoT ផ្ទាល់ ឬ​លើ​បន្ទះ​កុង​តាក់​ត័រ។ វានឹង​បម្លែង 0 និង 1 ពី​ឧបករណ៍ IoT ជាវ៉ុល​អាណា​ឡូក ដែល​អ្នក​ប្រតិបត្តិ​អាច​ប្រើបាន។ + +✅ តើ​អ្នក​គិត​ថា​អ្វី​ជា​អ្វី​មើល​ឃើញ​បើ​ឧបករណ៍ IoT បញ្ជូន​វ៉ុលខ្ពស់​ជាង​អ្វី​ដែល​អ្នក​ប្រតិបត្តិ​អាច​ទទួលបាន? +⛔️ មិន​ត្រូវ​តេស្ត​វា​ឡើយ។ + +#### ការបង្ហាញ​រយៈ​ពេល​ពុលស៍ (Pulse-Width Modulation) + +ជម្រើស​មួយ​ទៀត​សម្រាប់​បម្លែង​សញ្ញា​ឌីជីថល​ពី​ឧបករណ៍ IoT ទៅ​ជា​សញ្ញា​អាណា​ឡូក​គឺ​ការបង្ហាញ​រយៈ​ពេល​ពុលស៍។ វា​ពាក់ព័ន្ធ​នឹង​ការ​បញ្ជូន​ពុលស៍​ឌីជីថល​ខ្លី​ច្រើន ដូច​ជា​វា​ជា​សញ្ញា​អាណា​ឡូក។ + +ឧទាហរណ៍ អ្នក​អាច​ប្រើ PWM ដើម្បី​គ្រប់គ្រង​ល្បឿន​ម៉ូទ័រ។ + +សូមគិតថា អ្នកកំពុងគ្រប់គ្រង​ម៉ូទ័រ​មួយ​ដោយ​ផ្គត់ផ្គង់ 5V។ អ្នក​បញ្ជូន​ពុលស៍​ខ្លី​មួយ​ទៅ​ម៉ូទ័រ រួច​ប្ដូរ​វ៉ុល​ទៅ​ខ្ពស់ (5V) រយៈពេលពីររយភាគមួយ​នៃ​មួយ​វិនាទី (0.02s)។ ក្នុង​ពេលនេះ ម៉ូទ័រ​របស់​អ្នក​អាច​បង្វិល​បាន ១ រយភាគដំបូងនៃ​ការ​បង្វិល (0.1 មួយ​បង្វិល) ឬ 36°។ បន្ទាប់​ពី​នោះ​សញ្ញា​ឈប់​សម្រាក​សម្រាប់ពីររយភាគមួយ​នៃ​មួយ​វិនាទី (0.02s) បញ្ជូន​សញ្ញា​ទាប (0V)។ មួយ​វដ្ត​ផ្ទាល់​គ្នា​ពី​បើក​បិទ​នេះ រយៈពេល 0.04s។ វដ្ត​នេះ​បន្ដ​ទៀត។ + +![Pule width modulation rotation of a motor at 150 RPM](../../../../../translated_images/km/pwm-motor-150rpm.83347ac04ca38482.webp) + +មានន័យថា ក្នុង​មួយ​វិនាទី អ្នក​មាន 25 ពុលស៍ 5V ជា​រយៈពេល 0.02s ដែល​បង្វិល​ម៉ូទ័រ មួយ​ពុលស៍​តាម​មួយ​ពុលស៍​បន្ទាប់បន្ដ​ដោយ​​សម្រាក 0.02s ជា​សញ្ញា 0V មិន​បង្វិល​ម៉ូទ័រ។ មួយ​ពុលស៍​បង្វិល​ម៉ូទ័រ ១ រយភាគនៃ​ការ​បង្វិល មាន​អត្ថន័យ​ថា​ម៉ូទ័រ​បញ្ចប់​ការ​បង្វិល 2.5 ជុំ​ក្នុង​មួយ​វិនាទី។ អ្នក​បាន​ប្រើ​សញ្ញា​ឌីជីថល​ដើម្បី​បង្វិល​ម៉ូទ័រ​នៅ 2.5 ជុំ​ក្នុង​មួយ​វិនាទី ឬ 150 [ជុំ​ក្នុង​មួយ​នាទី](https://wikipedia.org/wiki/Revolutions_per_minute) (ជាម៉ោង​វាស់​ល្បឿន​បង្វិល​មិនស្តង់ដារ)។ + +```output +25 pulses per second x 0.1 rotations per pulse = 2.5 rotations per second +2.5 rotations per second x 60 seconds in a minute = 150rpm +``` + +> 🎓 នៅ​ពេល​សញ្ញា PWM បើក​សម្រាប់​ពាក់កណ្តាល​ពេលវេលា ហើយ​បិទ​សម្រាប់​ពាក់កណ្តាល​វេលា នេះ​ហៅ​ថា [ប្រាក់​ការងារ ៥០%](https://wikipedia.org/wiki/Duty_cycle)។ ប្រាក់​ការងារ​ត្រូវបាន​គេ​វាស់​ជា​ភាគ​រយ​ពេល​ដែល​សញ្ញា​នៅ​ស្ថានភាព​បើក ប្រៀបធៀប​នឹង​បិទ។ + +![Pule width modulation rotation of a motor at 75 RPM](../../../../../translated_images/km/pwm-motor-75rpm.a5e4c939934b6e14.webp) + +អ្នក​អាច​ប្រែប្រួល​ល្បឿន​ម៉ូទ័រ​ដោយ​ការ​ប្រែកម្មវិធី​ទំហំ​ពុលស៍។ ឧទាហរណ៍ ជាមួយ​ម៉ូទ័រ​ដូចគ្នា អ្នក​អាច​រក្សា​ពេលវេលា​នៃ​វដ្ត 0.04s ដដែល ដោយ​ធ្វើឲ្យ​ពុលស៍​បើក​ត្រឹម 0.01s ហើយ​ពុលស៍​បិទ​បង្កើន​ទៅជា 0.03s។ អ្នក​មាន​ចំនួន​ពុលស៍ ក្នុងមួយ​វិនាទី​ដដែល (25) ប៉ុន្តែ​មួយ​ពុលស៍ បើក​មាន​ប្រវែង​សីុ​មួយ​ង្វះ។ ពុលស៍ ប្រវែង​១​ង្វះ​បង្វិល​ម៉ូទ័រ ១ រយភាគពីរ នៃ​ការ​បង្វិល ហើយ​ក្នុង​មួយ​វិនាទី 25 ពុលស៍​នឹង​បញ្ចប់​ការ​បង្វិល 1.25 ជុំ ឬ 75rpm។ ដោយ​ប្ដូរ​ល្បឿន​ពុលស៍​នៃ​សញ្ញា​ឌីជីថល អ្នក​បាន​កាត់​បន្ថយ​ល្បឿន​ម៉ូទ័រ​អាណាឡូក។ + +```output +25 pulses per second x 0.05 rotations per pulse = 1.25 rotations per second +1.25 rotations per second x 60 seconds in a minute = 75rpm +``` + +✅ តើ​អ្នក​ធ្វើ​ដូចម្តេច​ដើម្បី​ឲ្យ​ការ​បង្វិល​ម៉ូទ័រ​ឈរជ្រៅ ជាពិសេស​ពេល​ល្បឿន​ទាប? តើ​អ្នក​នឹង​ប្រើ​ចំនួន​ប៉ុន្មាន​នៃ​ពុលស៍​ដ៏វែង​ជាមួយ​ការ​ឈប់រយៈពេល​វែង ឬ​ច្រើន​នៃ​ពុលស៍​ខ្លី​ជាមួយ​ការ​ឈប់​វែង​ខ្លី? + +> 💁 ឧបករណ៍​ស៊ិន​ស័រ​ខ្លះ ក៏​ប្រើ PWM ដែរ ដើម្បី​បម្លែង​សញ្ញា​អាណា​ឡូក​ទៅ​សញ្ញា​ឌីជីថល។ + +> 🎓 អ្នក​អាច​អាន​បន្ថែម​អំពី​ការ​បង្ហាញ​រយៈ​ពេល​ពុលស៍​នៅលើ [ទំព័រ​បង្ហាញ​រយៈ​ពេល​ពុលស៍​ក្នុង​វិគីភីឌា](https://wikipedia.org/wiki/Pulse-width_modulation)។ + +### អ្នក​ប្រតិបត្តិ​ឌីជីថល + +អ្នក​ប្រតិបត្តិ​ឌីជីថល ដូច​ជា​ស៊ិន​ស័រ​ឌីជីថល មាន​ស្ថានភាព​ពីរ​ដែល​បាន​គ្រប់គ្រង​ដោយ​វ៉ុល​ខ្ពស់ ឬ ទាប ឬ​មាន DAC បំពាក់​មកជាមួយ ដូច្នេះ​អាច​បម្លែង​សញ្ញា​ឌីជីថល​ទៅជា​អាណា​ឡូក​បាន។ + +អ្នក​ប្រតិបត្តិ​ឌីជីថល​សាមញ្ញ​មួយ​គឺ LED។ នៅពេល​ឧបករណ៍​បញ្ជូន​សញ្ញា​ឌីជីថល 1 វ៉ុល​ខ្ពស់​ត្រូវ​បាន​បញ្ជូន​ដើម្បី​បំភ្លឺ LED។ នៅពេល​បញ្ជូន​សញ្ញា 0 វ៉ុល​នឹង​​ចុះ​ទៅ 0V ហើយ LED បិទ។ + +![A LED is off at 0 volts and on at 5V](../../../../../translated_images/km/led.ec6d94f66676a174.webp) + +✅ តើ​អ្នក​គិត​ថា​មាន​អ្នក​ប្រតិបត្តិ​ពីរ​ស្ថានភាព​សាមញ្ញ​ផ្សេងទៀត​ជា​អ្វី​ទៀត? ឧទាហរណ៍​មួយ​គឺ សូលិនូអ៊ីដ ដែល​ជា​ម៉ាញេទិច​គីមី​ដែល​អាច​ផ្ដល់​សកម្មភាព​ដូច​ជា​ការ​ដឹក​ប៊ុល​តូផ្ទាំង​ទូរ បើក/បិទ ខ្ទុកទ្វារ។ + +អ្នកប្រតិបត្តិ​ឌីជីថល​កម្រិត​ខ្ពស់​បន្ថែម ដូច​ជា​អេក្រង់ ត្រូវ​តែ​បញ្ជូន​ទិន្នន័យ​ឌីជីថល​នៅ​ទំ​រង់​សមរម្យ។ ពួកវា​ធម្មតាមក​ជាមួយ​បណ្ណាល័យ ដែលធ្វើអោយងាយស្រួលក្នុងការបញ្ជូន​ទិន្នន័យ​ត្រឹមត្រូវ​ដើម្បី​គ្រប់គ្រង​ពួកវា។ + +--- + +## 🚀 thách thức + +ការប្រកួតប្រជែង​ក្នុង​មេរៀន​កន្លងមក គឺ​បញ្ជី​ឧបករណ៍ IoT ច្រើន​ប៉ុណ្ណា​ដែល​អ្នកអាចរកឃើញ​នៅក្នុង​ផ្ទះ សាលា ឬ​កន្លែង​ធ្វើការ ហើយ​កំណត់ថា​ពួកវា​ត្រូវ​បាន​បង្កើត​ជុំវិញ​មីក្រូក្រង់​បញ្ជា ឬ​កុំព្យូទ័រ​តែមួយ​បន្ទះ ឬ​ជា​ការ​ចម្រុះ​គ្នា។ + +សម្រាប់​ឧបករណ៍​ទាំងអស់​ដែល​អ្នក​បាន​បញ្ជី វា​តភ្ជាប់​ជាមួយ​​ស៊ិន​ស័រ និង​អ្នក​ប្រតិបត្តិ​អ្វីខ្លះ? គោលបំណង​នៃ​ស៊ិន​ស័រ និង​អ្នក​ប្រតិបត្តិ​ដែល​ភ្ជាប់ជាមួយ​ឧបករណ៍​ទាំងនេះ​ជា​អ្វី? + +## កម្រង​សំណួរ​បន្ទាប់​មេរៀន + +[Post-lecture quiz](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/6) + +## ការត្រួតពិនិត្យ និង សិក្សាផ្ទាល់ខ្លួន + +* អាន​អំពី​អគ្គិសនី និង សៀគ្វី នៅលើ [ThingLearn](http://thinglearn.jenlooper.com/curriculum/)។ +* អាន​អំពី​ប្រភេទស៊ិន​ស័រ​តម្លាភាព​ផ្សេងៗ នៅលើ [មេរៀន​អ្នកដឹកនាំ​ស៊ិន​ស័រ​តម្លាភាព Seeed Studios](https://www.seeedstudio.com/blog/2019/10/14/temperature-sensors-for-arduino-projects/) +* អាន​អំពី LED នៅលើ [ទំព័រ LED នៅវិគីភីឌា](https://wikipedia.org/wiki/Light-emitting_diode) + +## មុខងារ + +[ស្រាវ​ជ្រាវ​អំពី​ស៊ិន​ស័រ និង​អ្នក​ប្រតិបត្តិ](assignment.md) + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំសម្រាប់ភាពត្រឹមត្រូវ សូមបានជ្រាបថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬការខុសឆ្គង។ ឯកសារដើមនៅក្នុងភាសាដើមគួរត្រូវបានគិតថាជា աղբទិន្នន័យអំណាចបំផុត។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឱ្យប្រើការបកប្រែដោយមនុស្សដែលមានជំនាញវិជ្ជាជីវៈ។ យើងមិនទទួលខណៈពេលឧបត្ថម្ភចំពោះការយល់ច្រឡំនិងការបកប្រែខុសពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/1-getting-started/lessons/3-sensors-and-actuators/assignment.md b/translations/km/1-getting-started/lessons/3-sensors-and-actuators/assignment.md new file mode 100644 index 000000000..80d7e0035 --- /dev/null +++ b/translations/km/1-getting-started/lessons/3-sensors-and-actuators/assignment.md @@ -0,0 +1,24 @@ +# ស្រាវជ្រាវអំពីឧបករណ៍សែសឺរ និងឧបករណ៍បញ្ចេញសំពាធ + +## សេចក្ដីណែនាំ + +មេរៀននេះបានគ្របដណ្តប់អំពីឧបករណ៍សែសឺរ និងឧបករណ៍បញ្ចេញសំពាធ។ ស្រាវជ្រាវ និងពណ៌នាអំពីឧបករណ៍សែសឺរមួយ និងឧបករណ៍បញ្ចេញសំពាធមួយ ដែលអាចប្រើជាមួយឧបករណ៍អភិវឌ្ឍន៍ IoT រួមមាន៖ + +* តើវាធ្វើអ្វី +* អេឡិចត្រូនិច/ឧបករណ៍ដែកអាចប្រើប្រាស់នៅខាងក្នុង +* តើវាជាអាណាឡូក ឬឌីជីថល +* តើអង្គភាព និងជួរបញ្ចូល ឬវាស់វែងមានអ្វីខ្លះ + +## តារាងវាយតម្លៃ + +| ក្រមសម្ព័ន្ធ | ល្អឥតខ្ចោះ | គ្រប់គ្រាន់ | ត្រូវការ ការកែលម្អ | +| -------- | --------- | -------- | ----------------- | +| ពណ៌នាអំពីឧបករណ៍សែសឺរ | ពណ៌នាអំពីឧបករណ៍សែសឺររួមបញ្ចូលជាមួយព័ត៌មានលម្អិតសម្រាប់ផ្នែកទាំង​4 ដែលបានរាយការណ៍ខាងលើ។ | ពណ៌នាអំពីឧបករណ៍សែសឺរ ប៉ុន្តែមានតែ 2-3 ផ្នែកពីផ្នែកខាងលើ | ពណ៌នាអំពីឧបករណ៍សែសឺរ ប៉ុន្តែមានតែផ្នែកតែ 1 ពីផ្នែកខាងលើ | +| ពណ៌នាអំពីឧបករណ៍បញ្ចេញសំពាធ | ពណ៌នាអំពីឧបករណ៍បញ្ចេញសំពាធ រួមបញ្ចូលជាមួយព័ត៌មានលម្អិតសម្រាប់ផ្នែកទាំង​4 ដែលបានរាយការណ៍ខាងលើ។ | ពណ៌នាអំពីឧបករណ៍បញ្ចេញសំពាធ ប៉ុន្តែមានតែ 2-3 ផ្នែកពីផ្នែកខាងលើ | ពណ៌នាអំពីឧបករណ៍បញ្ចេញសំពាធ ប៉ុន្តែមានតែផ្នែកតែ 1 ពីផ្នែកខាងលើ | + +--- + + +**បំណុលភារកិច្ច**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខំប្រឹងជ្រាបច្បាស់ភាពត្រឹមត្រូវ សូមយល់ព្រមថាការបកប្រែដោយស្វ័យប្រវត្តិនេះអាចមានកំហុស ឬការមិនត្រឹមត្រូវខ្លះ។ ឯកសារដើមក្នុងភាសាមួយរបស់ខ្លួនគួរត្រូវបានគេដាក់ទុកជាមូលដ្ឋានឯកសារដែលមានសមត្ថកិច្ច។ សម្រាប់ព័ត៌មានសំខាន់ៗ ផ្ដល់អនុក្រឹត្យដោយអ្នកជំនាញបកប្រែផ្នែកមនុស្សគឺជាការផ្ដល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសៗមកពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md b/translations/km/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md new file mode 100644 index 000000000..d25d8b6cb --- /dev/null +++ b/translations/km/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md @@ -0,0 +1,123 @@ +# សាងសង់ភ្លើងបន្ទប់យប់ - Raspberry Pi + +នៅផ្នែកនេះនៃบทเรียน អ្នកនឹងបន្ថែម LED ទៅកាន់ Raspberry Pi របស់អ្នក ហើយប្រើវាដើម្បីបង្កើតភ្លើងបន្ទប់យប់។ + +## ឧបករណ៍រឹង + +ភ្លើងបន្ទប់យប់ឥឡូវនេះត្រូវការឧបករណ៍បញ្ចូនសញ្ញា។ + +ឧបករណ៍បញ្ចូនសញ្ញាទៅគឺជា **LED** មួយ [light-emitting diode](https://wikipedia.org/wiki/Light-emitting_diode) ដែលបញ្ចេញពន្លឺនៅពេលមានចរន្តរត់តាមវា។ នេះគឺជាឧបករណ៍បញ្ចូនសញ្ញាស៊េរីដែលមានស្ថានភាពចំនួន 2 គឺ បើក និង បិទ។ ការផ្ញើតម្លៃ 1 នឹងបើក LED ហើយ 0 នឹងបិទវា។ LED គឺជាឧបករណ៍បញ្ចូនសញ្ញាប្រភេទ Grove ដែលត្រូវបានភ្ជាប់ទៅកាន់ក្បាល Grove Base នៅលើ Raspberry Pi។ + +ហេតុផលនៃការតភ្ជាប់ភ្លើងបន្ទប់យប់ជា pseudo-code គឺ៖ + +```output +Check the light level. +If the light is less than 300 + Turn the LED on +Otherwise + Turn the LED off +``` + +### តភ្ជាប់ LED + +LED Grove មាននៅក្នុងម៉ូឌុលមួយជាមួយនឹងជម្រើសរបស់ LED ដែលអាចជ្រើសរើសពណ៌បាន។ + +#### បេសកកម្ម - តភ្ជាប់ LED + +តភ្ជាប់ LED ។ + +![A grove LED](../../../../../translated_images/km/grove-led.6c853be93f473cf2.webp) + +1. ជ្រើសរើស LED ដែលអ្នកចូលចិត្ត ហើយដាក់ខ្សែជើងចូលទៅក្នុងរន្ទះពីរនៃម៉ូឌុល LED ។ + + LED គឺជាឌាយអុីតដែលបញ្ចេញពន្លឺ ហើយឌាយអុីតគឺជាឧបករណ៍អេឡិចត្រូនិចមួយដែលអាចនាំចរន្តបានត្រឹមតែទិសដៅមួយ។ នេះមានន័យថា LED ត្រូវតែតភ្ជាប់ត្រឹមត្រូវ ប្រសិនបើមិនដូច្នោះវានឹងមិនដំណើរការទេ។ + + មួយក្នុងចំណោមខ្សែជើងរបស់ LED គឺជាគ្រាប់អវិជ្ជមាន (positive pin) ហើយមួយទៀតគឺជាគ្រាប់អវិជ្ជមាន (negative pin)។ LED មិនមែនជា វត្តមត្រូវនោះទេ ហើយវាត្រូវបានបតបែនស្តាំតិចមួយខ្នងនៅម្ខាង។ ម្ខាងដែលបតបែនស្រួលនោះគឺគ្រាប់អវិជ្ជមាន។ នៅពេលអ្នកភ្ជាប់ LED ទៅម៉ូឌុល សូមប្រាកដថាគ្រាប់ជាមួយផ្នែកមូលត្រូវបានភ្ជាប់ទៅលើស្វុច​ម៉ាតឈ្មោះ **+** នៅខាងក្រៅម៉ូឌុល ហើយផ្នែកបតបែនតិចត្រូវបានភ្ជាប់ទៅស្វុចជិតកណ្ដាលម៉ូឌុល។ + +1. ម៉ូឌុល LED មានប៊ូតុងបង្វិលមួយដែលអនុញ្ញាតឱ្យអ្នកគ្រប់គ្រងការតុបតែងពន្លឺ។ ជុំវិញវាចុះបន្ថយដល់ចំនុចដំបូងដោយបង្វិលនោះទិសវិញនោះដោយប្រើក្រចក Phillips ដែលតូច។ + +1. ដាក់ចុងខ្លះនៃខ្សែ Grove មួយចូលទៅក្នុងស្វុចនៅលើម៉ូឌុល LED។ វានឹងត្រូវបញ្ចូលតែមួយទិសគត់។ + +1. នៅពេល Raspberry Pi បិទថាមពល សូមភ្ជាប់ចុងខ្វះនៃខ្សែ Grove ទៅកាន់ស្វុចឌីជីថលដែលមានស្លាប់ **D5** នៅលើក្បាល Grove Base ដែលភ្ជាប់ទៅ Pi ។ ស្វុចនេះជាស្វុចទីពីរពីខាងឆ្វេង នៅជួរនៃស្វុចជាប់ជាមួយភីន GPIO ។ + +![The grove LED connected to socket D5](../../../../../translated_images/km/pi-led.97f1d474981dc35d.webp) + +## កម្មវិធីភ្លើងបន្ទប់យប់ + +ភ្លើងបន្ទប់យប់ឥឡូវនេះអាចត្រូវបានកម្មវិធីដោយប្រើឧបករណ៍ចាប់ពន្លឺ Grove និង LED Grove។ + +### បេសកកម្ម - កម្មវិធីភ្លើងបន្ទប់យប់ + +កម្មវិធីភ្លើងបន្ទប់យប់។ + +1. ដំណើរការ Pi ហើយរង់ចាំវាឱ្យបើកឡើង + +1. បើកគម្រោងភ្លើងបន្ទប់យប់ក្នុង VS Code ដែលអ្នកបានបង្កើតនៅផ្នែកមុននៃបេសកកម្មនេះ ខណៈយោងដំណើរការត្រង់លើ Pi ឬភ្ជាប់តាមបន្ថែម Remote SSH ។ + +1. បន្ថែមកូដដូចតទៅទៅក្នុងឯកសារ `app.py` ដើម្បីនាំចូលបណ្ណាល័យតម្រូវការ។ វាគួរត្រូវបានបន្ថែមនៅកំពូលក្រោមបន្ទាត់ `import` ផ្សេងទៀត។ + + ```python + from grove.grove_led import GroveLed + ``` + + ពាក្យបញ្ជា `from grove.grove_led import GroveLed` នាំចូល `GroveLed` ពីបណ្ណាល័យ Grove Python។ បណ្ណាល័យនេះមានកូដរួមសម្រាប់បន្តរោលជាមួយ LED Grove។ + +1. បន្ថែមកូដដូចតទៅបន្ទាប់ពីការប្រកាស `light_sensor` ដើម្បីបង្កើតអត្ថិប័ត្រមួយនៃថ្នាក់ដែលគ្រប់គ្រង LED៖ + + ```python + led = GroveLed(5) + ``` + + បន្ទាត់ `led = GroveLed(5)` បង្កើតអត្ថិប័ត្រថ្នាក់ `GroveLed` ដែលភ្ជាប់ទៅភីន **D5** - ភីន Grove ឌីជីថលដែល LED ត្រូវបានភ្ជាប់។ + + > 💁 ស្វុចទាំងអស់មានលេខភីនផ្សេងគ្នា។ ភីន 0, 2, 4 និង 6 គឺជាភីនអាណាឡុក ភីន 5, 16, 18, 22, 24 និង 26 គឺជាភីនឌីជីថល។ + +1. បន្ថែមការត្រួតពិនិត្យមួយនៅក្នុងរង្វង់ `while` ហើយមុន `time.sleep` ដើម្បីពិនិត្យកម្រិតពន្លឺ ហើយបើក ឬបិទ LED៖ + + ```python + if light < 300: + led.on() + else: + led.off() + ``` + + កូដនេះពិនិត្យតម្លៃ `light` ប្រសិនបើតម្លៃនេះតិចជាង 300 វានឹងហៅមេតូដ `on` នៃថ្នាក់ `GroveLed` ដែលផ្ញើតម្លៃឌីជីថល 1 ទៅ LED បើកវា។ ប្រសិនបើតម្លៃពន្លឺធំជាងឬស្មើ 300 វានឹងហៅមេតូដ `off` ដែលផ្ញើតម្លៃឌីជីថល 0 ទៅ LED បិទវា។ + + > 💁 កូដនេះគួរត្រូវបានបង្រួមនៅកម្រិតដូច `print('Light level:', light)` ដើម្បីមានទីតាំងក្នុងរង្វង់ while! + + > 💁 នៅពេលផ្ញើតម្លៃឌីជីថលទៅឧបករណ៍បញ្ចូនសញ្ញា តម្លៃ 0 ជារថ្ម 0V ហើយតម្លៃ 1 ជាវ៉ុលត្រូវបំផុតសម្រាប់ឧបករណ៍។ សម្រាប់ Raspberry Pi ជាមួយឧបករណ៍ Grove ចំនាយ 1 គឺ 3.3V ។ + +1. ពី Terminal របស់ VS Code រត់បញ្ជាដូចខាងក្រោមដើម្បីរត់កម្មវិធី Python របស់អ្នក៖ + + ```sh + python3 app.py + ``` + + តម្លៃពន្លឺនឹងត្រូវបង្ហាញនៅលើកុងសូល។ + + ```output + pi@raspberrypi:~/nightlight $ python3 app.py + Light level: 634 + Light level: 634 + Light level: 634 + Light level: 230 + Light level: 104 + Light level: 290 + ``` + +1. បិទ និងបើកឧបករណ៍ចាប់ពន្លឺ។ ហេតុជាចោល LED នឹងបំភ្លឺប្រសិនបើកម្រិតពន្លឺគឺ 300 ឬតិចជាង ហើយបិទពេលកម្រិតពន្លឺធំជាង 300 ។ + + > 💁 ប្រសិនបើ LED មិនបើក សូមប្រាកដថាវាត្រូវបានភ្ជាប់ត្រឹមត្រូវ ហើយប៊ូតុងបង្វិលត្រូវបានដាក់ជំពូកពេញ។ + +![The LED connected to the Pi turning on and off as the light level changes](../../../../../images/pi-running-assignment-1-1.gif) + +> 💁 អ្នកអាចរកឃើញកូដនេះនៅក្នុងថត [code-actuator/pi](../../../../../1-getting-started/lessons/3-sensors-and-actuators/code-actuator/pi)។ + +😀 កម្មវិធីភ្លើងបន្ទប់យប់របស់អ្នកបានជោគជ័យ! + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបំលែងភាសាដោយប្រើសេវាកម្មបំលែងភាសា AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះជាយើងខិតខំប្រឹងប្រែងដើម្បីភាពត្រឹមត្រូវ ក៏សូមយល់ឲ្យបានថាបំលែងភាសាដោយស្វ័យប្រវត្តិក្នុងករណីមួយចំនួនអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមនៅក្នុងភាសាមួយដើមគេគួរត្រូវបានចាត់ទុកថាជាមូលដ្ឋានទិន្នន័យដែលមានសុពលភាព។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមផ្តល់អនុសាសន៍ឱ្យមានការបំលែងភាសាដោយមនុស្សជំនាញ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំនា ឬការបកស្រាយមិនត្រឹមត្រូវ ដែលមានមូលហេតុចេញពីការប្រើប្រាស់បំលែងភាសានេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md b/translations/km/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md new file mode 100644 index 000000000..ab32478be --- /dev/null +++ b/translations/km/1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md @@ -0,0 +1,103 @@ +# បង្កើតភ្លើងរាត្រី - Raspberry Pi + +នៅក្នុងផ្នែកនេះនៃមេរៀន អ្នកនឹងបន្ថែមខ្សែប្រសាទពន្លឺទៅកាន់ Raspberry Pi របស់អ្នក។ + +## ទំព័រឧបករណ៍ + +ខ្សែប្រសាទសម្រាប់មេរៀននេះគឺជាខ្សែពន្លឺ ដែលប្រើ [photodiode](https://wikipedia.org/wiki/Photodiode) ដើម្បីបម្លែងពន្លឺទៅជាសញ្ញាអាគុយ។ នេះគឺជាឧបករណ៍កាំរស្មីវិញ្ញាបនបត្រដែលផ្ញើតម្លៃគត់ពី 0 ទៅ 1,000 ដែលបង្ហាញពីចំនួនពន្លឺដែលជាភាគរយដែលមិនទាក់ទងទៅនឹងឯកតាមาต្រដ្ឋានណាមួយដូចជា [lux](https://wikipedia.org/wiki/Lux)។ + +ខ្សែពន្លឺគឺជាឧបករណ៍ Grove ខាងក្រៅ ហើយត្រូវតែភ្ជាប់ទៅកាន់បាស Grove ប្រភេទ Base hat នៅលើ Raspberry Pi ។ + +### ភ្ជាប់ខ្សែពន្លឺ + +ខ្សែ Grove ដែលប្រើសម្រាប់រកមើលកម្រិតពន្លឺ ត្រូវតែភ្ជាប់ទៅកាន់ Raspberry Pi។ + +#### ការងារ - ភ្ជាប់ខ្សែពន្លឺ + +ភ្ជាប់ខ្សែពន្លឺ + +![A grove light sensor](../../../../../translated_images/km/grove-light-sensor.b8127b7c434e632d.webp) + +1. ដាក់ចុងមួយនៃខ្សែ Grove ចូលទៅក្នុងរន្ធនៅលើម៉ូឌុលខ្សែពន្លឺ។ វានឹងបញ្ចូលបានតែមាត្រាម្យ៉ាងទេ។ + +1. ពេល Raspberry Pi មិនដំណើរការ សូមភ្ជាប់ចុងខ្សែក្រោយនៃខ្សែ Grove ទៅកាន់រន្ធអាឡូហ្គោន្ថែម A0 នៅលើ Grove Base hat ដែលភ្ជាប់នឹង Pi ។ រន្ធនេះគឺជារន្ធទីពីរពីឆ្វេង នៅក្នុងជួររន្ធនៅក្បែរពីប៉ាំង GPIO ។ + +![The grove light sensor connected to socket A0](../../../../../translated_images/km/pi-light-sensor.66cc1e31fa48cd7d.webp) + +## បញ្ចូលកម្មវិធីសម្រាប់ខ្សែពន្លឺ + +ឧបករណ៍ឥឡូវនេះអាចត្រូវបានព្យាយាមបញ្ចូលកម្មវិធីដោយប្រើ Grove ខ្សែពន្លឺ។ + +### ការងារ - បញ្ចូលកម្មវិធីខ្សែពន្លឺ + +បញ្ចូលកម្មវិធីឧបករណ៍។ + +1. បើក Pi និងរងចាំរហូតដល់វាធ្វើការចាប់ផ្តើមបញ្ចប់។ + +1. បើកគម្រោង nightlight នៅក្នុង VS Code ដែលអ្នកបានបង្កើតនៅផ្នែកមុននៃវគ្គនេះ មិនថាដាក់ដំណើរការតាមផ្ទាល់លើ Pi ឬតាមរយៈ Remote SSH extension។ + +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` នាំចូល `GroveLightSensor` ពីបណ្ណាល័យ Grove Python។ បណ្ណាល័យនេះមានកូដសម្រាប់ធ្វើការជាមួយខ្សែ Grove light sensor ហើយត្រូវបានដំឡើងជាសកលនៅពេលបង្កើត Pi។ + +1. បន្ថែមកូដដូចខាងក្រោមបន្ទាប់ពីកូដខាងលើដើម្បីបង្កើតអថេរប្រភេទ class ដែលគ្រប់គ្រងខ្សែពន្លឺនេះ៖ + + ```python + light_sensor = GroveLightSensor(0) + ``` + + ជួរឈរលេខ `light_sensor = GroveLightSensor(0)` បង្កើតនាឡិកាអត្ថាធិប្បាយនៃ class `GroveLightSensor` ភ្ជាប់ទៅ pin **A0** - pin Grove analog ដែលខ្សែពន្លឺភ្ជាប់ទៅ។ + +1. បន្ថែមច្រើនលូលជាន់មួយបន្ទាប់ពីកូដខាងលើ ដើម្បីសំរាប់វិភាគតម្លៃខ្សែពន្លឺ និងបោះពុម្ពវានៅលើកុងសូល៖ + + ```python + while True: + light = light_sensor.light + print('Light level:', light) + ``` + + នេះនឹងអានកម្រិតពន្លឺបច្ចុប្បន្នលើផ្នែកតារាងពី 0 ទៅ 1,023 ដែលប្រើពីគុណលក្ខណៈ `light` របស់ class `GroveLightSensor`។ គុណលក្ខណៈនេះអានតម្លៃ analog ពី pin ។ បន្ទាប់មកតម្លៃនេះត្រូវបានបោះពុម្ពចេញកុងសូល។ + +1. បន្ថែមការគេងតិចមួយរយៈ ១ វិនាទីនៅចុង `loop` ពីព្រោះកម្រិតពន្លឺមិនត្រូវបានត្រួតពិនិត្យជាបន្តបន្ទាប់ទេ។ ការគេងនេះកាត់បន្ថយការប្រើថាមពលរបស់ឧបករណ៍។ + + ```python + time.sleep(1) + ``` + +1. ពី Terminal VS Code ចុចដំណើរការកម្មវិធី Python របស់អ្នក៖ + + ```sh + python3 app.py + ``` + + តម្លៃពន្លឺនឹងត្រូវបង្ហាញនៅលើកុងសូល។ សូមលាក់ និង បង្ហាញខ្សែ Grove light sensor ហើយតម្លៃនឹងផ្លាស់ប្តូរ៖ + + ```output + pi@raspberrypi:~/nightlight $ python3 app.py + Light level: 634 + Light level: 634 + Light level: 634 + Light level: 230 + Light level: 104 + Light level: 290 + ``` + +> 💁 អ្នកអាចស្វែងរកកូដនេះនៅក្នុងថត [code-sensor/pi](../../../../../1-getting-started/lessons/3-sensors-and-actuators/code-sensor/pi) ។ + +😀 ការបន្ថែមខ្សែគុណភាពទៅកម្មវិធី nightlight របស់អ្នកគឺជាការជោគជ័យ! + +--- + + +**ការបញ្ចាក់**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំក្នុងការផ្តល់នូវភាពត្រឹមត្រូវ សូមយល់ដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិនោះអាចមានកំហុស ឬការខុសប្លែក។ ឯកសារដើមក្នុងភាសាមាតុភូមិគួរត្រូវបានពិចារណាឲ្យជាឯកសារដែលមានសិទ្ធិច្បាស់លាស់។ សម្រាប់ព័ត៌មានសំខាន់ សូមអនុញ្ញាតឲ្យមានការបកប្រែដោយមនុស្សជាអ្នកជំនាញ។ យើងមិនទទួលខុសត្រូវចំពោះការជម្រោយច្រឡំ ឬការបកប្រែខុសប្លែកណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះទេ។ + \ No newline at end of file diff --git a/translations/km/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md b/translations/km/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md new file mode 100644 index 000000000..454ab7f56 --- /dev/null +++ b/translations/km/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md @@ -0,0 +1,117 @@ +# បង្កើតភ្លើងរាត្រី - ឧបករណ៍ IoT មើលឃើញជាមួយកុំព្យូទ័រ + +នៅក្នុងផ្នែកនេះនៃមេរៀន អ្នកនឹងបន្ថែម LED ទៅឧបករណ៍ IoT មើលឃើញរបស់អ្នក ហើយប្រើវាបង្កើតភ្លើងរាត្រី។ + +## ឧបករណ៍មើលឃើញជាមួយកុំព្យូទ័រ + +ភ្លើងរាត្រីត្រូវការអាគឌ្វេត័រមួយ ដែលបានបង្កើតក្នុងកម្មវិធី CounterFit។ + +អាគឌ្វេត័រនេះគឺជា **LED**។ នៅក្នុងឧបករណ៍ IoT របស់ពិភពជាក់ស្តែង វានឹងជា [ឌីអូឌ์បំពង់ភ្លើង](https://wikipedia.org/wiki/Light-emitting_diode) ដែលបញ្ចេញពន្លឺពេលមានចរន្តអគ្គិសនីឆ្លងកាត់វា។ នេះគឺជាអាគឌ្វេត័រឌីជីថលដែលមានស្ថានភាព 2 គឺ បើក និងបិទ។ ការផ្ញើតម្លៃ 1 ជាអ្នកបើក LED ហើយ 0 ជាអ្នកបិទវា។ + +តុល្យភាពភ្លើងរាត្រីក្នុង pseudo-code គឺ៖ + +```output +Check the light level. +If the light is less than 300 + Turn the LED on +Otherwise + Turn the LED off +``` + +### បន្ថែមអាគឌ្វេត័រចូលទៅ CounterFit + +ដើម្បីប្រើ LED មើលឃើញ អ្នកត្រូវបន្ថែមវាចូលក្នុងកម្មវិធី CounterFit + +#### ការងារ - បន្ថែមអាគឌ្វេត័រចូល CounterFit + +បន្ថែម LED ចូលក្នុងកម្មវិធី CounterFit។ + +1. ប្រាកដថាកម្មវិធីវេប CounterFit កំពុងរត់ពីផ្នែកមុននៃការសម្រង់នេះ។ ប្រសិនបើមិនមែន សូមចាប់ផ្ទុះវា ហើយបន្ថែមឧបករណ៍សំគាល់ពន្លឺម្តងទៀត។ + +1. បង្កើត LED៖ + + 1. នៅក្នុងប្រអប់ *Create actuator* នៅផ្នែក *Actuator* ចុចប្រអប់*Actuator type* ហើយជ្រើសរើស *LED*។ + + 1. កំណត់ *Pin* ជា *5* + + 1. ជ្រើសប៊ូតុង **Add** ដើម្បីបង្កើត LED នៅ Pin 5 + + ![The LED settings](../../../../../translated_images/km/counterfit-create-led.ba9db1c9b8c622a6.webp) + + LED នឹងត្រូវបានបង្កើត និងបង្ហាញក្នុងបញ្ជីអាគឌ្វេត័រ។ + + ![The LED created](../../../../../translated_images/km/counterfit-led.c0ab02de6d256ad8.webp) + + បន្ទាប់ពីបង្កើត LED អ្នកអាចប្ដូរពណ៌ដោយប្រើឧបករណ៍ *Color* ជ្រើសរើសប៊ូតុង **Set** ដើម្បីប្ដូរពណ៌បន្ទាប់ពីបានជ្រើសរើស។ + +### បង្កើតកម្មវិធីភ្លើងរាត្រី + +ភ្លើងរាត្រីឥឡូវនេះអាចត្រូវបានកម្មវិធីដោយប្រើឧបករណ៍សំគាល់ពន្លឺ និង LED របស់ CounterFit។ + +#### ការងារ - បង្កើតកម្មវិធីភ្លើងរាត្រី + +បង្កើតកម្មវិធីភ្លើងរាត្រី។ + +1. បើកគម្រោងភ្លើងរាត្រីនៅក្នុង VS Code ដែលអ្នកបានបង្កើតនៅផ្នែកមុននៃការសម្រង់នេះ។ បិទ និងបង្កើត Terminal ម្តងទៀត ដើម្បីធានាវាអាចរត់បានក្នុងបរិបទ virtual environment ប្រសិនបើចាំបាច់។ + +1. បើកឯកសារ `app.py` + +1. បន្ថែមកូដខាងក្រោមទៅក្នុងឯកសារ `app.py` ដើម្បីនាំចូលបណ្ណាល័យដែលត្រូវការ។ ត្រូវបន្ថែមនៅខ្លះខាងលើក្រោមខ្សែ `import` ផ្សេងទៀត។ + + ```python + from counterfit_shims_grove.grove_led import GroveLed + ``` + + ពាក្យ `from counterfit_shims_grove.grove_led import GroveLed` នាំចូល `GroveLed` ពីបណ្ណាល័យ Python CounterFit Grove shim។ បណ្ណាល័យនេះមានកូដសម្រាប់ធ្វើអន្តរកម្មជាមួយ LED ដែលបានបង្កើតក្នុងកម្មវិធី CounterFit។ + +1. បន្ថែមកូដខាងក្រោមបន្ទាប់ពីការបញ្ជាក់ `light_sensor` ដើម្បីបង្កើតអ实例ក្នុងថ្នាក់ដែលគ្រប់គ្រង LED៖ + + ```python + led = GroveLed(5) + ``` + + បន្ទាត់ `led = GroveLed(5)` បង្កើត实例មួយនៃថ្នាក់ `GroveLed` ដែលភ្ជាប់ទៅ pin **5** - pin Grove CounterFit ដែល LED បានភ្ជាប់។ + +1. បន្ថែមការត្រួតពិនិត្យនៅក្នុងលូ `while` មុន `time.sleep` ដើម្បីត្រួតពិនិត្យកម្រិតពន្លឺ និងបើក បិទ LED៖ + + ```python + if light < 300: + led.on() + else: + led.off() + ``` + + កូដនេះត្រួតពិនិត្យតម្លៃ `light`។ ប្រសិនបើតម្លៃតិចជាង 300 វានៅហៅម៉េតូត `on` នៃថ្នាក់ `GroveLed` ដែលផ្ញើតម្លៃឌីជីថល 1 ទៅ LED ដើម្បីបើកវា។ ប្រសិនបើតម្លៃពន្លឺច្រើនជាង ឬស្មើ 300 វានៅហៅម៉េតូត `off` ដែលផ្ញើតម្លៃឌីជីថល 0 ទៅ LED ដើម្បីបិទវា។ + + > 💁 កូដនេះគួរត្រូវបានចាក់បញ្ចូលចន្លោះតំបន់ដូចជាបន្ទាត់ `print('Light level:', light)` ដើម្បីស្ថិតនៅក្នុងលូ while! + +1. ពី VS Code Terminal ប្រតិបត្តិការខាងក្រោមដើម្បីរត់កម្មវិធី Python របស់អ្នក៖ + + ```sh + python3 app.py + ``` + + តម្លៃពន្លឺនឹងត្រូវបង្ហាញនៅក្នុងកុងសូល។ + + ```output + (.venv) ➜ GroveTest python3 app.py + Light level: 143 + Light level: 244 + Light level: 246 + Light level: 253 + ``` + +1. ប្ដូរតម្លៃ *Value* ឬ *Random* ដើម្បីផ្លាស់ប្ដូរទម្រង់ពន្លឺលើឆមាស និងក្រោម 300។ LED នឹងបើក និងបិទ។ + +![The LED in the CounterFit app turning on and off as the light level changes](../../../../../images/virtual-device-running-assignment-1-1.gif) + +> 💁 អ្នកអាចរកឃើញកូដនេះនៅក្នុងថត [code-actuator/virtual-device](../../../../../1-getting-started/lessons/3-sensors-and-actuators/code-actuator/virtual-device)។ + +😀 កម្មវិធីភ្លើងរាត្រីរបស់អ្នកបានជោគជ័យ! + +--- + + +**ការបដិសេធ**៖ +ឯកសារ​នេះ​ត្រូវ​បាន​ប្រែ​សម្រួល​ដោយ​ប្រើ​សេវាកម្ម​ប្រែសម្រួល AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះ​បី​យើង​ព្យាយាម​សម្រាប់​ការ​ត្រឹមត្រូវ​ក៏​ដោយ សូម​ជ្រាប​ថា​ការប្រែ​សម្រួល​ដោយស្វ័យ​ប្រវត្តិ​អាច​មាន​កំហុស ឬ​ភាពមិនត្រឹមត្រូវ។ ឯកសារ​ដើម​នៅ​ក្នុង​ភាសា​ដើម​គួរត្រូវ​បាន​យល់​ពី​ជា​ប្រភព​ឯកភាព។ សម្រាប់​ព័ត៌មាន​សំខាន់ៗ ការ​ប្រែសម្រួល​ដោយ​មនុស្ស​ជំនាញ​ត្រូវបានណែនាំ។ យើង​មិន​ទទួលខុសត្រូវ​ចំពោះ​ការ​យល់ច្រឡំ ឬ​ការ​ស្រាយផ្សេងៗ​ដែលកើតឡើង​ពី​ការប្រើប្រាស់​ការ​ប្រែសម្រួល​នេះ​ទេ។ + \ No newline at end of file diff --git a/translations/km/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md b/translations/km/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md new file mode 100644 index 000000000..6a7695c79 --- /dev/null +++ b/translations/km/1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md @@ -0,0 +1,117 @@ +# បង្កើតពន្លឺយប់ - គ្រឿងចក្រពហុប្រព័ន្ធ IoT អាស្រ័យលើវិជ្ជមាន + +នៅផ្នែកនេះនៃមេរៀន អ្នកនឹងបន្ថែមឧបករណ៍ស្វែងរកពន្លឺទៅឧបករណ៍ IoT អាស្រ័យលើវិជ្ជមានរបស់អ្នក។ + +## គ្រឿងចក្រអាស្រ័យលើវិជ្ជមាន + +ពន្លឺយប់ត្រូវការឧបករណ៍ស្វែងរកមួយ ដែលបានបង្កើតនៅក្នុងកម្មវិធី CounterFit។ + +ឧបករណ៍ស្វែងរកគឺជាឧបករណ៍ **ស្វែងរកពន្លឺ**។ នៅក្នុងឧបករណ៍ IoT ភាពយន្ត វានឹងជាឧបករណ៍ [photodiode](https://wikipedia.org/wiki/Photodiode) ដែលបំលែងពន្លឺទៅជា​សញ្ញា​អគ្គិសនី។ ឧបករណ៍ស្វែងរកពន្លឺគឺជាឧបករណ៍ជារូបមន្តដែលផ្ញើតម្លៃចំនួនគត់ ដែលបង្ហាញពីបរិមាណពន្លឺសំពាធមួយដែលមិនបានដាក់បញ្ចូលទៅកាន់មួយឯកតាមาต្រដ្ឋានណាមួយដូចជា [lux](https://wikipedia.org/wiki/Lux)។ + +### បន្ថែមឧបករណ៍ស្វែងរកទៅ CounterFit + +ដើម្បីប្រើឧបករណ៍ស្វែងរកពន្លឺអាស្រ័យលើវិជ្ជមាន អ្នកត្រូវបន្ថែមវាទៅកម្មវិធី CounterFit + +#### ភារកិច្ច - បន្ថែមឧបករណ៍ស្វែងរកទៅ CounterFit + +បន្ថែមឧបករណ៍ស្វែងរកពន្លឺទៅកម្មវិធី CounterFit។ + +1. ត្រួតពិនិត្យថាកម្មវិធី CounterFit គឺកំពុងដំណើរការ ពីផ្នែកមុននៃភារកិច្ចនេះ។ ប្រសិនបើគ្មាន សូមចាប់ផ្តើមវា។ + +1. បង្កើតឧបករណ៍ស្វែងរកពន្លឺ៖ + + 1. នៅក្នុងប្រអប់ *Create sensor* ក្នុងផ្ទាំង *Sensors* ចុចចុះនៅប្រអប់ *Sensor type* ហើយជ្រើសរើស *Light*។ + + 1. ទុកឲ្យ *Units* កំណត់ទៅ *NoUnits* + + 1. បញ្ជាក់ថា *Pin* ត្រូវបានកំណត់ទៅ *0* + + 1. ជ្រើស **Add** ដើម្បីបង្កើតឧបករណ៍ស្វែងរកពន្លឺលើ Pin 0 + + ![The light sensor settings](../../../../../translated_images/km/counterfit-create-light-sensor.9f36a5e0d4458d8d.webp) + + ឧបករណ៍ស្វែងរកពន្លឺនឹងត្រូវបានបង្កើត និងបង្ហាញនៅក្នុងបញ្ជីឧបករណ៍ស្វែងរក។ + + ![The light sensor created](../../../../../translated_images/km/counterfit-light-sensor.5d0f5584df56b90f.webp) + +## កម្មវិធីសម្រាប់ឧបករណ៍ស្វែងរកពន្លឺ + +ឧបករណ៍ឥន្ទនៈពេលនេះអាចត្រូវបានកម្មវិធីដើម្បីប្រើឧបករណ៍ស្វែងរកពន្លឺដែលបានបញ្ចូល។ + +### ភារកិច្ច - បង្កើតកម្មវិធីសម្រាប់ឧបករណ៍ស្វែងរកពន្លឺ + +កម្មវិធីឧបករណ៍។ + +1. បើកគម្រោង nightlight នៅក្នុង VS Code ដែលអ្នកបានបង្កើតនៅផ្នែកមុននៃភារកិច្ចនេះ។ បិទ និងបង្កើតឡើងវិញ Terminal ដើម្បីធានាថាវាដំណើរការដោយប្រើបរិស្ថានវេរុចបើមានត្រូវការ។ + +1. បើកឯកសារ `app.py` + +1. បន្ថែមកូដខាងក្រោមទៅចំពោះខាងលើឯកសារ `app.py` ជាមួយសេចក្តីប្រកាស `import` ផ្សេងទៀតដើម្បីភ្ជាប់នូវបណ្ណាល័យដែលត្រូវការ៖ + + ```python + import time + from counterfit_shims_grove.grove_light_sensor_v1_2 import GroveLightSensor + ``` + + សេចក្តីប្រកាស `import time` នាំចូលម៉ូឌុល Python `time` ដែលនឹងត្រូវបានប្រើនៅក្រោយក្នុងភារកិច្ចនេះ។ + + សេចក្តីប្រកាស `from counterfit_shims_grove.grove_light_sensor_v1_2 import GroveLightSensor` នាំចូល `GroveLightSensor` ពីបណ្ណាល័យ Python counterfit Grove shim។ បណ្ណាល័យនេះមានកូដដើម្បីសហការជាមួយឧបករណ៍ស្វែងរកពន្លឺដែលបានបង្កើតនៅក្នុងកម្មវិធី CounterFit។ + +1. បន្ថែមកូដខាងក្រោមទៅចំពោះខាងក្រោមឯកសារ ដើម្បីបង្កើតនៃអនុគមន៍នៃថ្នាក់ដែលគ្រប់គ្រងឧបករណ៍ស្វែងរកពន្លឺ៖ + + ```python + light_sensor = GroveLightSensor(0) + ``` + + បន្ទាត់ `light_sensor = GroveLightSensor(0)` បង្កើតអនុគមន៍ថ្មីនៃថ្នាក់ `GroveLightSensor` ដែលភ្ជាប់ទៅ pin **0** - pin Grove របស់ CounterFit ដែលឧបករណ៍ស្វែងរកពន្លឺបានភ្ជាប់។ + +1. បន្ថែមវដ្ដអស់កល្យាណៈមួយបន្ទាប់ពីកូដខាងលើ ដើម្បីពិនិត្យតម្លៃឧបករណ៍ស្វែងរកពន្លឺ ហើយបោះពុម្ពវាទៅកាន់ Console៖ + + ```python + while True: + light = light_sensor.light + print('Light level:', light) + ``` + + នេះនឹងអានកម្រិតពន្លឺបច្ចុប្បន្នដោយប្រើគុណលក្ខណ៍ `light` នៃថ្នាក់ `GroveLightSensor`។ គុណលក្ខណ៍នេះអានតម្លៃអាណាឡុកពី pin។ តម្លៃនេះនឹងត្រូវបោះពុម្ពទៅកាន់ Console។ + +1. បន្ថែមការនិដ្ឋិតិ១វិនាទីតូចនៅចុងវដ្ដ `while` ព្រោះកម្រិតពន្លឺមិនត្រូវបានពិនិត្យជាប្រចាំទេ។ ការនិដ្ឋិតិអាចកាត់បន្ថយការប្រើថាមពលរបស់ឧបករណ៍។ + + ```python + time.sleep(1) + ``` + +1. ពី Terminal VS Code បើកការប្រតិបត្តិ Python app របស់អ្នកដោយរត់៖ + + ```sh + python3 app.py + ``` + + តម្លៃពន្លឺនឹងត្រូវបង្ហាញនៅលើ Console។ ចាប់ផ្តើមតម្លៃនេះគឺ 0។ + +1. ពីកម្មវិធី CounterFit ផ្លាស់ប្តូរតម្លៃឧបករណ៍ស្វែងរកពន្លឺដែលកម្មវិធីនឹងអាន។ អ្នកអាចធ្វើបានពីរបៀប៖ + + * បញ្ចូលលេខមួយក្នុងប្រអប់ *Value* សម្រាប់ឧបករណ៍ស្វែងរកពន្លឺ បន្ទាប់មកជ្រើស **Set**។ លេខដែលអ្នកបញ្ចូលនឹងជាតម្លៃដែលឧបករណ៍ស្វែងរកនាំលុយត្រឡប់វិញ។ + + * គូសប្រអប់ *Random* ហើយបញ្ចូលតម្លៃ *Min* និង *Max* បន្ទាប់មកជ្រើស **Set**។ រាល់ពេលឧបករណ៍ស្វែងរកអានតម្លៃ វានឹងអានលេខចៃដន្យរវាង *Min* និង *Max*។ + + តម្លៃដែលបានកំណត់នឹងត្រូវបង្ហាញនៅលើ Console។ ប្ដូរតម្លៃ *Value* ឬការកំណត់ *Random* ដើម្បីធ្វើឱ្យតម្លៃផ្លាស់ប្តូរ។ + + ```output + (.venv) ➜ GroveTest python3 app.py + Light level: 143 + Light level: 244 + Light level: 246 + Light level: 253 + ``` + +> 💁 អ្នកអាចរកឃើញកូដនេះនៅក្នុងថត [code-sensor/virtual-device](../../../../../1-getting-started/lessons/3-sensors-and-actuators/code-sensor/virtual-device)។ + +😀 កម្មវិធី nightlight របស់អ្នកបានជោគជ័យ! + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបញ្ជូនបកប្រែដោយសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះយើងខំប្រឹងប្រែងឲ្យបានត្រឹមត្រូវ អ្នកត្រូវយល់ថាការបកប្រែដោយស្វ័យប្រវត្តិបង្ហាញពីកំហុស ឬការមិនត្រឹមត្រូវខ្លះៗបាន។ ឯកសារដើមជាភាសា​ដើមគួរត្រូវបានគេពិចារណาว่า​ជា ប្រភពត្រឹមត្រូវ។ សម្រាប់ព័ត៌មានសំខាន់ ការបកប្រែ​ដោយមនុស្ស​ដោយជំនាញត្រូវបានណែនាំ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសណាមួយដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md b/translations/km/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md new file mode 100644 index 000000000..84cf2c901 --- /dev/null +++ b/translations/km/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md @@ -0,0 +1,117 @@ +# ដំណើរការលើភ្លើងយប់ - Wio Terminal + +នៅក្នុងផ្នែកនេះនៃមេរៀន អ្នកនឹងបន្ថែម LED ទៅកាន់ Wio Terminal របស់អ្នក ហើយប្រើវា ដើម្បីបង្កើតភ្លើងយប់។ + +## ឧបករណ៍រឹង + +ភ្លើងយប់បច្ចុប្បន្នត្រូវការឧបករណ៍បញ្ចេញសញ្ញា។ + +ឧបករណ៍បញ្ចេញសញ្ញាគឺជារ **LED** ដែលជាឧបករណ៍ [ឌីអូតែល្លាសដែលបញ្ចេញភ្លើង](https://wikipedia.org/wiki/Light-emitting_diode) ដែលបញ្ចេញពន្លឺនៅពេលដែលមានចរន្តឆ្លងកាត់វា។ នេះគឺជាឧបករណ៍បញ្ចេញសញ្ញាឌីជីថលដែលមានសភាពពីរគឺ បើក និង បិទ។ ការផ្ញើតម្លៃ 1 នឹងបើក LED ហើយ 0 នឹងបិទវា។ នេះគឺជាឧបករណ៍បញ្ចេញសញ្ញា Grove ខាងក្រៅ ហើយត្រូវតែភ្ជាប់ទៅ Wio Terminal។ + +ហេតុផលភ្លើងយប់ក្នុងកូដ pseudo គឺ៖ + +```output +Check the light level. +If the light is less than 300 + Turn the LED on +Otherwise + Turn the LED off +``` + +### ភ្ជាប់ LED + +LED Grove មានជាម៉ូឌុលជាមួយជម្រើសនៃ LED អនុញ្ញាតឱ្យអ្នកជ្រើសពណ៌។ + +#### កិច្ចការជាប់ខ្សែ - ភ្ជាប់ LED + +ភ្ជាប់ LED។ + +![A grove LED](../../../../../translated_images/km/grove-led.6c853be93f473cf2.webp) + +1. ជ្រើសរើស LED ចូលចិត្តរបស់អ្នក ហើយដាក់ជើងរបស់វា ចូលទៅក្នុងរន្ធពីរមាននៅលើម៉ូឌុល LED។ + + LEDs គឺជាឌីអូតែល្លាសដែលបញ្ចេញពន្លឺ និងឌីអូតែល្លាដោយខ្លួនវាជាឧបករណ៍អេឡិចត្រូនិចដែលអាចដឹកចរន្តតែមួយទិសតែប៉ុណ្ណោះ។ វាមានន័យថា LED ត្រូវតែភ្ជាប់តាមទិសត្រឹមត្រូវ មិនដូច្នេះវានឹងមិនដំណើរការ។ + + មួយក្នុងជើង LED គឺជារូបិនវិជ្ជមាន ហើយមួយផ្សេងទៀតជារូបិនអវិជ្ជមាន។ LED មិនមែនជាវង់សព្វវង់ទេ ហើយមានផ្នែកប្លាតៗតិចតួចនៅមួយចំហៀង។ ផ្នែកប្លាតប៉ុន្មាននោះជារូបិនអវិជ្ជមាន។ នៅពេលអ្នកភ្ជាប់ LED ទៅម៉ូឌុល សូមប្រាកដថារូបិននៅក្បែរផ្នែកមូលត្រូវភ្ជាប់ទៅរន្ធដែលមានសញ្ញា **+** នៅខាងក្រៅម៉ូឌុល ហើយផ្នែកប្លាតត្រូវភ្ជាប់ទៅរន្ធនៅខាងកណ្តាលម៉ូឌុល។ + +1. ម៉ូឌុល LED មានប៊ូតុងបង្វិលដែលអាចគ្រប់គ្រងភាពភ្លឺបាន។ បង្វិលវាឡើងដល់កម្រិតខ្ពស់បំផុត ដោយបង្វិលវាត្រឡប់ក្រោយកែវដែក Phillips តូចមួយ។ + +1. ដាក់ចុងខ្សែកាត Grove មួយចុងចូលទៅក្នុងរន្ធលើម៉ូឌុល LED។ វានឹងដំណើរការតែមួយទិសប៉ុណ្ណោះ។ + +1. ខណៈពេលដែល Wio Terminal មិនភ្ជាប់ទៅកុំព្យូទ័ររបស់អ្នក ឬប្រភពថាមពលផ្សេងទៀត សូមភ្ជាប់ចុងខ្សែកាត Grove ផ្សេងទៀតទៅរន្ធ Grove គ្រាន់ស្តាំលើ Wio Terminal នៅពេលអ្នកមើលទៅអេក្រង់។ នេះជារន្ធដែលឆ្ងាយពីប៊ូតុងថាមពលបំផុត។ + + > 💁 រន្ធ Grove ដៃស្តាំអាចប្រើសម្រាប់ឧបករណ៍ឃ្លងព្រីង ანឧបករណ៍បញ្ចេញសញ្ញាឌីជីថល។ រន្ធឆ្វេងគឺសម្រាប់ឧបករណ៍ឃ្លង I2C និងឧបករណ៍បញ្ចេញសញ្ញាឌីជីថលតែប៉ុណ្ណោះ។ I2C នឹងត្រូវបានពិភាក្សាពីក្រោយ។ + +![The grove LED connected to the right hand socket](../../../../../translated_images/km/wio-led.265a1897e72d7f21.webp) + +## ពីក្រោមកម្មវិធីភ្លើងយប់ + +ភ្លើងយប់អាចត្រូវបានកម្មវិធីតាមការស្រេចដោយប្រើឧបករណ៍ស្រូបពន្លឺ និង Grove LED ។ + +### កិច្ចការ - កម្មវិធីភ្លើងយប់ + +កម្មវិធីភ្លើងយប់។ + +1. បើកគម្រោងភ្លើងយប់ក្នុង VS Code ដែលអ្នកបានបង្កើតក្នុងផ្នែកមុននៃការងារនេះ។ + +1. បន្ថែមបន្ទាត់ខាងក្រោមទៅចុងផ្នែក `setup` ៖ + + ```cpp + pinMode(D0, OUTPUT); + ``` + + បន្ទាត់នេះកំណត់កម្ពុងដែលប្រើប្រាស់ក្នុងការទំនាក់ទំនងជាមួយ LED តាមរយៈច្រក Grove។ + + ភ្ជាប់ `D0` ជាកម្ពុងឌីជីថលសម្រាប់រន្ធ Grove ដៃស្តាំ។ កន្ទុយនេះត្រូវបានកំណត់ជា `OUTPUT` មានន័យថាវភ្ជាប់ទៅឧបករណ៍បញ្ចេញសញ្ញា ហើយទិន្នន័យនឹងត្រូវបានសរសេរទៅកាន់កន្ទុយនេះ។ + +1. បន្ថែមកូដខាងក្រោមមុខ `delay` នៅក្នុងមុខងារ `loop` ៖ + + ```cpp + if (light < 300) + { + digitalWrite(D0, HIGH); + } + else + { + digitalWrite(D0, LOW); + } + ``` + + កូដនេះពិនិត្យមើលតម្លៃ `light`។ ប្រសិនបើតម្លៃតិចជាង 300 វានឹងផ្ញើសញ្ញា `HIGH` ទៅកន្ទុយឌីជីថល `D0`។ ការ `HIGH` នេះមានតម្លៃ 1 បើក LED។ ប្រសិនបើពន្លឺធំជាង ឬស្មើ 300 វានឹងផ្ញើតម្លៃ `LOW` 0 ទៅកន្ទុយ ដើម្បីបិទ LED។ + + > 💁 នៅពេលផ្ញើតម្លៃឌីជីថលទៅឧបករណ៍បញ្ចេញសញ្ញា តម្លៃ LOW គឺ 0វ៉ុល ហើយតម្លៃ HIGH គឺតម្លៃវ៉ុលអតិបរមាសម្រាប់ឧបករណ៍។ សម្រាប់ Wio Terminal វ៉ុល HIGH គឺ 3.3V។ + +1. ភ្ជាប់ម្តងទៀត Wio Terminal ទៅកុំព្យូទ័ររបស់អ្នក ហើយផ្ទុកកូដថ្មីដូចដែលបានធ្វើមុន។ + +1. ភ្ជាប់ Serial Monitor ។ តម្លៃពន្លឺនឹងត្រូវបង្ហាញនៅលើទ័រមិន៉ាល់។ + + ```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.usbmodem101 9600,8,N,1 --- + --- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H --- + Light value: 4 + Light value: 5 + Light value: 4 + Light value: 158 + Light value: 343 + Light value: 348 + Light value: 344 + ``` + +1. បិទ និងបើកឧបករណ៍ស្រូបពន្លឺ សម្គាល់ថា LED នឹងភ្លឺពេលកម្រិតពន្លឺតិចជាងឬស្មើ 300 ហើយបិទពេលកម្រិតពន្លឺធំជាង 300។ + +![The LED connected to the WIO turning on and off as the light level changes](../../../../../images/wio-running-assignment-1-1.gif) + +> 💁 អ្នកអាចរកឃើញកូដនេះនៅក្នុងថត [code-actuator/wio-terminal](../../../../../1-getting-started/lessons/3-sensors-and-actuators/code-actuator/wio-terminal) ។ + +😀 កម្មវិធីភ្លើងយប់របស់អ្នកបានជោគជ័យ! + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែក្នុងការប្រើប្រាស់សេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខំប្រឹងប្រែងសម្រាប់ភាពត្រឹមត្រូវ សូមយល់ព្រមថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមជាភាសាទំនើបគួរត្រូវបានគេចាត់ទុកថាជាផ្ទៃប្រភពដែលមានអំណាច។ សម្រាប់ព័ត៌មានសំខាន់ៗ គួរត្រូវបានបកប្រែដោយមនុស្សជំនាញវិជ្ជាជីវៈ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកច្រើនខុសៗណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-sensor.md b/translations/km/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-sensor.md new file mode 100644 index 000000000..413db23a1 --- /dev/null +++ b/translations/km/1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-sensor.md @@ -0,0 +1,80 @@ +# បន្ថែមឧបករណ៍បញ្ចេញសញ្ញា - Wio Terminal + +នៅក្នុងផ្នែកនេះនៃមេរៀន អ្នកនឹងប្រើឧបករណ៍បញ្ចេញសញ្ញាថាមពលលើ Wio Terminal របស់អ្នក។ + +## សម្ភារៈរឹង + +ឧបករណ៍បញ្ចេញសញ្ញាសម្រាប់មេរៀននេះគឺជា **ឧបករណ៍បញ្ចេញសញ្ញាថាមពល** ដែលប្រើ [photodiode](https://wikipedia.org/wiki/Photodiode) ដើម្បីបំលែងពន្លឺទៅជាសញ្ញា​អគ្គិសនី។ វាជាឧបករណ៍បញ្ចេញសញ្ញាអាឡូកដែលផ្ញើតម្លៃគត់ពី 0 ដល់ 1,023 បង្ហាញពីបរិមាណ​ពន្លឺ​ដែល​មានប្រជាប្រិយមិនបានផែនទីទៅកាន់ឯកតាស្តង់ដារណាមួយដូចជា [lux](https://wikipedia.org/wiki/Lux)។ + +ឧបករណ៍បញ្ចេញសញ្ញាថាមពលត្រូវបានបញ្ចូលក្នុង Wio Terminal ហើយអាចមើលឃើញតាមរយៈច្រកប្លាស្ទិចថ្លាពីខាងលើ។ + +![ឧបករណ៍បញ្ចេញសញ្ញាថាមពលនៅខាងក្រោយ Wio Terminal](../../../../../translated_images/km/wio-light-sensor.b1f529f3c95f5165.webp) + +## បង្កើតកម្មវិធីឧបករណ៍បញ្ចេញសញ្ញាថាមពល + +ឧបករណ៍នេះឥឡូវនេះអាចត្រូវបានបង្កើតកម្មវិធីដើម្បីប្រើឧបករណ៍បញ្ចេញសញ្ញាថាមពលដែលមាននៅក្នុងម៉ាស៊ីន។ + +### ការងារ + +បង្កើតកម្មវិធីឧបករណ៍។ + +1. បើកគម្រោង nightlight នៅក្នុង VS Code ដែលអ្នកបានបង្កើតនៅផ្នែកមុននៃការងារនេះ + +1. បន្ថែមបន្ទាត់ខាងក្រោមទៅចុងបញ្ចប់នៃអនុគមន៍ `setup` ៖ + + ```cpp + pinMode(WIO_LIGHT, INPUT); + ``` + + បន្ទាត់នេះកំណត់ពិនដែលប្រើសម្រាប់ទំនាក់ទំនងជាមួយឧបករណ៍បញ្ចេញសញ្ញា។ + + ពិន `WIO_LIGHT` គឺជាចំនួននៃពិន GPIO ដែលភ្ជាប់ទៅឧបករណ៍បញ្ចេញសញ្ញាថាមពលរបស់ឧបករណ៍។ ពិននេះត្រូវបានកំណត់ជាទិស `INPUT` ដែលមានន័យថាវាភ្ជាប់ទៅឧបករណ៍បញ្ចេញសញ្ញាមួយ ហើយទិន្នន័យនឹងត្រូវបានអានពីពិននេះ។ + +1. លុបមាតិកា​របស់អនុគមន៍ `loop` ឲ្យស្អាត។ + +1. បន្ថែមកូដខាងក្រោមទៅអនុគមន៍ `loop` ដែលឥឡូវគ្មានអ្វី: + + ```cpp + int light = analogRead(WIO_LIGHT); + Serial.print("Light value: "); + Serial.println(light); + ``` + + កូដនេះអានតម្លៃអាឡូកពីពិន `WIO_LIGHT`។ វាអានតម្លៃពី 0 ដល់ 1,023 ពីឧបករណ៍បញ្ចេញសញ្ញាថាមពលនៅលើម៉ាស៊ីន។ តម្លៃនេះបន្ទាប់មកត្រូវបានផ្ញើទៅក្នុងកំពង់ផ្ទាល់ ដើម្បីឲ្យអ្នកអាចអានវា​នៅក្នុង Serial Monitor នៅពេលកូដនេះកំពុងដំណើរការ។ `Serial.print` សរសេរខ្សែអក្សរក្នុ​ង​ដោយគ្មានបន្ទាត់ថ្មីនៅចុងបញ្ចប់ ដូច្នេះរាល់បន្ទាត់នឹងចាប់ផ្តើមដោយ `Light value:` ហើយបញ្ចប់ជាមួយតម្លៃពន្លឺពិតប្រាកដ។ + +1. បន្ថែមការពន្យារពេលតូច១វិនាទី (1,000ms) នៅចុងបញ្ចប់នៃ `loop` ព្រោះកម្រិតពន្លឺមិនត្រូវបានពិនិត្យជាបន្តបន្ទាប់ទេ។ ការពន្យារពេល​នេះកាត់បន្ថយ​ការ​ប្រើថាមពលរបស់ឧបករណ៍។ + + ```cpp + delay(1000); + ``` + +1. ភ្ជាប់ជាមួយ Wio Terminal ទៅកាន់កុំព្យូទ័ររបស់អ្នកម្តងទៀត ហើយផ្ទុកកូដថ្មីទៅ ដូចដែលអ្នកធ្វើមុន។ + +1. តភ្ជាប់ទៅ Serial Monitor។ តម្លៃពន្លឺនឹងបង្ហាញទៅតាមកុងសូល។ លាក់និងបង្កការ​ពន្លឺឧបករណ៍បញ្ចេញសញ្ញាថាមពលនៅខាងក្រោយ Wio Terminal ហើយតម្លៃនឹងផ្លាស់ប្ដូរ។ + + ```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.usbmodem101 9600,8,N,1 --- + --- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H --- + Light value: 4 + Light value: 5 + Light value: 4 + Light value: 158 + Light value: 343 + Light value: 348 + Light value: 344 + ``` + +> 💁 អ្នកអាចស្វែងរកកូដនេះនៅក្នុងថត [code-sensor/wio-terminal](../../../../../1-getting-started/lessons/3-sensors-and-actuators/code-sensor/wio-terminal)។ + +😀 ការបន្ថែមឧបករណ៍បញ្ចេញសញ្ញាថាមពលទៅកម្មវិធី nightlight របស់អ្នកបានជោគជ័យ! + +--- + + +**ការបដិសេធ**: +ឯកសារនេះត្រូវបានបំលែងជាភាសាដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំបំផុតសម្រាប់ភាពត្រឹមត្រូវ សូមជ្រាបថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវណាមួយ។ ឯកសារដើមក្នុងភាសាដើមរបស់វាគួរត្រូវបានចាត់ទុកជាផ្លូវការជាធរមាន។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឱ្យប្រើការបកប្រែដោយមនុស្សអ្នកជំនាញ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះទេ។ + \ No newline at end of file diff --git a/translations/km/1-getting-started/lessons/4-connect-internet/README.md b/translations/km/1-getting-started/lessons/4-connect-internet/README.md new file mode 100644 index 000000000..27449c60d --- /dev/null +++ b/translations/km/1-getting-started/lessons/4-connect-internet/README.md @@ -0,0 +1,458 @@ +# ប.Connect ឧបករណ៍របស់អ្នកទៅអ៊ិនធឺរណែត + +![A sketchnote overview of this lesson](../../../../../translated_images/km/lesson-4.7344e074ea68fa54.webp) + +> Sketchnote by [Nitya Narasimhan](https://github.com/nitya). ចុចលើរូបភាពដើម្បីមើលជាច្បាស់ជាងនេះ។ + +មេរៀននេះត្រូវបានបង្រៀនជាផ្នែកមួយនៃស៊េរី [Hello IoT series](https://youtube.com/playlist?list=PLmsFUfdnGr3xRts0TIwyaHyQuHaNQcb6-) ពី [Microsoft Reactor](https://developer.microsoft.com/reactor/?WT.mc_id=academic-17441-jabenn)។ មេរៀននេះមាន 2 វីដេអូចម្បង - មេរៀនរយៈពេល 1 ម៉ោង និងម៉ោងការិយាល័យរយៈពេល 1 ម៉ោង ដើម្បីជម្រៅបន្ថែមលើផ្នែកខ្លះៗនៃមេរៀន និងឆ្លើយសំណួរ។ + +[![Lesson 4: Connect your Device to the Internet](https://img.youtube.com/vi/O4dd172mZhs/0.jpg)](https://youtu.be/O4dd172mZhs) + +[![Lesson 4: Connect your Device to the Internet - Office hours](https://img.youtube.com/vi/j-cVCzRDE2Q/0.jpg)](https://youtu.be/j-cVCzRDE2Q) + +> 🎥 ចុចលើរូបភាពខាងលើដើម្បីមើលវីដេអូ + +## ផ្នែកសំនួរពីមុនមេរៀន + +[ផ្នែកសំនួរពីមុនមេរៀន](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/7) + +## ការណែនាំ + +អក្សរ **I** ក្នុង IoT បង្ហាញន័យថា **Internet** - ការតភ្ជាប់មេឃនិងសេវាកម្មដែលអាចអនុវត្តបានសមត្ថភាពជាច្រើននៃឧបករណ៍ IoT ដូចជាការប្រមូលវាស់វែងពីស៊ិនស័រដែលភ្ជាប់ជាមួយឧបករណ៍ រហូតដល់ការបញ្ជូនសារ ដើម្បីគ្រប់គ្រងឧបករណ៍ដំណើរការ។ ឧបករណ៍ IoT ជាទូទៅតភ្ជាប់ទៅសេវាកម្ម IoT មេឃមួយ ដោយប្រើប្រព័ន្ធទំនាក់ទំនងស្តង់ដារ ហើយសេវាកម្មនោះតភ្ជាប់ទៅកម្មវិធី IoT របស់អ្នក ពីសេវាកម្ម AI ដែលធ្វើការសម្រេចចិត្តឆ្លាតវៃលើទិន្នន័យរបស់អ្នក ដល់កម្មវិធីបណ្ដាញសម្រាប់ការគ្រប់គ្រងឬរបាយការណ៍។ + +> 🎓 ទិន្នន័យដែលបានប្រមូលពីសិនស័រ ហើយបញ្ជូនទៅមេឃ មានឈ្មោះថា telemetry។ + +ឧបករណ៍ IoT អាចទទួលសារពីមេឃ។ ជាញឹកញាប់សារទាំងនេះមានពាក្យបញ្ជា - គឺជាណែនាំអោយបំពេញសកម្មភាពមួយ ឬក្នុងផ្នែកក្នុង (ដូចជាការកំណត់ម៉ាស៊ីនឡើងវិញ ឬធ្វើបច្ចុប្បន្នភាព firmware) ឬប្រើឧបករណ៍ដំណើរការ (ដូចជាបើកភ្លើង)។ + +មេរៀននេះណែនាំពីប្រព័ន្ធទំនាក់ទំនងខ្លះៗដែលឧបករណ៍ IoT អាចប្រើប្រាស់ដើម្បីភ្ជាប់ទៅមេឃ និងប្រភេទទិន្នន័យដែលវាអាចផ្ញើឬទទួលបាន។ អ្នកនឹងមានឱកាសធ្វើដំណើរការជាមួយពួកវាទាំងពីរ ដោយបន្ថែមការគ្រប់គ្រងអ៊ីនធឺរណែតទៅលើភ្លើងពេលយប់របស់អ្នក ហើយផ្លាស់ប្ដូរកូដគ្រប់គ្រង LED ទៅជាកូដ "server" ដំណើរការជាភាពភ្ជាប់ផ្ទាល់។ + +ក្នុងមេរៀននេះ យើងនឹងគ្របដណ្តប់៖ + +* [ប្រព័ន្ធទំនាក់ទំនង](#ប្រព័ន្ធទំនាក់ទំនង) +* [Message Queueing Telemetry Transport (MQTT)](#message-queueing-telemetry-transport-mqtt) +* [Telemetry](#telemetry) +* [ពាក្យបញ្ជា](#បញ្ជា) + +## ប្រព័ន្ធទំនាក់ទំនង + +មានប្រព័ន្ធទំនាក់ទំនងថ្មីៗជាច្រើនដែលពេញនិយមប្រើដោយឧបករណ៍ IoT ដើម្បីទំនាក់ទំនងជាមួយអ៊ិនធឺរណែត។ ប្រព័ន្ធដែលពេញនិយមជាងគេ គឺផ្អែកលើសារប្រភេទ publish/subscribe តាម broker មួយណាមួយ។ ឧបករណ៍ IoT តភ្ជាប់ទៅ broker ហើយបោះពុម្ពផ្សាយ telemetry ហើយចុះឈ្មោះសម្រាប់ពាក្យបញ្ជា។ សេវាកម្មមេឃក៏តភ្ជាប់ទៅ broker ដែរ និងចុះឈ្មោះសម្រាប់សារទាំងអស់ទៅបោះពុម្ពផ្សាយពាក្យបញ្ជាទៅឧបករណ៍ជាក់លាក់ ឬក្រុមឧបករណ៍។ + +![IoT devices connect to a broker and publish telemetry and subscribe to commands. Cloud services connect to the broker and subscribe to all telemetry and send commands to specific devices.](../../../../../translated_images/km/pub-sub.7c7ed43fe9fd15d4.webp) + +MQTT គឺជាប្រព័ន្ធទំនាក់ទំនងដែលពេញនិយមច្រើនបំផុតសម្រាប់ឧបករណ៍ IoT ហើយត្រូវបានគ្របដណ្តប់ក្នុងមេរៀននេះ។ ប្រព័ន្ធផ្សេងទៀតរួមមាន AMQP និង HTTP/HTTPS។ + +## Message Queueing Telemetry Transport (MQTT) + +[MQTT](http://mqtt.org) គឺជាប្រព័ន្ធសារល្មមមួយ ដែលជាស្តង់ដារបើក និងអាចផ្ញើសារ​រវាងឧបករណ៍បាន។ វាត្រូវបានរចនាឡើងក្នុងឆ្នាំ 1999 ដើម្បីតាមដានបំពង់ប្រេងមុននឹងចេញជាស្តង់ដារបើកក្រោយមក 15 ឆ្នាំ ដោយ IBM។ + +MQTT មាន broker តែមួយ និងអ្នកជាអតិថិជនជាច្រើន។ អតិថិជនទាំងអស់តភ្ជាប់ទៅ broker ហើយ broker នាំសារទៅកាន់អតិថិជនដែលពាក់ព័ន្ធ។ សារ​ត្រូវបានបញ្ជូនតាមប្រធានបទដែលបានដាក់ឈ្មោះជាក់លាក់ ជំនួសក៏ផ្ញើទៅអតិថិជនម្នាក់ៗ។ អតិថិជនមួយអាចបោះពុម្ពផ្សាយទៅប្រធានបទមួយ ហើយអតិថិជនណាដែលបានចុះឈ្មោះក្នុងប្រធានបទនោះនឹងទទួលបានសារ។ + +![IoT device publishing telemetry on the /telemetry topic, and the cloud service subscribing to that topic](../../../../../translated_images/km/mqtt.cbf7f21d9adc3e17.webp) + +✅ ស្រាវជ្រាវមួយចំនួន។ ប្រសិនបើអ្នកមានឧបករណ៍ IoT ច្រើន តើអ្នកអាចធានាអោយ MQTT broker របស់អ្នកគ្រប់គ្រងសារទាំងអស់របាងល្អបានយ៉ាងដូចម្តេច? + +### ភ្ជាប់ឧបករណ៍ IoT របស់អ្នកទៅ MQTT + +ផ្នែកដំបូងនៃការបន្ថែមការគ្រប់គ្រងអ៊ីនធឺរណែតទៅលើភ្លើងពេលយប់របស់អ្នកគឺភ្ជាប់វាទៅ MQTT broker មួយ។ + +#### កិច្ចការជួយបំពេញ + +ភ្ជាប់ឧបករណ៍របស់អ្នកទៅ MQTT broker។ + +នៅក្នុងផ្នែកនេះ អ្នកនឹងភ្ជាប់ IoT nightlight របស់អ្នកទៅអ៊ីនធឺរណែត ដើម្បីអោយវាអាចគ្រប់គ្រងពីចម្ងាយបាន។ នៅពេលក្រោយក្នុងមេរៀននេះ ឧបករណ៍ IoT របស់អ្នកនឹងផ្ញើសារទំនាក់ទំនង telemetry តាម MQTT ទៅកាន់ MQTT broker សាធារណៈជាមួយកម្រិតពន្លឺ ដែលវានឹងត្រូវបានអ្នកប្រើកូដ server មួយដែលអ្នកនឹងសរសេរចាប់យក។ កូដនេះនឹងពិនិត្យកម្រិតពន្លឺ និងផ្ញើសារពាក្យបញ្ជាចេញវិញទៅឧបករណ៍ ដើម្បីនិយាយអោយបើកឬបិទ LED។ + +ករណីប្រើប្រាស់ពិតប្រាកដសម្រាប់ការតាំងបែបនេះអាចជាការប្រមូលទិន្នន័យពីសិនស័រពន្លឺជាច្រើន មុនពេលសម្រេចចិត្តបើកភ្លើង នៅទីតាំងដែលមានភ្លើងច្រើន ដូចជាគីឡាទឹក។ វា​អាចជួយបញ្ឈប់ការបើកភ្លើង ប្រសិនបើគ្រាន់តែសិនស័រមួយតែបិទដោយពពកឬបក្សី ប៉ុន្តែសិនស័រផ្សេងទៀតមានកម្រិតពន្លឺគ្រប់គ្រាន់។ + +✅ តើស្ថានភាពផ្សេងទៀតណាដែលត្រូវការជាក់ច្បាស់ពីទិន្នន័យពីសិនស័រច្រើន មុននឹងផ្ញើពាក្យបញ្ជា? + +ជំនួសមិនបញ្ហាការលំបាកក្នុងការតាំង MQTT broker ជាផ្នែកមួយនៃកិច្ចការនេះ អ្នកអាចប្រើម៉ាស៊ីនមេសាកល្បងសាធារណៈមួយដែលដំណើរការប្រព័ន្ធ MQTT broker បើកក្ដារដែលគេហៅថា [Eclipse Mosquitto](https://www.mosquitto.org)។ មេសាកល្បងនេះអាចប្រើបានសាធារណៈនៅ [test.mosquitto.org](https://test.mosquitto.org), ហើយមិនពិចារណាចាំបាច់ធ្វើការចុះបញ្ជីគណនីទេ ដែលធ្វើឲ្យវាជាឧបករណ៍ល្អសម្រាប់សាកល្បង MQTT client និង server។ + +> 💁 ម៉ាស៊ីនមេសាកល្បងនេះជាសាធារណៈ និងមិនមានសុវត្ថិភាពឡើយ។ អ្នកណាមួយអាចស្តាប់អ្វីដែលអ្នកបោះពុម្ពផ្សាយ ដូច្នេះវាគួរត្រូវបានប្រើដោយគ្មានទិន្នន័យដែលត្រូវរក្សាឲ្យឯកជន។ + +![A flow chart of the assignment showing light levels being read and checked, and the LED begin controlled](../../../../../translated_images/km/assignment-1-internet-flow.3256feab5f052fd2.webp) + +អនុវត្តតាមជំហានរបស់អ្នកខាងក្រោម ដើម្បីភ្ជាប់ឧបករណ៍របស់អ្នកទៅ MQTT broker៖ + +* [Arduino - Wio Terminal](wio-terminal-mqtt.md) +* [Single-board computer - Raspberry Pi/Virtual IoT device](single-board-computer-mqtt.md) + +### ជម្រៅបន្ថែមស្តីពី MQTT + +ប្រធានបទអាចមានជំនួរតែងតាមកម្រិត ហើយអតិថិជនអាចចុះឈ្មោះនៅកម្រិតនានានៃជំនួរដោយប្រើ wildcards។ ឧទាហរណ៍ អ្នកអាចផ្ញើសារទិន្នន័យសីតុណ្ហភាពទៅប្រធានបទ `/telemetry/temperature` និងសារពន្លឺទៅ `/telemetry/humidity` ហើយនៅកម្មវិធីមេឃ អ្នកចុះឈ្មោះក្នុងប្រធានបទ `/telemetry/*` ដើម្បីទទួលទាំងសារសីតុណ្ហភាព និងពន្លឺ។ + +សារ​អាចបញ្ជូនជាមួយគុណភាពសេវាកម្ម (QoS) ដែលកំណត់ការធានាវត្ថុបំណងក្នុងការទទួលសារ។ + +* សំរាប់មួយដងបំផុត - សារត្រូវបានផ្ញើតែមួយដង និងអតិថិជននិង broker មិនធ្វើជំហានបន្ថែមទេដើម្បីបញ្ជាក់ការទទួល (បាញ់ហើយភ្លេច)។ +* ច្រើនជាងមួយដង - សារត្រូវបានអ្នកផ្ញើសាកល្បងជាច្រើនដងរហូតដល់ការទទួលបានការបញ្ជាក់ (ការផ្ញើបានធានា)។ +* ខ្ទង់ដូចមួយ - អ្នកផ្ញើ និងអ្នកទទួលអនុវត្តជំនួរទ្វេដង ដើម្បីធានារបស់ថាសារត្រូវបានទទួលតែមួយលើកតែម្តង (ការផ្ញើបានធានា)។ + +✅ តើស្ថានភាពណាដែលត្រូវការការផ្ញើសារដោយធានាជាក់ច្បាស់ ជាងបាញ់ហើយភ្លេច? + +ទោះបីជា ឈ្មោះសារ​គឺ Message Queueing (MQTT's initials) ក៏ដោយ មិនគាំទ្រការតម្រងសារ queue ទេ។ នេះមានន័យថាប្រសិនបើអតិថិជនផ្គាប់ការតភ្ជាប់ ហើយភ្ជាប់វិញ វាមិនទទួលបានសារដែលបានផ្ញើនៅពេលដែលវាផ្គាប់ទេ លើកលែងតែសារដែលវាបានចាប់ផ្តើមដំណើរការហើយតាមដំណើរពិតផ្អែកលើ QoS។ សារអាចមានប៊្លុកកំណត់ចំណាំបានផ្អែកលើពួកវា។ ប្រសិនបើត្រូវបានកំណត់នេះ MQTT broker នឹងរក្សាសារចុងក្រោយដែលបានផ្ញើលើប្រធានបទជាមួយប៊្លុកនោះ ហើយផ្ញើទៅអតិថិជនណាដែលចុះឈ្មោះក្រោយបន្ទាប់។ ដូច្នេះ អតិថិជននឹងទទួលបានសារថ្មីជានិរន្តរភាព។ + +MQTT ក៏គាំទ្រតួនាទី keep alive ដែលពិនិត្យមើលការតភ្ជាប់​នៅរកស្ថិតិពេញលេញ បំរើនៅពេលវេលាទម្លាស់ប្តូរឈ្មោះរវាងសារ។ + +> 🦟 [Mosquitto ពី Eclipse Foundation](https://mosquitto.org) មាន MQTT broker សេរីដែលអ្នកអាចដំណើរការប្រើប្រាស់បានដោយខ្លួនឯង សម្រាប់សាកល្បង MQTT ជាមួយ MQTT broker សាធារណៈដែលបង្ហោះនៅ [test.mosquitto.org](https://test.mosquitto.org)។ + +ការតភ្ជាប់ MQTT អាចជាសាធារណៈ និងបើក ឬមានការអាំងគ្រីប និងសុវត្ថិភាព ជាមួយឈ្មោះអ្នកប្រើនិងពាក្យសម្ងាត់ ឬវិញ្ញាបនបត្រ។ + +> 💁 MQTT ទំនាក់ទំនងតាម TCP/IP ដែលជាប្រព័ន្ធបណ្តាញដូចគ្នាទាំងនៅ HTTP ប៉ុន្តែក្នុងច្រកផ្សេង។ អ្នកអាចប្រើ MQTT លើ websockets ដើម្បីទំនាក់ទំនងជាមួយកម្មវិធីបណ្ដាញដំណើរការនៅលើកម្មវិធីរុករក ឬនៅក្នុងស្ថានភាពដែល firewall ឬច្បាប់បណ្តាញផ្សេងៗបិទការតភ្ជាប់ MQTT ស្តង់ដា។ + +## Telemetry + +ពាក្យ telemetry មានន័យពីដើមកំណើតបែបក្រិច ដែលមានន័យថាវាស់ពីចម្ងាយ។ Telemetry ជាសកម្មភាពនៃការប្រមូលទិន្នន័យពីសិនស័រ ហើយបញ្ជូនទៅមេឃ។ + +> 💁 ឧបករណ៍ telemetry មួយដំបូងបំផុត ត្រូវបានបង្កើតឡើងនៅបារាំងក្នុងឆ្នាំ 1874 ហើយផ្ញើព័ត៌មានអាកាសធាតុ និងជម្រៅទឹកភ្នំពី Mont Blanc ទៅទីក្រុង Paris ជាពេលវេលាពិត។ វាបានប្រើខ្សែរដែក ដោយសារតែបច្ចេកវិទ្យាឥតខ្សែមិនមាននៅពេលនោះ។ + +យើងត្រឡប់មកមើលឧទាហរណ៍ thermostat ជ្រៅចិត្តពីមេរៀនទី 1។ + +![An Internet connected thermostat using multiple room sensors](../../../../../translated_images/km/telemetry.21e5d8b97649d2eb.webp) + + thermostat មានសិនស័រសីតុណ្ហភាពសម្រាប់ប្រមូល telemetry។ វាអាចមានសិនស័រសីតុណ្ហភាពមួយដែលបានដំឡើងក្នុងខ្លួន និងអាចភ្ជាប់ទៅសិនស័របរមានខាងក្រៅជាច្រើនលើប្រព័ន្ធឥតខ្សែ ដូចជា [Bluetooth Low Energy](https://wikipedia.org/wiki/Bluetooth_Low_Energy) (BLE)។ + +ឧទាហរណ៍ទិន្នន័យ telemetry ដែលវាអាចផ្ញើមានដូចជា៖ + +| ឈ្មោះ | តម្លៃ | សារៈសំខាន់ | +| ---- | ----- | ----------- | +| `thermostat_temperature` | 18°C | សីតុណ្ហភាពដែលវាស់បានពីសិនស័រសីតុណ្ហភាពដែលបានដំឡើងនៅ thermostat | +| `livingroom_temperature` | 19°C | សីតុណ្ហភាពដែលវាស់បានពីសិនស័រផ្ទះដែលមានឈ្មោះ `livingroom` ដើម្បីកំណត់បន្ទប់ដែលវាអាចនៅក្នុង | +| `bedroom_temperature` | 21°C | សីតុណ្ហភាពដែលវាស់បានពីសិនស័រផ្ទះដែលមានឈ្មោះ `bedroom` ដើម្បីកំណត់បន្ទប់ដែលវា​នៅក្នុង | + +សេវាកម្មមេឃអាចប្រើទិន្នន័យ telemetry នេះដើម្បីធ្វើសេចក្ដីសម្រេចចិត្តពីពាក្យបញ្ជាដើម្បីគ្រប់គ្រងការបញ្ចុះកំដៅ។ + +### ផ្ញើទិន្នន័យ telemetry ពីឧបករណ៍ IoT របស់អ្នក + +ផ្នែកបន្ទាប់នៃការបន្ថែមការគ្រប់គ្រងអ៊ីនធឺរណែតទៅលើភ្លើងពេលយប់របស់អ្នកគឺផ្ញើទិន្នន័យកម្រិតពន្លឺទៅ MQTT broker លើប្រធានបទ telemetry ។ + +#### កិច្ចការ - ផ្ញើទិន្នន័យ telemetry ពីឧបករណ៍របស់អ្នក + +ផ្ញើទិន្នន័យកម្រិតពន្លឺទៅ MQTT broker។ + +ទិន្នន័យនេះត្រូវបានបញ្ជូនដោយកូដ JSON - ជាស្តង់ដារសម្រាប់កូដទិន្នន័យជាអក្សរ ដែលប្រើគូ key/value ។ + +✅ ប្រសិនបើអ្នកមិនទាន់ស្គាល់ JSON នោះ អ្នកអាចរៀនបន្ថែមនៅលើ [ឯកសារ JSON.org](https://www.json.org/)។ + +អនុវត្តតាមជំហានដែលត្រូវការ ខាងក្រោម ដើម្បីផ្ញើទិន្នន័យ telemetry ពីឧបករណ៍របស់អ្នកទៅ MQTT broker៖ + +* [Arduino - Wio Terminal](wio-terminal-telemetry.md) +* [Single-board computer - Raspberry Pi/Virtual IoT device](single-board-computer-telemetry.md) + +### ទទួលទិន្នន័យ telemetry ពី MQTT broker + +គ្មានអត្ថប្រយោជន៍ក្នុងការផ្ញើ telemetry ប្រសិនបើគ្មានអ្វីនៅចុងនោះទៅស្តាប់វាទេ។ កម្រិតពន្លឺ telemetry ត្រូវការអ្នកស្តាប់ដើម្បីដំណើរការទិន្នន័យ។ កូដ "server" នេះជាប្រភេទកូដដែលអ្នកនឹងដាក់បង្ហោះទៅសេវាកម្មមេឃ ជាផ្នែកនៃកម្មវិធី IoT ធំ ប៉ុន្ត្រនៅទីនេះ អ្នកនឹងរត់កូដនេះក្នុងកុំព្យូទ័រផ្ទាល់ខ្លួន (ឬលើ Pi របស់អ្នក ប្រសិនបើអ្នកសរសេរកូដផ្ទាល់នៅទីនោះ)។ កូដ server រួមមានកម្មវិធី Python មួយ ដែលស្តាប់សារទិន្នន័យ telemetry តាម MQTT ជាមួយកម្រិតពន្លឺ។ នៅពេលក្រោយក្នុងមេរៀននេះ អ្នកនឹងធ្វើឲ្យវาตอบជាសារពាក្យបញ្ជា ជាsនឹងណែនាំអោយបើកឬបិទ LED។ + +✅ ស្រាវជ្រាវមួយចំនួន៖ តើកើតអ្វីជាមួយសារតាម MQTT ប្រសិនបើគ្មានអ្នកស្តាប់? + +#### តំឡើង Python និង VS Code + +ប្រសិនបើអ្នកមិនមាន Python និង VS Code តំឡើងជាមូលដ្ឋាននៅក្នុងកុំព្យូទ័ររបស់អ្នកទេ អ្នកត្រូវតែតំឡើងពួកវាដើម្បីសរសេរកូដ server។ ប្រសិនបើអ្នកប្រើឧបករណ៍ IoT Virtual ឬកំពុងធ្វើការនៅលើ Raspberry Pi អ្នកអាចរំលងជំហាននេះ ព្រោះអ្នកបានមានវា​តំឡើងគ្រាន់ហើយ និងបានកំណត់រចនាសម្ព័ន្ធរួចរាល់។ + +##### កិច្ចការ - តំឡើង Python និង VS Code + +តំឡើង Python និង VS Code។ + +1. តំឡើង Python. សូមមើលទំព័រទាញយក [Python downloads page](https://www.python.org/downloads/) សម្រាប់ណែនាំក្នុងការតំឡើង Python ចុងក្រោយបំផុត។ + +1. តំឡើង Visual Studio Code (VS Code). អ្នកនឹងប្រើកម្មវិធីកាត់កូដនេះដើម្បីសរសេរកូដឧបករណ៍ Virtual IoT របស់អ្នកជាភាសា Python។ សូមរីករាយជាមួយ [VS Code documentation](https://code.visualstudio.com?WT.mc_id=academic-17441-jabenn) សម្រាប់ណែនាំការតំឡើង VS Code។ + + > 💁 អ្នកអាចប្រើ IDE ឬកែសម្រួល Python ផ្សេងៗសម្រាប់មេរៀននេះ ប្រសិនបើអ្នកមានឧបករណ៍ដែលចូលចិត្ត។ ប៉ុន្តែមេរៀននេះនឹងផ្ដល់ណែនាំមូលដ្ឋានជាមួយ VS Code។ + +1. តំឡើង វិស្ថេទីខ VS Code Pylance។ នេះជាវិស្ថេទីមួយសម្រាប់ VS Code ដែលផ្ដល់កំរងារអោយគាំទ្រភាសា Python។ សូមមើលឯកសារវិស្ថេទី [Pylance extension documentation](https://marketplace.visualstudio.com/items?WT.mc_id=academic-17441-jabenn&itemName=ms-python.vscode-pylance) សម្រាប់ណែនាំការតំឡើងវានៅក្នុង VS Code។ + +#### កំណត់បរិបទ Python virtual environment +១ ក្នុងចំណោមលក្ខណៈពិសេសដ៏សម្បូរបែបនៃភាសា Python គឺសមត្ថភាពក្នុងការដំឡើងកញ្ចប់ [pip packages](https://pypi.org) - ទាំងនេះគឺជាកញ្ចប់កូដដែលបានសរសេរដោយមនុស្សផ្សេងទៀត និងបានផ្សាយទៅលើអ៊ីនធឺណែត។ អ្នកអាចដំឡើងកញ្ចប់ pip មួយទៅកុំព្យូទ័ររបស់អ្នកដោយបញ្ជាទូមួយ មួយឆ្លើយ បន្ទាប់មកប្រើកញ្ចប់នោះនៅក្នុងកូដរបស់អ្នក។ អ្នកនឹងប្រើ pip ដើម្បីដំឡើងកញ្ចប់សម្រាប់ទំនាក់ទំនងតាមរយៈ MQTT។ + +ដោយលំនាំដើមពេលដែលអ្នកដំឡើងកញ្ចប់ យ៉ាងហោចណាស់វានឹងអាចប្រើបានគ្រប់ទីកន្លែងលើកុំព្យូទ័ររបស់អ្នក ហើយនេះអាចនាំឲ្យមានបញ្ហាក្នុងការចម្រុះកំណែរបស់កញ្ចប់ ដូចជាកម្មវិធីមួយខំបានពឹងផ្អែកលើកំណែរមួយ ដែលបាក់បែកពេលអ្នកដំឡើងកំណែថ្មីសម្រាប់កម្មវិធីផ្សេងមួយ។ ដើម្បីដោះស្រាយបញ្ហានេះ អ្នកអាចប្រើ [Python virtual environment](https://docs.python.org/3/library/venv.html) ដែលនៅក្នុងន័យគឺជាច្បាស់ណាស់ថា ជាការចម្លង Python មួយនៅក្នុងថតផ្លូវឯកសារ តែប៉ុណ្ណោះ ហើយពេលដែលអ្នកដំឡើងកញ្ចប់ pip វានឹងត្រូវបានដំឡើងគ្រាន់តែចូលក្នុងថតនោះប៉ុណ្ណោះ។ + +##### បន្តិចទៀត - កំណត់ Python virtual environment + +កំណត់ Python virtual environment ហើយដំឡើងកញ្ចប់ MQTT pip។ + +1. ពី terminal ឬ command line របស់អ្នក ប្រតិបត្តិការដូចខាងក្រោមនៅកន្លែងដែលអ្នកចង់បានដើម្បីបង្កើត និងទៅថតថ្មីមួយ៖ + + ```sh + mkdir nightlight-server + cd nightlight-server + ``` + +1. ឥឡូវនេះ ប្រតិបត្តិការដូចខាងក្រោមដើម្បីបង្កើត virtual environment នៅក្នុងថត `.venv` + + ```sh + python3 -m venv .venv + ``` + + > 💁 អ្នកត្រូវតែហៅយ៉ាងច្បាស់ថា `python3` ដើម្បីបង្កើត virtual environment សម្រាប់ករណីដែលអ្នកមាន Python 2 ផងដែរចាប់ពីបានដំឡើងរួចជាមួយ Python 3 (កំណែថ្មីបំផុត)។ ប្រសិនបើអ្នកមាន Python2 ត្រូវហៅថា `python` វានឹងប្រើ Python 2 ផ្ទាល់ដោយមិនប្រើ Python 3 ទេ។ + +1. ចាប់ផ្តើម virtual environment៖ + + * លើ Windows: + * ប្រសិនបើអ្នកប្រើ Command Prompt ឬ Command Prompt តាមរយៈ Windows Terminal, ជំរើសបញ្ជា: + + ```cmd + .venv\Scripts\activate.bat + ``` + + * ប្រសិនបើអ្នកប្រើ PowerShell, ជំរើសបញ្ជា: + + ```powershell + .\.venv\Scripts\Activate.ps1 + ``` + + * លើ macOS ឬ Linux, ជំរើសបញ្ជា: + + ```cmd + source ./.venv/bin/activate + ``` + + > 💁 បញ្ជាទាំងនេះគួរត្រូវបានរត់ពីទីតាំងដដែលដែលអ្នកបានរត់បញ្ជា​បង្កើត virtual environment។ អ្នកមិនត្រូវការចូលទៅថត `.venv` នោះទេ អ្នកគួរតែប្រើបញ្ជា activate និងបញ្ជាផ្សេងៗសម្រាប់ដំឡើងកញ្ចប់ ឬដំណើរការកូដពីថតដែលអ្នកបានបង្កើត virtual environment។ + +1. បន្ទាប់ពី virtual environment បានចាប់ផ្តើម ហៅបញ្ជា `python` នឹងដំណើរការកំណែ Python ដែលបានប្រើបង្កើត virtual environment។ រត់បញ្ជាខាងក្រោមដើម្បីទទួលបានកំណែ៖ + + ```sh + python --version + ``` + + លទ្ធផលនឹងស្រដៀងទៅនឹងដូចខាងក្រោម៖ + + ```output + (.venv) ➜ nightlight-server python --version + Python 3.9.1 + ``` + + > 💁 កំណែ Python របស់អ្នកអាចខុសគ្នា - តែបើវាអាចជាកំណែ 3.6 ឬខ្ពស់ជាងនេះ វានិយមល្អ។ ប្រសិនបើមិនដូច្នោះ សូមលុបថតនេះ បន្ទាប់មកដំឡើង Python 3 សុទ្ធតែថ្មី ហើយសាកល្បងម្ដងទៀត។ + +1. រត់បញ្ជាខាងក្រោមដើម្បីដំឡើងកញ្ចប់ pip សម្រាប់ [Paho-MQTT](https://pypi.org/project/paho-mqtt/), ដែលជាបណ្ណាល័យ MQTT ពេញនិយមមួយ។ + + ```sh + pip install paho-mqtt + ``` + + កញ្ចប់ pip នេះនឹងត្រូវបានដំឡើងគ្រាន់តែក្នុង virtual environment ប៉ុណ្ណោះ ហើយនឹងមិនអាចប្រើបានក្រៅវា។ + +#### សរសេរកូដម៉ាស៊ីនមេ + +ឥឡូវនេះ អ្នកអាចសរសេរកូដម៉ាស៊ីនមេជាភាសា Python ។ + +##### បន្តិចទៀត - សរសេរកូដម៉ាស៊ីនមេ + +សរសេរកូដម៉ាស៊ីនមេ។ + +1. ពី terminal ឬ command line របស់អ្នក ប្រារព្ធបញ្ជាខាងក្រោមនៅក្នុង virtual environment ដើម្បីបង្កើតឯកសារ Python ឈ្មោះ `app.py`៖ + + * លើ Windows ប្រើបញ្ជា៖ + + ```cmd + type nul > app.py + ``` + + * លើ macOS ឬ Linux ប្រើបញ្ជា៖ + + ```cmd + touch app.py + ``` + +1. បើកថតបច្ចុប្បន្ននៅក្នុង VS Code៖ + + ```sh + code . + ``` + +1. ពេល VS Code បើកឡើង វានឹងសកម្ម virtual environment Python ទៅក្នុងបន្ទាត់ស្ថានភាពខាងក្រោម៖ + + ![VS Code showing the selected virtual environment](../../../../../translated_images/km/vscode-virtual-env.8ba42e04c3d533cf.webp) + +1. ប្រសិនបើ VS Code Terminal កំពុងដំណើរការជាមុន ដោយសារបើក VS Code វានឹងមិនដំណើរការបង្ហាញ virtual environment នៅក្នុងនោះទេ។ វិធីងាយស្រួលគឺបិទ terminal ដោយចុចប៊ូតុង **Kill the active terminal instance**៖ + + ![VS Code Kill the active terminal instance button](../../../../../translated_images/km/vscode-kill-terminal.1cc4de7c6f25ee08.webp) + +1. បើក VS Code Terminal ថ្មី ដោយជ្រើស *Terminal -> New Terminal* ឬចុច `` CTRL+` ``។ Terminal ថ្មីនឹងផ្ទុក virtual environment រៀបចំ​បានហើយ ហើយនឹងបង្ហាញបញ្ជា activate នៅក្នុង terminal។ ឈ្មោះ virtual environment (`.venv`) នឹងបង្ហាញនៅក្នុង prompt ផងដែរ៖ + + ```output + ➜ nightlight-server source .venv/bin/activate + (.venv) ➜ nightlight + ``` + +1. បើកឯកសារ `app.py` ពី explorer របស់ VS Code ហើយបន្ថែមកូដដូចខាងក្រោម៖ + + ```python + import json + import time + + import paho.mqtt.client as mqtt + + id = '' + + client_telemetry_topic = id + '/telemetry' + client_name = id + 'nightlight_server' + + mqtt_client = mqtt.Client(client_name) + mqtt_client.connect('test.mosquitto.org') + + mqtt_client.loop_start() + + def handle_telemetry(client, userdata, message): + payload = json.loads(message.payload.decode()) + print("Message received:", payload) + + mqtt_client.subscribe(client_telemetry_topic) + mqtt_client.on_message = handle_telemetry + + while True: + time.sleep(2) + ``` + + ប្ដូរ `` នៅក្នុងជួរ (បន្ទាត់) 6 ជាមួយ ID ផ្ទាល់ខ្លួនដែលអ្នកបានប្រើពេលបង្កើតកូដឧបករណ៍របស់អ្នក។ + + ⚠️ វា **ត្រូវតែ** ជា ID ដដែលដែលអ្នកប្រើម្លេះលើឧបករណ៍របស់អ្នក មិនដូច្នោះកូដម៉ាស៊ីនមេ នឹងមិនអាច subscribe ឬ publish ទៅលើប្រធានបទត្រឹមត្រូវបានទេ។ + + កូដនេះបង្កើតតំណភ្ជាប់ MQTT client ជាមួយឈ្មោះដូចម្ដេច មួយ និងភ្ជាប់ទៅកាន់ broker *test.mosquitto.org*។ បន្ទាប់មកវាចាប់ផ្តើមស្វែងរកមុខងារត្រួតពិនិត្យដំណើរការលើ Thread ព្រំដោយនៅពីក្រោយដែលស្តាប់សារតាមប្រធានបទដែលបាន subscribe ។ + + Client នោះបន្ទាប់មក subscribe ទៅលើសារនៅប្រធានបទ telemetry ហើយកំណត់មុខងារមួយដែលត្រូវហៅពេលចាប់បានសារ។ ពេលមានសារតាមប្រធានបទ telemetry សារ `handle_telemetry` នឹងត្រូវហៅ ហើយបង្ហាញសារឈានមក console ។ + + ចុងក្រោយ បិទលូបដំណើរការមិនដាច់ដែលរក្សាកម្មវិធីរត់។ MQTT client ស្ថិតក្នុង Thread ផ្ទៃក្រោយនិងរត់រួមគ្នាជាមួយកម្មវិធីចម្បង។ + +1. ពី VS Code terminal, រត់បញ្ជាខាងក្រោមដើម្បីដំណើរការ Python app របស់អ្នក៖ + + ```sh + python app.py + ``` + + កម្មវិធីនឹងចាប់ផ្តើមស្តាប់សារពីឧបករណ៍ IoT។ + +1. ជាក់ស្តែងថាឧបករណ៍របស់អ្នកកំពុងដំណើរការ ហើយផ្ញើសារតាមប្រធានបទ telemetry។ ផ្លាស់ប្ដូរលេខកម្រិតពន្លឺដែលឌីវ៉ៃស័ររបស់អ្នក រឺឌីវ៉ៃស័រជាកម្មវិធី។ សារដែលទទួលបាននឹងបង្ហាញលើ terminal ។ + + ```output + (.venv) ➜ nightlight-server python app.py + Message received: {'light': 0} + Message received: {'light': 400} + ``` + + ឯកសារ app.py នៅលើ virtual environment nightlight ត្រូវតែដំណើរការ ដើម្បីឲ្យឯកសារ app.py នៅក្នុង virtual environment nightlight-server ទទួលបានសារ។ + +> 💁 អ្នកអាចរកឃើញកូដនេះនៅក្នុងថត [code-server/server](../../../../../1-getting-started/lessons/4-connect-internet/code-server/server) ។ + +### តើត្រូវផ្ញើ telemetry ជាប្រចាំក្នុងរយៈពេលប៉ុន្មាន? + +ចំណុចភាគច្រើនសំខាន់នៃ telemetry គឺ តើត្រូវវាស់វែង និងផ្ញើទិន្នន័យប្រាំប៉ុណ្ណា? ចម្លើយគឺ - វាអាស្រ័យ។ ប្រសិនបើអ្នកវាស់ជានិរន្តរ អ្នកអាចតបតរ៉ាប់រាល់ការផ្លាស់ប្ដូរបានឆាប់រហ័ស ប៉ុន្តែក៏ប្រើថាមពលច្រើន ទំហំបណ្តាញច្រើន បង្កើតទិន្នន័យច្រើន និងតម្រូវធនធាន cloud កាន់តែច្រើនសម្រាប់ដំណើរការ។ អ្នកគួរតែវាស់ច្រើនគ្រប់គ្រាន់ ប៉ុន្តែមិនច្រើនពេក។ + +សម្រាប់ thermostat វាស់វែងរាល់ប៉ុន្មាននាទី ប្រហែលជា​គ្រប់គ្រាន់ ព្រោះសីតុណ្ហភាពមិនប្រែប្រួលញឹកញាប់។ ប្រសិនបើអ្នកវាស់រាល់មួយថ្ងៃតែម្ដង អ្នកអាចបញ្ចូលកម្ដៅផ្ទះសម្រាប់សីតុណ្ហភាពយប់នៅកណ្ដាលថ្ងៃដែលថ្ងៃមានពន្លឺ ខុសពីពេលវាស់ផងដែលមួយវិនាទីម្តង អ្នកនឹងមានវាស់សីតុណ្ហភាពស្ទួនរាប់ពាន់ ដើម្បីស្ថាបនាតម្លៃល្បឿនអ៊ីនធឺណិត និងបណ្តាញ (បញ្ហាសម្រាប់អ្នកដែលមានកញ្ចប់បណ្តាញកំណត់) ប្រើថាមពល​ច្រើន ដែលអាចជាបញ្ហាសម្រាប់ឧបករណ៍ដែលបង្ហាញពីថាមពល និងបង្កើនការចំណាយធនធាន computing cloud ជាមួយដំណើរការ និងរក្សាទុក។ + +ប្រសិនបើអ្នកត្រួតពិនិត្យទិន្នន័យជិតម៉ាស៊ីននៅរោងចក្រ ដែលបរាជ័យអាចបំបែកបង្ហាប់ការខូចខាតធំធេង និងការបាត់បង់ប្រាក់រាប់លានដុល្លារ វានឹងត្រូវវាស់ជា​ដង​ច្រើនក្នុងមួយវិនាទី។ ល្អជាងបាយ ការប្រើបណ្តាញនៅលើការ​ចាញ់ teleportation ដែលសំងាត់ថាមពល ជាសារៈសំខាន់។ វាក៏ប្រសើរបើមានឧបករណ៍ edge ដើម្បីដំណើរការទិន្នន័យនេះមុនឲ្យស្រាលទៅលើអ៊ីនធឺណិត។ + +> 💁 ក្នុងករណីនេះ អ្នកអាចពិចារណាមួយឧបករណ៍ edge ដើម្បីដំណើរការទិន្នន័យតាម telemetry ជាមុន ដើម្បីកាត់បន្ថយការពឹងផ្អែកលើអ៊ីនធឺណិត។ + +### ការបាត់បង់ការតភ្ជាប់ + +ការតភ្ជាប់អ៊ីនធឺណិតអាចមានភាពមិនទៀងទៅជានិរន្តរ ដោយមានការផ្តាច់ខ្សែជាញឹកញាប់។ តើឧបករណ៍ IoT គួរអ្វីនៅក្រោមស្ថានភាពនេះ - តើវាគួរបាត់បង់ទិន្នន័យឬរក្សាទុករហូតដល់ការតភ្ជាប់ត្រូវបានស្ដារឡើងវិញ? ចម្លើយវាអាស្រ័យការ ដូចហើយ។ + +សម្រាប់ thermostat ទិន្នន័យសេរីអាចបាត់បង់បានភ្លាមៗបន្ទាប់ពីវាសាកសមហាតុដោយសារ បច្ចុប្បន្នភាពផ្ទះកំដៅមិនបាច់ភ្ជាប់ជាមួយទិន្នន័យ ២០ នាទីមុនថាវាជា ២០.៥°C ពេលនេះសីតុណ្ហភាព ១៩°C ហើយវាត្រូវតែត្រួតពិនិត្យកម្រិតកំដៅបច្ចុប្បន្ន។ + +សម្រាប់ម៉ាស៊ីន អ្នកអាចចង់រក្សាទិន្នន័យ នៅពេលដែលវាត្រូវបានប្រើសម្រាប់ការស្វែងរកផ្នែកមិនប្រក្រតីក្នុងធូរសន្ឋានទិន្នន័យតាមរយៈពេលសម្រេច (ដូចជា ម៉ោងមួយចុងក្រោយ) និងរកឃើញទិន្នន័យប្រក្រតី។ វាប្រើសម្រាប់ predictive maintenance ដើម្បីទទួលស្គាល់បញ្ហានឹងកើតមានទាន់ពេលមុនកន្លែងកម្រិតខូចខាត។ អ្នកអាចចង់បានទិន្នន័យទាំងអស់របស់ម៉ាស៊ីន ដែលអាចត្រូវបានផ្ញើបង្ហាញពេល IoT device ស្ដារឡើងវិញពីការផ្តាច់សញ្ញាអ៊ីនធឺណិត។ + +អ្នករចនាឧបករណ៍ IoT ក៏គួរពិចារណាថាតើឧបករណ៍នេះអាចប្រើបានរហូតដល់ពេលអ៊ីនធឺណិតបាត់បង់ឬបាត់បង់សញ្ញាក៏ដោយ។ Thermostat ឆ្លាតវៃគួរអាចធ្វើការដំណើរការកំណត់កំដៅក្នុងវិស័យកំណត់ម៉ោងបើវាមិនអាចផ្ញើ telemetry ទៅកាន់ cloud ដោយសារ​ការ​ផ្តាច់ខ្សែ។ + +[![រថយន្ត Ferrari នេះបានខូចខាតព្រោះមាននរណាម្នាក់ខិតខំធ្វើការអាប់ឌេតវា​នៅក្រោមដី ដែលគ្មានសញ្ញាទូរស័ព្ទ](../../../../../translated_images/km/bricked-car.dc38f8efadc6c59d.webp)](https://twitter.com/internetofshit/status/1315736960082808832) + +សម្រាប់ MQTT ដើម្បីគ្រប់គ្រងការបាត់បង់ការតភ្ជាប់ កូដឧបករណ៍ និងម៉ាស៊ីនមេត្រូវតែទទួលខុសត្រូវសម្រាប់ការធានាថាសារត្រូវបានបញ្ជូន ប្រសិនបើត្រូវការ ដូចជា តម្រូវឲ្យសារទាំងអស់ដែលបានផ្ញើប្រតិកម្មតាមសារបន្ថែមនៅលើប្រធានបទមួយ សម្រាប់ចម្លើយ ហើយប្រសិនបើគ្មានវានឹងរក្សារង់ចាំដើម្បីផ្ញើឡើងវិញនៅពេលក្រោយ។ + +## បញ្ជា + +បញ្ជាជាសារដែលផ្ញើដោយ cloud ទៅឧបករណ៍ មុខងាររបស់វាគឺបញ្ជាឲ្យបង្កើតចេញមុខចេញមួយ តែលែងតែជាចំណាត់ការការបញ្ជាឲ្យឧបករណ៍ធ្វើការតែម្ដង ដូចជាចាប់ផ្តើម ឬរក្សាទុក telemetry បន្ថែម និងឆ្លើយតបតាមបញ្ជារ។ + +![Thermostat ដែលភ្ជាប់អ៊ីនធឺណិត ទទួលបញ្ជាឲ្យបើកកំដៅ](../../../../../translated_images/km/commands.d6c06bbbb3a02cce.webp) + +Thermostat អាចទទួលបញ្ជាពី cloud ដើម្បីបើកកំដៅ។ ដោយផ្អែកលើទិន្នន័យ telemetry ពីឧបករណ៍ទាំងអស់ ប្រសិនបើសេវាកម្ម cloud សម្រេចថាកំដៅត្រូវបើក វានឹងផ្ញើបញ្ជាដែលពាក់ព័ន្ធ។ + +### ផ្ញើបញ្ជាទៅ MQTT broker + +ជំហានបន្ទាប់សម្រាប់ឧបករណ៍ nightlight គ្រប់គ្រងតាមអ៊ីនធឺណិតគឺកូដម៉ាស៊ីនមេផ្ញើបញ្ជាលើកឡើងទៅឧបករណ៍ IoT ដើម្បីគ្រប់គ្រងពន្លឺដោយផ្អែកលើកម្រិតពន្លឺដែលវារកឃើញ។ + +1. បើកកូដម៉ាស៊ីនមេក្នុង VS Code + +1. បន្ថែមបន្ទាត់ដូចខាងក្រោមបន្ទាប់ការប្រកាស `client_telemetry_topic` ដើម្បីកំណត់ប្រធានបទដែលអ្នកផ្ញើបញ្ជាទៅ: + + ```python + server_command_topic = id + '/commands' + ``` + +1. បន្ថែមកូដខាងក្រោមបញ្ចប់មុខងារ `handle_telemetry`៖ + + ```python + command = { 'led_on' : payload['light'] < 300 } + print("Sending message:", command) + + client.publish(server_command_topic, json.dumps(command)) + ``` + + កូដនេះផ្ញើសារជារាង JSON ទៅប្រធានបទ command ជាមួយតម្លៃ `led_on` ជា true ឬ false ដោយផ្អែកលើមើលថាតើពន្លឺតូចជាង 300 ឬអត់។ ប្រសិនបើពន្លឺតូចជាង 300 វានឹងផ្ញើ true សម្រាប់បញ្ជាឲ្យឧបករណ៍បើក LED។ + +1. រត់កូដដដែលដូចមុន + +1. ប្តូរកម្រិតពន្លឺទទួលបានពីឧបករណ៍ពិត ឬវីរុ ឌីវ៉ៃស៍។ សារ ទទួល និងបញ្ជា ផ្ញើនឹងត្រូវបង្ហាញក្នុង terminal៖ + + ```output + (.venv) ➜ nightlight-server python app.py + Message received: {'light': 0} + Sending message: {'led_on': True} + Message received: {'light': 400} + Sending message: {'led_on': False} + ``` + +> 💁 Telemetry និង command ត្រូវបានផ្ញើលើប្រធានបទតែមួយ។ នេះមានន័យថា telemetry ពីឧបករណ៍ជាច្រើននឹងបង្ហាញនៅលើប្រធានបទ telemetry ដដែល និង command ទៅឧបករណ៍ជាច្រើន នឹងបង្ហាញនៅលើប្រធានបទ commands ដដែល។ ប្រសិនបើចង់ផ្ញើបញ្ជាទៅឧបករណ៍ជាក់លាក់ អ្នកអាចប្រើប្រធានបទច្រើន ដែលមានឈ្មោះជាមួយ ID ឧបករណ៍ផ្ទាល់ខ្លួន ដូចជា `/commands/device1`, `/commands/device2`។ ដូចនេះឧបករណ៍មួយអាចស្តាប់សារដែលមានបំណងសម្រាប់ឧបករណ៍នោះត្រឹមតែគត់។ + +> 💁 អ្នកអាចរកឃើញកូដនេះនៅក្នុងថត [code-commands/server](../../../../../1-getting-started/lessons/4-connect-internet/code-commands/server)។ + +### ការដោះស្រាយបញ្ជា លើឧបករណ៍ IoT + +ឥឡូវនេះបញ្ជាកំពុងត្រូវផ្ញើពីម៉ាស៊ីនមេ អ្នកអាចបន្ថែមកូដនៅលើឧបករណ៍ IoT ដើម្បីដោះស្រាយបញ្ជានិងគ្រប់គ្រង LED។ + +អនុវត្តជំហានខាងក្រោមសម្រាប់ស្តាប់បញ្ជាពី MQTT broker៖ + +* [Arduino - Wio Terminal](wio-terminal-commands.md) +* [Single-board computer - Raspberry Pi/Virtual IoT device](single-board-computer-commands.md) + +បន្ទាប់ពីកូដនេះបានសរសេរ និងដំណើរការ សាកល្បងប្ដូរកម្រិតពន្លឺ។ មើលលទ្ធផលពីម៉ាស៊ីនមេ និងឧបករណ៍ និងមើល LED ខណៈម៉ាស៊ីនប្ដូរកម្រិតពន្លឺ។ + +### ការបាត់បង់ការតភ្ជាប់ + +តើសេវាកម្ម cloud គួរធ្វើម៉េច ប្រសិនបើវាចាំបញ្ជាឲ្យឧបករណ៍ IoT មួយដែលមិនភ្ជាប់បណ្ដាញ (offline)? ចម្លើយវាស្ថិតនៅលើករណី។ + +ប្រសិនបើបញ្ជាចុងក្រោយលុបបញ្ជាដើម វាអាចមិនត្រូវបានគិតបន្ដទៀត។ ប្រសិនបើសេវាកម្ម cloud ផ្ញើបញ្ជាបើកកំដៅ បន្ទាប់មកបញ្ជាបិទ ការបើកកំដៅអាចមិនត្រូវបានផ្ញើឡើងវិញ។ + +ប្រសិនបើបញ្ជាត្រូវបានដំណើរការតាមលំដាប់ ដូចជាបញ្ចូនកាចំរើសឡើង បន្ទាប់បិទ grabber វាត្រូវបានផ្ញើតាមលំដាប់បន្ទាប់ពីការតភ្ជាប់ត្រូវបានស្ដារឡើងវិញ។ + +✅ តើធ្វើម៉េចឲ្យកូដឧបករណ៍ ឬម៉ាស៊ីនមេ ស៊ងសើបថាបញ្ជាលើ MQTT គ្រប់ពេលត្រូវបានផ្ញើទៅ និងដំណើរការតាមលំដាប់ នៅពេលត្រូវការ? + +--- + +## 🚀 ប្រកួតប្រជែង + +ប្រកួតប្រជែងនៅមេរៀនចុងក្រោយគឺរាយបញ្ជីឧបករណ៍ IoT ច្រើនបំផុតដែលអ្នកមាននៅផ្ទះ សាលា ឬកន្លែងការងារ ព្រមទាំងសម្រេចថាពួកវាគឺជាឧបករណ៍ microcontroller ឬ single-board computer ឬការលាយបញ្ចូលទាំងពីរនោះ ហើយគិតពីពួកវាប្រើឧបករណ៍ស្វែងរក និង actuator មួយណា។ + +សម្រាប់ឧបករណ៍ទាំងនេះ គិតពីសារដែលវាអាចផ្ញើ ឬទទួលបាន។ តើវាផ្ញើ telemetry ប្រភេទណា? តើវាអាចទទួលសារឬបញ្ជាប្រភេទណា? តើអ្នកគិតថាវាមានសុវត្ថិភាពយ៉ាងដូចម្តេច? + +## វិភាគនិងសិក្សាផ្ទាល់ខ្លួន + +[Post-lecture quiz](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/8) +សូមអានបន្ថែមអំពី MQTT នៅលើ [ទំព័រ MQTT Wikipedia](https://wikipedia.org/wiki/MQTT) ។ + +សាកល្បងដំណើរការ MQTT broker ដោយខ្លួនអ្នកដោយប្រើ [Mosquitto](https://www.mosquitto.org) ហើយភ្ជាប់ទៅវាពីឧបករណ៍ IoT និងកូដម៉ាស៊ីនមេរបស់អ្នក។ + +> 💁 គន្លឹះ - មួយរយៈដើម Mosquitto មិនអនុញ្ញាតឲ្យភ្ជាប់ដោយមិនមានឈ្មោះអ្នកប្រើ និងពាក្យសម្ងាត់ (ភ្ជាប់ដោយគ្មានឈ្មោះអ្នកប្រើ និងពាក្យសម្ងាត់), ហើយមិនអនុញ្ញាតឲ្យភ្ជាប់ពីខាងក្រៅកុំព្យូទ័រដែលវាកំពុងរត់ឡើយ។ +> អ្នកអាចជួសជុលបញ្ហានេះដោយប្រើ [ឯកសារ config `mosquitto.conf`](https://www.mosquitto.org/man/mosquitto-conf-5.html) ដូចខាងក្រោម៖ +> +> ```sh +> listener 1883 0.0.0.0 +> allow_anonymous true +> ``` + +## កិច្ចការផ្អែក + +[ប្រៀបធៀប និងផ្ទៀងផ្ទាត់ MQTT ជាមួយនឹងសេចក្តីព្រមព្រៀងផ្សេងទៀត](assignment.md) + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំរកខុសត្រូវ តែសូមយល់ដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាមូលដ្ឋានគួរត្រូវបានគិតថាជាផ្លូវការជាចម្បង។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយអ្នកជំនាញមនុស្សត្រូវបានផ្តល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់បម្លែង ឬការយល់ខុសណាមួយដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/1-getting-started/lessons/4-connect-internet/assignment.md b/translations/km/1-getting-started/lessons/4-connect-internet/assignment.md new file mode 100644 index 000000000..34d872ae6 --- /dev/null +++ b/translations/km/1-getting-started/lessons/4-connect-internet/assignment.md @@ -0,0 +1,21 @@ +# ប្រមាញ់និងប្រៀបធៀប MQTT ជាមួយនឹងពិធីការទំនាក់ទំនងផ្សេងៗ + +## សេចក្តីណែនាំ + +មេរៀននេះបានសិក្សាអំពី MQTT ជាពិធីការទំនាក់ទំនងមួយ។ មានពិធីការផ្សេងទៀតផងដែរ រួមមាន AMQP និង HTTP/HTTPS។ + +សូមស្រាវជ្រាវពីទាំងពីរនេះ ហើយប្រៀបធៀប/ផ្ទៀងផ្ទាត់វាជាមួយ MQTT។ គិតពីការប្រើថាមពល សុវត្ថិភាព និងការរក្សាទុកសារ បើកិច្ចសន្យាត្រូវខូចខាត។ + +## វិញ្ញាសា + +| កម្រិតវាយតម្លៃ | ល្អឥតខ្ចោះ | ត្រឹមត្រូវ | ត្រូវការកែលម្អ | +| -------- | --------- | -------- | ----------------- | +| ប្រៀបធៀប AMQP ទៅ MQTT | អាចប្រៀបធៀបនិងផ្ទៀងផ្ទាត់ AMQP ទៅ MQTT និងបានរួមបញ្ចូលថាមពល សុវត្ថិភាព និងការរក្សាទុកសារ។ | អាចប្រៀបធៀបនិងផ្ទៀងផ្ទាត់ AMQP ទៅ MQTT តែមួយផ្នែកពីរនៃថាមពល សុវត្ថិភាព និងការរក្សាទុកសារ។ | អាចប្រៀបធៀបនិងផ្ទៀងផ្ទាត់ AMQP ទៅ MQTT តែមួយផ្នែកពីមួយក្នុងបីរបស់ថាមពល សុវត្ថិភាព និងការរក្សាទុកសារ។ | +| ប្រៀបធៀប HTTP/HTTPS ទៅ MQTT | អាចប្រៀបធៀបនិងផ្ទៀងផ្ទាត់ HTTP/HTTPS ទៅ MQTT និងបានរួមបញ្ចូលថាមពល សុវត្ថិភាព និងការរក្សាទុកសារ។ | អាចប្រៀបធៀបនិងផ្ទៀងផ្ទាត់ HTTP/HTTPS ទៅ MQTT តែមួយផ្នែកពីរនៃថាមពល សុវត្ថិភាព និងការរក្សាទុកសារ។ | អាចប្រៀបធៀបនិងផ្ទៀងផ្ទាត់ HTTP/HTTPS ទៅ MQTT តែមួយផ្នែកពីមួយក្នុងបីរបស់ថាមពល សុវត្ថិភាព និងការរក្សាទុកសារ។ | + +--- + + +**ការ​ព្រមាន**៖ +ឯកសារ​នេះ​ត្រូវ​បាន​បំលែង​ភាសា​ដោយ​ប្រើ​សេវាកម្ម​បំលែង​ភាសា AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេល​យើង​ខំប្រឹង​បំពេញភាពត្រឹមត្រូវ សូមចំណាំថា ការបំលែង​ភាសា​ដោយស្វ័យ​ប្រវត្តិ​អាច​មាន​កំហុស ឬភាព​មិន​ត្រឹមត្រូវ។ ឯកសារ​ដើម​នៅ​ក្នុង​ភាសា​មាតុភាសា គួរត្រូវបាន​ពិចារណា​ជា​ប្រភព​ផ្លូវការ។ សម្រាប់​ព័ត៌មាន​សំខាន់ ការបំលែង​ភាសា​ដោយ​មនុស្ស​វិជ្ជាជីវៈ​ត្រូវបាន​ផ្តល់អនុសាសន៍។ យើង​មិនទទួលខុសត្រូវ​ចំពោះ​ការ​យល់ច្រឡំ ឬ​ការ​បកស្រាយ​ខុស​កើត​ពី​ការ​ប្រើប្រាស់​ការបំលែង​ភាសា​នេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/1-getting-started/lessons/4-connect-internet/single-board-computer-commands.md b/translations/km/1-getting-started/lessons/4-connect-internet/single-board-computer-commands.md new file mode 100644 index 000000000..4b06cd2d7 --- /dev/null +++ b/translations/km/1-getting-started/lessons/4-connect-internet/single-board-computer-commands.md @@ -0,0 +1,60 @@ +# គ្រប់គ្រងពន្លឺយប់របស់អ្នកតាមអ៊ីនធឺរណិត - ឧបករណ៍ IoT វិចិត្រសន៍ និង Raspberry Pi + +ក្នុងផ្នែកនេះនៃមេរៀន អ្នកនឹងជាវសម្រាប់បញ្ជា ដែលផ្ញើពីម៉ាស៊ីនបម្រើ MQTT ទៅកាន់ Raspberry Pi របស់អ្នកឬឧបករណ៍ IoT វិចិត្រសន៍។ + +## ជាវបញ្ជា + +ជំហានបន្ទាប់គឺជាវបញ្ជាដែលផ្ញើពីម៉ាស៊ីនបម្រើ MQTT ហើយឆ្លើយតបទៅពួកវា។ + +### ភារកិច្ច + +ជាវបញ្ជា។ + +1. បើកគម្រោង nightlight នៅក្នុង VS Code។ + +1. ប្រសិនបើអ្នកកំពុងប្រើឧបករណ៍ IoT វិចិត្រសន៍ សូមធានាថា terminal កំពុងដំណើរការបរិវេណវិជ្ជមាន។ ប្រសិនបើអ្នកកំពុងប្រើ Raspberry Pi អ្នកមិនចង់ប្រើបរិវេណវិជ្ជមានទេ។ + +1. បន្ថែមកូដខាងក្រោមបន្ទាប់ពីការកំណត់ `client_telemetry_topic`៖ + + ```python + server_command_topic = id + '/commands' + ``` + + `server_command_topic` គឺជាប្រធាន MQTT ដែលឧបករណ៍នឹងជាវដើម្បីទទួលបញ្ជា LED។ + +1. បន្ថែមកូដខាងក្រោមក្រោមស្នោតោមចម្បង ក្រោយបន្ទាត់ `mqtt_client.loop_start()`៖ + + ```python + def handle_command(client, userdata, message): + payload = json.loads(message.payload.decode()) + print("Message received:", payload) + + if payload['led_on']: + led.on() + else: + led.off() + + mqtt_client.subscribe(server_command_topic) + mqtt_client.on_message = handle_command + ``` + + កូដនេះកំណត់មុខងារ `handle_command` ដែលអានសារ ជាឯកសារ JSON ហើយស្វែងរកតម្លៃគុណលក្ខណៈ `led_on`។ ប្រសិនបើវាត្រូវបានកំណត់ជា `True` LED នឹងបើក បើមិនដូច្នោះវានឹងបិទ។ + + អតិថិជន MQTT ជាវលើប្រធាន ដែលម៉ាស៊ីនបម្រើនឹងផ្ញើសារ ហើយកំណត់មុខងារ `handle_command` ដើម្បីហៅពេលមានសារមក។ + + > 💁 អ្នកគ្រប់គ្រង `on_message` ត្រូវបានហៅសម្រាប់ប្រធានទាំងអស់ដែលបានជាវ។ ប្រសិនបើអ្នកសរសេរកូដបន្ថែមទៀតដែលស្តាប់ច្រើនប្រធាន អ្នកអាចទទួលបានប្រធានដែលសារត្រូវបានផ្ញើទៅពីអOBJECT `message` ដែលផ្ញើទៅមុខងារ។ + +1. រត់កូដដូចជារបៀបដែលអ្នកបានរត់កូដពីផ្នែកមុននៃភារកិច្ច។ ប្រសិនបើអ្នកប្រើឧបករណ៍ IoT វិចិត្រសន៍ សូមធានាថា កម្មវិធី CounterFit កំពុងដំណើរការ និងឧបករណ៍ភ្លើងនិង LED ត្រូវបានបង្កើតនៅលើ PIN ត្រឹមត្រូវ។ + +1. កំណត់កម្រិតពន្លឺដែលឧបករណ៍របស់អ្នកបានរកឃើញ រឺថាវិចិត្រសន៍។ សារត្រូវបានទទួល និងបញ្ជាផ្ញើទៅនឹងត្រូវបានសរសេរនៅតាម Terminal។ LED នឹងត្រូវបានបើក និងបិទផ្អែកលើកម្រិតពន្លឺ។ + +> 💁 អ្នកអាចស្វែងរកកូដនេះនៅក្នុងថត [code-commands/virtual-device](../../../../../1-getting-started/lessons/4-connect-internet/code-commands/virtual-device) ឬថត [code-commands/pi](../../../../../1-getting-started/lessons/4-connect-internet/code-commands/pi)។ + +😀 អ្នកបានសម្រេចក្នុងការសរសេរកូដឲ្យឧបករណ៍របស់អ្នកឆ្លើយតបបញ្ជាពីម៉ាស៊ីនបម្រើ MQTT។ + +--- + + +**ការព្រមាន**: +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពួកយើងខិតខំសម្រាប់ត្រឹមត្រូវ សូម​យល់​ថា​ការបកប្រែដោយស្វ័យប្រវត្តិ​អាចមាន​កំហុស ឬ​ការខ្វះត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាមាតិរបស់វា​គួរត្រូវបានចាត់ទុកជាមូលដ្ឋាននៃព័ត៌មានដែលមាន​សុពលភាព។ សម្រាប់ព័ត៌មានសំខាន់ៗ គួរត្រូវបានបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើង​មិនទទួលខុសត្រូវចំពោះការជ្រុញលំបាក ឬការយល់ច្រឡំណាមួយដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះនោះទេ។ + \ No newline at end of file diff --git a/translations/km/1-getting-started/lessons/4-connect-internet/single-board-computer-mqtt.md b/translations/km/1-getting-started/lessons/4-connect-internet/single-board-computer-mqtt.md new file mode 100644 index 000000000..648c28a59 --- /dev/null +++ b/translations/km/1-getting-started/lessons/4-connect-internet/single-board-computer-mqtt.md @@ -0,0 +1,86 @@ +# ត្រួតគ្រងភ្លើងរាត្រីរបស់អ្នកតាមអ៊ិនធឺរណೆត - ឧបករណ៍ IoT មនុស្សពិតប្រៀបធៀបនិង Raspberry Pi + +ឧបករណ៍ IoT ត្រូវការត្រូវបានកូដដើម្បីទំនាក់ទំនងជាមួយ *test.mosquitto.org* ប្រើ MQTT ដើម្បីផ្ញើតម្លៃតាមរយៈការអានឧបករណ៍សង់សារពន្លឺ និង ទទួលបញ្ជាលើដើម្បីត្រួតគ្រង LED។ + +នៅក្នុងផ្នែកនេះនៃមេរៀន អ្នកនឹងភ្ជាប់ Raspberry Pi របស់អ្នក ឬឧបករណ៍ IoT ម៉ូទ្យួតទៅ MQTT broker ។ + +## តម្លើងកញ្ចប់ MQTT client + +ដើម្បីទំនាក់ទំនងជាមួយ MQTT broker អ្នកត្រូវតែតម្លើងបណ្ណាល័យ MQTT តាមរយៈ pip package នៅលើ Pi របស់អ្នក ឬ នៅក្នុងបរិស្ថានវេរីស្វាល់របស់អ្នក ប្រសិនបើអ្នកកំពុងប្រើឧបករណ៍ម៉ូទ្យួត។ + +### ការងារ + +តម្លើងកញ្ចប់ pip + +1. បើកគម្រោង nightlight នៅក្នុង VS Code ។ + +1. ប្រសិនបើអ្នកកំពុងប្រើឧបករណ៍ម៉ូទ្យួត វិចិត្រសាល ត្រូវតែប្រាកដថាទTerminal កំពុងដំណើរការបរិស្ថានវេរីស្វាល់។ ប្រសិនបើអ្នកកំពុងប្រើ Raspberry Pi អ្នកមិនចាំបាច់ប្រើបរិស្ថានវេរីស្វាល់ទេ។ + +1. រត់ពាណិជ្ជកម្មខាងក្រោមសម្រាប់តម្លើងកញ្ចប់ MQTT pip: + + ```sh + pip3 install paho-mqtt + ``` + +## កូដឧបករណ៍ + +ឧបករណ៍រួចរាល់សម្រាប់កូដ។ + +### ការងារ + +សរសេរកូដឧបករណ៍។ + +1. បន្ថែមការនាំចូលខាងក្រោមទៅកំពូលឯកសារ `app.py`៖ + + ```python + import paho.mqtt.client as mqtt + ``` + + បណ្ណាល័យ `paho.mqtt.client` អនុញ្ញាតឲ្យកម្មវិធីរបស់អ្នកទំនាក់ទំនងតាម MQTT។ + +1. បន្ថែមកូដខាងក្រោមបន្ទាប់ពីការបញ្ជាក់ឧបករណ៍សង់សារពន្លឺ និង LED៖ + + ```python + id = '' + + client_name = id + 'nightlight_client' + ``` + + ជំនួស `` ជាមួយ ID របស់អ្នកដែលមានតែមួយ ដែលនឹងប្រើជាឈ្មោះនៃ client ឧបករណ៍នេះ ហើយបន្ទាប់មកសម្រាប់ប្រធានបទដែលឧបករណ៍នេះបង្ហោះ និង ចុះឈ្មោះ។ broker *test.mosquitto.org* គឺសាធារណៈ ហើយប្រើប្រាស់ដោយមនុស្សជាច្រើន រួមទាំងនិស្សិតផ្សេងទៀតដែលកំពុងធ្វើកិច្ចការនេះ។ ការមានឈ្មោះ client MQTT និងប្រធានបទដែលមានតែមួយធានាថាកូដរបស់អ្នកមិនជួបប្រទះបញ្ហាជាមួយអ្នកផ្សេងទៀត។ អ្នកនឹងត្រូវការប្រើ ID នេះនៅពេលអ្នកបង្កើតកូដម៉ាស៊ីនមេនៅក្រោយក្នុងកិច្ចការនេះផងដែរ។ + + > 💁 អ្នកអាចប្រើគេហទំព័រដូចជា [GUIDGen](https://www.guidgen.com) ដើម្បីបង្កើត ID ដែលទេរ។ + + `client_name` គឺជាឈ្មោះទ្រឹងតែមួយសម្រាប់ client MQTT នេះនៅលើ broker។ + +1. បន្ថែមកូដខាងក្រោមក្រោមកូដថ្មីនេះ ដើម្បីបង្កើតអប្សារកម្មវិធី MQTT client ហើយភ្ជាប់ទៅ MQTT broker៖ + + ```python + mqtt_client = mqtt.Client(client_name) + mqtt_client.connect('test.mosquitto.org') + + mqtt_client.loop_start() + + print("MQTT connected!") + ``` + + កូដនេះបង្កើតអប្សារមួយភ្ជាប់ទៅ MQTT broker សាធារណៈ ហើយចាប់ផ្តើមលំហូរការកំណត់ប្រតិបត្តិនៅក្នុងថ្រក ក្រោយ ដែលស្ដាប់សារ​នៅលើប្រធានបទដែលបានចុះឈ្មោះ។ + +1. រត់កូដដូចដែលអ្នកបានរត់កូដពីផ្នែកមុននៃកិច្ចការ។ ប្រសិនបើអ្នកកំពុងប្រើឧបករណ៍ម៉ូទ្យួត វិចិត្រសាល ទៅ​រាល់ CounterFit app កំពុងដំណើរការហើយឧបករណ៍សង់សារពន្លឺ និង LED ត្រូវបានបង្កើតនៅលើ pin ត្រឹមត្រូវ។ + + ```output + (.venv) ➜ nightlight python app.py + MQTT connected! + Light level: 0 + Light level: 0 + ``` + +> 💁 អ្នកអាចរកឃើញកូដនេះនៅក្នុងថត [code-mqtt/virtual-device](../../../../../1-getting-started/lessons/4-connect-internet/code-mqtt/virtual-device) ឬ ថត [code-mqtt/pi](../../../../../1-getting-started/lessons/4-connect-internet/code-mqtt/pi)។ + +😀 អ្នកបានភ្ជាប់ឧបករណ៍របស់អ្នកទៅ MQTT broker ដោយជោគជ័យ។ + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំប្រឹងប្រែងសម្រាប់ភាពត្រឹមត្រូវ សូមយកចិត្តទុកដាក់ថាការបកប្រែម៉ាស៊ីនអាចមានកំហុស ឬការបញ្ចូលមិនត្រឹមត្រូវ។ ឯកសារដើមនៅក្នុងភាសាបុរាណគួរត្រូវបានគេយកជាអ្នកផ្សព្វផ្សាយស្រេចត្រូវ។ សម្រាប់ព័ត៌មានសំខាន់ៗ និយោជកបកប្រែជាជំនាញមនុស្សគឺបានណែនាំ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសឆ្គងណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះទេ។ + \ No newline at end of file diff --git a/translations/km/1-getting-started/lessons/4-connect-internet/single-board-computer-telemetry.md b/translations/km/1-getting-started/lessons/4-connect-internet/single-board-computer-telemetry.md new file mode 100644 index 000000000..af010d33f --- /dev/null +++ b/translations/km/1-getting-started/lessons/4-connect-internet/single-board-computer-telemetry.md @@ -0,0 +1,67 @@ +# គ្រប់គ្រងពន្លឺរាត្រីរបស់អ្នកតាមអ៊ីនធឺណិត - ថេរ IoT ធម្មតា និង Raspberry Pi + +នៅផ្នែកនេះនៃមេរៀន អ្នកនឹងផ្ញើទិន្នន័យទូទៅជាមួយកម្រិតពន្លឺពី Raspberry Pi របស់អ្នក ឬឧបករណ៍ IoT ធម្មតាទៅឲ្យ MQTT broker។ + +## បោះពុម្ពផ្សាយទិន្នន័យទូទាំង + +ជំហានបន្ទាប់គឺបង្កើតឯកសារ JSON មានទិន្នន័យទូទាំងហើយផ្ញើវាទៅ MQTT broker។ + +### ការងារ + +បោះពុម្ពផ្សាយទិន្នន័យទៅ MQTT broker។ + +1. បើកគម្រោង nightlight នៅក្នុង VS Code។ + +1. ប្រសិនបើអ្នកកំពុងប្រើឧបករណ៍ IoT ធម្មតា សូមប្រាកដថា terminal កំពុងដំណើរការបរិស្ថានធម្មតា។ ប្រសិនបើអ្នកប្រើ Raspberry Pi អ្នកមិនត្រូវប្រើបរិស្ថានធម្មតាបានទេ។ + +1. បន្ថែមការនាំចូលដូចខាងក្រោមនៅខាងលើឯកសារ `app.py`៖ + + ```python + import json + ``` + + បណ្ណាល័យ `json` ត្រូវបានប្រើសម្រាប់ចាក់បញ្ចូលទិន្នន័យទូទាំងជាឯកសារ JSON។ + +1. បន្ថែមខាងក្រោយពាក្យប្រកាស `client_name` ដូចខាងក្រោម៖ + + ```python + client_telemetry_topic = id + '/telemetry' + ``` + + `client_telemetry_topic` គឺជាប្រធាន MQTT ដែលឧបករណ៍នឹងបោះពុម្ពផ្សាយកម្រិតពន្លឺទៅ។ + +1. ជំនួសមាតិកានៃរង្វង់ `while True:` នៅចុងឯកសារដោយអ្វីដែលមានដូចខាងក្រោម៖ + + ```python + while True: + light = light_sensor.light + telemetry = json.dumps({'light' : light}) + + print("Sending telemetry ", telemetry) + + mqtt_client.publish(client_telemetry_topic, telemetry) + + time.sleep(5) + ``` + + កូដនេះបន្ទុកកម្រិតពន្លឺជាឯកសារ JSON ហើយបោះពុម្ពផ្សាយវាទៅ MQTT broker។ បន្ទាប់មកវានឺងដើម្បីកាត់បន្ថយប្រេកង់នៃសារ។ + +1. ដំណើរការកូដ ដូចដែលអ្នកបានដំណើរការកូដពីផ្នែកមុននៃការងារ។ ប្រសិនបើអ្នកកំពុងប្រើឧបករណ៍ IoT ធម្មតា សូមប្រាកដថាកម្មវិធី CounterFit កំពុងដំណើរការ ហើយអូបសេនស័រ ពន្លឺ និង LED ត្រូវបានបង្កើតនៅលើខ្សែរភ្ជាប់ត្រឹមត្រូវ។ + + ```output + (.venv) ➜ nightlight python app.py + MQTT connected! + Sending telemetry {"light": 0} + Sending telemetry {"light": 0} + ``` + +> 💁 អ្នកអាចរកកូដនេះនៅក្នុងថត [code-telemetry/virtual-device](../../../../../1-getting-started/lessons/4-connect-internet/code-telemetry/virtual-device) ឬថត [code-telemetry/pi](../../../../../1-getting-started/lessons/4-connect-internet/code-telemetry/pi)។ + +😀 អ្នកបានផ្ញើទិន្នន័យទូទាំងពីឧបករណ៍របស់អ្នកដោយជោគជ័យ។ + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខំប្រឹងព្យាយាមរកភាពត្រឹមត្រូវ សូមយកចិត្តទុកដាក់ថាការបកប្រែដោយស្វ័យប្រវត្តិនេះអាចមានកំហុសឬការមិនត្រឹមត្រូវខ្លះៗ។ ឯកសារដើមនៅក្នុងភាសាមូលដ្ឋានគួរត្រូវបានពិចារណាថាជាអ្នកផ្តល់ព័ត៌មានដ៏មានសំខាន់។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឱ្យបកប្រែមនុស្សវិជ្ជាជីវៈ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំនិងការពិចារណាខុសៗដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/1-getting-started/lessons/4-connect-internet/wio-terminal-commands.md b/translations/km/1-getting-started/lessons/4-connect-internet/wio-terminal-commands.md new file mode 100644 index 000000000..4b3d8fbfe --- /dev/null +++ b/translations/km/1-getting-started/lessons/4-connect-internet/wio-terminal-commands.md @@ -0,0 +1,86 @@ +# គ្រប់គ្រងភ្លើងភាគន្ធរបស់អ្នកតាមអ៊ីនធឺណិត - Wio Terminal + +នៅផ្នែកនេះនៃមេរៀន អ្នកនឹងចុះឈ្មោះទទួលបញ្ចប់បញ្ជា ដែលផ្ញើពីអ្នកចែកចាយ MQTT មកកាន់ Wio Terminal របស់អ្នក។ + +## ចុះឈ្មោះទទួលបញ្ជា + +ជំហានបន្ទាប់ គឺចុះឈ្មោះទទួលបញ្ជាដែលផ្ញើពីអ្នកចែកចាយ MQTT ហើយឆ្លើយតបពួកវា។ + +### ភារកិច្ច + +ចុះឈ្មោះទទួលបញ្ជា។ + +1. បើកគំរោង nightlight នៅក្នុង VS Code។ + +1. បន្ថែមកូដខាងក្រោមទៅខាងក្រោមនៃឯកសារ `config.h` ដើម្បីកំណត់ឈ្មោះប្រធានបទសម្រាប់បញ្ជាៈ + + ```cpp + const string SERVER_COMMAND_TOPIC = ID + "/commands"; + ``` + + `SERVER_COMMAND_TOPIC` គឺជាប្រធានបទដែលឧបករណ៍នឹងចុះឈ្មោះទទួលសម្រាប់ទទួលបញ្ជា LED។ + +1. បន្ថែមខ្សែបន្ទាត់ខាងក្រោមទៅចុងរបស់ម៉ូឌុល​`reconnectMQTTClient` ដើម្បីចុះឈ្មោះប្រធានបទបញ្ជា នៅពេលដែល MQTT client ផ្ដើមភ្ជាប់ឡើងវិញ៖ + + ```cpp + client.subscribe(SERVER_COMMAND_TOPIC.c_str()); + ``` + +1. បន្ថែមកូដខាងក្រោមក្រោមម៉ូឌុល `reconnectMQTTClient`។ + + ```cpp + void clientCallback(char *topic, uint8_t *payload, unsigned int length) + { + char buff[length + 1]; + for (int i = 0; i < length; i++) + { + buff[i] = (char)payload[i]; + } + buff[length] = '\0'; + + Serial.print("Message received:"); + Serial.println(buff); + + DynamicJsonDocument doc(1024); + deserializeJson(doc, buff); + JsonObject obj = doc.as(); + + bool led_on = obj["led_on"]; + + if (led_on) + digitalWrite(D0, HIGH); + else + digitalWrite(D0, LOW); + } + ``` + + មុខងារនេះនឹងជាការហៅត្រឡប់មួយដែល MQTT client នឹងហៅនៅពេលដែលវាទទួលបានសារ​ពីម៉ាស៊ីនបម្រើ។ + + សារ​មាន​ទ្រង់ទ្រាយ​ជា​អារេ​នៃ​ចំនួន​ពិត​មិនអត្ថលេខ ៨-ប៊ីត ដូច្នេះត្រូវបម្លែងទៅជាអារេតួអក្សរដើម្បីដំណើរការ​ជា​អត្ថបទ។ + + សារនេះមានឯកសារ JSON ហើយត្រូវបានបកស្រាយដោយប្រើបណ្ណាល័យ ArduinoJson។ គុណលក្ខណៈ `led_on` នៃឯកសារ JSON ត្រូវបានអាន ហើយអាស្រ័យលើតម្លៃ ទឹកដៃ LED នឹងបើកឬបិទ។ + +1. បន្ថែមកូដខាងក្រោមទៅម៉ូឌុល `createMQTTClient`៖ + + ```cpp + client.setCallback(clientCallback); + ``` + + កូដនេះកំណត់ `clientCallback` ជាការហៅត្រឡប់ដែលត្រូវហៅពេលសារមកពីអ្នកចែកចាយ MQTT ។ + + > 💁 កម្មវិធី `clientCallback` នេះត្រូវហៅសម្រាប់ប្រធានបទទាំងអស់ដែលបានចុះឈ្មោះ។ ប្រសិនបើអ្នកបន្ថែមកូដនៅពេលក្រោយដែលស្តាប់ប្រធានបទច្រើន អ្នកអាចទទួលបានប្រធានបទដែលសារត្រូវបានផ្ញើទៅ ពីប៉ារ៉ាម៉ែត្រ `topic` ដែលផ្ញើទៅមុខងារហៅត្រឡប់។ + +1. ផ្ទុកកូដទៅ Wio Terminal របស់អ្នក ហើយប្រើកម្មវិធី Serial Monitor ដើម្បីមើលកម្រិតពន្លឺដែលផ្ញើទៅ MQTT broker ។ + +1. ច្រាស់កម្រិតពន្លឺដែលឧបករណ៍របស់អ្នកបន្ថែមទាំងផ្ទាល់ និងពិត ឬនិម្មិត។ អ្នកនឹងឃើញសារត្រូវបានទទួល និងបញ្ជាទាំងនេះត្រូវបានផ្ញើក្នុងម៉ោនីទ័រ។ អ្នកនឹងក៏ឃើញ LED បើក និងបិទផ្អែកលើកម្រិតពន្លឺ។ + +> 💁 អ្នកអាចរកបណ្ដុំកូដនេះនៅក្នុងថត [code-commands/wio-terminal](../../../../../1-getting-started/lessons/4-connect-internet/code-commands/wio-terminal)។ + +😀 អ្នកបានកូដឧបករណ៍របស់អ្នកជោគជ័យក្នុងការឆ្លើយតបទៅបញ្ជាពីសេវាកម្ម MQTT។ + +--- + + +**ការបដិសេធ**: +ឯកសារនេះត្រូវបានបំលែងជាភាសាផ្ទាល់តាមសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះយើងខិតខំក្នុងការបន្តអោយមានភាពត្រឹមត្រូវ ក៏ដោយ សូមអញ្ជើញយកចិត្តទុកដាក់ថា ការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬមិនត្រឹមត្រូវ។ ឯកសារដើមជាភាសាដើមគួរត្រូវបានគេយកជាឯកសារមូលដ្ឋានដែលមានអំណាចខ្ពស់បំផុត។ សម្រាប់ព័ត៌មានសំខាន់ណាស់ ការបកប្រែដោយមនុស្សដែលមានជំនាញគឺត្រូវបានផ្តល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសពីការប្រើប្រាស់ការបកប្រែនេះទេ។ + \ No newline at end of file diff --git a/translations/km/1-getting-started/lessons/4-connect-internet/wio-terminal-mqtt.md b/translations/km/1-getting-started/lessons/4-connect-internet/wio-terminal-mqtt.md new file mode 100644 index 000000000..59ca1e61f --- /dev/null +++ b/translations/km/1-getting-started/lessons/4-connect-internet/wio-terminal-mqtt.md @@ -0,0 +1,244 @@ +# គ្រប់គ្រងពន្លឺយប់របស់អ្នកតាមអ៊ីនធឺណិត - Wio Terminal + +ឧបករណ៍ IoT ត្រូវបានត្រូវកូដដើម្បីផ្ញើសារជាមួយ *test.mosquitto.org* ដោយប្រើ MQTT ដើម្បីផ្ញើតម្លៃទិន្នន័យពីសენსួរពន្លឺ និងទទួលបញ្ញាត្រឿងហៅដើម្បីគ្រប់គ្រង LED។ + +នៅក្នុងផ្នែកនេះនៃមេរៀន អ្នកនឹងភ្ជាប់ Wio Terminal របស់អ្នកទៅកាន់ MQTT broker។ + +## ដំឡើងបណ្ណាល័យ WiFi និង MQTT របស់ Arduino + +ដើម្បីផ្ញើពត៌មានទៅ MQTT broker អ្នកត្រូវតែដំឡើងបណ្ណាល័យ Arduino មួយចំនួនសម្រាប់ប្រើប្រាស់ឈីប WiFi នៅក្នុង Wio Terminal ហើយធ្វើការទំនាក់ទំនងជាមួយ MQTT។ នៅពេលអភិវឌ្ឍសម្រាប់ឧបករណ៍ Arduino អ្នកអាចប្រើបណ្ណាល័យជាច្រើនដែលមានកូដបើកចំហ និងដំណើរការជាច្រើនមុខងារ។ Seeed ផ្សព្វផ្សាយបណ្ណាល័យសម្រាប់ Wio Terminal ដែលអនុញ្ញាតឲ្យវាចាប់ផ្តើមទំនាក់ទំនងតាមរយៈ WiFi។ អ្នកអភិវឌ្ឍផ្សេងទៀតបានផ្ដល់បណ្ណាល័យដើម្បីភ្ជាប់ទៅម៉ាស៊ីន MQTT broker ហើយអ្នកនឹងប្រើប្រាស់វាជាមួយឧបករណ៍របស់អ្នក។ + +បណ្ណាល័យទាំងនេះត្រូវបានផ្ដល់ជាកូដដើមដែលអាចនាំចូលដោយស្វ័យប្រវត្តិទៅ PlatformIO ហើយបញ្ចូលទៅក្នុងឧបករណ៍របស់អ្នក។ ដូច្នេះបណ្ណាល័យ Arduino នឹងដំណើរការលើឧបករណ៍ណាមួយដែលគាំទ្រ។ Arduino framework ប្រសិនបើឧបករណ៍មានឧបករណ៍វ hardware ជាក់លាក់ដែលបណ្ណាល័យត្រូវការជាជាងនេះ។ បណ្ណាល័យខ្លះៗ ដូចជា បណ្ណាល័យ Seeed WiFi គឺជាសម្បទានទៅឧបករណ៍វិសេស។ + +បណ្ណល័យអាចត្រូវបានដំឡើងទូទៅ និងបង្កើតឡើងវិញ ប្រសិនបើត្រូវការឬនៅក្នុងគម្រោងជាក់លាក់។ សម្រាប់ភារកិច្ចនេះ អ្នកនឹងដំឡើងបណ្ណាល័យទៅក្នុងគម្រោងនេះ។ + +✅ អ្នកអាចស្វែងយល់បន្ថែមអំពីការគ្រប់គ្រងបណ្ណាល័យ និងរបៀបរកនិងដំឡើងបណ្ណាល័យនៅក្នុង [ឯកសារបណ្ណាល័យ PlatformIO](https://docs.platformio.org/en/latest/librarymanager/index.html)។ + +### ភារកិច្ច - ដំឡើងបណ្ណាល័យ WiFi និង MQTT របស់ Arduino + +ដំឡើងបណ្ណាល័យ Arduino។ + +1. បើកគំរូ nightlight ក្នុង VS Code។ + +1. បន្ថែមអ្វីខាងក្រោមទៅចុងឯកសារ `platformio.ini`៖ + + ```ini + lib_deps = + seeed-studio/Seeed Arduino rpcWiFi @ 1.0.5 + seeed-studio/Seeed Arduino FS @ 2.1.1 + seeed-studio/Seeed Arduino SFUD @ 2.0.2 + seeed-studio/Seeed Arduino rpcUnified @ 2.1.3 + seeed-studio/Seeed_Arduino_mbedtls @ 3.0.1 + ``` + + នេះនាំចូលបណ្ណាល័យ Seeed WiFi។ សញ្ញា `@ ` មានន័យបង្ហាញទៅលេខកំណែជាក់លាក់នៃបណ្ណល័យ។ + + > 💁 អ្នកអាចយក `@ ` ចេញដើម្បីប្រើម៉ូដែលថ្មីបំផុតនៃបណ្ណាល័យ តែពុំមានការធានាថាម៉ូដែលថ្មីនឹងដំណើរការ​ជាមួយកូដខាងក្រោម។ កូដនៅទីនេះត្រូវបានសាកល្បងជាមួយវ៉ើស្យុងនៃបណ្ណាល័យនេះ។ + + នេះគឺជាអ្វីដែលអ្នកត្រូវធ្វើដើម្បីបន្ថែមបណ្ណាល័យ។ ពេលក្រោយពេល PlatformIO សាងសង់គំរោង នឹងទាញយកកូដដើមនៃបណ្ណាល័យទាំងនេះមក ហើយបង្កើតវាទៅក្នុងគម្រោងរបស់អ្នក។ + +1. បន្ថែមអ្វីខាងក្រោមទៅ `lib_deps`៖ + + ```ini + knolleary/PubSubClient @ 2.8 + ``` + + នេះនាំចូល [PubSubClient](https://github.com/knolleary/pubsubclient) ដែលជាអតិថិជន MQTT សម្រាប់ Arduino + +## ភ្ជាប់ទៅ WiFi + +ឥឡូវនេះ Wio Terminal អាចភ្ជាប់ទៅ WiFi បានហើយ។ + +### ភារកិច្ច - ភ្ជាប់ទៅ WiFi + +ភ្ជាប់ Wio Terminal ទៅ WiFi។ + +1. បង្កើតឯកសារថ្មីនៅក្នុងថត `src` ឈ្មោះ `config.h`។ អ្នកអាចធ្វើបានដោយជ្រើសម្សៅថត `src` ឬឯកសារ `main.cpp` ខណៈអ្នកស្នាក់នៅលើ Explorer រួចចុចប៊ូតុង **New file** ។ ប៊ូតុងនេះនឹងបង្ហាញនៅពេលកួចរបស់អ្នកនៅលើ Explorer។ + + ![ប៊ូតុងឯកសារថ្មី](../../../../../translated_images/km/vscode-new-file-button.182702340fe6723c.webp) + +1. បន្ថែមកូដខាងក្រោមទៅឯកសារនេះ ដើម្បីកំណត់អថេរ​លេខសំងាត់​សម្រាប់គណនី WiFi របស់អ្នក៖ + + ```cpp + #pragma once + + #include + + using namespace std; + + // សារព័ត៌មានភ្ជាប់ WiFi + const char *SSID = ""; + const char *PASSWORD = ""; + ``` + + ជំនួស `` ជាមួយឈ្មោះ SSID របស់ WiFi។ ជំនួស `` ជាមួយពាក្យសម្ងាត់ WiFi របស់អ្នក។ + +1. បើកឯកសារ `main.cpp` + +1. បន្ថែមបញ្ចូល `#include` ខាងក្រោមនៅចំណុចលើឯកសារ៖ + + ```cpp + #include + #include + #include + + #include "config.h" + ``` + + នេះរួមបញ្ចូលឯកសារចំណងជើងសម្រាប់បណ្ណាល័យដែលអ្នកបានដំឡើងជាមុនដូចជាឯកសារ config ។ ឯកសារចំណងជើងទាំងនេះចាំបាច់សម្រាប់បង្ហាញ PlatformIO ឲ្យយកកូដពីបណ្ណាល័យមក។ ប្រសិនបើមិនបានរួមបញ្ចូល ឯកសារចំណងជើងទាំងនេះ មួយចំនួននៃកូដនឹងមិនបានបញ្ចូល និងអ្នកនឹងទទួលបានកំហុសក្រោមកម្មវិធីសម្រួល។ + +1. បន្ថែមកូដខាងក្រោមមួយចំនួននៅលើមុខមុខ `setup` function៖ + + ```cpp + void connectWiFi() + { + while (WiFi.status() != WL_CONNECTED) + { + Serial.println("Connecting to WiFi.."); + WiFi.begin(SSID, PASSWORD); + delay(500); + } + + Serial.println("Connected!"); + } + ``` + + កូដនេះធ្វើការជាមួយរហូតឧបករណ៍ភ្ជាប់ WiFi មិនទាន់បាន តែងតែព្យាយាមប្រើ SSID និងពាក្យសម្ងាត់ពីឯកសារ config ។ + +1. បន្ថែមការហៅមុខងារនេះនៅចុង `setup` function បន្ទាប់ពីតភ្ជាប់បរិក្ខារជាមួយឆ្វេងខាងត្រង់។ + + ```cpp + connectWiFi(); + ``` + +1. ផ្ញើកូដទៅឧបករណ៍ ដើម្បីពិនិត្យមើលការភ្ជាប់ WiFi ដំណើរការ។ អ្នកគួរតែឃើញអ្វីនេះនៅក្នុងម៉ូនីទ័រស៊េរីល។ + + ```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.usbmodem1101 9600,8,N,1 --- + --- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H --- + Connecting to WiFi.. + Connected! + ``` + +## ភ្ជាប់ទៅ MQTT + +ក្រោយពី Wio Terminal ភ្ជាប់ទៅ WiFi បាន វាអាចភ្ជាប់ទៅ MQTT broker បាន។ + +### ភារកិច្ច - ភ្ជាប់ទៅ MQTT + +ភ្ជាប់ទៅ MQTT broker។ + +1. បន្ថែមកូដខាងក្រោមទល់ចុងឯកសារ `config.h` ដើម្បីកំណត់ព័ត៌មានភ្ជាប់សម្រាប់ MQTT broker៖ + + ```cpp + // ការកំណត់ MQTT + const string ID = ""; + + const string BROKER = "test.mosquitto.org"; + const string CLIENT_NAME = ID + "nightlight_client"; + ``` + + ជំនួស `` ជាមួយលេខសម្គាល់តែមួយដែលនឹងប្រើជាឈ្មោះឈ្មោះកម្មវិធី client នៃឧបករណ៍នេះ និងបន្ទាប់សម្រាប់ប្រធានបទដែលឧបករណ៍នេះផ្សាយ និងជាវ។ Broker *test.mosquitto.org* ជាសាធារណៈ និងអ្នកជាច្រើន ប្រើ រួមមាននិស្សិតផ្សេងទៀតដែលកំពុងរៀនដោយមានភារកិច្ចនេះ។ ការមានឈ្មោះ client MQTT និងប្រធានបទតែមួយធានាថាកូដរបស់អ្នកមិនប៉ះពាល់ជាមួយអ្នកផ្សេងទៀតទេ។ អ្នកនឹងត្រូវការបញ្ចូល ID នេះ នៅពេលបង្កើតកូដម៉ាស៊ីវនៅផ្នែកក្រោយនៃភារកិច្ចនេះ។ + + > 💁 អ្នកអាចប្រើវែបសាយដូចជា [GUIDGen](https://www.guidgen.com) ដើម្បីបង្កើត ID តែមួយ។ + + `BROKER` គឺជា URL របស់ MQTT broker។ + + `CLIENT_NAME` គឺជា ឈ្មោះឯកឯងសម្រាប់ client MQTT នេះនៅលើ broker។ + +1. បើកឯកសារ `main.cpp` និងបន្ថែមកូដខាងក្រោមក្រោមមុខងារ `connectWiFi` និងខាងលើមុខងារ `setup`៖ + + ```cpp + WiFiClient wioClient; + PubSubClient client(wioClient); + ``` + + កូដនេះបង្កើតអតិថិជន WiFi ដោយប្រើបណ្ណាល័យ WiFi របស់ Wio Terminal ហើយប្រើវា ដើម្បីបង្កើតអតិថិជន MQTT។ + +1. ខាងក្រោមកូដនេះ បន្ថែមកូដដូចខាងក្រោម៖ + + ```cpp + void reconnectMQTTClient() + { + while (!client.connected()) + { + Serial.print("Attempting MQTT connection..."); + + if (client.connect(CLIENT_NAME.c_str())) + { + Serial.println("connected"); + } + else + { + Serial.print("Retying in 5 seconds - failed, rc="); + Serial.println(client.state()); + + delay(5000); + } + } + } + ``` + + មុខងារនេះសាកល្បងភ្ជាប់ទៅ MQTT broker ហើយភ្ជាប់ឡើងវិញ ប្រសិនបើមិនបានភ្ជាប់។ វាតែងតែបញ្ចូលឡើងវិញជាបន្ត ប៉ះពិចារណារវាងទីបន្ថែម និងព្យាយាមភ្ជាប់ដោយប្រើឈ្មោះ client តែមួយដែលបានកំណត់ក្នុងឯកសារ config។ + + ប្រសិនបើភ្ជាប់មិនបាន វានឹងព្យាយាមម្ដងទៀតបន្ទាប់ពី 5 វិនាទី។ + +1. បន្ថែមកូដខាងក្រោមទៅក្រោមមុខងារ `reconnectMQTTClient`៖ + + ```cpp + void createMQTTClient() + { + client.setServer(BROKER.c_str(), 1883); + reconnectMQTTClient(); + } + ``` + + កូដនេះកំណត់ broker MQTT សម្រាប់ client រួចរៀបចំ callback នៅពេលទទួលសារមក។ បន្ទាប់មកវាធ្វើការប្រាវប្រាណភ្ជាប់ទៅ broker ។ + +1. ហៅមុខងារ `createMQTTClient` ក្នុង `setup` function បន្ទាប់ពីភ្ជាប់ WiFi បាន។ + +1. ជំនួស `loop` function ពេញលេញ ជាមួយអ្វីខាងក្រោម៖ + + ```cpp + void loop() + { + reconnectMQTTClient(); + client.loop(); + + delay(2000); + } + ``` + + កូដនេះចាប់ផ្តើមដោយភ្ជាប់ឡើងវិញទៅ MQTT broker។ ការតភ្ជាប់ទាំងនេះអាចផ្អាកបានយ៉ាងងាយ សម្រាប់នេះគួរតែប្រាកដថាពិនិត្យ និងភ្ជាប់ឡើងវិញយ៉ាងស្អាត។ បន្ទាប់មកវាជូនការហៅមុខងារ `loop` លើ client MQTT ដើម្បីដំណើរការសារណាណាដែលចូលមកឡើងនៅលើប្រធានបទដែលបានជាវ។ កម្មវិធីនេះមានតែ១ច្រកដូច្នេះមិនអាចទទួលសារដោយថ្នាក់ក្រោយបាន ទេសំនោរកំលាំងនៅលើថ្នាក់ដើមត្រូវបានផ្តល់ឱ្យដំណើរការសារទាំងអស់ត្រួតពិនិត្យនៅលើតំណភ្ជាប់បណ្ដាញ។ + + ចុងក្រោយ ការបោះពេលវេលា 2 វិនាទីធ្វើឲ្យកម្រិតពន្លឺមិនត្រូវបានផ្ញើជាញឹកញាប់ ហើយបន្ថយការបរិភោគថាមពលរបស់ឧបករណ៍។ + +1. ផ្ញើកូដទៅ Wio Terminal របស់អ្នក ហើយប្រើ Serial Monitor ដើម្បីមើលឧបករណ៍ភ្ជាប់ទៅ WiFi និង MQTT។ + + ```output + > Executing task: platformio device monitor < + + source /Users/jimbennett/GitHub/IoT-For-Beginners/1-getting-started/lessons/4-connect-internet/code-mqtt/wio-terminal/nightlight/.venv/bin/activate + --- 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 + ``` + +> 💁 អ្នកអាចរកឃើញកូដនេះនៅក្នុងថត [code-mqtt/wio-terminal](../../../../../1-getting-started/lessons/4-connect-internet/code-mqtt/wio-terminal)។ + +😀 អ្នកបានភ្ជាប់ឧបករណ៍របស់អ្នកជោគជ័យទៅ MQTT broker ហើយ។ + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបម្លែងភាសាដោយប្រើសេវាកម្មបម្លែងភាសា AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងព្យាយាមឲ្យបានត្រឹមត្រូវ សូមយល់ដឹងថាការបម្លែងភាសាដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាមូលដ្ឋានគួรถูกចាត់ទុកជាឯកសារដែលមានអត្តសញ្ញាណធ្វើជារឹមគោល។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមផ្ដល់អនុសាសន៍ឲ្យបម្លែងភាសាដោយមនុស្សជំនាញជំនួញ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសដែលកើតមានពីការប្រើប្រាស់ការបម្លែងភាសានេះនោះទេ។ + \ No newline at end of file diff --git a/translations/km/1-getting-started/lessons/4-connect-internet/wio-terminal-telemetry.md b/translations/km/1-getting-started/lessons/4-connect-internet/wio-terminal-telemetry.md new file mode 100644 index 000000000..f6b83d8fd --- /dev/null +++ b/translations/km/1-getting-started/lessons/4-connect-internet/wio-terminal-telemetry.md @@ -0,0 +1,86 @@ +# គ្រប់គ្រងប្រភពពន្លឺយប់របស់អ្នកតាមរយៈអ៊ីនធឺណិត - Wio Terminal + +នៅផ្នែកនេះនៃមេរៀន អ្នកនឹងផ្ញើព័ត៌មានតែលេមីត្រីជាមួយកម្រិតពន្លឺពី Wio Terminal របស់អ្នកទៅកាន់ម៉ាស៊ីនមេ MQTT។ + +## តម្លើងបណ្ណាល័យ JSON សម្រាប់ Arduino + +វិធីពេញនិយមមួយក្នុងការផ្ញើសារតាម MQTT គឺការប្រើ JSON។ មានបណ្ណាល័យ Arduino សម្រាប់ JSON ដែលធ្វើឲ្យការអាននិងសរសេរ​ឯកសារ JSON កាន់តែងាយស្រួល។ + +### ភារកិច្ច + +តម្លើងបណ្ណាល័យ Arduino JSON។ + +1. បើកគម្រោង nightlight នៅក្នុង VS Code។ + +1. បន្ថែមខាងក្រោមនេះជាបន្ទាត់បន្ថែមទៅក្នុងបញ្ជី `lib_deps` នៅក្នុងឯកសារ `platformio.ini`៖ + + ```ini + bblanchon/ArduinoJson @ 6.17.3 + ``` + + វានាំចូល [ArduinoJson](https://arduinojson.org) ដែលជាបណ្ណាល័យ JSON សម្រាប់ Arduino ។ + +## បោះពុម្ពផ្សាយព័ត៌មានតេលេមីត្រី + +ជំហានបន្ទាប់គឺបង្កើតឯកសារ JSON មានព័ត៌មានតេលេមីត្រី ហើយផ្ញើវាទៅម៉ាស៊ីនមេ MQTT។ + +### ភារកិច្ច - បោះពុម្ពផ្សាយព័ត៌មានតេលេមីត្រី + +បោះពុម្ពផ្សាយព័ត៌មានតេលេមីត្រីទៅម៉ាស៊ីនមេ MQTT។ + +1. បន្ថែមកូដខាងក្រោមទៅចុងឯកសារ `config.h` ដើម្បីកំណត់ឈ្មោះប្រធានបទតេលេមីត្រីសម្រាប់ម៉ាស៊ីនមេ MQTT៖ + + ```cpp + const string CLIENT_TELEMETRY_TOPIC = ID + "/telemetry"; + ``` + + `CLIENT_TELEMETRY_TOPIC` ជាប្រធានបទដែលឧបករណ៍នឹងបោះពុម្ពផ្សាយកម្រិតពន្លឺទៅ។ + +1. បើកឯកសារ `main.cpp` + +1. បន្ថែមការបញ្ជាក់ `#include` ខាងក្រោមនៅផ្នែកលើនៃឯកសារ៖ + + ```cpp + #include + ``` + +1. បន្ថែមកូដខាងក្រោមនៅក្នុងមុខងារ `loop` មុន `delay`៖ + + ```cpp + int light = analogRead(WIO_LIGHT); + + DynamicJsonDocument doc(1024); + doc["light"] = light; + + string telemetry; + serializeJson(doc, telemetry); + + Serial.print("Sending telemetry "); + Serial.println(telemetry.c_str()); + + client.publish(CLIENT_TELEMETRY_TOPIC.c_str(), telemetry.c_str()); + ``` + + កូដនេះអានកម្រិតពន្លឺ និងបង្កើតឯកសារ JSON ដោយប្រើ ArduinoJson ដែលមានកម្រិតនេះ។ បន្ទាប់មកវាត្រូវបានបម្លែងទៅជាខ្សែអក្សរហើយបានបោះពុម្ពផ្សាយលើប្រធានបទ MQTT តេលេមីត្រីដោយអតិថិជន MQTT។ + +1. បញ្ចូលកូដទៅ Wio Terminal របស់អ្នក ហើយប្រើ Serial Monitor ដើម្បីមើលកម្រិតពន្លឺដែលកំពុងត្រូវបានផ្ញើទៅម៉ាស៊ីនមេ MQTT។ + + ```output + Connecting to WiFi.. + Connected! + Attempting MQTT connection...connected + Sending telemetry {"light":652} + Sending telemetry {"light":612} + Sending telemetry {"light":583} + ``` + +> 💁 អ្នកអាចស្វែងរកកូដនេះនៅក្នុងថត [code-telemetry/wio-terminal](../../../../../1-getting-started/lessons/4-connect-internet/code-telemetry/wio-terminal)។ + +😀 អ្នកបានផ្ញើព័ត៌មានតេលេមីត្រីពីឧបករណ៍របស់អ្នកដោយជោគជ័យ។ + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំប្រឹងប្រែងសម្រាប់ភាពត្រឹមត្រូវ សូមយល់ដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមនៅក្នុងភាសាមាតុភាសារបស់វាគួរត្រូវបានគិតថាជាផ្នែកដើមដែលមានសិទ្ធិពេញលេញ។ សម្រាប់ព័ត៌មានដែលចាំបាច់ខ្លាំង ការបកប្រែដោយមនុស្សជំនាញគឺត្រូវបានណែនាំ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកអក្សរមិនត្រឹមត្រូវណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះទេ។ + \ No newline at end of file diff --git a/translations/km/2-farm/README.md b/translations/km/2-farm/README.md new file mode 100644 index 000000000..44e6ec5fa --- /dev/null +++ b/translations/km/2-farm/README.md @@ -0,0 +1,27 @@ +# កសិកម្មជាមួយ IoT + +នៅពេលដែលប្រជាជនកើនឡើង ការទាមទារដល់វិស័យកសិកម្មក៏រីកចម្រើនដែរ។ បរិមាណដីដែលមានកំណត់មិនប្រែប្រួលឡើយ ប៉ុន្តែអាកាសធាតុប្រែប្រួល - ដែលផ្តល់បញ្ហាបន្ថែមទៅកសិករមួយចំនួន ជាពិសេសគឺកសិករជិត 2 ពាន់លាននាក់ [កសិករអាស្រ័យលើខ្លួនឯង](https://wikipedia.org/wiki/Subsistence_agriculture) ដែលពឹងផ្អែកលើការដាំដូលដើម្បី អាចញុំា និងផ្គត់ផ្គង់អាហារឲ្យគ្រួសាររបស់ពួកគេ។ IoT អាចជួយកសិករទទួលបានការសម្រេចចិត្តឆ្លាតវៃជាងមុនលើអ្វីដែលត្រូវដាំនិងពេលវេលាចម្អិនវា កង្វះបរិមាណការងារដោយដៃ និងរកឃើញនិងដោះស្រាយបញ្ហាសត្វល្អិត។ + +នៅក្នុងមេរៀនទាំង 6 នេះ អ្នកនឹងរៀនពីរបៀបអនុវត្តអ៊ិនធឺណិតវត្ថុ ដើម្បីធ្វើឱ្យការដាំដុះកសិកម្មកាន់តែប្រសើរនិងអូតូម៉ាទិក។ + +> 💁 មេរៀនទាំងនេះនឹងប្រើប្រាស់ធនធានមេឃមួយចំនួន។ ប្រសិនបើអ្នកមិនបានបញ្ចប់មេរៀនទាំងអស់ក្នុងគម្រោងនេះ សូមប្រាកដថាអ្នកបាន [សម្អាតគម្រោងរបស់អ្នក](../clean-up.md)។ + +## វិស័យ + +1. [ព្យាករណ៍កំណើតរបស់រុក្ខជាតិជាមួយ IoT](lessons/1-predict-plant-growth/README.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) + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំប្រឹងប្រែងដើម្បីទទួលបានភាពត្រឹមត្រូវ សូមយល់ដឹងថាការបកប្រែដោយឡើងដោយម៉ាស៊ីនអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាមាតុភូមិគួរត្រូវបានទទួលស្គាល់ថាជាជំនាញផ្លូវការសម្រាប់ព័ត៌មានដែលមានសារៈសំខាន់។ សម្រាប់ព័ត៌មានសំខាន់ យើងសូមផ្តល់អនុសាសន៍ឱ្យប្រើការបកប្រែដោយអ្នកជំនាញមនុស្សជំនាញ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសប្រកបដោយការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/2-farm/lessons/1-predict-plant-growth/README.md b/translations/km/2-farm/lessons/1-predict-plant-growth/README.md new file mode 100644 index 000000000..4f45e364f --- /dev/null +++ b/translations/km/2-farm/lessons/1-predict-plant-growth/README.md @@ -0,0 +1,277 @@ +# ការព្យាករណ៍ការលូតលាស់របស់រុក្ខជាតិជាមួយ IoT + +![រូបរាងសង្ខេបនៃមេរៀននេះ](../../../../../translated_images/km/lesson-5.42b234299279d263.webp) + +> រូបរាងសង្ខេបដោយ [Nitya Narasimhan](https://github.com/nitya)។ ចុចលើរូបនេះសម្រាប់មើលជារូបធំ។ + +## ប្រឡងមុនមេរៀន + +[ប្រឡងមុនមេរៀន](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/9) + +## ណែនាំ + +រុក្ខជាតិត្រូវការអ្វីខ្លះមួយចំនួនសម្រាប់លូតលាស់ - ទឹក, កាបូនឌីអុកស៊ីដ, សារធាតុអាហារ, ពន្លឺ និងកំដៅ។ ក្នុងមេរៀននេះ អ្នកនឹងរៀនពីរបៀបគណនាអត្រាការលូតលាស់ និងវ័យក្តៅរបស់រុក្ខជាតิโดยវាស់សីតុណ្ហភាពខ្យល់។ + +ក្នុងមេរៀននេះយើងនឹងដោះស្រាយ៖ + +* [កសិកម្មឌីជីថល](#កសិកម្មឌីជីថល) +* [ហេតុអ្វីបានជាសីតុណ្ហភាពមានសារៈសំខាន់នៅពេលធ្វើកសិកម្ម?](#ហេតុអ្វីបានជា​សីតុណ្ហភាព​មានសារៈសំខាន់​នៅពេល​ធ្វើ​កសិកម្ម) +* [វាស់សីតុណ្ហភាពបរិយាកាស](#វាស់សីតុណ្ហភាពបរិយាកាស) +* [កំរិតដឺក្រൾកើនឡើង (GDD)](#កំរិតដឺក្រែលកើនឡើង) +* [គណនាអំពី GDD ដោយប្រើទិន្នន័យឧបករណ៍វាស់សីតុណ្ហភាព](#គណនាកំរិត-gdd-ដោយប្រើទិន្នន័យឧបករណ៍វាស់សីតុណ្ហភាព) + +## កសិកម្មឌីជីថល + +កសិកម្មឌីជីថលកំពុងបម្លែងរបៀបដែលយើងធ្វើកសិកម្ម ដោយប្រើឧបករណ៍សម្រាប់ជួបប្រមូល, រក្សាទុក និងវិភាគទិន្នន័យពីការធ្វើកសិកម្ម។ យើងកំពុងនៅក្នុងដំណើរការដែលគេហៅថា 'ប្រជុំឧស្សាហកម្មទីបួន' ដោយក្រុមប្រឹក្សាអេកូណូមិចពិភពលោក ហើយការកើតមកនៃកសិកម្មឌីជីថលត្រូវបានគេហៅថា 'ប្រជុំកសិកម្មទីបួន' ឬ 'កសិកម្ម 4.0'។ + +> 🎓 ពាក្យ "កសិកម្មឌីជីថល" រួមបញ្ចូលខ្សែភាពយន្តទាំងមូល "ខ្សែកម្លាំងតម្លៃកសិកម្ម" ហើយមានផ្លូវចេញគ្រប់ពីស្រោមចាប់ពីកសិដ្ឋាន ដល់តុបរិច្ឆេទ។ វារួមមានការតាមដានគុណភាពផលិតផលនៅពេលចែកចាយ និងដំណើរការអាហារ ប្រព័ន្ធឃ្លាំង និងអ៊ី-កോമមិនស៍ រហូតដល់កម្មវិធីជួលម៉ាស៊ីនចំរុះ! + +ការផ្លាស់ប្តូរនេះអនុញ្ញាតឲ្យអ្នកកសិកម្មបង្កើនផលិតផល ការប្រើប្រាស់ថ្ម fertilizer និង pesticide កាន់តិច ហើយប្រើទឹកយ៉ាងមានប្រសិទ្ធភាពថែមទៀត។ ទោះបីជាធ្វើនៅក្នុងប្រទេសមានអំណាចសេដ្ឋកិច្ច ក៏ឧបករណ៍វាស់ និងឧបករណ៍ផ្សេងទៀតក៏កំពុងតែល្អតម្លៃថោក ចំណាយតិចធ្វើឲ្យវាងាយស្រួលប្រើនៅក្នុងប្រទេសអភិវឌ្ឍន៍។ + +បច្ចេកទេសខ្លះៗដែលបានអនុញ្ញាតដោយកសិកម្មឌីជីថលមាន៖ + +* ការវាស់សីតុណ្ហភាព - ការវាស់សីតុណ្ហភាពអនុញ្ញាតឲ្យអ្នកកសិកម្មទាយទ្រង់នូវការលូតលាស់ និងវ័យក្តៅរបស់រុក្ខជាតិ។ +* ការផ្តល់ទឹកដោយស្វ័យប្រវត្តិ - វាស់សំណើមដី ហើយបើកប្រព័ន្ធជីរដីពេលដីស្ងួតពេក ជំនួសការប្រាក់ទឹកតាមពេលកំណត់។ ការផ្តល់ទឹកតាមពេលកំណត់អាចនាំឲ្យផលិតផលបានទឹកមិនគ្រប់គ្រាន់នៅពេលកំដៅ និងសំណើមទាប ឬទឹកលើសពេលភ្លៀង។ ដោយផ្តល់ទឹកពេលដែលដីត្រូវការ អ្នកកសិកម្មអាចប្រើប្រាស់ទឹកបានត្រឹមត្រូវ។ +* ការត្រួតពិនិត្យសត្វល្អិត - អ្នកកសិកម្មអាចប្រើកាមេរ៉ាព្រមទាំងរ៉ូបូតឬឌ្រូនក្នុងការត្រួតពិនិត្យសត្វល្អិត ហើយបញ្ចូលថ្នាំប្រឆាំងសត្វល្អិតត្រឹមត្រូវកន្លែងដែលត្រូវការ បន្ថយការប្រើប្រាស់ថ្នាំ និងការលេចធ្លាយថ្នាំចូលទៅក្នុងប្រព័ន្ធទឹកក្នុងតំបន់។ + +✅ សូមស្រាវជ្រាវបន្ថែម។ តើបច្ចេកទេសផ្សេងទៀតមានអ្វីខ្លះដែលប្រើសម្រាប់បង្កើនផលិតផល? + +> 🎓 ពាក្យ 'កសិកម្មម៉ឺតត្រឹម' (Precision Agriculture) ត្រូវបានប្រើសម្រាប់កំណត់ការសង្កេត, វាស់ និងឆ្លើយតបទៅនឹងដំណាំក្នុងមួយចំណតដី ឬតំបន់តូចៗផ្សេងទៀតក្នុងកសិដ្ឋាន។ វារួមបញ្ចូលការវាស់ជំងឺសត្វល្អិត ការបំពង់ទឹក និងសារធាតុអាហារ ហើយឆ្លើយតបយ៉ាងត្រឹមត្រូវ ដូចជា ផ្តល់ទឹកតែនៅតំបន់តូចៗរបស់ចំណតដីប៉ុណ្ណោះ។ + +## ហេតុអ្វីបានជា​សីតុណ្ហភាព​មានសារៈសំខាន់​នៅពេល​ធ្វើ​កសិកម្ម? + +នៅពេលរៀនអំពីរុក្ខជាតិ បេក្ខជនភាគច្រើនត្រូវបានបង្រៀនអំពីការរស់នៅពីទឹក ពន្លឺ កាបូនឌីអុកស៊ីដ (CO2) និងសារធាតុអាហារ។ រុក្ខជាតិនៅតែត្រូវការកំដៅដើម្បីលូតលាស់ – នេះជាមូលហេតុដែលរុក្ខជាតិបង្ហើរបែបបង្ហោះនៅរដូវមេសាដោយសារកំដៅកើនឡើង, ហេតុអ្វីបានជាសម្លៀកបំពង់ទ្រនចឬផ្កាដីមានការលូតលាស់រហ័សដោយសារឧបករណ៍កំដៅខ្លីៗ, និងហេតុអ្វីបានជាបន្ទប់ក្តៅ និងផ្ទះបាយជាច្រើនមានប្រសិទ្ធភាពក្នុងការចិញ្ចឹមរុក្ខជាតិ។ + +> 🎓 បន្ទប់ក្តៅ និងផ្ទះបាយមានមុខងារដូចគ្នា ប៉ុន្តែមានភាពខុសគ្នាសំខាន់មួយ។ បន្ទប់ក្តៅត្រូវបានកំដៅដោយបច្ចេកវិទ្យា និងអនុញ្ញាតឲ្យអ្នកកសិកម្មគ្រប់គ្រងសីតុណ្ហភាពបានត្រឹមត្រូវ ខណៈផ្ទះបាយពឹងផ្អែកលើព្រះអាទិត្យសម្រាប់កំដៅ ហើយការគ្រប់គ្រងទូទៅគឺបើកបំពង់ ឬបង្អួចដើម្បីដេញកម្លាំងកំដៅចេញ។ + +រុក្ខជាតិត្រូវការសីតុណ្ហភាពមូលដ្ឋាន ឬអប្បបរមា សីតុណ្ហភាពល្អបំផុត និងសីតុណ្ហភាពអតិបរមា ដែលអាស្រ័យលើមធ្យមសីតុណ្ហភាពប្រចាំថ្ងៃ។ + +* សីតុណ្ហភាពមូលដ្ឋាន – តំណាងឱ្យសីតុណ្ហភាពមធ្យមប្រចាំថ្ងៃអប្បបរមាដែលត្រូវការ សម្រាប់រុក្ខជាតិលូតលាស់។ +* សីតុណ្ហភាពល្អបំផុត – តំណាងឱ្យសីតុណ្ហភាពមធ្យមប្រចាំថ្ងៃដែលល្អបំផុតសម្រាប់ការលូតលាស់ច្រើនបំផុត។ +* សីតុណ្ហភាពអតិបរមា – គឺសីតុណ្ហភាពអតិបរមាដែលរុក្ខជាតិសាមញ្ញអាចទ្រាំបាន។ នៅលើសីតុណ្ហភាពនេះរុក្ខជាតិ នឹងផ្អាកការលូតលាស់របស់ខ្លួនដើម្បីរក្សាទឹកនិងរស់នៅ។ + +> 💁 នេះជាសីតុណ្ហភាពមធ្យម ដែលគិតសរុបពីសីតុណ្ហភាពថ្ងៃ និងយប់។ រុក្ខជាតិត្រូវការសីតុណ្ហភាពខុសគ្នាជាពេលថ្ងៃ និងយប់ ដើម្បីជួយពPhotosynthesize ឱ្យមានប្រសិទ្ធភាព និងរក្សាទំហឹងថាមពលក្នុងយប់។ + +រុក្ខជាតិតំបន់ផ្សេងគ្នាអាចមានតម្លៃមូលដ្ឋាន, ល្អបំផុត និងអតិបរមាខុសៗគ្នា។ នេះជាមូលហេតុដែលរុក្ខជាតិខ្លះរីកចម្រើននៅប្រទេសក្តៅ ខណៈដទៃស្ថិតនៅប្រទេសត្រជាក់។ + +✅ សូមស្រាវជ្រាវបន្ថែម។ សម្រាប់រុក្ខជាតិណាមួយនៅក្នុងសួន, សាលា, ឬសួនសាធារណៈ ដើម្បីបើកលទ្ធផលសីតុណ្ហភាពមូលដ្ឋាន។ + +![ក្រាហ្វដែលបង្ហាញអត្រាការលូតលាស់កើនឡើងពេលសីតុណ្ហភាពកើន បន្ទាប់មកធ្លាក់ក្រោមពេលសីតុណ្ហភាពលើស](../../../../../translated_images/km/plant-growth-temp-graph.c6d69c9478e6ca83.webp) + +ក្រាហ្វខាងលើបង្ហាញអត្រាការលូតលាស់ដូចតំណាងទៅនឹងសីតុណ្ហភាព។ រហូតដល់សីតុណ្ហភាពមូលដ្ឋាន គ្មានការលូតលាស់ទេ។ អត្រាការលូតលាស់កើនឡើងដល់សីតុណ្ហភាពល្អបំផុត បន្ទាប់មកធ្លាក់ចុះចាប់ពីពេលនោះ។ នៅសីតុណ្ហភាពអតិបរមា ការលូតលាស់បញ្ឈប់។ + +រាងដំណាក់កាលនៃក្រាហ្វនេះផ្លាស់ប្តូរពីប្រភេទរុក្ខជាតិទៅប្រភេទ។ ខ្លះមានការធ្លាក់ចុះច្រើននៅលើសីតុណ្ហភាពល្អបំផុត ខណៈខ្លះកើនឡើងយឺតពីមូលដ្ឋានទៅលើសីតុណ្ហភាពល្អបំផុត។ + +> 💁 សម្រាប់អ្នកកសិកម្មដើម្បីទទួលបានការលូតលាស់ល្អបំផុត ពួកគេចាំបាច់ត្រូវដឹងតម្លៃសីតុណ្ហភាពទាំងបី និងយល់ពីរាងនៃក្រាហ្វរបស់រុក្ខជាតិនៅក្នុងការដាំដុះ។ + +បើអ្នកកសិកម្មគ្រប់គ្រងសីតុណ្ហភាពបាន, ឧ. នៅក្នុងបន្ទប់ក្តៅពាណិជ្ជកម្ម, ពួកគេអាចបង្រួមតាមរុក្ខជាតិបាន។ បន្ទប់ក្តៅពាណិជ្ជកម្មដែលដាំក្រូចឆ្មារ រៀបចំសីតុណ្ហភាពនៅប្រហោង 25°C ពេលថ្ងៃ និង 20°C ពេលយប់ ដើម្បីឲ្យរុក្ខជាតិលូតលាស់លឿនបំផុត។ + +> 🍅 ការលាយបញ្ចូលសីតុណ្ហភាពទាំងនេះជាមួយពន្លឺសិប្បនិម្មិត, សារធាតុរុក្ខជាតិ និងកំរិតទឹកកាបូនឌីអុកស៊ីដ (CO2) ដែលគ្រប់គ្រងបាន អ្នកដាំដុះពាណិជ្ជកម្មអាចចិញ្ចឹមនិងដាំចោលបានគ្រប់ពេលវេលា។ + +## វាស់សីតុណ្ហភាពបរិយាកាស + +ឧបករណ៍វាស់សីតុណ្ហភាព អាចប្រើជាមួយឧបករណ៍ IoT ដើម្បីវាស់សីតុណ្ហភាពបរិយាកាស។ + +### កម្មវិធី - វាស់សីតុណ្ហភាព + +អនុវត្តតាមមគ្គុទេសក៍សមរម្យសម្រាប់ត្រួតពិនិត្យសីតុណ្ហភាពដោយប្រើឧបករណ៍ IoT របស់អ្នក៖ + +* [Arduino - Wio Terminal](wio-terminal-temp.md) +* [កុំព្យូទ័រផ្ទាល់ខ្លួន - Raspberry Pi](pi-temp.md) +* [កុំព្យូទ័រផ្ទាល់ខ្លួន - ឧបករណ៍មេរុង_virtual](virtual-device-temp.md) + +## កំរិតដឺក្រែលកើនឡើង + +កំរិតដឺក្រែលកើនឡើង (ដែរ​ហៅ​ថា​គ្រឿង​នៅកំរិតដឺក្រែលកើនឡើង) គឺជា​របៀបវាស់អត្រាលូតលាស់របស់រុក្ខជាតិនៅលើសីតុណ្ហភាព។ បើសិនរុក្ខជាតិមានទឹកគ្រប់គ្រាន់ សារធាតុអាហារ និង CO2 តម្រូវ, សីតុណ្ហភាពជាអ្វីដែលកំណត់អត្រាលូតលាស់។ + +កំរិតដឺក្រែលកើនឡើង (GDD) គណនាប្រចាំថ្ងៃជាមធ្យមសីតុណ្ហភាពក្នុងដឺក្រេសែលស្យ៊ីយសម្រាប់មួយថ្ងៃលើសព្រំដែនសីតុណ្ហភាពមូលដ្ឋានរបស់រុក្ខជាតិ។ រៀងរាល់រុក្ខជាតិត្រូវការកំរិត GDD មួយចំនួនសម្រាប់លូតលាស់, ចង្វាក់ផ្កា ឬផលិត និងវ័យក្តៅ។ កំរិត GDD ក្នុងមួយថ្ងៃច្រើនប៉ុណ្ណោះ រុក្ខជាតិលូតលាស់លឿនប៉ុណ្ណោះ។ + +> 🇺🇸 សម្រាប់អ្នកអាមេរិក កំរិត GDD ក៏អាចគណនាដោយប្រើហ្វារ៉េនហៃត៍ផងដែរ។ 5 GDDC (GDD នៅ Celsius) ស្មើនឹង 9 GDDF (GDD នៅ Fahrenheit)។ + +រូបមន្តពេញលេញសម្រាប់ GDD មានស្មុគស្មាញខ្លាំង តែមានរូបមន្តសាមញ្ញដែលច្រើនប្រើសម្រាប់ប្រហាក់ប្រហែលល្អ៖ + +![GDD = T max + T min divided by 2, all minus T base](../../../../../translated_images/km/gdd-calculation.79b3660f9c5757aa.webp) + +* **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 divided by 2, all minus 10, giving an answer of 4](../../../../../translated_images/km/gdd-calculation-corn.64a58b7a7afcd0df.webp) + +ស្រូវបានទទួល 4 GDD នៅថ្ងៃនោះ។ បើសិនជាប្រភេទស្រូវត្រូវការទៅ 800 GDD ដើម្បីវ័យក្តៅ វានឹងត្រូវការបន្ថែម 796 GDD ទៀតដើម្បីបង្កើតវ័យក្តៅ។ + +✅ សូមស្រាវជ្រាវបន្ថែម។ សម្រាប់រុក្ខជាតិណាមួយដែលមាននៅក្នុងសួន សាលា ឬសួនសាធារណៈ សូមពិនិត្យថាចំនួន GDD ត្រូវការជា​ប៉ុន្មានដើម្បីវ័យក្តៅ ឬបង្កើតផលិតផល។ + +## គណនាកំរិត GDD ដោយប្រើទិន្នន័យឧបករណ៍វាស់សីតុណ្ហភាព + +រុក្ខជាតិកើតឡើងមិនមែនតាមកាលបរិច្ឆេទថ្នាក់ខ្លះទេ - ឧ. អ្នកមិនអាចដាំគ្រាប់បានហើយដឹងថារុក្ខជាតិ​នឹងផ្តល់ផ្លែប្រហែល 100 ថ្ងៃក្រោយបានទេ។ ជំនួសវិញ អ្នកកសិកម្មអាចមានគំនិតប្រហែលពីរយៈពេលរុក្ខជាតិចាំបាច់សម្រាប់លូតលាស់ ហើយពិនិត្យរៀងរាល់ថ្ងៃថាតើផលិតផ្លែរបស់ខ្លួនបានរួចរឺនៅ។ + +នេះមានឥទ្ធិពលធំលើការងាររបស់ពលករ នៅក្នុងកសិដ្ឋានធំៗ ទំនងជាអ្នកកសិកម្មនឹងខកខានការទទួលផលក្នុងករណីផលិតផលមានភាពរីកចម្រើនរហ័ស។ ដោយវាស់សីតុណ្ហភាព អ្នកកសិកម្មអាចគណនាកំរិត GDD ដែលរុក្ខជាតិទទួលបាន ប្រាប់ឲ្យពួកគេត្រួតពិនិត្យនៅកន្លែងជិតនឹងគណនាបាន។ + +ដោយប្រមូលទិន្នន័យសីតុណ្ហភាពដោយឧបករណ៍ IoT អ្នកកសិកម្មអាចទទួលបានការជូនដំណឹងដោយស្វ័យប្រវត្តិពេលរុក្ខជាតិជិតវ័យក្តៅ។ ស្ថាបត្យកម្មមួយក្នុងករណីនេះគឺឲ្យឧបករណ៍ IoT វាស់សីតុណ្ហភាព ហើយបញ្ជូនទិន្នន័យនោះតាមអ៊ិនធឺណិតប្រើ MQTT។ កូដម៉ាស៊ីនមេនឹងស្ដាប់ទិន្នន័យនេះ និងរក្សាទុកទៅកាន់ទីតាំងណាមួយ ដូចជាឃ្លាំងទិន្នន័យ។ នេះអនុញ្ញាតឲ្យវាអាចវិភាគនៅពេលក្រោយ ដូចជាការងារប្រចាំយប់ក្នុងការគណនាកំរិត GDD ប្រចាំថ្ងៃ, បូកសរុប GDD សម្រាប់ប នសរុប និងបញ្ជូនព្រឹត្តិការណ៍ពេលដំណាំជិតវ័យក្តៅ។ + +![ទិន្នន័យ Telemetry ត្រូវបានផ្ញើទៅម៉ាស៊ីនមេ ហើយបន្ទាប់មករក្សាទុកទៅកាន់ឃ្លាំងទិន្នន័យ](../../../../../translated_images/km/save-telemetry-database.ddc9c6bea0c5ba39.webp) + +កូដម៉ាស៊ីនមេក៏អាចបន្ថែមទិន្នន័យបន្ថែមបាន។ ឧ. ឧបករណ៍ IoT អាចផ្សាយលេខសម្គាល់ ដើម្បីបង្ហាញថាឧបករណ៍ណា ហើយកូដម៉ាស៊ីនមេប្រើលេខសម្គាល់នេះសម្រាប់ស្វែងរកទីតាំងនៃឧបករណ៍ និងដំណាំដែលវាប្រុងប្រយ័ត្ន។ វាក៏អាចបន្ថែមទិន្នន័យមូលឋាន ដូចជា ពេលវេលាបច្ចុប្បន្នដោយសារមានឧបករណ៍ IoT មួយចំនួនមិនមានរឹងប៊៍វ៉ែរផ្គត់ផ្គង់ពេលវេលាត្រឹមត្រូវ ឬត្រូវការកូដបន្ថែមដើម្បីអានពេលវេលាតាមអ៊ិនធឺណិត។ + +✅ តើហេតុអ្វីបានជា អ្នកគិតថាចំណតដីខុសៗគ្នាអាចមានសីតុណ្ហភាពខុសគ្នា? + +### កម្មវិធី - ផ្សាយព័ត៌មានសីតុណ្ហភាព + +អនុវត្តតាមមគ្គុទេសក៍សមរម្យសម្រាប់ផ្សាយទិន្នន័យសីតុណ្ហភាពតាម MQTT ដោយប្រើឧបករណ៍ IoT របស់អ្នក ដូច្នេះវាអាចវិភាគនៅពេលក្រោយ៖ + +* [Arduino - Wio Terminal](wio-terminal-temp-publish.md) +* [កុំព្យូទ័រផ្ទាល់ខ្លួន - Raspberry Pi/ឧបករណ៍ IoT មេរុង_virtual](single-board-computer-temp-publish.md) + +### កម្មវិធី - ចាប់យក និងរក្សាទុកព័ត៌មានសីតុណ្ហភាព + +ពេលឧបករណ៍ IoT ផ្សាយទិន្នន័យ telemetry, អ្នកអាចសរសេរកូដម៉ាស៊ីនមេដើម្បីជាវទិន្នន័យនិងរក្សាទុកវា។ មិនមែនរក្សាទុកក្នុងឃ្លាំងទិន្នន័យ តែរក្សាទុកជា​ឯកសារ CSV (Comma Separated Values)។ ឯកសារ CSV រក្សាទិន្នន័យជាជួរតួ​របស់តម្លៃជាអក្សរ បំបែកដោយឧទាហរណ៍ ហើយរេកតខ្ទង់មួយនៅជួរថ្មី។ វា​ជា​របៀបងាយស្រួល មានមនុស្សអាចអាន និងឧបករណ៍គាំទ្រជាច្រើនសំរាប់រក្សាទុកទិន្នន័យជាឯកសារ។ + +ឯកសារ CSV នឹងមាន ២ ជួរឈរ – *កាលបរិច្ឆេទ* និង *សីតុណ្ហភាព*។ ជួរឈរ *កាលបរិច្ឆេទ* កំណត់ជាកាលបរិច្ឆេទ និងម៉ោងបច្ចុប្បន្នដែលសារ​ត្រូវបានទទួលដោយម៉ាស៊ីនមេ។ ជួរឈរ *សីតុណ្ហភាព* មកពីសារទិន្នន័យ telemetry។ + +1. អនុវត្តជំហានក្នុងមេរៀន 4 ដើម្បីបង្កើតកូដម៉ាស៊ីនមេសម្រាប់ជាវទិន្នន័យ telemetry។ អ្នកមិនចាំបាច់បន្ថែមកូដផ្សាយពាក្យបញ្ជាទេ។ + + ជំហានសម្រាប់នេះមាន៖ + + * កំណត់ និងសកម្ម Virtual EnvironmentPython + + * ដំឡើងកញ្ចប់ paho-mqtt + + * សរសេរកូដដើម្បីស្តាប់សារ MQTT ដែលផ្សាយលើប្រធានបទ telemetry + + > ⚠️ អ្នកអាចយោងទៅមេរៀន 4 សម្រាប់បង្កើតកម្មវិធី Python ដើម្បីទទួល telemetry ប្រសិនបើចាំបាច់។(../../../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 ជាheader ដែលផ្ទុកឈ្មោះជួរឈរ ដែលបំបែកដោយកომ៉ា។ + + កូដនេះពិនិត្យមើលថា​ឯកសារ CSV មានរួចហើយឬអត់។ បើមិនទាន់មាន វាត្រូវបានបង្កើតជាមួយ header នៅជួរដំបូង។ + +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 បន្ទាប់មកបន្ថែមជួរថ្មីមួយនៅចុង។ ជួរនេះមានទិន្នន័យបច្ចុប្បន្ន និងពេលវេលាស្របតាមទ្រង់ទ្រាយដែលអាចអានបានដោយមនុស្ស ហើយបន្ទាប់មកវាត្រូវបានបំពេញដោយសីតុណ្ហភាពដែលទទួលបានពីឧបករណ៍ IoT។ ទិន្នន័យត្រូវបានរក្សាទុកនៅក្នុងទ្រង់ទ្រាយ [ISO 8601 format](https://wikipedia.org/wiki/ISO_8601) ដែលមានតំបន់ម៉ោង ប៉ុន្តែមិនមានមីក្រូវិនាទី។ + +1. ប្រតិបត្តិការកូដនេះដូចដែលមុន ដើម្បីធានាថាឧបករណ៍ IoT របស់អ្នកកំពុងផ្ញើទិន្នន័យ។ ឯកសារ CSV ដែលមានឈ្មោះ `temperature.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។ + + > 💁 ប្រសិនបើអ្នកកំពុងប្រើឧបករណ៍ IoT Virtual សូមជ្រើសប្រអប់បោះពុម្ព random និងកំណត់ជួរដើម្បីជៀសវាងការទទួលបានសីតុណ្ហភាពដដែលគ្រប់ពេលដែលតំលៃសីតុណ្ហភាពត្រូវបានត្រឡប់មកវិញ។ + ![Select the random checkbox and set a range](../../../../../translated_images/km/select-the-random-checkbox-and-set-a-range.32cf4bc7c12e797f.webp) + + > 💁 ប្រសិនបើអ្នកចង់ប្រតិបត្តិការនេះរយៈពេលមួយថ្ងៃពេញ អ្នកត្រូវប្រាកដថាកុំព្យូទ័រដែលកំពុងរត់កូដម៉ាស៊ីនបម្រើរបស់អ្នកមិនត្រូវទៅដេក ដោយផ្លាស់ប្តូរការកំណត់ថាមពលរបស់អ្នក ឬរត់អ្វីមួយដូចជា [គន្លឹះ Python script ដើម្បីរក្សាប្រព័ន្ធមានសកម្មភាព](https://github.com/jaqsparow/keep-system-active)។ + +> 💁 អ្នកអាចរកឃើញកូដនេះនៅក្នុងថត [code-server/temperature-sensor-server](../../../../../2-farm/lessons/1-predict-plant-growth/code-server/temperature-sensor-server)។ + +### ភារកិច្ច - គណនារៀងរាល់ថ្ងៃ (GDD) ដោយប្រើទិន្នន័យដែលរក្សាទុក + +ពេលម៉ាស៊ីនបម្រើបានទទួលទិន្នន័យសីតុណ្ហភាព GDD សម្រាប់រុក្ខជាតិអាចត្រូវបានគណនា។ + +ជំហានដើម្បីធ្វើនេះដោយដៃគឺ៖ + +1. រកសីតុណ្ហភាពមូលដ្ឋានសម្រាប់រុក្ខជាតិ។ ឧទាហរណ៍ សម្រាប់ផ្លែឈើទន្សាយ សីតុណ្ហភាពមូលដ្ឋានគឺ ១០°C។ + +1. ពី `temperature.csv` រកសីតុណ្ហភាពខ្ពស់បំផុត និងទាបបំផុតរបស់ថ្ងៃនោះ + +1. ប្រើការគណនារៀងរាល់ថ្ងៃ (GDD) ដែលបានផ្តល់ពីមុន ដើម្បីគណនា GDD + +ឧទាហរណ៍ ប្រសិនបើសីតុណ្ហភាពខ្ពស់បំផុតសម្រាប់ថ្ងៃនោះគឺ ២៥°C ហើយសីតុណ្ហភាពទាបបំផុតគឺ ១២°C ៖ + +![GDD = 25 + 12 divided by 2, then subtract 10 from the result giving 8.5](../../../../../translated_images/km/gdd-calculation-strawberries.59f57db94b22adb8.webp) + +* 25 + 12 = 37 +* 37 / 2 = 18.5 +* 18.5 - 10 = 8.5 + +ដូច្នេះផ្លែឈើទន្សាយទទួលបាន **8.5** GDD។ ផ្លែឈើទន្សាយត្រូវការអំពី ២៥០ GDD ដើម្បីផ្លាស់ប្តូរជាផល លើសពីនេះមិនទាន់បានទេ។ + +--- + +## 🚀 챌린지 (បញ្ហា) + +រុក្ខជាតិចាំបាច់ត្រូវការថាមពលកម្ដៅគួរជាងនេះដើម្បីដុះឈើ។ តើមានអ្វីបន្ថែមទៀតដែលត្រូវការទៅ? + +សម្រាប់រឿងទាំងនេះ សូមស្វែងរកថាតើមានខ្សែឧបករណ៍ដែលអាចវាស់វែងបានតែ மரែងបើកតែ? តើអ្វីទៅជា actuator ដើម្បីគ្រប់គ្រងកម្រិតទាំងនេះ? តើអ្នកនឹងរួមបញ្ចូលឧបករណ៍ IoT មួយ ឬច្រើនដើម្បីបង្កើតការកែលម្អដំណើរការការលូតលាស់រុក្ខជាតិយ៉ាងដូចម្តេច? + +## វិញ្ញាសាបន្ទាប់បទបង្រៀន + +[វិញ្ញាសាបន្ទាប់បទបង្រៀន](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/10) + +## ការពិនិត្យឡើងវិញ និងការសិក្សាឯករាជ្យ + +* អានបន្ថែមអំពីកសិកម្មឌីជីថលនៅលើ [ទំព័រវិទ្យាសាស្ត្រកសិកម្មឌីជីថល Wikipedia](https://wikipedia.org/wiki/Digital_agriculture)។ នេះគឺសម្រាប់ការអានបន្ថែមអំពីកសិកម្មក្នុងតម្រឹមកំណត់ល្វែង [ទំព័រវិទ្យាសាស្ត្រកសិកម្មកំណត់ល្វែង Wikipedia](https://wikipedia.org/wiki/Precision_agriculture)។ +* ការគណនារយៈពេលបង្រួបបង្រួមលំដាប់ពេញលេញសម្រាប់ growing degree days មានភាពស្មុគស្មាញជាងសំណុំសម្រាប់មុននេះ។ អានបន្ថែមអំពីសមីការស្មុគស្មាញនិងរបៀបចាត់វិធានការសម្រាប់សីតុណ្ហភាពក្រោមមូលដ្ឋាននៅលើ [ទំព័រពេលវេលាកើនឡើង Growing Degree Day Wikipedia](https://wikipedia.org/wiki/Growing_degree-day)។ +* អាហារអាចមានកម្រិតខ្វះខាតនៅអនាគតទោះបីយើងនៅតែប្រើវិធីសាស្ត្រដដែលសម្រាប់ការដាំដុះផ្លូវការកសិកម្ម។ សូមរៀនបន្ថែមអំពីបច្ចេកវិទ្យាកសិកម្មខ្ពស់ក្នុងវីដេអូ [ផ្ទះស្រែ Hi-Tech Farms of Future នៅលើ YouTube](https://www.youtube.com/watch?v=KIEOuKD9KX8)។ + +## ភារកិច្ច + +[បង្ហាញទិន្នន័យ GDD ដោយប្រើ Jupyter Notebook](assignment.md) + +--- + + +**ការព្រមាន**: +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំរកភាពត្រឹមត្រូវ សូមចំណាំថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមដែលមានជាតិភាសាដើមគួរត្រូវបានពិចារណាថាជាជំនាញផ្លូវការនៃមូលដ្ឋាន។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមផ្តល់អាទិភាពការបកប្រែដោយមនុស្សជំនាញ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំឬការពន្យល់អ្វីៗដែលមានឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/2-farm/lessons/1-predict-plant-growth/assignment.md b/translations/km/2-farm/lessons/1-predict-plant-growth/assignment.md new file mode 100644 index 000000000..488446dde --- /dev/null +++ b/translations/km/2-farm/lessons/1-predict-plant-growth/assignment.md @@ -0,0 +1,50 @@ +# មើលទិន្នន័យ GDD ដោយប្រើ Jupyter Notebook + +## សេចក្ដីណែនាំ + +នៅក្នុងមេរៀននេះ អ្នកបានប្រមូលទិន្នន័យ GDD ដោយប្រើឧបករណ៍យកព័ត៌មាន IoT មួយ។ ដើម្បីទទួលបានទិន្នន័យ GDDល្អ អ្នកត្រូវប្រមូលទិន្នន័យរយៈពេលច្រើនថ្ងៃ។ ដើម្បីជួយមើលទិន្នន័យសីតុណ្ហភាព និងគិត GDD អ្នកអាចប្រើឧបករណ៍ដូចជា [Jupyter Notebooks](https://jupyter.org) ដើម្បីវិភាគទិន្នន័យ។ + +ចាប់ផ្តើមដោយប្រមូលទិន្នន័យរយៈពេលប៉ុន្មានថ្ងៃ។ អ្នកត្រូវប្រាកដថាកូដម៉ាស៊ីនមេរបស់អ្នកកំពុងដំណើរការប្រកបដោយអានុភាពពេញចលនា រឺដោយកែតម្រូវការគ្រប់គ្រងថាមពល រឺរត់ script Python ដូចជា [នេះដែលរក្សាប្រព័ន្ធឲ្យដំណើរការបាន](https://github.com/jaqsparow/keep-system-active)។ + +ពេលអ្នកមានទិន្នន័យសីតុណ្ហភាពហើយ អ្នកអាចប្រើ Jupyter Notebook ក្នុង repo នេះដើម្បីមើលទិន្នន័យនិងគិត GDD។ Jupyter notebooks លាយការសរសេរកូដ និងសេចក្ដីណែនាំក្នុងប្លុកដែលអោយឈ្មោះថា *cells*, ភាគច្រើនជាកូដ Python។ អ្នកអាចអានសេចក្ដីណែនាំ ហើយរត់ប្លុកកូដមួយៗ ដាប់កូដមួយៗបាន។ អ្នកក៏អាចកែប្រែcode បាន។ ក្នុង notebook នេះ ឧទាហរណ៍ អ្នកអាចកែសីតុណ្ហភាពមូលដ្ឋានដែលប្រើគណនាឱ្យបាន GDD សម្រាប់រុក្ខជាតិរបស់អ្នក។ + +1. បង្កើតថតឯកសារដោយឈ្មោះ `gdd-calculation` + +1. ទាញយកឯកសារ [gdd.ipynb](./code-notebook/gdd.ipynb) ហើយចម្លងវាទៅក្នុងថត `gdd-calculation` + +1. ចម្លងឯកសារ `temperature.csv` ដែលបានបង្កើតដោយម៉ាស៊ីនមេ MQTT + +1. បង្កើតបរិស្ថាន Python វិរុយឆ្លងថ្មីនៅក្នុងថត `gdd-calculation` + +1. តំឡើងកញ្ចប់ pip ខ្លះៗសម្រាប់ Jupyter notebooks ប្រមូលទាំងបណ្ណាល័យដែលត្រូវការគ្រប់គ្រង និងគូរទិន្នន័យ៖ + + ```sh + pip install --upgrade pip + pip install pandas + pip install matplotlib + pip install jupyter + ``` + +1. រត់ notebook នៅលើ Jupyter៖ + + ```sh + jupyter notebook gdd.ipynb + ``` + + Jupyter នឹងចាប់ផ្តើម និងបើក notebook នៅក្នុងកម្មវិធីរុករករបស់អ្នក។ ធ្វើការតាមដានសេចក្ដីណែនាំនៅក្នុង notebook ដើម្បីមើលទិន្នន័យសីតុណ្ហភាព ដែលបានវាស់ និងគណនា​ថ្ងៃ​កម្រិត​កំណើត។ + + ![The jupyter notebook](../../../../../translated_images/km/gdd-jupyter-notebook.c5b52cf21094f158.webp) + +## តារាងកំណត់ប្រតិទិន + +| គោលដៅ | ជាគំរូល្អ | គ្រប់គ្រាន់ | ត្រូវការកែលម្អ | +| -------- | --------- | -------- | ----------------- | +| ប្រមូលទិន្នន័យ | ប្រមូលទិន្នន័យបានច្រើនបំផុត ២ ថ្ងៃ | ប្រមូលទិន្នន័យបានយ៉ាងតិច ១ ថ្ងៃ | ប្រមូលទិន្នន័យបានខ្លះៗ | +| គណនា GDD | រត់ notebook ជោគជ័យ ហើយគណនា GDD បាន | រត់ notebook ជោគជ័យ | មិនអាចរត់ notebook បាន | + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ នៅពេលយើងខំប្រឹងសម្រាប់ភាពត្រឹមត្រូវ សូមយល់ព្រមថាការបកប្រែដោយស្វ័យប្រវត្តិនេះអាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមនៅក្នុងភាសាមាតុភូមិគួរត្រូវបាននិយ័តជាគ្រោងផ្លូវការលើបំផុត។ សម្រាប់ព័ត៌មានសំខាន់ៗ ផ្លូវការបកប្រែដែលធ្វើដោយមនុស្សជំនាញត្រូវបានណែនាំ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំឬការបកស្រាយខុសណាមួយដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះទេ។ + \ No newline at end of file diff --git a/translations/km/2-farm/lessons/1-predict-plant-growth/code-notebook/gdd.ipynb b/translations/km/2-farm/lessons/1-predict-plant-growth/code-notebook/gdd.ipynb new file mode 100644 index 000000000..23e5ec672 --- /dev/null +++ b/translations/km/2-farm/lessons/1-predict-plant-growth/code-notebook/gdd.ipynb @@ -0,0 +1,163 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ថ្ងៃកំណើតកម្តៅ\n", + "\n", + "កំណត់ត្រានេះផ្ទុកទិន្នន័យសីតុណ្ហភាពដែលបានរក្សាទុកនៅក្នុងឯកសារ CSV ហើយវិភាគវា។ វាចែកចាយសីតុណ្ហភាពបង្ហាញតម្លៃខ្ពស់បំផុតនិងទាបបំផុតសម្រាប់រាល់ថ្ងៃ ហើយគណនាតម្លៃ GDD។\n", + "\n", + "ដើម្បីប្រើកំណត់ត្រានេះ៖\n", + "\n", + "* ចម្លងឯកសារ `temperature.csv` ចូលក្នុងថតដូចគ្នានឹងកំណត់ត្រានេះ\n", + "* រត់កោសិកាទាំងអស់ដោយប្រើប៊ូតុង **▶︎ Run** នៅលើ។ វានឹងរត់កោសិកាជ្រើសរើសហើយបន្តទៅកោសិកាបន្ទាប់។\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "នៅក្នុងកោសិកាខាងក្រោម ចាប់ផ្តើម `base_temperature` ទៅកំដៅមូលដ្ឋាននៃរុក្ខជាតិ។\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "base_temperature = 10" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "ឥឡូវនេះឯកសារ CSV ត្រូវតែត្រូវបានបញ្ចូលដោយប្រើ pandas\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Read the temperature CSV file\n", + "df = pd.read_csv('temperature.csv')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "សីតុណ្ហភាពឥឡូវនេះអាចត្រូវបានគូរនៅលើក្រាបបង្ហាញ។\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "plt.figure(figsize=(20, 10))\n", + "plt.plot(df['date'], df['temperature'])\n", + "plt.xticks(rotation='vertical');" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "នៅពេលដែលទិន្នន័យត្រូវបានអានរួច វាអាចត្រូវបានក្រុមដោយកូឡុំណ `date` ហើយសីតុណ្ហភាពអប្បបរមា និងអតិបរមាត្រូវបានប្រមូលសរុបសម្រាប់កាលបរិច្ឆេទនីមួយៗ។\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Convert datetimes to pure dates so we can group by the date\n", + "df['date'] = pd.to_datetime(df['date']).dt.date\n", + "\n", + "# Group the data by date so it can be analyzed by date\n", + "data_by_date = df.groupby('date')\n", + "\n", + "# Get the minimum and maximum temperatures for each date\n", + "min_by_date = data_by_date.min()\n", + "max_by_date = data_by_date.max()\n", + "\n", + "# Join the min and max temperatures into one dataframe and flatten it\n", + "min_max_by_date = min_by_date.join(max_by_date, on='date', lsuffix='_min', rsuffix='_max')\n", + "min_max_by_date = min_max_by_date.reset_index()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "អាចគណនារាង GDD ដោយប្រើសមីការស្តង់ដារ GDD\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def calculate_gdd(row):\n", + " return ((row['temperature_max'] + row['temperature_min']) / 2) - base_temperature\n", + "\n", + "# Calculate the GDD for each row\n", + "min_max_by_date['gdd'] = min_max_by_date.apply (lambda row: calculate_gdd(row), axis=1)\n", + "\n", + "# Print the results\n", + "print(min_max_by_date[['date', 'gdd']].to_string(index=False))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការបដិសេធ**៖ \nឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះយើងខិតខំប្រឹងប្រែងចំពោះភាពត្រឹមត្រូវក៏ដោយ សូមយល់ព្រមថាការបកប្រែដោយស្វ័យប្រវត្តិនេះអាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាមូលដ្ឋានគួរត្រូវបានគេចាត់ទុកជាផ្នែកប្រភពមានអំណាច។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយមនុស្សវិជ្ជាជីវៈគឺផ្តល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំនិងការបកប្រែខុសណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។\n\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.1" + }, + "metadata": { + "interpreter": { + "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/translations/km/2-farm/lessons/1-predict-plant-growth/pi-temp.md b/translations/km/2-farm/lessons/1-predict-plant-growth/pi-temp.md new file mode 100644 index 000000000..2ed573b84 --- /dev/null +++ b/translations/km/2-farm/lessons/1-predict-plant-growth/pi-temp.md @@ -0,0 +1,118 @@ +# វាស់សីតុណ្ហភាព - Raspberry Pi + +នៅផ្នែកនេះនៃមេរៀន អ្នកនឹងបន្ថែមឧបករណ៍ចាប់សីតុណ្ហភាពទៅកាន់ Raspberry Pi របស់អ្នក។ + +## ឧបករណ៍រឹង + +ឧបករណ៍ចាប់ដែលអ្នកនឹងប្រើគឺ [ឧបករណ៍ចាប់សំណើមនិងសីតុណ្ហភាព DHT11](https://www.seeedstudio.com/Grove-Temperature-Humidity-Sensor-DHT11.html) ដែលបង្កប់ឧបករណ៍ចាប់ពីរសម្រាប់ក្នុងកញ្ចប់មួយ។ វាជាទូទៅពេញនិយម ដោយមានឧបករណ៍ចាប់ជាច្រើនដែលមានលក់ពាណិជ្ជកម្មរួមបញ្ចូលសីតុណ្ហភាព សំណើម និងពេលខ្លះសំពាធបរិយាកាស។ ឧបករណ៍ចាប់សីតុណ្ហភាពគឺជាកម្មន្តិតសីតុណ្ហភាពអវិជ្ជមាន (NTC) thermistor ដែលកម្រិតអង្គុយបន្ថយឲ្យតិចជាមួយនឹងជំឡៅកម្តៅ បង្កើនឡើង។ + +នេះជាឧបករណ៍ចាប់ឌីជីថល ដូច្នេះវាមាន ADC នៅលើផ្ទៃក្តារដើម្បីបង្កើតសញ្ញាឌីជីថលដែលមានទិន្នន័យសីតុណ្ហភាព និងសំណើមដែលម៉ាយគ្រូខលរម៉ាស់អាចអានបាន។ + +### ទាក់ទងឧបករណ៍ចាប់សីតុណ្ហភាព + +ឧបករណ៍ចាប់សីតុណ្ហភាព Grove អាចត្រូវបានភ្ជាប់ទៅកាន់ Raspberry Pi។ + +#### ការងារ + +ភ្ជាប់ឧបករណ៍ចាប់សីតុណ្ហភាព + +![A grove temperature sensor](../../../../../translated_images/km/grove-dht11.07f8eafceee17004.webp) + +1. ដាក់ចុងខ្មែរមួយនៃខ្សែ Grove ចូលទៅក្នុងរន្ទះលើឧបករណ៍ចាប់សំណើម និងសីតុណ្ហភាព។ វានឹងចូលត្រឹមផ្នែកមួយប៉ុណ្ណោះ។ + +1. ពេល Raspberry Pi បិទភ្លើង សូមភ្ជាប់ចុងខ្សែលេខ Grove ផ្សេងទៀតទៅរន្ទះឌីជីថលដែលមានស្លាក **D5** នៅលើ Grove Base hat ដែលភ្ជាប់ទៅ Pi។ រន្ធនេះគឺជារន្ធទីពីរពីខាងឆ្វេង នៅជួររន្ធនៅជាប់ទៅកាន់ពិន GPIO។ + +![The grove temperature sensor connected to socket A0](../../../../../translated_images/km/pi-temperature-sensor.3ff82fff672c8e56.webp) + +## កម្មវិធីឧបករណ៍ចាប់សីតុណ្ហភាព + +ឧបករណ៍ឥឡូវនេះអាចត្រូវបានកម្មវិធីដើម្បីប្រើឧបករណ៍ចាប់សីតុណ្ហភាពដែលភ្ជាប់។ + +### ការងារ + +កម្មវិធីឧបករណ៍។ + +1. បើក Pi ហើយរង់ចាំអោយវាបញ្ចេញកំណត់ត្រាជាដំណើរការ + +1. បើក VS Code, អាចត្រូវបានបើកដោយផ្ទាល់លើ Pi រឺភ្ជាប់តាមប្រោង Remote SSH ។ + + > ⚠️ អ្នកអាចយោងទៅ [សេចក្ដីណែនាំសម្រាប់ដំឡើង និងបើក VS Code ក្នុងមេរៀនទី 1 ប្រសិនបើត្រូវការ](../../../1-getting-started/lessons/1-introduction-to-iot/pi.md)។ + +1. ពីបន្ទាត់បញ្ចូល បង្កើតថតថ្មីមួយនៅក្នុងថតផ្ទះអ្នកប្រើ `pi` មានឈ្មោះ `temperature-sensor`។ បង្កើតឯកសារមួយក្នុងថតនេះឈ្មោះ `app.py`៖ + + ```sh + mkdir temperature-sensor + cd temperature-sensor + touch app.py + ``` + +1. បើកថតនេះនៅក្នុង VS Code + +1. ដើម្បីប្រើឧបករណ៍ចាប់សីតុណ្ហភាព និងសំណើម កម្មវិធី Pip បន្ថែមត្រូវបានដំឡើង។ ពី Terminal នៅក្នុង VS Code អនុវត្តន៍ពាក្យបញ្ជាខាងក្រោមដើម្បីដំឡើងកញ្ចប់ Pip នេះលើ Pi៖ + + ```sh + pip3 install seeed-python-dht + ``` + +1. បន្ថែមកូដខាងក្រោមទៅឯកសារ `app.py` ដើម្បីនាំចូលបណ្ណាល័យដែលត្រូវការ៖ + + ```python + import time + from seeed_dht import DHT + ``` + + សេចក្ដីថ្លែង `from seeed_dht import DHT` នាំចូលថ្នាក់ឧបករណ៍ចាប់ `DHT` ដើម្បីធ្វើប្រតិបត្តិការជាមួយ Grove temperature sensor ពីម៉ូឌុល `seeed_dht` ។ + +1. បន្ថែមកូដខាងក្រោមបន្ទាប់ពីកូដខាងលើ ដើម្បីបង្កើតអាំងស្តង់ស្យង់នៃថ្នាក់ដែលគ្រប់គ្រងឧបករណ៍ចាប់សីតុណ្ហភាព៖ + + ```python + sensor = DHT("11", 5) + ``` + + នេះធ្វើការកំណត់អាំងស្តង់ស្យង់ពីថ្នាក់ `DHT` ដែលគ្រប់គ្រងឧបករណ៍ **D**igital **H**umidity និង **T**emperature sensor។ ប៉ារ៉ាម៉ែត្រដំបូងប្រាប់កូដឲ្យដឹងថាឧបករណ៍ចាប់ដែលប្រើគឺសិនស័រ *DHT11* - បណ្ណាល័យដែលអ្នកកំពុងប្រើគាំទ្រសិនស័រផ្សេងទៀត។ ប៉ារ៉ាម៉ែត្រថ្ងៃទីពីរប្រាប់កូដថាឧបករណ៍ភ្ជាប់ទៅព័រឌីជីថល `D5` លើ Grove base hat។ + + > ✅ ចងចាំថា រន្ធទាំងអស់មានលេខពិនតែមួយរបស់ខ្លួន។ ពិន 0, 2, 4, និង 6 គឺជាពិនអាណាឡូក, ពិន 5, 16, 18, 22, 24 និង 26 គឺជាពិនឌីជីថល។ + +1. បន្ថែមច្រកវង់ អញ្ញើញក្រោយកូដខាងលើដើម្បីស្ទង់តម្លៃឧបករណ៍ចាប់សីតុណ្ហភាព ហើយបង្ហាញវាលើ console៖ + + ```python + while True: + _, temp = sensor.read() + print(f'Temperature {temp}°C') + ``` + + ការហៅទៅ `sensor.read()` ត្រឡប់តម្លៃជាគូ (tuple) នៃសំណើម និងសីតុណ្ហភាព។ អ្នកត្រូវការតែតម្លៃសីតុណ្ហភាពប៉ុណ្ណោះ ដូចនេះសំណើមត្រូវបានរំលង។ តម្លៃសីតុណ្ហភាពត្រូវបានបោះពុម្ពទៅ console ។ + +1. បន្ថែមការគេងខ្លីពេលដប់វិនាទីនៅចុង `loop` ពីព្រោះមិនចាំបាច់ត្រូវពិនិត្យកម្រិតសីតុណ្ហភាពជារយៈពេលបន្តបន្ទាប់។ ការគេងបន្ថយកម្រិតការប្រើថាមពលនៃឧបករណ៍។ + + ```python + time.sleep(10) + ``` + +1. ពី Terminal VS Code អនុវត្តន៍ពាក្យបញ្ជាខាងក្រោមដើម្បីរត់កម្មវិធី Python របស់អ្នក៖ + + ```sh + python3 app.py + ``` + + អ្នកគួរតែឃើញតម្លៃសីតុណ្ហភាពបង្ហាញលើ console។ ប្រើរឿងអ្វីមួយដើម្បីកំដៅឧបករណ៍ចាប់ដូចជាចុចម្រាមដៃលើវា ឬប្រើហ្វេនដើម្បីឃើញតម្លៃផ្លាស់ប្ដូរ៖ + + ```output + pi@raspberrypi:~/temperature-sensor $ python3 app.py + Temperature 26°C + Temperature 26°C + Temperature 28°C + Temperature 30°C + Temperature 32°C + ``` + +> 💁 អ្នកអាចស្វែងរកកូដនេះនៅក្នុងថត [code-temperature/pi](../../../../../2-farm/lessons/1-predict-plant-growth/code-temperature/pi)។ + +😀 កម្មវិធីឧបករណ៍ចាប់សីតុណ្ហភាពរបស់អ្នកបានជោគជ័យ! + +--- + + +**ការសូមប្រយ័ត្ន**៖ +ឯកសារនេះបានបកប្រែអាជ្ញាប័ណ្ណដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំរក្សានិរូបភាពនៃការបកប្រែ តែក៏សូមប្រុងប្រយ័ត្នថាការបកប្រែដោយស្វ័យប្រវត្តិក្នុងខ្លឹមសារអាចមានកំហុស ឬការខុសឆ្គង។ ឯកសារដើមនៅភាសាដើមគួរត្រូវបានគេចាត់ទុកជាធនធានដែលមានសុពលភាព។ សម្រាប់ព័ត៌មានសំខាន់ៗ ប្រើការបកប្រែដោយមនុស្សជំនាញត្រូវតែបានផ្តល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសៗដែលកើតឡើងពីការប្រើប្រាស់បកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/2-farm/lessons/1-predict-plant-growth/single-board-computer-temp-publish.md b/translations/km/2-farm/lessons/1-predict-plant-growth/single-board-computer-temp-publish.md new file mode 100644 index 000000000..3f67e1ccc --- /dev/null +++ b/translations/km/2-farm/lessons/1-predict-plant-growth/single-board-computer-temp-publish.md @@ -0,0 +1,64 @@ +# ផ្សព្វផ្សាយសីតុណ្ហភាព - ឧបករណ៍ IoT អេឡិចត្រូនិកនិង Raspberry Pi + +នៅក្នុងផ្នែកនេះនៃមេរៀន អ្នកនឹងផ្សព្វផ្សាយតម្លៃសីតុណ្ហភាពដែលរកឃើញដោយ Raspberry Pi ឬឧបករណ៍ IoT អេឡិចត្រូនិកតាមរយៈ MQTT ដើម្បីអាចប្រើប្រាស់នៅពេលក្រោយសម្រាប់ប្រមាណ GDD។ + +## ផ្សព្វផ្សាយសីតុណ្ហភាព + +ពេលដែលបានអានសីតុណ្ហភាពរួច អ្នកអាចផ្សព្វផ្សាយវាតាមរយៈ MQTT ទៅកូដ 'ម៉ាស៊ីនមេ' មួយដែលនឹងអានតម្លៃនោះ ហើយរក្សាទុករួចរួមរួចរៀបចំសម្រាប់ប្រើក្នុងការគណនាហេតុការណ៍ GDD។ + +### ភារកិច្ច - ផ្សព្វផ្សាយសីតុណ្ហភាព + +កម្មវិធីឧបករណ៍សម្រាប់ផ្សព្វផ្សាយទិន្នន័យសីតុណ្ហភាព។ + +1. បើកគំរូកម្មវិធី `temperature-sensor` ប្រសិនបើវានៅមិនទាន់បានបើក + +1. ធ្វើឡើងវិញជំហានដែលអ្នកធ្វើនៅមេរៀន 4 ដើម្បីភ្ជាប់ទៅ MQTT និងផ្ញើទិន្នន័យទំនាក់ទំនង។ អ្នកនឹងប្រើម៉ាស៊ីនមេ Mosquitto សាធារណៈដដែល។ + + ជំហានសម្រាប់នេះមាន: + + - បន្ថែមកញ្ចប់ pip MQTT + - បន្ថែមកូដដើម្បីភ្ជាប់ទៅម៉ាស៊ីនមេ MQTT + - បន្ថែមកូដដើម្បីផ្សព្វផ្សាយទិន្នន័យទំនាក់ទំនង + + > ⚠️ សូមយោងទៅកាន់ [សេចក្ដីណែនាំសម្រាប់ភ្ជាប់ទៅ MQTT](../../../1-getting-started/lessons/4-connect-internet/single-board-computer-mqtt.md) និង [សេចក្ដីណែនាំសម្រាប់ផ្ញើទិន្នន័យទំនាក់ទំនង](../../../1-getting-started/lessons/4-connect-internet/single-board-computer-telemetry.md) ពីមេរៀន 4 ប្រសិនបើចាំបាច់។ + +1. វាយតម្លៃឲ្យ `client_name` ផ្ទាល់ខ្លួននូវឈ្មោះគម្រោងនេះ៖ + + ```python + client_name = id + 'temperature_sensor_client' + ``` + +1. សម្រាប់ទិន្នន័យទំនាក់ទំនង ជំនួសការផ្ញើតម្លៃពន្លឺ សូមផ្ញើតម្លៃសីតុណ្ហភាពដែលបានអានពីឧបករណ៍សែន DHT ក្នុងគុណលក្ខណៈ JSON មានឈ្មោះ `temperature`៖ + + ```python + _, temp = sensor.read() + telemetry = json.dumps({'temperature' : temp}) + ``` + +1. តម្លៃសីតុណ្ហភាពមិនត្រូវបានអានជាញឹកញាប់ - វាមិនច្បាស់បាត់បង់ក្នុងរយៈពេលខ្លីនោះទេ ដូច្នោះសូមកំណត់ `time.sleep` ទៅ ១០ នាទី៖ + + ```cpp + time.sleep(10 * 60); + ``` + + > 💁 មុខងារ `sleep` ទទួលយកពេលវេលាជាទ Sekunden ដូច្នេះដើម្បីឲ្យអានបានងាយ តម្លៃត្រូវបានបញ្ជូនជាលទ្ធផលនៃកិរិយាសម្បទា។ ៦០ សិនាទីក្នុងមួយនាទី ទើប ១០ x (៦០ សិនាទីក្នុងមួយនាទី) ផ្តល់ឱ្យមានការពន្យារពេល ១០ នាទី។ + +1. រត់កូដដូចជារបៀបដែលអ្នកបានរត់កូដពីផ្នែកមុននៃភារកិច្ច។ ប្រសិនបើអ្នកប្រើឧបករណ៍ IoT អេឡិចត្រូនិច ផ្ទៀងផ្ទាត់ថាកម្មវិធី CounterFit កំពុងរត់ និងឧបករណ៍សែនសំណើមបរិយាយ និងសីតុណ្ហភាព ត្រូវបានបង្កើតនៅលើពិនខ្មែរពីណាត់ត្រឹមត្រូវ។ + + ```output + pi@raspberrypi:~/temperature-sensor $ python3 app.py + MQTT connected! + Sending telemetry {"temperature": 25} + Sending telemetry {"temperature": 25} + ``` + +> 💁 អ្នកអាចស្វែងរកកូដនេះនៅក្នុងថត [code-publish-temperature/virtual-device](../../../../../2-farm/lessons/1-predict-plant-growth/code-publish-temperature/virtual-device) ឬថត [code-publish-temperature/pi](../../../../../2-farm/lessons/1-predict-plant-growth/code-publish-temperature/pi)។ + +😀 អ្នកបានផ្សព្វផ្សាយសីតុណ្ហភាពជាគ្រាបទិន្នន័យទំនាក់ទំនងពីឧបករណ៍របស់អ្នកដោយជោគជ័យ។ + +--- + + +**ការ​បដិសេធ**៖ +ឯកសារ​នេះ​ត្រូវ​បាន​ប្រែសម្រួល​ដោយ​ប្រើ​បច្ចេក​វិទ្យា​ប្រែសម្រួល AI សេវា [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈ​ដែល​យើង​ព្យាយាម​ធានា​ការពិតត្រឹមត្រូវ សូមយល់ឲ្យបានថា​ការ​ប្រែសម្រួលស្វ័យ​ប្រវត្តិ​អាច​មាន​កំហុស ឬ​ការ​មិន​ត្រឹមត្រូវ។ ឯកសារ​ដើម​ក្នុង​ភាសា​ដើម​គួរត្រូវ​បាន​គេ​ពិចារណា​ជា​ប្រភព​ផ្លូវការ។ សម្រាប់​ព័ត៌មាន​សំខាន់ ការ​ប្រែសម្រួល​ដោយ​មនុស្ស​ជំនាញ​ជា​រឿង​ដែល​ត្រូវ​បាន​ផ្ដល់​អនុសាសន៍។ យើង​មិនទទួល​ខុស​ត្រូវ​ចំពោះ​ការ​យល់បន្លំ ឬ​ការ​បកប្រែ​ខុស​ពីការ​ប្រើប្រាស់​ការ​ប្រែសម្រួល​នេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md b/translations/km/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md new file mode 100644 index 000000000..46c6b1cfc --- /dev/null +++ b/translations/km/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md @@ -0,0 +1,147 @@ +# វាស់សីតុណ្ហភាព - ឧបករណ៍ IoT ពិភពលើកុន + +នៅក្នុងផ្នែកនេះនៃមេរៀន អ្នកនឹងបន្ថែមឧបករណ៍វាស់សីតុណ្ហភាពទៅឧបករណ៍ IoT ពិភពលើកុនរបស់អ្នក។ + +## ឧបករណ៍ពិភពលើកុន + +ឧបករណ៍ IoT ពិភពលើកុននឹងប្រើឧបករណ៍ Grove Digital Humidity និង Temperature ដែលបានស្ទង់ភាព។ វា គ្រប់គ្រងមេរៀននេះឲ្យដូចគ្នានឹងការប្រើ Raspberry Pi ជាមួយឧបករណ៍ Grove DHT11 រឹងមាំ។ + +ឧបករណ៍វាស់ស្ទង់នេះបានបញ្ចូលចំណុច **ឧបករណ៍វាស់សីតុណ្ហភាព** ជាមួយនឹង **ឧបករណ៍វាស់សំណើម**, ប៉ុន្តែនៅក្នុងមេរៀននេះ អ្នកមានចំណាប់អារម្មណ៍តែមួយតែចំណុចឧបករណ៍វាស់សីតុណ្ហភាពប៉ុណ្ណោះ។ នៅក្នុងឧបករណ៍ IoT រឹងមាំ ឧបករណ៍វាស់សីតុណ្ហភាពនឹងជាក [thermistor](https://wikipedia.org/wiki/Thermistor) ដែលវាស់សីតុណ្ហភាពដោយយកសញ្ញាធ្វើអោយផ្លាស់ប្តូរទแรงព្យួរដោយសារសីតុណ្ហភាពផ្លាស់ប្តូរ។ ឧបករណ៍វាស់សីតុណ្ហភាពជាឧបករណ៍ឌីជីថលដែលផ្ទុកនៅខាងក្នុងបំលែងការវាស់លំហូរទៅជា តម្លៃសីតុណ្ហភាពជាដឺក្រេសែលស៊ីយស្យុ (ឬខែលវិន ឬ ផារ៉ាហ្វរាំង)។ + +### បន្ថែមឧបករណ៍វាស់ស្ទង់ទៅ CounterFit + +ដើម្បីប្រើឧបករណ៍វាស់សំណើមនិងសីតុណ្ហភាពពិភពលើកុន អ្នកត្រូវបន្ថែមឧបករណ៍ទាំងពីរទៅកម្មវិធី CounterFit។ + +#### ភារកិច្ច - បន្ថែមឧបករណ៍វាស់ស្ទង់ទៅ CounterFit + +បន្ថែមឧបករណ៍វាស់សំណើម និងសីតុណ្ហភាពទៅកម្មវិធី CounterFit។ + +1. បង្កើតកម្មវិធី Python ថ្មីលើកុំព្យូទ័ររបស់អ្នកនៅក្នុងថតដែលមានឈ្មោះ `temperature-sensor` ដែលមាន​ឯកសារ​តែមួយឈ្មោះ `app.py` និងបរិស្ថាន Python ហ្វីចបន្ថែម ហើយបន្ថែមកញ្ចប់ pip របស់ CounterFit។ + + > ⚠️ អ្នកអាចយោងទៅ [ការ​​ណែនាំសម្រាប់បង្កើតនិងបង្កើតរៀបចំគម្រោង Python CounterFit នៅមេរៀនទី ១ ប្រសិនបើត្រូវការ](../../../1-getting-started/lessons/1-introduction-to-iot/virtual-device.md)។ + +1. តំឡើងកញ្ចប់ Pip បន្ថែមមួយ ដើម្បីតំឡើង shim របស់ CounterFit សម្រាប់ឧបករណ៍ DHT11 sensor។ ពិនិត្យអោយ certainថាអ្នកកំពុងតំឡើងវាពីបន្ទាត់ពាក្យបញ្ជាជាមួយបរិស្ថាន Python ហ្វីចបានបើក។ + + ```sh + pip install counterfit-shims-seeed-python-dht + ``` + +1. ពិនិត្យអោយ certainថាកម្មវិធីគេហទំព័រ CounterFit កំពុងដំណើរការជា + +1. បង្កើតឧបករណ៍វាស់សំណើម: + + 1. នៅក្នុងប្រអប់ *Create sensor* នៅផ្នែក *Sensors* ចុចបញ្ជីពីលើ *Sensor type* ហើយជ្រើសរើស *Humidity*។ + + 1. ទុក *Units* នៅតម្លៃ *Percentage* + + 1. ធានាថា *Pin* ត្រូវបានកំណត់ទៅ *5* + + 1. ជ្រើសប៊ូតុង **Add** ដើម្បីបង្កើតឧបករណ៍វាស់សំណើមលើ Pin 5 + + ![ការកំណត់ឧបករណ៍វាស់សំណើម](../../../../../translated_images/km/counterfit-create-humidity-sensor.2750e27b6f30e09c.webp) + + ឧបករណ៍វាស់សំណើមនឹងត្រូវបានបង្កើតហើយបង្ហាញនៅក្នុងបញ្ជីឧបករណ៍។ + + ![ឧបករណ៍វាស់សំណើមដែលបានបង្កើត](../../../../../translated_images/km/counterfit-humidity-sensor.7b12f7f339e430cb.webp) + +1. បង្កើតឧបករណ៍វាស់សីតុណ្ហភាព: + + 1. នៅក្នុងប្រអប់ *Create sensor* នៅផ្នែក *Sensors* ចុចបញ្ជីពីលើ *Sensor type* ហើយជ្រើសរើស *Temperature*។ + + 1. ទុក *Units* នៅតម្លៃ *Celsius* + + 1. ធានាថា *Pin* ត្រូវបានកំណត់ទៅ *6* + + 1. ជ្រើសប៊ូតុង **Add** ដើម្បីបង្កើតឧបករណ៍វាស់សីតុណ្ហភាពលើ Pin 6 + + ![ការកំណត់ឧបករណ៍វាស់សីតុណ្ហភាព](../../../../../translated_images/km/counterfit-create-temperature-sensor.199350ed34f7343d.webp) + + ឧបករណ៍វាស់សីតុណ្ហភាពនឹងត្រូវបានបង្កើតហើយបង្ហាញនៅក្នុងបញ្ជីឧបករណ៍។ + + ![ឧបករណ៍វាស់សីតុណ្ហភាពដែលបានបង្កើត](../../../../../translated_images/km/counterfit-temperature-sensor.f0560236c96a9016.webp) + +## កម្មវិធីឧបករណ៍វាស់សីតុណ្ហភាព + +កម្មវិធីឧបករណ៍វាស់សីតុណ្ហភាពអាចត្រូវបានកំណត់កម្មវិធីដោយប្រើឧបករណ៍ស៊េរី CounterFit។ + +### ភារកិច្ច - កំណត់កម្មវិធីឧបករណ៍វាស់សីតុណ្ហភាព + +កំណត់កម្មវិធីឧបករណ៍វាស់សីតុណ្ហភាព។ + +1. ពិនិត្យអោយ certain ថាកម្មវិធី `temperature-sensor` បានបើកនៅក្នុង VS Code + +1. បើកឯកសារ `app.py` + +1. បន្ថែមកូដខាងក្រោមនៅលើសៀវភៅ `app.py` ដើម្បីភ្ជាប់កម្មវិធីទៅ CounterFit: + + ```python + from counterfit_connection import CounterFitConnection + CounterFitConnection.init('127.0.0.1', 5000) + ``` + +1. បន្ថែមកូដខាងក្រោមទៅឯកសារ `app.py` ដើម្បីនាំចូលបណ្ណាល័យដែលត្រូវការ៖ + + ```python + import time + from counterfit_shims_seeed_python_dht import DHT + ``` + + ពាក្យថា `from seeed_dht import DHT` នាំចូលថ្នាក់ឧបករណ៍ `DHT` ដើម្បីធ្វើប្រតិបត្តិការជាមួយឧបករណ៍ Grove temperature sensor ពិភពលើកុន ដោយប្រើ shim ពីម៉ូឌុល `counterfit_shims_seeed_python_dht`។ + +1. បន្ថែមកូដខាងក្រោមក្រោយកូដខាងលើដើម្បីបង្កើតឧបករណ៍នៅថ្នាក់ដែលគ្រប់គ្រងឧបករណ៍វាស់សំណើម និងសីតុណ្ហភាពពិភពលើកុន៖ + + ```python + sensor = DHT("11", 5) + ``` + + នេះទទួលស្គាល់ឧបករណ៍មួយនៃថ្នាក់ `DHT` ដែលគ្រប់គ្រងឧបករណ៍វាស់សំណើមនិងសីតុណ្ហភាពឌីជីថលសរុប។ ប៉ារ៉ាម៉ែត្រ​ទីមួយប្រាប់កូដថាឧបករណ៍ដែលប្រើគឺជាឧបករណ៍វាស់សីតុណ្ហភាពពិភពលើកុនប្រភេទ *DHT11*។ ប៉ារ៉ាម៉ែត្រ​ទីពីរប្រាប់កូដថាឧបករណ៍ត្រូវបានភ្ជាប់ទៅកំពស់ `5`។ + + > 💁 CounterFit បានស្ទង់ភាពឧបករណ៍វាស់សំណើមនិងសីតុណ្ហភាពរួមមួយនេះដោយភ្ជាប់ទៅឧបករណ៍ពីរ គឺឧបករណ៍វាស់សំណើមនៅ pin ដែលបានបញ្ជាក់នៅពេលបង្កើតថ្នាក់ `DHT` ហើយឧបករណ៍វាស់សីតុណ្ហភាពរត់លើ pin បន្ទាប់។ ប្រសិនបើឧបករណ៍វាស់សំណើមនៅលើ pin 5, shim នឹងរំពឹងថា​ឧបករណ៍វាស់សីតុណ្ហភាពនឹងនៅលើ pin 6។ + +1. បន្ថែមវដ្ដអនշិរ្ស័យក្រោយកូដខាងលើ ដើម្បីធ្វើការស្ទង់តម្លៃសីតុណ្ហភាព ហើយបោះពុម្ពវាទៅកុងសូល៖ + + ```python + while True: + _, temp = sensor.read() + print(f'Temperature {temp}°C') + ``` + + ការហៅ​កម្មវិធី `sensor.read()` បង្វិលតម្លៃជាគូដែល​មានសំណើម និងសីតុណ្ហភាព។ អ្នកត្រូវការត្រឹមតម្លៃសីតុណ្ហភាពប៉ុណ្ណោះ ដូច្នេះមិនចាំបាច់យកតម្លៃសំណើមទេ។ តម្លៃសីតុណ្ហភាពបន្ទាប់មកត្រូវបានបោះពុម្ពទៅបញ្ញាភាព។ + +1. បន្ថែមការដេកតិចៗរយៈពេលដប់វិនាទីនៅចុងវដ្ដ `loop` ព្រោះកម្រិតសីតុណ្ហភាពមិនចាំបាច់បានពិនិត្យតាមលំនាំជាប់នៅរៀងរាល់ពេលទេ។ ការដេកនឹងកាត់បន្ថយការប្រើថាមពលរបស់ឧបករណ៍។ + + ```python + time.sleep(10) + ``` + +1. ពី VS Code Terminal ជាមួយបរិស្ថាន Python ហ្វីចបានបើក ដំណើរការ​កូដដូចតទៅដើម្បីរត់កម្មវិធី Python របស់អ្នក៖ + + ```sh + python app.py + ``` + +1. ពីកម្មវិធី CounterFit ផ្លាស់ប្ដូរតម្លៃសីតុណ្ហភាពដែលកម្មវិធីនឹងអាន។ អ្នកអាចធ្វើបានពីរបៀប៖ + + * បញ្ចូលលេខក្នុងប្រអប់ *Value* សម្រាប់ឧបករណ៍វាស់សីតុណ្ហភាព បន្ទាប់មកជ្រើសប៊ូតុង **Set**។ លេខដែលអ្នកបញ្ចូលនឹងជាតម្លៃដែលឧបករណ៍នឹងបញ្ចូនមកវិញ។ + + * បញ្ចូលត្រួតពិនិត្យ *Random* ហើយបញ្ចូលតម្លៃ *Min* និង *Max* បន្ទាប់មកជ្រើសប៊ូតុង **Set**។ រាល់ពេលឧបករណ៍ស្ទង់តម្លៃ វានឹងអានលេខចៃដន្យរវាង *Min* និង *Max*។ + + អ្នកគួរមើលឃើញតម្លៃដែលបានកំណត់បង្ហាញនៅក្នុងកុងសូល។ ផ្លាស់ប្ដូរតម្លៃ *Value* ឬ ការកំណត់ *Random* ដើម្បីមើលការផ្លាស់ប្ដូរតម្លៃ។ + + ```output + (.venv) ➜ temperature-sensor python app.py + Temperature 28.25°C + Temperature 30.71°C + Temperature 25.17°C + ``` + +> 💁 អ្នកអាចស្វែងរកកូដនេះនៅក្នុងថត [code-temperature/virtual-device](../../../../../2-farm/lessons/1-predict-plant-growth/code-temperature/virtual-device)។ + +😀 កម្មវិធីឧបករណ៍វាស់សីតុណ្ហភាពរបស់អ្នកបានជោគជ័យ! + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំសម្រេចភាពត្រឹមត្រូវ សូមយល់ដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមជាភាសាតំណាងគួរត្រូវបានគិតជាផែនទីអនុញ្ញាតផ្លូវការ។ សម្រាប់ព័ត៌មានសំខាន់ៗ យើងសូមផ្តល់អនុសាសន៍ឱ្យប្រើការបកប្រែដោយមនុស្សជំនាញ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសៗណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp-publish.md b/translations/km/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp-publish.md new file mode 100644 index 000000000..2c9ae3836 --- /dev/null +++ b/translations/km/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp-publish.md @@ -0,0 +1,75 @@ +# បោះពុម្ពចេញសីតុណ្ហភាព - Wio Terminal + +នៅផ្នែកនេះនៃមេរៀន អ្នកនឹងបោះពុម្ពចេញតម្លៃសីតុណ្ហភាពដែលបានចាប់យកដោយ Wio Terminal តាមរយៈ MQTT ដូច្នេះវាអាចត្រូវបានប្រើប្រាស់ក្រោយសម្រាប់គណនារយៈពេលកំណើនកម្ដៅដី (GDD)។ + +## បោះពុម្ពចេញសីតុណ្ហភាព + +បន្ទាប់ពីសីតុណ្ហភាពត្រូវបានអាន វាអាចត្រូវបានបោះពុម្ពចេញតាម MQTT ទៅកូដ 'ម៉ាស៊ីនមេ' មួយដែលនឹងអានតម្លៃនិងផ្ទុកវាឲ្យរួចរាល់សម្រាប់ប្រើសម្រាប់ការគណនារ GDD។ ម៉ិច្រូកុងត्रोलលឺមិនអានម៉ោងពីអ៊ីនធឺណិតហើយតាមដានម៉ោងដោយនាឡិការពេលវេលាពិតជាមួយរាល់ឧបករណ៍នោះឡើយ អุปกรณ์ត្រូវតែមានកម្មវិធីប្រតិបត្តិដើម្បីធ្វើបែបនេះ បើសិនជាអ្នកមានឧបករណ៍ដែលចាំបាច់។ + +ដើម្បីងាយស្រួលសម្រាប់មេរៀននេះ មិនបញ្ចូនពេលវេលាមកជាមួយទិន្នន័យស៉ើនស័រឡើយ តែកូដម៉ាស៊ីនមេអាចបន្ថែមវាក្រោយពេលទទួលបានសារ។ + +### តំណាង + +កម្មវិធីឧបករណ៍ដើម្បីបោះពុម្ពចេញទិន្នន័យសីតុណ្ហភាព។ + +1. បើកគំរូ `temperature-sensor` Wio Terminal + +1. ធ្វើឡើងវិញជំហានដែលអ្នកបានធ្វើនៅមេរៀនទី 4 ដើម្បីភ្ជាប់ទៅ MQTT និងបញ្ជូនទិន្នន័យ telemetry អ្នកនឹងប្រើ Mosquitto broker សាធារណៈដដែល។ + + ជំហានសម្រាប់នេះមាន៖ + + - បន្ថែមបណ្ណាល័យ Seeed WiFi និង MQTT ទៅក្នុងឯកសារ `.ini` + - បន្ថែមឯកសារកំណត់រចនាសម្ព័ន្ធនិងកូដសម្រាប់ភ្ជាប់ទៅ WiFi + - បន្ថែមកូដភ្ជាប់ទៅ MQTT broker + - បន្ថែមកូដបោះពុម្ពចេញ telemetry + + > ⚠️ សូមយោងទៅ [ការណែនាំសម្រាប់ភ្ជាប់ទៅ MQTT](../../../1-getting-started/lessons/4-connect-internet/wio-terminal-mqtt.md) និង [ការណែនាំសម្រាប់បញ្ជូន telemetry](../../../1-getting-started/lessons/4-connect-internet/wio-terminal-telemetry.md) ពីមេរៀនទី 4 ប្រសិនបើចាំបាច់។ + +1. ត្រួតពិនិត្យឲ្យប្រាកដថា `CLIENT_NAME` ក្នុងឯកសារ `config.h` បង្ហាញពីគំរូនេះ៖ + + ```cpp + const string CLIENT_NAME = ID + "temperature_sensor_client"; + ``` + +1. សម្រាប់ telemetry ជំនួសផ្ញើតម្លៃពន្លឺ សូមផ្ញើតម្លៃសីតុណ្ហភាពដែលបានអានពីស็นស័រដីអេចធី (DHT sensor) ក្នុងលក្ខណៈអចលនវត្ថុមួយក្នុងឯកសារ JSON ដែលមានឈ្មោះ `temperature` ដោយប្ដូរ function `loop` នៅក្នុង `main.cpp`៖ + + ```cpp + float temp_hum_val[2] = {0}; + dht.readTempAndHumidity(temp_hum_val); + + DynamicJsonDocument doc(1024); + doc["temperature"] = temp_hum_val[1]; + ``` + +1. តម្លៃសីតុណ្ហភាពមិនចាំបាច់ត្រូវបានអានជាញឹកញាប់ខ្លាំងទេ - វាមិនប្រែក្លាយច្រើននៅក្នុងរយៈពេលខ្លី ដូច្នេះកំណត់ `delay` ក្នុង function `loop` ទៅ ១០ នាទី៖ + + ```cpp + delay(10 * 60 * 1000); + ``` + + > 💁 Function `delay` ទទួលអំឡុងពេលជាឯកតាមីលីវិនាទី ដូច្នេះដើម្បី​ធ្វើ​ឲ្យ​វា​ងាយស្រួលក្នុងការអាន តម្លៃត្រូវបានផ្ដល់បង្ហាញជាលទ្ធផលនៃសមីការមួយ។ 1,000ms ក្នុងមួយវិនាទី, 60s ក្នុងមួយនាទី ដូច្នេះ 10 x (60s ក្នុងមួយនាទី) x (1000ms ក្នុងមួយវិនាទី) ផ្ដល់អំឡុងពេល ១០ នាទី។ + +1. អាប់ឡូដនេះទៅ Wio Terminal របស់អ្នក ហើយប្រើម៉ូនីទ័រដាសុីជាលឯកសារដើម្បីមើលសីតុណ្ហភាពកំពុងត្រូវផ្ញើទៅ MQTT broker។ + + ```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} + ``` + +> 💁 អ្នកអាចស្វែងរកកូដនេះនៅក្នុងថត [code-publish-temperature/wio-terminal](../../../../../2-farm/lessons/1-predict-plant-growth/code-publish-temperature/wio-terminal)។ + +😀 អ្នកបានបោះពុម្ពចេញសីតុណ្ហភាពជាប telemetry ពីឧបករណ៍របស់អ្នកដោយជោគជ័យ។ + +--- + + +**ពន្យល់ឡើងវិញ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំរកភាពត្រឹមត្រូវ សូមយកចិត្តទុកដាក់ថាការបកប្រែដោយម៉ាស៊ីនអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមជាភាសាទ្រង់ទ្រាយមាន អាចត្រូវបានគេយកជាផ្ទាំងមូលដ្ឋានត្រឹមត្រូវ។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមផ្ដើមនូវការបកប្រែដោយមនុស្សជំនាញ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសណាមួយដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះទេ។ + \ No newline at end of file diff --git a/translations/km/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md b/translations/km/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md new file mode 100644 index 000000000..d76728021 --- /dev/null +++ b/translations/km/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md @@ -0,0 +1,136 @@ +# វាស់សីតុណ្ហភាព - Wio Terminal + +នៅផ្នែកនេះនៃមេរៀន អ្នកនឹងបន្ថែមឧបករណ៍វាស់សីតុណ្ហភាពទៅកាន់ Wio Terminal របស់អ្នក ហើយអានតម្លៃសីតុណ្ហភាពពីវា។ + +## ឧបករណ៍រឹង + +Wio Terminal ត្រូវការឧបករណ៍វាស់សីតុណ្ហភាព។ + +ឧបករណ៍ថាមពលដែលអ្នកនឹងប្រើគឺជា [ឧបករណ៍វាស់សំណើម និងសីតុណ្ហភាព DHT11](https://www.seeedstudio.com/Grove-Temperature-Humidity-Sensor-DHT11.html) ផ្តល់បញ្ចូលពីឧបករណ៍ពីររួមនៅក្នុងឯកជនមួយ។ វាមានប្រជាប្រិយភាពខ្លាំង ដោយមានឧបករណ៍ជាច្រើនដែលមានលក់ពាណិជ្ជកម្មរួមបញ្ចូលសីតុណ្ហភាព សំណើម និងមួយចំនួនព្រឹត្តិការណ៍សំពាធបរិយាកាស។ ឧបករណ៍វាស់សីតុណ្ហភាពគឺជាភាគរយវិការណ៍អាកាសធម្មតានៃធម្មជាតិ (NTC) thermistor ដែលមានភាពធូរស្បើយនៅពេលសីតុណ្ហភាពកើនឡើង។ + +នេះគឺជាឧបករណ៍ឌីជីថល ដូច្នេះវាជាឧបករណ៍ ADC ខាងក្នុងដើម្បីបង្កើតសញ្ញាឌីជីថលដែលមានទិន្នន័យសីតុណ្ហភាព និងសំណើមដែលម៉៊ីក្រូកុងត្រូលអាចអានបាន។ + +### ချိတ်ឧបករណ៍វាស់សីតុណ្ហភាព + +ឧបករណ៍ Grove temperature sensor អាចត្រូវបានភ្ជាប់ទៅកាន់ពត៍តភ្ជាប់ឌីជីថលរបស់ Wio Terminal។ + +#### បេសកកម្ម - ខ្សែភ្ជាប់ឧបករណ៍វាស់សីតុណ្ហភាព + +ភ្ជាប់ឧបករណ៍វាស់សីតុណ្ហភាព។ + +![ឧបករណ៍ Grove temperature sensor](../../../../../translated_images/km/grove-dht11.07f8eafceee17004.webp) + +1. ដាក់ចុងនៃខ្សែ Grove មួយចុងទៅក្នុងផ្សិតលើឧបករណ៍វាស់សំណើម និងសីតុណ្ហភាព។ វានឹងដំណើរការតែមួយទិសតែម្តង។ + +1. នៅពេល Wio Terminal មិនបានភ្ជាប់ទៅកាន់កុំព្យូទ័រឬប្រភពថាមពលផ្សេងទៀត ទាក់ទងចុងក្រោយនៃខ្សែ Grove ទៅក្នុងផ្សិត Grove ពីចំហៀងស្តាំឆ្ងាយពីប៊ូតុងបំភ្លឺ។ + +![ឧបករណ៍ Grove temperature sensor ភ្ជាប់ទៅផ្សិតស្តាំ](../../../../../translated_images/km/wio-temperature-sensor.2934928f38c7f79a.webp) + +## កម្មវិធីសម្រាប់ឧបករណ៍វាស់សីតុណ្ហភាព + +ឥឡូវនេះ Wio Terminal អាចត្រូវបានកម្មវិធីដើម្បីប្រើឧបករណ៍វាស់សីតុណ្ហភាពភ្ជាប់។ + +### បេសកកម្មកម្មវិធីឧបករណ៍វាស់សីតុណ្ហភាព + +កម្មវិធីវាស់សីតុណ្ហភាព។ + +1. បង្កើតគម្រោងថ្មី Wio Terminal ដោយប្រើ PlatformIO។ ហៅគម្រោងនេះថា `temperature-sensor`។ បន្ថែមកូដក្នុងមុខងារ `setup` ដើម្បីកំណត់ការភ្ជាប់ស៊េរី។ + + > ⚠️ អ្នកអាចយោងទៅកាន់ [ការណែនាំសម្រាប់បង្កើតគម្រោង PlatformIO ក្នុងគម្រោងទី 1 មេរៀនទី 1 ប្រសិនបើចាំបាច់](../../../1-getting-started/lessons/1-introduction-to-iot/wio-terminal.md#create-a-platformio-project)។ + +1. បន្ថែមការពឹងផ្អែកបណ្ណាល័យសម្រាប់បណ្ណាល័យ Grove Humidity and Temperature របស់ Seeed ទៅក្នុងឯកសារ `platformio.ini` របស់គម្រោង៖ + + ```ini + lib_deps = + seeed-studio/Grove Temperature And Humidity Sensor @ 1.0.1 + ``` + + > ⚠️ អ្នកអាចយោងទៅកាន់ [ការណែនាំសម្រាប់បន្ថែមបណ្ណាល័យទៅគម្រោង PlatformIO ក្នុងគម្រោងទី 1 មេរៀនទី 4 ប្រសិនបើចាំបាច់](../../../1-getting-started/lessons/4-connect-internet/wio-terminal-mqtt.md#install-the-wifi-and-mqtt-arduino-libraries)។ + +1. បន្ថែម កូដ `#include` ខាងលើឯកសារ ពីក្រោម `#include ` រួច៖ + + ```cpp + #include + #include + ``` + + នេះនាំចូលឯកសារដែលត្រូវបានប្រើដើម្បីធ្វើការទំនាក់ទំនងជាមួយឧបករណ៍វាស់។ ឯកសារ `DHT.h` មានកូដសម្រាប់ឧបករណ៍វាស់ដោយផ្ទាល់ ហើយការបន្ថែម `SPI.h` ជួយធានាការតភ្ជាប់កូដដែលចាំបាច់ក្នុងការប្រាស្រ័យទាក់ទងទៅឧបករណ៍នេះ។ + +1. មុនមុខងារ `setup` សូមប្រកាសឧបករណ៍ DHT៖ + + ```cpp + DHT dht(D0, DHT11); + ``` + + នេះជាការប្រកាសវត្ថុ DHT ដែលគ្រប់គ្រងឧបករណ៍ **D**igital **H**umidity និង **T**emperature។ វាត្រូវបានភ្ជាប់ទៅច្រក `D0` ដោយចំហៀងស្ដាំនៃជំពូក Grove របស់ Wio Terminal។ ប៉ារ៉ាម៉ែត្រទីពីរប្រាប់ថាឧបករណ៍ដែលប្រើគឺជាឧបករណ៍ *DHT11* - បណ្ណាល័យដែលអ្នកប្រើគាំទ្រឧបករណ៍ផ្សេងទៀតផងដែរ។ + +1. នៅក្នុងមុខងារ `setup` បន្ថែមកូដដើម្បីកំណត់ការភ្ជាប់ស៊េរី៖ + + ```cpp + void setup() + { + Serial.begin(9600); + + while (!Serial) + ; // រង់ចាំ Serial ឲ្យបានរៀបចំរួចរាល់ + + delay(1000); + } + ``` + +1. នៅចុងមុខងារ `setup` បន្ទាប់ពី `delay` ចុងក្រោយ បន្ថែមការហៅដើម្បីចាប់ផ្តើមឧបករណ៍ DHT៖ + + ```cpp + dht.begin(); + ``` + +1. នៅក្នុងមុខងារ `loop` បន្ថែមកូដដើម្បីហៅឧបករណ៍ និងបញ្ចេញសីតុណ្ហភាពទៅច្រកស៊េរី៖ + + ```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); + } + ``` + + កូដនេះប្រកាសអារាយទទេ 2 ទំនេរ និងផ្ញើទៅហៅ `readTempAndHumidity` នៅលើវត្ថុ `DHT`។ ហៅនេះបំពេញអារាយជាមួយតម្លៃ 2 កំពុង - សំណើមភ្ជាប់នៅរបស់ធាតុកន្លង 0 (ចាំថាអារាយ C++ ចាប់ផ្តើមពីសូន្យ ដូចនេះធាតុខ្សែ 0 គឺធាតុខ្សែ "ដំបូង") ហើយសីតុណ្ហភាពត្រូវបញ្ចូលនៅក្នុងធាតុកន្លង 1។ + + សីតុណ្ហភាពត្រូវបានអានពីធាតុកន្លង 1 នៃអារាយ ហើយបញ្ចេញទៅច្រកស៊េរី។ + + > 🇺🇸 សីតុណ្ហភាពត្រូវបានអានជាថ្នាក់សេ្លស្យ យ៉ាងហោចណាស់ សម្រាប់អ្នកអាមេរិក ដើម្បីបម្លែងទៅថ្នាក់ Fahrenheit ចែកតម្លៃ Celsius ដោយ 5, បន្ទាប់មកគុណ 9, បូកបន្ថែម 32។ ឧទាហរណ៍ អានសីតុណ្ហភាព 20°C ក្លាយជា ((20/5)*9) + 32 = 68°F។ + +1. បង្កើត និងបញ្ចូលកូដទៅកាន់ Wio Terminal។ + + > ⚠️ អ្នកអាចយោងទៅកាន់ [ការណែនាំសម្រាប់បង្កើតគម្រោង PlatformIO ក្នុងគម្រោងទី 1 មេរៀនទី 1 ប្រសិនបើចាំបាច់](../../../1-getting-started/lessons/1-introduction-to-iot/wio-terminal.md#write-the-hello-world-app)។ + +1. បន្ទាប់ពីបញ្ចូលបាន អ្នកអាចត្រួតពិនិត្យសីតុណ្ហភាពដោយប្រើម៉ូនីទ័រស៊េរី៖ + + ```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 + ``` + +> 💁 អ្នកអាចរកឃើញកូដនេះនៅក្នុងថត [code-temperature/wio-terminal](../../../../../2-farm/lessons/1-predict-plant-growth/code-temperature/wio-terminal)។ + +😀 កម្មវិធីឧបករណ៍វាស់សីតុណ្ហភាពរបស់អ្នកបានជោគជ័យ! + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំប្រឹងប្រែងដើម្បីមានភាពត្រឹមត្រូវ សូមយល់ថាការបកប្រែម៉ាស៊ីនអាចមានកំហុសឬការខ្វះភាពត្រឹមត្រូវ។ ឯកសារដើមដែលមានភាសាបណ្តើរមានត្រូវបានពិចារណាថាជាភ្ជាប់ដ៏មានអំណាច។ សម្រាប់ព័ត៌មានសំខាន់ សូមផ្ដល់អនុសាសន៍ឲ្យមានការបកប្រែដោយមនុស្សផ្សេងទៀតដែលមានជំនាញ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ចរចា ឬការបកប្រែក្រឡាត់ណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះទេ។ + \ No newline at end of file diff --git a/translations/km/2-farm/lessons/2-detect-soil-moisture/README.md b/translations/km/2-farm/lessons/2-detect-soil-moisture/README.md new file mode 100644 index 000000000..27ade1dce --- /dev/null +++ b/translations/km/2-farm/lessons/2-detect-soil-moisture/README.md @@ -0,0 +1,272 @@ +# ស្វែងរកសំណើមដី + +![សេចក្ដីសង្ខេបស្គេតស្គេតនៃមេរៀននេះ](../../../../../translated_images/km/lesson-6.3e493b60eee85adc.webp) + +> ស្គេតស្គេតដោយ [Nitya Narasimhan](https://github.com/nitya)។ ចុចលើរូបភាពសម្រាប់ទំហំធំ។ + +មេរៀននេះត្រូវបានបង្រៀនជាផ្នែកមួយនៃ [គម្រោង IoT សម្រាប់អ្នកចាប់ផ្តើម ផ្នែក 2 - ស៊េរីកសិក្សាអំពីកសិកម្មឌីជីថល](https://youtube.com/playlist?list=PLmsFUfdnGr3yCutmcVg6eAUEfsGiFXgcx) ពី [Microsoft Reactor](https://developer.microsoft.com/reactor/?WT.mc_id=academic-17441-jabenn)។ + +[![ខ្សែភាពយន្តអំពីអង្គភាពវាស់សំណើមដី និងកសិកម្មឌីជីថល](https://img.youtube.com/vi/ZzpTu3x4c6M/0.jpg)](https://youtu.be/ZzpTu3x4c6M) + +## ប្រលងមុខមេរៀន + +[ប្រលងមុខមេរៀន](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/11) + +## ការណែនាំ + +នៅមេរៀនមុន យើងបានមើលការវាស់បរិស្ថានមួយ និងប្រើវាសម្រាប់ទស្សន៍ទាយការលូតលាស់របស់រុក្ខជាតិ។ សីតុណ្ហភាពអាចត្រូវបានគ្រប់គ្រងបាន ប៉ុន្តែវាត្រូវការចំណាយថ្លៃច្រើន ដើម្បីត្រួតពិនិត្យបរិយាកាស។ បរិស្ថានដែលងាយស្រួលគ្រប់គ្រងសម្រាប់រុក្ខជាតិជាចម្បងគឺទឹក - វាជារឿងដែលត្រូវបានគ្រប់គ្រងរៀងរាល់ថ្ងៃ ចាប់ពីប្រព័ន្ធទឹកជ្រោះធំប៉ុន្មានទៅដល់ក្មេងតូចជាមួយកំបោក្រឡាចំរុងទឹកក្នុងសួនរបស់ពួកគេ។ + +![កុមារគ្រប់គ្រងទឹកសួន](../../../../../translated_images/km/child-watering-garden.9a5d3f1bfe6d0d8d.webp) + +ក្នុងមេរៀននេះ អ្នកនឹងរៀនអំពីវិធីវាស់សំណើមដី ហើយនៅមេរៀនបន្ទាប់ អ្នកនឹងរៀនពីរបៀបគ្រប់គ្រងប្រព័ន្ធចាក់ទឹកដោយស្វ័យប្រវត្តិ។ មេរៀននេះណែនាំអំពីឧបករណ៍អ្នកវាស់ទីបី ដែលអ្នកបានប្រើសង្វាក់ពន្លឺ មួយឧបករណ៍វាស់សីតុណ្ហភាព ហើយក្នុងមេរៀននេះ អ្នកនឹងរៀនបន្ថែមពីរបៀបឧបករណ៍អ្នកវាស់ និងឧបករណ៍ធ្វើចលនា ទំនាក់ទំនងជាមួយឧបករណ៍ IoT ដើម្បីយល់ដឹងពីរបៀបឧបករណ៍អ្នកវាស់សំណើមដីផ្ញើទិន្នន័យទៅឧបករណ៍ IoT។ + +ក្នុងមេរៀននេះ យើងនឹងគ្របដណ្តប់៖ + +* [សំណើមដី](#សំណើមដី) +* [របៀបឧបករណ៍អ្នកវាស់ទំនាក់ទំនងជាមួយឧបករណ៍ IoT](#របៀបឧបករណ៍អ្នកវាស់ទំនាក់ទំនងជាមួយឧបករណ៍-iot) +* [វាស់កម្រិតសំណើមនៅក្នុងដី](#វាស់កម្រិតសើមក្នុងដី) +* [កំណត់តុល្យឧបករណ៍អ្នកវាស់](#ការការពារខ្សែវាស់សូង់) + +## សំណើមដី + +រុក្ខជាតិត្រូវការទឹកសម្រាប់រីកចម្រើន។ ពួកវាស្រូបទឹកតាមរយៈផ្នែកជ្រុះរបស់វា ជាច្រើនស្រូបតាមប្រព័ន្ធធ្លាក់ដើម។ ទឹកត្រូវបានប្រើសម្រាប់រុក្ខជាតិបីរឿង៖ + +* [បំពុលបញ្ចេញបាតូឡិក (Photosynthesis)](https://wikipedia.org/wiki/Photosynthesis) - រុក្ខជាតិបង្កើតប្រតិកម្មគីមីជាមួយទឹក កាបូនឌីអុកស៊ីត និងពន្លឺ ដើម្បីបង្កើតកាបូអ៊ីដ្រាត និងអុកស៊ីសែន។ +* [ការច្រាស់ (Transpiration)](https://wikipedia.org/wiki/Transpiration) - រុក្ខជាតិប្រើទឹកដើម្បីឱ្យកាបូនឌីអុកស៊ីតចេញពីខ្យល់ទៅក្នុងរុក្ខជាតិតាមរយៈរន្ធនៅលើស្លឹក។ ដំណើរការនេះក៏ផ្ទុកជាតិចិញ្ចឹមនៅជុំវិញរុក្ខជាតិ និងបន្ថយកំដៅរុក្ខជាតិ ដូចជាការសើមរបស់មនុស្ស។ +* រចនាសម្ព័ន្ធ - រុក្ខជាតិត្រូវការទឹកដើម្បីថែរក្សារចនាសម្ព័ន្ធរបស់ពួកវា - ពោលគឺពួកវាមានទឹក 90% (ផ្ទុយពីមនុស្សគឺត្រឹមតែ 60%) ហើយទឹកនេះធ្វើឱ្យកោសិកាខ្លាញ់ ត្រេកត្រអាល។ ប្រសិនបើរុក្ខជាតិមិនមានទឹកគ្រប់គ្រាន់ វានឹងស្លុតនិងស្លាប់ក្នុងចុងក្រោយ។ + +![ទឹកត្រូវបានស្រូបតាមដើមរុក្ខជាតិហើយបន្ថែមក្នុងរុក្ខជាតិ ប្រើសម្រាប់បំពុលបញ្ចេញបាតូឡិក និងរចនាសម្ព័ន្ធរុក្ខជាតិ](../../../../../translated_images/km/transpiration.b735aa34e4372e65.webp) + +✅ ស្វែងរកព័ត៌មាន៖ តើទឹកបាត់បង់ប៉ុន្មានតាមរយៈដំណើរការច្រាស់? + +ប្រព័ន្ធដើមរុក្ខជាតិផ្ដល់ទឹកពីសំណើមនៅក្នុងដី ដែលជាទីកន្លែងរុក្ខជាតិដុះឡើង។ ប្រសិនបើសំណើមក្នុងដីតិចពេក រុក្ខជាតិមិនអាចស្រូបបានគ្រប់គ្រាន់សម្រាប់រីកចម្រើន។ ប្រសិនបើសំណើមក្នុងដីច្រើនពេក ដើមរុក្ខជាតិមិនអាចស្រូបអុកស៊ីសែនគ្រប់គ្រាន់សម្រាប់ដំណើរការ។ វានាំឱ្យដើមរុក្ខជាតិស្លាប់ ហើយរុក្ខជាតិមិនអាចទទួលបានជាតិចិញ្ចឹមគ្រប់គ្រាន់សម្រាប់រស់នៅ។ + +សម្រាប់កសិករដើម្បីទទួលបានការលូតលាស់រុក្ខជាតិបានល្អបំផុត ដីត្រូវតែមានសំណើមមិនខុសគ្នាប៉ុន្មានពេកនិងមិនស្ងួតពេក។ ឧបករណ៍ IoT អាចជួយក្នុងការវាស់សំណើមដី អនុញ្ញាតឱ្យកសិករចាក់ទឹកតែពេលដែលត្រូវការ។ + +### វិធីសាស្រ្តវាស់សំណើមដី + +មានប្រភេទឧបករណ៍អ្នកវាស់ជាច្រើនដែលអ្នកអាចប្រើសម្រាប់វាស់សំណើមដី៖ + +* ប្រភេទរេស៊ីស្ទីវ (Resistive) - ឧបករណ៍អ្នកវាស់ប្រភេទនេះមានប្រដាប់វាស់ពីរដែលដាក់ចូលក្នុងដី។ ចរន្តអគ្គិសនីត្រូវបានផ្ញើទៅប្រដាប់វាស់មួយ ហើយទទួលពីប្រដាប់វាស់មួយទៀត។ ឧបករណ៍វាស់វាស់ភាពរេស៊ីស្តង់នៃដីតាមកម្រិតដែលចរន្តធ្លាក់នៅប្រដាប់វាស់ទីពីរ។ ទឹកជាអ្នកដឹកចរន្តអគ្គិសនីល្អ ដូច្នេះបើមានទឹកច្រើនក្នុងដី ការរួចរាស់នឹងតិច។ + + ![ឧបករណ៍អ្នកវាស់សំណើមដីប្រភេទរេស៊ីស្ទីវ](../../../../../translated_images/km/resistive-soil-moisture-sensor.728a138a3d109e06.webp) + + > 💁 អ្នកអាចបង្កើតឧបករណ៍អ្នកវាស់សំណើមដីប្រភេទរេស៊ីស្ទីវដោយប្រើដែកពីរដុំដូចជា ម្គុលដែក ពីរដុំនឹងបំបែកឲ្យឆ្ងាយពីគ្នាជាពីរប៉ារម៉ែត្រ ហើយវាស់ភាពរេស៊ីស្តង់រវាងពួកវាប្រើម៉ុលទីមែត្រ។ + +* ប្រភេទកាប៉ាស៊ីតីវ (Capacitive) - ឧបករណ៍អ្នកវាស់សំណើមកាប៉ាស៊ីតីវវាស់ចំនួនបន្ទុកអគ្គិសនីដែលអាចផ្ទុកបានរវាងផ្ទៃអគ្គិសនីវិជ្ជមាន និងអវិជ្ជមាន ឬ [កាប៉ាស៊ីតង់](https://wikipedia.org/wiki/Capacitance)។ កាប៉ាស៊ីតង់ដីផ្លាស់ប្តូរពេលចំនួនសំណើមផ្លាស់ប្តូរ ហើយអាចបកប្រែក្នុងជាម៉ាស៊ីនចល័តលំដាប់វ៉ុលដែលអាចវាស់បានដោយឧបករណ៍ IoT។ ដីបើសើមក្រអូប កម្រិតវ៉ុលនឹងតិចជាង។ + + ![ឧបករណ៍អ្នកវាស់សំណើមដីកាប៉ាស៊ីតីវ](../../../../../translated_images/km/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) + +ទាំងពីរប្រភេទនេះជាឧបករណ៍អ្នកវាស់អាណាឡូគដែលត្រឡប់មកវិញជាវ៉ុលសម្រាប់បង្ហាញសំណើមដី។ តើវ៉ុលនេះត្រូវទៅរកកូដរបស់អ្នកយ៉ាងដូចម្តេច? មុនពេលទៅបន្តជាមួយឧបករណ៍អ្នកវាស់ទាំងនេះ យើងមកមើលរបៀបឧបករណ៍អ្នកវាស់និងឧបករណ៍ធ្វើចលនា ទំនាក់ទំនងជាមួយឧបករណ៍ IoT។ + +## របៀបឧបករណ៍អ្នកវាស់ទំនាក់ទំនងជាមួយឧបករណ៍ IoT + +មកដល់ពេលនេះ ក្នុងមេរៀនទាំងនេះ អ្នកបានរៀនពីឧបករណ៍អ្នកវាស់ និងឧបករណ៍ធ្វើចលនា ជាច្រើន ហើយឧបករណ៍ទាំងនេះបានធ្វើការទំនាក់ទំនងជាមួយឧបករណ៍ IoT របស់អ្នក ប្រសិនបើអ្នកបានធ្វើបរិញ្ញាបត្រឧបករណ៍រឹង។ តែការទំនាក់ទំនងនេះធ្វើការយ៉ាងដូចម្តេច? តើការវាស់ភាពរេស៊ីស្តង់ពីឧបករណ៍អ្នកវាស់សំណើមដីក្លាយជាលេខដែលអ្នកអាចប្រើបានពីកូដដោយរបៀបណា? + +ដើម្បីទំនាក់ទំនងជាមួយឧបករណ៍អ្នកវាស់ និងឧបករណ៍ធ្វើចលនា ភាគច្រើនអ្នកត្រូវការឧបករណ៍រឹងមួយ និងប្រព័ន្ធបញ្ជូនទិន្នន័យមួយ - ដែលជាវិធីដែលបានកំណត់លម្អិតសម្រាប់ផ្ញើ និងទទួលទិន្នន័យ។ ឧទាហរណ៍ សម្រាប់ឧបករណ៍អ្នកវាស់សំណើមដីកាប៉ាស៊ីតីវមួយ៖ + +* តើឧបករណ៍នេះភ្ជាប់ជាមួយឧបករណ៍ IoT ដោយរបៀបណា? +* ប្រសិនបើវាវាស់វ៉ុលដែលជាសញ្ញាអាណាឡូគ វាត្រូវការអេដិស៊ី (ADC) ដើម្បីបម្លែងជារូបតំណាងខ្ទង់ឌីជីថល។ តម្លៃនេះត្រូវបានផ្ញើជាវ៉ុលបត់បែន ដើម្បីផ្ញើលេខ 0 និង 1 - តែកម្រិតពេលវេលានៃប៊ីតមួយត្រូវបានផ្ញើរយៈពេលប៉ុន្មាន? +* ប្រសិនបើឧបករណ៍អ្នកវាស់គូរតម្លៃឌីជីថល វានឹងជាស្វូរ 0 និង 1 ម្តងទៀត តែកម្រិតពេលវេលានៃប៊ីតមួយត្រូវបានផ្ញើរយៈពេលប៉ុន្មាន? +* ប្រសិនបើវ៉ុលខ្ពស់រយៈពេល 0.1 វិនាទី តើវាជាប៊ីត ១ ព្រោះសម្រាប់១ វា ផ្ទេរប៊ីតដដែលជាប់គ្នា ២ តើ ១០? +* តើលេខចាប់ផ្តើមពេលណា? តើ `00001101` មានតម្លៃ 25 មែនទេ ឬ ៥ ប៊ីតដំបូងជាចុងបញ្ចប់នៃតម្លៃមុន? + +ឧបករណ៍រឹងផ្ដល់ការតភ្ជាប់រាងកាយដែលទិន្នន័យត្រូវបានផ្ញើបញ្ជូន។ ប្រព័ន្ធទំនាក់ទំនងខុសៗគ្នាធ្វើឲ្យទិន្នន័យត្រូវបានផ្ញើ ឬទទួលក្នុងរបៀបត្រឹមត្រូវ ដើម្បីអាចបកស្រាយបានខុសពីមុន។ + +### ផ្នែកបញ្ចូល និងបញ្ចេញទូទៅ (GPIO) pins + +GPIO ជាសំណុំប៊ិចដែលអ្នកអាចប្រើភ្ជាប់ឧបករណ៍រឹងទៅឧបករណ៍ IoT របស់អ្នក ហើយភាគច្រើនមាននៅលើឧបករណ៍រីស្ពប៊ែរ បាយ ឬ Wio Terminal។ អ្នកអាចប្រើប្រព័ន្ធទំនាក់ទំនងផ្សេងគ្នានៅក្នុងផ្នែក GPIO។ ប៊ិច GPIO មួយចំនួនផ្ដល់វ៉ុល ពីរបៀប 3.3V ឬ 5V មានខ្សែដី និងខ្សែដែលអាចកំណត់បានថាតើផ្ញើវ៉ុល (output) ឬទទួលវ៉ុល (input)។ + +> 💁 ប្រព័ន្ធអគ្គិសនីត្រូវតែភ្ជាប់វ៉ុលទៅខ្សែដីតាមរយៈសៀគ្វីណាមួយ។ អ្នកអាចគិតវ៉ុលជា ប្រភេទវិជ្ជមាន (+ve) របស់ថ្ម និងខ្សែដី ជាប្រភេទអវិជ្ជមាន (-ve)។ + +អ្នកអាចប្រើប៊ិច GPIO ដោយផ្ទាល់ជាមួយឧបករណ៍ឌីជីថល និងឧបករណ៍ធ្វើចលនា នៅពេលដែលអ្នកព្យាយាមប្រើតែតម្លៃ បើ/ចាក់ចេញ (on/off) ដែលនៅស្ថានភាពខ្ពស់ (high) ឬទាប (low)។ ឧទាហរណ៍៖ + +* ប៊ូតុង។ អ្នកអាចភ្ជាប់ប៊ូតុងរវាងប៊ិច 5V និងប៊ិចលើ GPIO ដែលបានកំណត់ជារបារ ។ នៅពេលចុចប៊ូតុង វាបញ្ចប់សៀគ្វីពី 5V តាមប៊ូតុងទៅប៊ិចលើ GPIO។ ពីកូដ អ្នកអាចអានវ៉ុលនៅស្ថានភាពបញ្ចូល (input) ហើយប្រសិនបើវ៉ុលខ្ពស់ (5V) ប៊ូតុងត្រូវបានចុច ប្រសិនបើវ៉ុលទាប (0V) ប៊ូតុងមិនត្រូវបានចុច។ ចងចាំថា វ៉ុលភ្លែកខ្លួនមិនត្រូវបានអានគ្រប់គ្រាន់ទេ៕ វាត្រូវបានបម្លែងជាសញ្ញាឌីជីថល 1 ឬ 0 ដោយផ្អែកលើកម្រិតវ៉ុល។ + + ![ប៊ូតុងផ្ញើវ៉ុល 5V។ ពេលមិនចុច វាត្រឡប់តម្លៃ 0V ឬ 0។ ពេលចុច វាត្រឡប់ 5V ឬ 1។](../../../../../translated_images/km/button-with-digital.3749edea8eb885af.webp) + +* LED។ អ្នកអាចភ្ជាប់ LED រវាងប៊ិច output និងប៊ិច ground (តម្រូវឲ្យមានរេសូស្ត័រសម្រាប់ការពារភ្លើង LED)។ ពីកូដ អ្នកអាចកំណត់ប៊ិច output ជា high ដើម្បីផ្ញើ 3.3V បង្កើតសៀគ្វីពី 3.3V តាម LED ទៅដល់ប៊ិច ground។ នេះនឹងបំភ្លឺ LED។ + + ![LED ផ្ញើសញ្ញា 0 (3.3V) ដែលបំភ្លឺ LED។ ប្រសិនបើផ្ញើ 0 (0V) LED មិនបំភ្លឺ។](../../../../../translated_images/km/led-digital-control.13b9be14077ea49f.webp) + +សម្រាប់ឧបករណ៍អ្នកវាស់កម្រិតខ្ពស់ អ្នកអាចប្រើប៊ិច GPIO ដើម្បីផ្ញើ និងទទួលទិន្នន័យឌីជីថលដោយផ្ទាល់ជាមួយឧបករណ៍អ្នកវាស់ និងឧបករណ៍ធ្វើចលនា ឬតាមរយៈក្រុមភ្ជាប់ដែលមាន ADCs និង DACs ដើម្បីទំនាក់ទំនងជាមួយឧបករណ៍អ្នកវាស់ និងធ្វើចលនាអាណាឡូគ។ + +> 💁 ប្រសិនបើអ្នកប្រើរីស្ពប៊ែរ បាយ សម្រាប់មេរៀនទាំងនេះ Grove Base Hat មានឧបករណ៍រឹងសម្រាប់បម្លែងសញ្ញាអាណាឡូគទៅឌីជីថលសម្រាប់ផ្ញើតាម GPIO។ + +✅ ប្រសិនបើអ្នកមានឧបករណ៍ IoT ដែលមានប៊ិច GPIO សូមស្វែងរកប៊ិចទាំងនេះ និងស្វែងរកដ្យាក្រាមដែលបង្ហាញថាប៊ិចណាមួយជាវ៉ុល ខ្សែដី គឺកំណត់កម្មវិធីបង្កើតវ៉ុល ឬទទួលវ៉ុល។ + +### ប៊ិចអាណាឡូគ (Analog pins) + +ឧបករណ៍ខ្លះ ដូចជា ឧបករណ៍ Arduino ផ្ដល់ប៊ិចអាណាឡូគ។ ប៊ិចទាំងនេះដូចគ្នានឹងប៊ិច GPIO ប៉ុន្តែជាមួយ ADC ក្នុងការបម្លែងកម្រិតវ៉ុលទៅជាតម្លៃលេខ។ ជាទូទៅ ADC មានការផ្តល់ច្បាស់គឺ ១០-ប៊ីត ដែលមានន័យថាវាបម្លែងវ៉ុលទៅតម្លៃចាប់ពី 0 ដល់ 1,023។ + +ឧទាហរណ៍ នៅលើក្តារប្រភេទ 3.3V ប្រសិនបើឧបករណ៍អ្នកវាស់ត្រឡប់មក 3.3V តម្លៃត្រឡប់នឹងជា 1,023។ ប្រសិនបើវ៉ុលត្រឡប់មកជា 1.65V តម្លៃត្រឡប់នឹងជា 511។ + +![ឧបករណ៍អ្នកវាស់សំណើមដីផ្ញើវ៉ុល 3.3V ហើយត្រឡប់មក 1.65V ឬអានបាន 511](../../../../../translated_images/km/analog-sensor-voltage.3b6f315392247399.webp) + +> 💁 នៅក្នុងមេរៀនភ្លើងយប់ - មេរៀន 3 ឧបករណ៍អ្នកវាស់ពន្លឺត្រឡប់តម្លៃពី 0 ដល់ 1,023។ ប្រសិនបើអ្នកប្រើ Wio Terminal ឧបករណ៍អ្នកវាស់ភ្ជាប់ជាមួយប៊ិចអាណាឡូគ។ ប្រសិនបើប្រើរីស្ពប៊ែរ បាយ ឧបករណ៍អ្នកវាស់ភ្ជាប់ជាមួយប៊ិចអាណាឡូគលើ Base Hat ដែលមាន ADC សម្រាប់ទំនាក់ទំនងតាម GPIO។ ឧបករណ៍វីរុចវាល់ត្រូវបានកំណត់ឲ្យផ្ញើតម្លៃពី 0 ដល់ 1,023 ដើម្បីកំណត់ប៊ិចអាណាឡូគ។ + +ឧបករណ៍អ្នកវាស់សំណើមដីពឹងផ្អែកលើវ៉ុល ដូច្នេះវានឹងប្រើប៊ិចអាណាឡូគ និងផ្តល់តម្លៃពី 0 ដល់ 1,023។ + +### សៀគ្វីប្រភេទ Inter Integrated Circuit (I2C) + +I2C អានជា *I-ស្វាគុណ-C* គឺជាប្រព័ន្ធច្រើនឧបករណ៍គ្រប់គ្រង និងឧបករណ៍រងមួយ ដែលឧបករណ៍ណាមួយដែលភ្ជាប់អាចដំណើរការជាគ្រប់គ្រង ឬឧបករណ៍រង នៅលើ I2C bus (ឈ្មោះសម្រាប់ប្រព័ន្ធទំនាក់ទំនងផ្ញើទិន្នន័យ)។ ទិន្នន័យត្រូវបានផ្ញើជាកញ្ចប់ដែលមានអាសយដ្ឋានជាក់លាក់ ដែលក្នុងនោះផ្ទុកអាសយដ្ឋានឧបករណ៍ដែលត្រូវទាក់ទង។ + +> 💁 គំរូនេះពីមុនគេហៅថា master/slave ប៉ុន្តែពាក្យនេះត្រូវបានផុតគំនិតដោយសារតែពាក់ព័ន្ធនឹងសេតវិជ្ជាគ្រប់បច្ចេកវិទ្យា។ [Open Source Hardware Association បានទទួលយក controller/peripheral](https://www.oshwa.org/a-resolution-to-redefine-spi-signal-names/), ប៉ុន្តែអ្នកនៅតែអាចឃើញអ្នកយោងពាក្យចាស់នៅទីកន្លែងខ្លះ។ + +ឧបករណ៍មានអាសយដ្ឋានដែលប្រើនៅពេលភ្ជាប់ទៅ I2C bus ព្រមទាំងភាគច្រើនជាប់ទុកជាមួយឧបករណ៍។ ឧទាហរណ៍ ប្រភេទឧបករណ៍ Grove របស់ Seeed មានអាសយដ្ឋានដូចគ្នា ដូច្នេះឧបករណ៍អ្នកវាស់ពន្លឺទាំងអស់មានអាសយដ្ឋានដូចគ្នា ឧបករណ៍ប៊ូតុងទាំងអស់មានអាសយដ្ឋានមួយផ្សេង​ពីពន្លឺ។ ឧបករណ៍ខ្លះមានវិធីប្តូរអាសយដ្ឋាន ដោយផ្លាស់ប្ដូរម៉ូតតំឡើងឬដាក់ទឹកដៃជាមួយប៊ីប៊ីស្ក័រទាំងពីរ។ + +I2C bus មានខ្សែ 2 ប្រភេទសំខាន់ ជាមួយខ្សែថាមពល 2 ប្រភេទ៖ + +| ខ្សែ | ឈ្មោះ | ពិពណ៌នា | +| ---- | --------- | ----------- | +| SDA | ដាតាប្រភេទបន្ត (Serial Data) | ខ្សែនេះសម្រាប់ផ្ញើទិន្នន័យរវាងឧបករណ៍។ | +| SCL | ដិតក្លុកតែម្ដង (Serial Clock) | ខ្សែនេះផ្ញើសញ្ញាក្លុកល្បឿនដែលកំណត់ដោយគ្រប់គ្រង។ | +| VCC | ធន់ថាមពលវ៉ុល | ប្រភពថាមពលសម្រាប់ឧបករណ៍។ ខ្សែនេះភ្ជាប់ទៅ SDA និង SCL តាមរយៈរេសូស្ត័រខ្ពស់ (pull-up resistor) ដែលបះបោរសញ្ញាក្នុងពេលគ្មានឧបករណ៍ជា controller។ | +| GND | ខ្សែដី | ផ្ដល់ខ្សែដីរួមសម្រាប់សៀគ្វីអគ្គិសនី។ | + +![I2C bus ជាមួយឧបករណ៍ 3 តភ្ជាប់ទៅខ្សែ SDA និង SCL ចែករំលែកខ្សែដីរួម](../../../../../translated_images/km/i2c.83da845dde02256b.webp) + +ដើម្បីផ្ញើទិន្នន័យ ឧបករណ៍មួយនឹងចាប់ផ្តើមសញ្ញាចាប់ផ្តើមបង្ហាញនូវភាពរួចរាល់នៃការផ្ញើទិន្នន័យ។ វានឹងក្លាយជាគ្រប់គ្រង។ គ្រប់គ្រងផ្ញើអាសយដ្ឋានឧបករណ៍ដែលចង់ទាក់ទង ជាមួយនឹងបញ្ចប់ថាតើចង់អាន ឬចង់សរសេរទិន្នន័យ។ បន្ទាប់ពីផ្ញើទិន្នន័យរួច គ្រប់គ្រងផ្ញើសញ្ញាបញ្ឈប់ ដើម្បីបង្ហាញព្រមានថាបានបញ្ចប់ហើយ។ បន្ទាប់ពីនេះ ឧបករណ៍ផ្សេងអាចក្លាយជាគ្រប់គ្រង ហើយផ្ញើឬទទួលទិន្នន័យបាន។ +I2C មានល្បឿនកំណត់ ជាមួយរបៀបបម្រើ 3 ជាន់ ល្បឿនថេរ។ របៀបដែលល្បឿនលឿនបំផុតគឺ របៀបល្បឿនខ្ពស់ (High Speed mode) មានល្បឿនអតិបរមា 3.4Mbps (megabits per second) ប៉ុន្តែឧបករណ៍មានកំណត់ខ្លះប៉ុណ្ណោះដែលគាំទ្រល្បឿននោះ។ ដូចជា Raspberry Pi មានកំណត់នៅរបៀបល្បឿនលឿន (fast mode) ដែលមានល្បឿន 400Kbps (kilobits per second)។ របៀបស្តង់ដាររត់ល្បឿន 100Kbps។ + +> 💁 ប្រសិនបើអ្នកកំពុងប្រើ Raspberry Pi ជាមួយ Grove Base hat ក្នុងឧបករណ៍ IoT របស់អ្នក អ្នកនឹងអាចមើលឃើញចំនួនជ័រ I2C នៅលើផ្ទាំងដែលអ្នកអាចប្រើសម្រាប់ទំនាក់ទំនងជាមួយខ្សែសក់ I2C។ ខ្សែសក់ Grove វិទ្យុវីសាស៊ីងក៏ប្រើ I2C ជាមួយ ADC ដើម្បីផ្ញើតម្លៃវិទ្យុជា ទិន្នន័យឌីជីថល ដូច្នេះ ខ្សែសក់ពន្លឺដែលអ្នកប្រើ គឺបានសម្រួលបែប pin អាណាឡុក មួយ ដោយតម្លៃផ្ញើតាម I2C ព្រោះ Raspberry Pi គាំទ្រពី pin ឌីជីថលតែប៉ុណ្ណោះ។ + +### អ្នកទទួល-ផ្ញើទិន្នន័យមិនភាពសម្ងប់សមរ (UART) + +UART ទាក់ទងនឹងចរន្តផ្លូវភេទដែលអនុញ្ញាតឲ្យឧបករណ៍ពីរចែករំលែកទិន្នន័យ។ ក្នុងរាល់ឧបករណ៍ មាន pin ទំនាក់ទំនង 2 ចំនួន - ផ្ញើ (Tx) និង ទទួល (Rx) ដែល pin Tx នៃឧបករណ៍ទីមួយភ្ជាប់ទៅ pin Rx នៃឧបករណ៍ទីពីរ ហើយ pin Tx នៃឧបករណ៍ទីពីរក៏ភ្ជាប់ទៅ pin Rx នៃឧបករណ៍ទីមួយ។ វាអនុញ្ញាតឲ្យទិន្នន័យផ្ញើទៅទិសដៅពីរជ្រុង។ + +* ឧបករណ៍ទី 1 ផ្ញើទិន្នន័យពី pin Tx របស់ខ្លួន ដែលឧបករណ៍ទី 2 ទទួលបាននៅ pin Rx របស់ខ្លួន +* ឧបករណ៍ទី 1 ទទួលទិន្នន័យនៅ pin Rx របស់ខ្លួន ដែលផ្ញើមកពីឧបករណ៍ទី 2 តាម pin Tx របស់វា + +![UART with the Tx pin on one chip connected to the Rx pin on another, and vice versa](../../../../../translated_images/km/uart.d0dbd3fb9e3728c6.webp) + +> 🎓 ទិន្នន័យនឹងផ្ញើមួយប៊ីតក្នុងមួយពេល ហើយនេះហៅថាការទំនាក់ទំនង*serial*។ ប្រព័ន្ធប្រតិបត្តិការ និងមីក្រូកន్ట్రូលរូលជាធម្មតាមាន *serial ports* ដែលជាការតភ្ជាប់ដែលអាចផ្ញើ និង ទទួលទិន្នន័យ serial បាន ហើយអាចប្រើសម្រាប់កូដរបស់អ្នក។ + +ឧបករណ៍ UART មានអត្រា [baud rate](https://wikipedia.org/wiki/Symbol_rate) (គេហៅថា Symbol rate ផងដែរ) ដែលជាល្បឿននៃការផ្ញើ និង ទទួលទិន្នន័យក្នុងប៊ីតក្នុងមួយវិនាទី។ អត្រា baud rate ពេញនិយមគឺ 9,600 មានន័យថាក្នុងមួយវិនាទីផ្ញើទិន្នន័យចំនួន 9,600 ប៊ីត (0 និង 1)។ + +UART ប្រើប៊ីតបញ្ចាប់ (start and stop bits) ដែលមានប៊ីតចាប់ផ្ដើមសម្រាប់សម្គាល់ថាវាដាក់ត្រាសម្រាប់ផ្ញើ byte (8 bits) នៃទិន្នន័យ ហើយប៊ីតបញ្ចប់បន្ទាប់ពីផ្ញើ 8 bits។ + +ល្បឿន UART អាស្រ័យលើឧបករណ៍ ហើយសំរាប់ការអនុវត្តល្បឿនលឿនបំផុតមិនលើស 6.5 Mbps (megabits per second, ឬលានលានប៊ីត 0 និង 1 ផ្ញើក្នុងមួយវិនាទី)។ + +អ្នកអាចប្រើ UART តាមក្បាល GPIO — អ្នកអាចកំណត់មួយចំណុចជា Tx និងមួយចំណុចជា Rx ហើយភ្ជាប់ទៅឧបករណ៍ផ្សេងទៀត។ + +> 💁 ប្រសិនបើអ្នកកំពុងប្រើ Raspberry Pi ជាមួយ Grove Base hat ជាឧបករណ៍ IoT អ្នកនឹងអាចឃើញច្រក UART នៅលើផ្ទាំង ដែលអាចប្រើទំនាក់ទំនងជាមួយខ្សែសក់ដែលប្រើប្រព័ន្ធ UART។ + +### ច្រកអន្តរកម្មភាគីក្រៅស៊េរី (SPI) + +SPI ត្រូវបានរចនាឡើងសម្រាប់ទំនាក់ទំនងចម្ងាយខ្លី ដូចជា នៅលើមីក្រូកន្រ្តូលរូលដើម្បីនិយាយទៅឧបករណ៍ផ្ទុកដូចជា flash memory។ វាមានគំរូ Controller/Peripheral ជាមួយអ្នកគ្រប់គ្រងមួយ (ជាទូទៅជា processor នៃឧបករណ៍ IoT) ដែលធ្វើការបញ្ជាទាក់ទងជាមួយ peripheralsច្រើន។ Controller គ្រប់គ្រងអ្វីៗទាំងអស់ ដោយជ្រើស peripheral ហើយផ្ញើឬស្នើទិន្នន័យ។ + +> 💁 ដូចជា I2C លក្ខណៈ controller និង peripheral គឺជាការផ្លាស់ប្តូរថ្មី ដូច្នេះអ្នកអាចឃើញពាក្យចាស់នៅតែមិនបានប្ដូរនៅក្នុងប្រើប្រាស់ផង។ + +Controller SPI ប្រើខ្សែ 3 ចំណុច ជាមួយខ្សែបន្ថែម 1 សម្រាប់មួយ peripheral។ Peripherals ប្រើខ្សែ 4 ចំណុច។ ខ្សែទាំងនេះគឺ៖ + +| ខ្សែ | ឈ្មោះ | ការពណ៌នា | +| ---- | --------- | ----------- | +| COPI | Controller Output, Peripheral Input | ខ្សែនេះសម្រាប់ផ្ញើទិន្នន័យពី Controller ទៅ Peripheral។ | +| CIPO | Controller Input, peripheral Output | ខ្សែនេះសម្រាប់ផ្ញើទិន្នន័យពី Peripheral ទៅ Controller។ | +| SCLK | Serial Clock | ខ្សែនេះផ្ញើសញ្ញាម៉ោងភ្លោងតាមអត្រាត្រូវបានកំណត់ដោយ Controller។ | +| CS | Chip Select | Controller មានខ្សែច្រើន មួយសម្រាប់មួយ peripheral ហើយខ្សែនេះភ្ជាប់ទៅខ្សែ CS នៃ peripheral តាមលំដាប់។ | + +![SPI with on controller and two peripherals](../../../../../translated_images/km/spi.297431d6f98b386b.webp) + +ខ្សែ CS ត្រូវបានប្រើដើម្បីចាប់ផ្ដើមធ្វើការ peripheral មួយនៅក្នុងពេលមួយ ជាមួយទំនាក់ទំនងលើខ្សែ COPI និង CIPO។ នៅពេល controller ត្រូវការផ្លាស់ប្តូរម peripheral វាបិទខ្សែ CS របស់ peripheral កំពុងធ្វើការ ហើយបើកខ្សែ CS របស់ peripheral ថ្មីដែលវាចង់ធ្វើការ។ + +SPI ដំណើរការល្បឿន *full-duplex* មានន័យថា Controller អាចផ្ញើ និងទទួលទិន្នន័យជាមួយ peripheral មួយនៅពេលតែមួយ ដោយប្រើខ្សែ COPI និង CIPO។ SPI ប្រើសញ្ញាម៉ោងលើខ្សែ SCLK ដើម្បីរក្សាឧបករណ៍ឲ្យសម្របសម្រួល ដូច្នេះ វាមិនចាំបាច់ប្រើប៊ីតចាប់ផ្តើម និងប៊ីតបញ្ចប់ ដូច UART ទេ។ + +មិនមានដែនកំណត់ល្បឿនច្បាស់លាស់សម្រាប់ SPI ទេ ដែលអនុវត្តភាគច្រើនអាចផ្ញើទិន្នន័យច្រើនម៉ែបៃក្នុងមួយវិនាទី។ + +ឧបករណ៍ក្រុមអភិវឌ្ឍ IoT ភាគច្រើនគាំទ្រការប្រើ SPI តាមខ្សែ GPIO ខ្លះៗ។ ឧទាហរណ៍ នៅលើ Raspberry Pi អ្នកអាចប្រើខ្សែ GPIO 19, 21, 23, 24 និង 26 សម្រាប់ SPI។ + +### ខ្សែបញ្ចេញសញ្ញាឥតខ្សែ + +ខ្សែសញ្ញាខ្លះអាចទំនាក់ទំនងតាមរយៈប្រព័ន្ធខ្សែបញ្ចេញសញ្ញាដូចជា Bluetooth (ជាផ្ទាល់ Bluetooth Low Energy, ឬ BLE), LoRaWAN (បណ្តាញខ្សែអ៊ីលេតថ្មថា នឹងជាបណ្តាញថាមពលទាបសម្រាប់ចម្ងាយវែង), ឬ WiFi។ របៀបនេះអនុញ្ញាតឲ្យខ្សែសញ្ញាចម្ងាយ មានទីតាំងគ្មានភ្ជាប់ដោយផ្ទាល់ទៅឧបករណ៍ IoT។ + +ឧទាហរណ៍មួយគឺនៅក្នុងខ្សែសញ្ញាផ្ដល់តំបន់សើមដីអាជីវកម្ម។ ខ្សែសញ្ញានេះវាស់សើមដីក្នុងវាល រួចផ្ញើទិន្នន័យតាម LoRaWan ទៅឧបករណ៍មេ ដែលនឹងដំណើរការ ឬផ្ញើតាមអ៊ីនធឺណិត បាន។ វាអនុញ្ញាតឲ្យខ្សែវាស់សើមនៅចម្ងាយពីឧបករណ៍ IoT ដែលគ្រប់គ្រងទិន្នន័យ ដោយបន្ថយការប្រើថាមពល និងតម្រូវឲ្យមានបណ្តាញ WiFi ធំ ឬខ្សែដែលវែង។ + +BLE មានប្រជាប្រិយភាពសម្រាប់ខ្សែសញ្ញាកម្រិតខ្ពស់ ដូចជាកម្មវិធីតាមដានកាយសម្បទារដើមដៃ។ វាប្រើការរួមបញ្ចូលខ្សែសញ្ញាច្រើន ហើយផ្ញើទិន្នន័យឲ្យឧបករណ៍ IoT ដូចជា ទូរស័ព្ទរបស់អ្នកតាមរយៈ BLE។ + +✅ តើយើងមានខ្សែសញ្ញាប្លូតូស្លៅនៅលើខ្លួន ឬក្នុងផ្ទះ ឬនៅសាលារបស់អ្នកទេ? ខ្សែសញ្ញាទាំងនេះអាចរួមបញ្ចូលខ្សែវាស់សីតុណ្ហភាព, ខ្សែវាស់ចំនួនអ្នកនៅ, ខ្សែស្វែងរកឧបករណ៍ និងឧបករណ៍តាមដានកាយសម្បទារ។ + +វិធីដែលពេញនិយមមួយសម្រាប់ឧបករណ៍អាជីវកម្មក្នុងការតភ្ជាប់គឺ Zigbee។ Zigbee ប្រើ WiFi ដើម្បីបង្កើតបណ្តាញ mesh បណ្តោះអាសន្នរវាងឧបករណ៍ ដែលក្នុងនោះរៀងរាល់ឧបករណ៍ធ្វើការតភ្ជាប់ទៅឧបករណ៍ជិតខាងឲ្យបានច្រើនបំផុត រួចបង្កើតចំនួនតភ្ជាប់ច្រើនដូចបណ្ដាញចង蛛។ ពេលដែលឧបករណ៍មួយចង់ផ្ញើសារទៅអ៊ីនធឺណិត វាអាចផ្ញើទៅឧបករណ៍ជិតខាងបំផុត រួចឧបករណ៍នោះបន្តផ្ញើទៅឧបករណ៍ប៉ុនអ្នកផ្សេងទៀតមកវិញ រហូតដល់វាទៅដល់អ្នកដឹកនាំ ហើយអាចផ្ញើទៅអ៊ីនធឺណិតបាន។ + +> 🐝 ឈ្មោះ Zigbee តំណាងឲ្យការរាំហៅរបស់សត្វចៀមទឹកបន្ទាប់ពីត្រឡប់ទៅមកទឹកឃ្មុំ។ + +## វាស់កម្រិតសើមក្នុងដី + +អ្នកអាចវាស់កម្រិតសើមដីដោយប្រើខ្សែវាស់សើមដី ឧបករណ៍ IoT និងរុក្ខជាតិ និងប្លង់ដីជិតខាង។ + +### បេសកកម្ម - វាស់សើមដី + +អនុវត្តតាមមគ្គុទេសក៍ដែលពាក់ព័ន្ធសម្រាប់វាស់សើមដីដោយប្រើឧបករណ៍ IoT របស់អ្នក៖ + +* [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) + +## ការការពារខ្សែវាស់សូង់ + +ខ្សែវាស់ផ្អែកលើការវាស់លក្ខណៈអគ្គិសនី ដូចជា ការទប់ស្កាត់ (resistance) ឬកាប៉ាស៊ីតង់ (capacitance)។ + +> 🎓 ការទប់ស្កាត់ (Resistance) វាស់ជា ohms (Ω) គឺជា​កំរិត​ប្រឆាំង​ចំពោះចរន្តអគ្គិសនីដែលឆ្លងកាត់អ្វីមួយ។ នៅពេលភ្ជាប់វ៉ុល (voltage) ទៅលើសម្ភារៈ មាឌចរន្តដែលឆ្លងកាត់វា អាស្រ័យលើការទប់ស្កាត់នៃសម្ភារៈនោះ។ អ្នកអាចអានបន្ថែមពី [ទំព័រជាក់លាក់អគ្គិសនីលើវិគីភីឌា](https://wikipedia.org/wiki/Electrical_resistance_and_conductance)។ + +> 🎓 កាប៉ាស៊ីតង់ (capacitance) វាស់ជា farads (F) ជាសមត្ថភាពនៃធាតុ ឬរបៀបសកម្ម ដើម្បីប្រមូល និងផ្ទុកថាមពលអគ្គិសនី។ អ្នកអាចអានបន្ថែមពីកាប៉ាស៊ីតង់នៅលើ [វិគីភីឌា](https://wikipedia.org/wiki/Capacitance)។ + +ការវាស់ទាំងនេះមិនតែងមានប្រយោជន៍គ្រប់ពេលទេ — គំរូខ្សែវាស់សីតុណ្ហភាពមួយដែលផ្តល់អោយការវាស់បរិមាណ 22.5KΩ! ជំនួសវិញ តម្លៃដែលបានវាស់ត្រូវបានបំលែងទៅឯកតា​មានប្រយោជន៍ដោយការការពារ - ន័យថា ផ្គូផ្គងតម្លៃវាស់ទៅនឹងបរិមាណដែលវាធ្វើការវាស់ ដើម្បីអនុញ្ញាតឲ្យការវាស់ថ្មីត្រូវបំលែងទៅឯកតាត្រឹមត្រូវ។ + +ខ្សែវាស់ខ្លះមកជាមួយការការពារពីមុន។ ដូចជា ខ្សែវាស់សីតុណ្ហភាពដែលអ្នកប្រើក្នុងមេរៀនមុននេះ ការការពារមានរួចហើយ ដូច្នេះវាអាចត្រឡប់ការវាស់សីតុណ្ហភាពជាភាគរយសេនទីក្រេ (°C)។ នៅហាងរោងចក្រ ខ្សែវាស់ដំបូងដែលផលិត ត្រូវបានបញ្ចប់ឲ្យជួបជាមួយសីតុណ្ហភាពជាច្រើនដើម្បីវាស់ការទប់ស្កាត់។ បន្ទាប់មកវាត្រូវបានប្រើបង្កើតក្រុមគណនា ដែលអាចបំលែងតម្លៃវាស់ពី Ω (ឯកតាការទប់ស្កាត់) ទៅ °C។ + +> 💁 សមីការដើម្បីគណនាការទប់ស្កាត់ពីសីតុណ្ហភាពគឺហៅថា [Steinhart–Hart equation](https://wikipedia.org/wiki/Steinhart–Hart_equation)។ + +### ការការពារខ្សែវាស់សើមដី + +សើមដីវាស់ដោយការវាស់មាឌទឹកឬទម្ងន់ទឹក។ + +* Gravimetric គឺជាទម្ងន់ទឹកក្នុងទម្ងន់ដីមួយឯកតា ដែលវាស់ជា គីឡូក្រាមទឹកក្នុងគីឡូក្រាមដីស្ងួត +* Volumetric គឺជាមាឌទឹកក្នុងមាឌដីមួយឯកតា ដែលវាស់ជា ម៉ែត្រគុណម៉ែត្រដឹកទឹកក្នុងម៉ែត្រកាន់ដីស្ងួត + +> 🇺🇸 សម្រាប់ជនអាមេរិក ដោយសារតែធាតុអាចប្រើឯកតាជញ្ជាំងបានល្អ គេអាចវាស់ជាពោល (pounds) ជំនួសគីឡូក្រាម ឬជាខ្ទង់ជើងជំនួសម៉ែត្រ។ + +ខ្សែវាស់សើមដីវាស់ការទប់ស្កាត់ឬកាប៉ាស៊ីតង់ — នេះមិនត្រឹមតែផ្លាស់ប្តូរតាមសើមដីទេ តែផ្លាស់ប្តូរតាមប្រភេទដីផង ដោយសារធាតុផ្សំក្នុងដីអាចផ្លាស់ប្តូរឯកសារអគ្គិសនីរបស់វា។ វិជ្ជមានគ្រប់គ្រាន់ ខ្សែស្រូវគួរត្រូវបានការពារ — នេះមានន័យថាគឺយកអានពីខ្សែស្រូវ ហើយប្រៀបធៀបជាមួយការវាស់ដែលបានរកឃើញដោយវិទ្យាសាស្រ្ត។ ឧទាហរណ៍ មន្ទីរពិសោធន៍អាចគណនាសើមដីមាឌទឹកច្រើនលើគំរូបញ្ញាណដីបំលែងជាច្រើនជុំក្នុងមួយឆ្នាំ ហើយអ្នកប្រើលេខនោះក្នុងការការពារ ខ្សែកាក់វាស់ទៅនឹងសើមដីមាឌទឹក។ + +![A graph of voltage vs soil moisture content](../../../../../translated_images/km/soil-moisture-to-voltage.df86d80cda158700.webp) + +ក្រាហ្វខាងលើបង្ហាញពីរបៀបការពារ ខ្សែវាស់។ វ៉ុលត្រូវបានចាប់សម្រាប់គំរូដីដែលវាស់នៅមន្ទីរពិសោធន៍ ដោយប្រៀបធៀបទម្ងន់សើមទៅទម្ងន់ស្ងួត (ដោយវាស់ទម្ងន់សើម បន្ទាប់មកស្ងួតក្នុងម៉ាស៊ីនជម្រះ និងវាស់ទម្ងន់ស្ងួត)។ នៅពេលដែលមានការចាប់អានប៉ុន្មាន វាក៏អាចគូរលើក្រាហ្វ និងភ្ជាប់បន្ទាត់ទៅចំណុចទាំងនោះបាន។ បន្ទាត់នេះអាចប្រើផ្លាស់ប្តូរតម្លៃអានពីខ្សែវាស់សើមដោយឧបករណ៍ IoT ទៅកម្រិតសើមដីពិតប្រាកដ។ + +💁 សម្រាប់ខ្សែវាស់សើមដីប្រភេទប្រឆាំង (resistive) វ៉ុលឡើងចំពោះការកើនសើមដី។ សម្រាប់ខ្សែវាស់សើមដីប្រភេទកាប៉ាស៊ីត (capacitive) វ៉ុលធ្លាក់ចុះពេលសើមដីកើនឡើង ដូច្នេះក្រាហ្វទៅលើអ្នកនេះនឹងទទួលបានបន្ទាត់រលុងចុះ ហើយមិនឡើង។ + +![A soil moisture value interpolated from the graph](../../../../../translated_images/km/soil-moisture-to-voltage-with-reading.681cb3e1f8b68caf.webp) + +ក្រាហ្វនេះបង្ហាញអានវ៉ុលពីខ្សែវាស់សើម ដី ហើយដោយតាមទៅកាន់បន្ទាត់លើក្រាហ្វ អាចគណនាអត្រាសើមដីពិតប្រាកដបាន។ + +របៀបនេះមានន័យថាគ្រប់ទីតាំងអាចត្រូវការយកតែការវាស់ពីមន្ទីរពិសោធន៍ប៉ុន្មានតែប៉ុណ្ណោះ ហើយពួកគេអាចប្រើឧបករណ៍ IoT ដើម្បីវាស់សើមដីបាន លឿនជាងមុន។ + +--- + +## 🚀 ការប្រកួតប្រជែង + +ខ្សែវាស់សើមដីប្រភេទប្រឆាំង (resistive) និងប្រភេទកាប៉ាស៊ីត (capacitive) មានភាពខុសគ្នា៖ អ្វីខ្លះ? តើប្រភេទណាដែលល្អបំផុតសម្រាប់កសិករក្នុងការប្រើប្រាស់? តើចម្លើយនេះផ្លាស់ប្តូរទៅតាមប្រទេសកំពុងអភិវឌ្ឍន៍ និងប្រទេសអភិវឌ្ឍរួចហើយទេ? + +## សំនួរបញ្ចប់មេរៀន + +[Post-lecture quiz](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/12) + +## ការត្រួតពិនិត្យ និងសិក្សាឯករាជ្យ + +អានអំពីថ្នាក់ភាសាអេឡិចត្រូនិច និងប្រព័ន្ធប្រតិបត្តិការដែលប្រើប្រាស់ដោយខ្សែសក់ និងរ៉ឺម៉ូត: + +* [ទំព័រ Wikipedia របស់ GPIO](https://wikipedia.org/wiki/General-purpose_input/output) +* [ទំព័រ Wikipedia របស់ UART](https://wikipedia.org/wiki/Universal_asynchronous_receiver-transmitter) +* [ទំព័រ Wikipedia របស់ SPI](https://wikipedia.org/wiki/Serial_Peripheral_Interface) +* [ទំព័រ Wikipedia របស់ I2C](https://wikipedia.org/wiki/I²C) +* [ទំព័រ Wikipedia របស់ Zigbee](https://wikipedia.org/wiki/Zigbee) + +## ការងារ + +[Calibrate your sensor](assignment.md) + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំប្រឹងប្រែងដើម្បីបានភាពត្រឹមត្រូវ សូមជ្រាបថាការបកប្រែដោយស្វ័យប្រវត្តិនេះអាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសារបស់វាគួរត្រូវបានចាត់ទុកជាមូលដ្ឋានមានអំណាច។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមផ្ដល់អាទិភាពការបកប្រែដោយអ្នកជំនាញមនុស្សវិជ្ជាជីវៈ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/2-farm/lessons/2-detect-soil-moisture/assignment.md b/translations/km/2-farm/lessons/2-detect-soil-moisture/assignment.md new file mode 100644 index 000000000..caaed5689 --- /dev/null +++ b/translations/km/2-farm/lessons/2-detect-soil-moisture/assignment.md @@ -0,0 +1,54 @@ +# កំណត់តម្លៃម៉ាស៊ីនវាស់សំណើមដីរបស់អ្នកឡើងវិញ + +## សេចក្តីណែនាំ + +ក្នុងមេរៀននេះ អ្នកបានប្រមូលការវាស់សំណើមដី ដោយវាស់ជាថ្នាក់តម្លៃពី 0-1023។ ដើម្បីបម្លែងតម្លៃទាំងនេះទៅជាតម្លៃសំណើមដីពិតប្រាកដ អ្នកត្រូវតែធ្វើការកំណត់តម្លៃម៉ាស៊ីនវាស់សំណើមរបស់អ្នកឡើងវិញ។ អ្នកអាចធ្វើបានដោយយកតម្លៃវាស់ពីគំរូដី ហើយកំពុងគណនាមាត្រដ្ឋានសំណើមដីក្នុងគំរូទាំងនេះ។ + +អ្នកត្រូវតែធ្វើដំណើរការទាំងនេះម្តងទៀតច្រើនដង ដើម្បីទទួលបានតម្លៃដែលចាំបាច់ ជាមួយសំណើមដីដែលខុសគ្នាទៅគ្នា។ + +1. វាស់តម្លៃសំណើមដីដោយប្រើម៉ាស៊ីនវាស់សំណើមដី។ កំណត់តម្លៃនេះចុះ។ + +1. យកគំរូដីមួយ ហើយវាស់ទម្ងន់វា។ កំណត់ទម្ងន់នេះចុះ។ + +1. ធម្មតាលាបដីឲ្យស្ងួត - ពីរនាទីផឹកកំដៅនៅ 110°C (230°F) គឺជាវិធីល្អបំផុត អ្នកអាចធ្វើវាក្នុងពន្លឺថ្ងៃ ឬដាក់វាទៅកន្លែងកម្ដៅ ស្ងួត រហូតដល់ដីស្ងួតពេញលេញ។ ដីគួរតែមានសំណល់ផាត់ និងស្មើស្មាន់។ + + > 💁 នៅក្នុងមន្ទីរពិសោធន៍ សម្រាប់លទ្ធផលទំនោរបំផុត អ្នកគួរតែផាត់នៅក្នុងរោងបូមកម្ដៅរយៈពេល 48-72 ម៉ោង។ ប្រសិនបើអ្នកមានរោងបូមកម្ដៅនៅសាលារបស់អ្នក សូមព្យាយាមប្រើវាទៅផាត់រយៈពេលយូរជាងនេះ។ រយៈពេលយូរ បរិមាណសំណើមដែលខ្យល់បានចេញច្រើន ហើយលទ្ធផលកាន់តែត្រឹមត្រូវ។ + +1. វាស់ផ្ទុយដីម្តងទៀត។ + + > 🔥 ប្រសិនបើអ្នកបានផាត់វាក្នុងរោងបូមកម្ដៅ សូមប្រាកដថាវាបានត្រជាក់រួចសិន! + +មាត្រដ្ឋានសំណើមដីភាគហ៊ុនគណនាតាមរូបមន្ត៖ + +![soil moisture % is weight wet minus weight dry, divided by weight dry, times 100](../../../../../translated_images/km/gsm-calculation.6da38c6201eec14e.webp) + +* Wwet - ទម្ងន់នៃដីសើម +* Wdry - ទម្ងន់នៃដីស្ងួត + +ឧទាហរណ៍ បើអ្នកមានគំរូដីមានទម្ងន់ 212ក្រាម​សើម និង 197ក្រាម​ស្ងួត។ + +![The calculation filled in](../../../../../translated_images/km/gsm-calculation-example.99f9803b4f29e976.webp) + +* Wwet = 212ក្រាម +* Wdry = 197ក្រាម +* 212 - 197 = 15 +* 15 / 197 = 0.076 +* 0.076 * 100 = 7.6% + +ក្នុងឧទាហរណ៍នេះ ដីមានមាត្រដ្ឋានសំណើមដី 7.6%។ + +ពេលដែលអ្នកមានតម្លៃវាស់សម្រាប់គំរូយ៉ាងហោចណាស់ 3 គំរូ សូមគូររូបក្រាបសំណើមដី % ទៅការវាស់ម៉ាស៊ីនសំណើមដី ហើយបន្ថែមខ្សែរដើម្បីឱ្យសាកសមបំផុតជាមួយចំណុចទាំងនោះ។ បន្ទាប់មក អ្នកអាចប្រើវានៅក្នុងការគណនាមាត្រដ្ឋានសំណើមដីសម្រាប់តម្លៃឧបករណ៍វាស់ណាមួយ ដោយអានតម្លៃពីខ្សែនេះ។ + +## គោលការណ៍វាយតម្លៃ + +| មាតិកា | ល្អឧត្តម | ល្អគ្រប់គ្រាន់ | ត្រូវការកែលម្អ | +| -------- | --------- | -------- | ----------------- | +| ប្រមូលទិន្នន័យកំណត់តម្លៃ | ប្រមូលគំរូកំណត់តម្លៃយ៉ាងហោចណាស់ 3 គំរូ | ប្រមូលគំរូកំណត់តម្លៃយ៉ាងហោចណាស់ 2 គំរូ | ប្រមូលគំរូកំណត់តម្លៃយ៉ាងហោចណាស់ 1 គំរូ | +| ធ្វើការវាស់បានកំណត់ | គូរគ្រាបកំណត់តម្លៃបានជោគជ័យ និងយកតម្លៃពីម៉ាស៊ីនវាស់ ហើយបម្លែងទៅមាត្រដ្ឋានសំណើមដី | គូរគ្រាបកំណត់តម្លៃបានជោគជ័យ | មិនអាចគូរគ្រាបបាន | + +--- + + +**ការបហារណ៍**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំសំរាប់ភាពត្រឹមត្រូវ សូមជ្រាបថាការបកប្រែដោយស្វ័យប្រវត្តិក្នុងករណីខ្លះអាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដែលមានភាសាមើលឃើញដើមគួរត្រូវបានគេចាត់ទុកថាជា ប្រភពផ្លូវការដាច់ដោយឡែក។ សម្រាប់ព័ត៌មានផ្លូវការយ៉ាងសំខាន់ សូមផ្តល់អនុសាសន៍ប្រើប្រាស់ការបកប្រែដោយអ្នកវិជ្ជាជីវៈមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំពីប្រែប្រួល ឬការបកប្រែបច្ចេកទេសណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md b/translations/km/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md new file mode 100644 index 000000000..fc72b8e46 --- /dev/null +++ b/translations/km/2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md @@ -0,0 +1,101 @@ +# វាស់សំណើមដី - Raspberry Pi + +នៅក្នុងផ្នែកនេះនៃមេរៀន អ្នកនឹងបន្ថែមឧបករណ៍សង្គ្រោះសំណើមដីប្រភេទ capacitive ទៅកាន់ Raspberry Pi របស់អ្នក ហើយអានតម្លៃចេញពីវា។ + +## ឧបករណ៍រឹបរាន់ + +Raspberry Pi ត្រូវការឧបករណ៍សង្គ្រោះសំណើមដីប្រភេទ capacitive។ + +ឧបករណ៍ដែលអ្នកនឹងប្រើគឺ [Capacitive Soil Moisture Sensor](https://www.seeedstudio.com/Grove-Capacitive-Moisture-Sensor-Corrosion-Resistant.html) ដែលវាស់សំណើមដីដោយការស្កែនគុណភាព capacitance នៃដី ដែលជាសម្បត្តិមួយដែលប្រែប្រួលពេលសំណើមដីប្រែប្រួល។ កាលដែលសំណើមដីកើនឡើង អគ្គិសនីអគ្គិសនីនឹងធ្លាក់ចុះ។ + +នេះជាឧបករណ៍អាណាឡុក ដូច្នេះវាប្រើប៊ីនអាណាឡុក និង ADC 10-ប៊ីតនៅលើ Grove Base Hat នៅលើ Pi ដើម្បីបម្លែងវ៉ុលទៅសញ្ញាឌីជីថលចន្លោះ 1-1,023។ នោះបន្ទាប់ត្រូវបានបញ្ជូនតាមរយៈ I2C តាមរយៈប៊ីន GPIO នៅលើ Pi។ + +### ការតភ្ជាប់ឧបករណ៍សង្គ្រោះសំណើមដី + +ឧបករណ៍ Grove soil moisture sensor អាចត្រូវបានភ្ជាប់ទៅកាន់ Raspberry Pi ។ + +#### ភារកិច្ច - ភ្ជាប់ឧបករណ៍សង្គ្រោះសំណើមដី + +ភ្ជាប់ឧបករណ៍សង្គ្រោះសំណើមដី។ + +![ឧបករណ៍ grove soil moisture sensor](../../../../../translated_images/km/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) + +1. ដាក់ចុងមួយនៃខ្សែ Grove ចូលទៅក្នុងទ្វារនៃឧបករណ៍សង្គ្រោះសំណើមដី។ វានឹងចូលបានតែមួយទិសតែប៉ុណ្ណោះ។ + +1. នៅពេល Raspberry Pi មិនភ្លើង បញ្ចូលចុងខ្សែ Grove ផ្សេងទៀតចូលទៅកាន់សូកអាណាឡុកដែលមានសរសេរ **A0** លើ Grove Base hat ភ្ជាប់ទៅ Pi។ សូកនេះជាសូកទីពីរពីខាងស្តាំ នៅជួរសូកដែលនៅជាប់នឹងប៊ីន GPIO។ + +![ឧបករណ៍ grove soil moisture sensor ភ្ជាប់ទៅសូក A0](../../../../../translated_images/km/pi-soil-moisture-sensor.fdd7eb2393792cf6.webp) + +1. ដាក់ឧបករណ៍សង្គ្រោះសំណើមដីចូលក្នុងដី។ វាមាន 'ខ្សែទីតាំងអតិបរមា' - ខ្សែពណ៌សឆ្លងកាត់ឧបករណ៍។ ដាក់ឧបករណ៍សង្គ្រោះរហូតដល់តែមិនលើសខ្សែនេះ។ + +![ឧបករណ៍ grove soil moisture sensor នៅក្នុងដី](../../../../../translated_images/km/soil-moisture-sensor-in-soil.bfad91002bda5e96.webp) + +## កម្មវិធីឧបករណ៍សង្គ្រោះសំណើមដី + +Raspberry Pi ឥឡូវនេះអាចបង្កើតកម្មវិធីប្រើឧបករណ៍សង្គ្រោះសំណើមដីដែលភ្ជាប់មក។ + +### ភារកិច្ច - កម្មវិធីឧបករណ៍សង្គ្រោះសំណើមដី + +ទុកកម្មវិធីសូម្បីមួយ។ + +1. បើក Pi ហើយរង់ចាំឱ្យវាបញ្ចប់ការចាប់ផ្តើម + +1. បើក VS Code ដោយផ្ទាល់នៅលើ Pi ឬភ្ជាប់តាមបន្ថែម Remote SSH។ + + > ⚠️ អ្នកអាចយោងទៅ [សេចក្ដីណែនាំសំរាប់ការដំឡើង និងបើក VS Code ក្នុង nightlight - មេរៀនទី 1 ប្រសិនបើត្រូវការ](../../../1-getting-started/lessons/1-introduction-to-iot/pi.md)។ + +1. ពីបន្ទាត់បញ្ជា បង្កើតថតថ្មីមួយក្នុងថតផ្ទាល់ពិភពលោក `pi` ហៅថា `soil-moisture-sensor`។ បង្កើតឯកសារ `app.py` នៅក្នុងថតនេះ។ + +1. បើកថតនេះនៅក្នុង VS Code + +1. បន្ថែមកូដដូចខាងក្រោមទៅឯកសារ `app.py` ដើម្បីនាំចូលបណ្ណាល័យដែលចាំបាច់មួយចំនួន៖ + + ```python + import time + from grove.adc import ADC + ``` + + ពាក្យបញ្ចូល `import time` នាំចូលម៉ូឌុល `time` ដែលនឹងត្រូវបានប្រើនៅពេលក្រោយក្នុងភារកិច្ចនេះ។ + + ពាក្យបញ្ចូល `from grove.adc import ADC` នាំចូល `ADC` ពីបណ្ណាល័យ Grove Python។ បណ្ណាល័យនេះមានកូដអាចធ្វើដំណើរការជាមួយឧបករណ៍បម្លែងអាណាឡុកទៅឌីជីថលនៅលើ Pi base hat ហើយអានវ៉ុលពីឧបករណ៍អាណាឡុក។ + +1. បន្ថែមកូដដូចខាងក្រោមនៅក្រោមនេះដើម្បីបង្កើតអត្ថបទមួយនៃ `ADC` ថ្នាក់៖ + + ```python + adc = ADC() + ``` + +1. បន្ថែមវដ្តអចិន្ត្រៃ ដែលអានពី ADC នៅប៊ីន A0 ហើយសរសេរវិលលទ្ធផលចេញទៅកុងសូល។ វដ្តនេះអាចដេករយៈពេល 10 វិនាទីរវាងការអាន។ + + ```python + while True: + soil_moisture = adc.read(0) + print("Soil moisture:", soil_moisture) + + time.sleep(10) + ``` + +1. រត់កម្មវិធី Python។ អ្នកនឹងឃើញជម្លោះសំណើមដីត្រូវបានសរសេរចេញនៅកុងសូល។ បន្ថែមទឹកទៅក្នុងដី ឬដកឧបករណ៍ចេញពីដី ហើយមើលតម្លៃប្រែប្រួល។ + + ```output + pi@raspberrypi:~/soil-moisture-sensor $ python3 app.py + Soil moisture: 615 + Soil moisture: 612 + Soil moisture: 498 + Soil moisture: 493 + Soil moisture: 490 + Soil Moisture: 388 + ``` + + នៅក្នុងលទ្ធផលឧទាហរណ៍ខាងលើ អ្នកអាចមើលឃើញការធ្លាក់ចុះនៃវ៉ុលពេលដែលទឹកត្រូវបានបន្ថែម។ + +> 💁 អ្នកអាចរកឃើញកូដនេះនៅក្នុងថត [code/pi](../../../../../2-farm/lessons/2-detect-soil-moisture/code/pi)។ + +😀 កម្មវិធីឧបករណ៍សង្គ្រោះសំណើមដីរបស់អ្នកបានជោគជ័យ! + +--- + + +**ការព្រមាន**៖ +ឯកសារនេះបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ បើទោះបីយើងខិតខំធ្វើឲ្យមានភាពត្រឹមត្រូវក៏ដោយ សូមដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬការមិនច្បាស់លាស់។ ឯកសារដើមនៅភាសាតំបន់ដើមគួរត្រូវបានគេរាប់បញ្ចូលជាភស្តុតាងផ្លូវការជាដាច់ខាត។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមផ្តល់អនុសាសន៍ឲ្យធ្វើការបកប្រែដោយអ្នកជំនាញវិជ្ជាជីវៈ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសឆ្គងណាមួយដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md b/translations/km/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md new file mode 100644 index 000000000..0bc5aa258 --- /dev/null +++ b/translations/km/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md @@ -0,0 +1,116 @@ +# វាស់សំណើមដី - ថ្នាក់ទំនើប IoT សម្រាប់រឹង + +នៅក្នុងផ្នែកនេះនៃមេរៀន អ្នកនឹងបន្ថែមឧបករណ៍ស្ងួតសំណើមដីតាមប្រភេទកាប៉ាស៊ីធីវទៅឧបករណ៍ IoT ថ្ម្រង់របស់អ្នក ហើយអានតម្លៃពីវា។ + +## ឧបករណ៍តាមប្រព័ន្ធខ្នាតនិច + +ឧបករណ៍ IoT ថ្ម្រង់នេះនឹងប្រើឧបករណ៍ស្ងួតសំណើមដីតាមប្រភេទកាប៉ាស៊ីធីវដែលបានសម្តែង។ វាថែរក្សាការប្រើប្រាស់នៅក្នុងមន្ទីរហ្គេមដូចការប្រើប្រាស់ Raspberry Pi ជាមួយឧបករណ៍ស្ងួតសំណើមដី Grove ដោយផ្ទាល់។ + + នៅក្នុងឧបករណ៍ IoT ដោយផ្ទាល់ ឧបករណ៍ស្ងួតសំណើមដីគឺជាឧបករណ៍កាប៉ាស៊ីធីវមួយដែលវាស់សំណើមដីដោយការស្គាល់កាប៉ាស៊ីតែនៃដី ដែលជាពិសេសលក្ខណៈដែលផ្លាស់ប្តូររួចពេលសំណើមដីផ្លាស់ប្តូរ។ ពេលសំណើមដីបន្ថែមឡើង វ៉ុលតុបតែងបន្ថយ។ + +នេះជាឧបករណ៍អាណាឡូហ្គហ្គ ដែលប្រើ ADC ១០ប៊ិច ដែលបានសម្តែងដើម្បីរាយការណ៍តម្លៃពី ១ ដល់ ១០២៣។ + +### បន្ថែមឧបករណ៍ស្ងួតសំណើមដីទៅ CounterFit + +ដើម្បីប្រើឧបករណ៍ស្ងួតសំណើមដីតាមប្រភេទថ្ម្រង់ អ្នកត្រូវបន្ថែមវាទៅក្នុងកម្មវិធី CounterFit + +#### កិច្ចការណ៍ - បន្ថែមឧបករណ៍ស្ងួតសំណើមដីទៅ CounterFit + +បន្ថែមឧបករណ៍ស្ងួតសំណើមដីទៅក្នុងកម្មវិធី CounterFit។ + +1. បង្កើតកម្មវិធី Python ថ្មីនៅលើកុំព្យូទ័ររបស់អ្នកនៅក្នុងថតមួយដែលមានឈ្មោះ `soil-moisture-sensor` ជាមួយឯកសារតែមួយគឺ `app.py` និងបរិស្ថាន Python ថ្មីមួយ ហើយបន្ថែមបណ្ណាល័យ CounterFit pip។ + + > ⚠️ អ្នកអាចយោងទៅកាន់ [ការណែនាំសម្រាប់បង្កើត និងតំឡើងគម្រោង Python CounterFit ក្នុងមេរៀនទី១ ប្រសិនបើចាំបាច់](../../../1-getting-started/lessons/1-introduction-to-iot/virtual-device.md)។ + +1. ត្រូវប្រាកដថាកម្មវិធីវេប CounterFit កំពុងដំណើរការ + +1. បង្កើតឧបករណ៍ស្ងួតសំណើមដី៖ + + 1. នៅក្នុងប្រអប់ *Create sensor* នៅផ្នែក *Sensors* ចុចបង្ហាញប្រអប់ *Sensor type* ហើយជ្រើសរើស *Soil Moisture*។ + + 1. ទុកឲ្យ *Units* នៅក្នុង *NoUnits* + + 1. ប្រាកដថា *Pin* បានកំណត់ទៅ *0* + + 1. ជ្រើសប៊ូតុង **Add** ដើម្បីបង្កើតឧបករណ៍ *Soil Moisture* នៅ Pin 0 + + ![The soil moisture sensor settings](../../../../../translated_images/km/counterfit-create-soil-moisture-sensor.35266135a5e0ae68.webp) + + ឧបករណ៍ស្ងួតសំណើមដីនឹងត្រូវបានបង្កើត ហើយបង្ហាញនៅក្នុងបញ្ជីឧបករណ៍។ + + ![The soil moisture sensor created](../../../../../translated_images/km/counterfit-soil-moisture-sensor.81742b2de0e9de60.webp) + +## កម្មវិធីឧបករណ៍ស្ងួតសំណើមដី + +កម្មវិធីឧបករណ៍ស្ងួតសំណើមដីឥឡូវនេះអាចកម្មវិធីដោយប្រើឧបករណ៍ CounterFit។ + +### កិច្ចការណ៍ - កម្មវិធីឧបករណ៍ស្ងួតសំណើមដី + +កម្មវិធីឧបករណ៍ស្ងួតសំណើមដី។ + +1. ត្រូវប្រាកដថាកម្មវិធី `soil-moisture-sensor` បានបើកនៅក្នុង VS Code + +1. បើកឯកសារ `app.py` + +1. បន្ថែមកូដខាងក្រោមទៅនៅខាងលើនៃ `app.py` ដើម្បីភ្ជាប់កម្មវិធីទៅ CounterFit: + + ```python + from counterfit_connection import CounterFitConnection + CounterFitConnection.init('127.0.0.1', 5000) + ``` + +1. បន្ថែមកូដខាងក្រោមទៅឯកសារ `app.py` ដើម្បីនាំចូលបណ្ណាល័យមួយចំនួនដែលត្រូវការ៖ + + ```python + import time + from counterfit_shims_grove.adc import ADC + ``` + + ពាក្យសម្ងាត់ `import time` នាំចូលម៉ូឌុល `time` ដែលនឹងត្រូវប្រើពេលក្រោយក្នុងកិច្ចការនេះ។ + + ពាក្យសម្ងាត់ `from counterfit_shims_grove.adc import ADC` នាំចូលថ្នាក់ `ADC` ដើម្បីអាចអន្តរជាមួយឧបករណ៍បម្លែងអាណាឡូកទៅឌីជីថលដែលភ្ជាប់នឹងឧបករណ៍ CounterFit។ + +1. បន្ថែមកូដខាងក្រោមនេះ ខាងក្រោមនេះដើម្បីបង្កើតឧបករណ៍ `ADC` មួយ៖ + + ```python + adc = ADC() + ``` + +1. បន្ថែមលក្ខខណ្ឌដំណើរការ tínិតដដែលៗដែលអានពី ADC នៅតង់ 0 ហើយសរសេរលទ្ធផលទៅកាន់កុងសូឡ។ លក្ខខណ្ឌនេះអាចចូរគេងជារយៈពេល ១០ វិនាទីរវាងការអាន។ + + ```python + while True: + soil_moisture = adc.read(0) + print("Soil moisture:", soil_moisture) + + time.sleep(10) + ``` + +1. ពីកម្មវិធី CounterFit ផ្លាស់ប្តូរតម្លៃឧបករណ៍ស្ងួតសំណើមដីដែលកម្មវិធីនឹងអាន។ អ្នកអាចធ្វើរឿងនេះដោយពីររបៀប៖ + + * បញ្ចូលលេខក្នុងប្រអប់ *Value* សម្រាប់ឧបករណ៍ស្ងួតសំណើមដី ហើយជ្រើសប៊ូតុង **Set**. ចំនួនដែលអ្នកបញ្ចូលនឹងក្លាយជាតម្លៃដែលឧបករណ៍ត្រឡប់មកវិញ។ + + * ពិនិត្យប្រអប់ *Random* ហើយបញ្ចូលតម្លៃ *Min* និង *Max* បន្ទាប់មកជ្រើសប៊ូតុង **Set**. រាល់ពេលឧបករណ៍អានតម្លៃ វានឹងអានចំនួនចៃដន្យរវាង *Min* និង *Max*។ + +1. បើកកម្មវិធី Python. អ្នកនឹងឃើញការវាស់សំណើមដីត្រូវបានសរសេរទៅក្នុងកុងសូឡ។ ប្ដូរតម្លៃ *Value* ឬការកំណត់ *Random* ដើម្បីមើលការផ្លាស់ប្ដូរតម្លៃ។ + + ```output + (.venv) ➜ soil-moisture-sensor $ python app.py + Soil moisture: 615 + Soil moisture: 612 + Soil moisture: 498 + Soil moisture: 493 + Soil moisture: 490 + Soil Moisture: 388 + ``` + +> 💁 អ្នកអាចស្វែងរកកូដនេះនៅក្នុងថត [code/virtual-device](../../../../../2-farm/lessons/2-detect-soil-moisture/code/virtual-device)។ + +😀 កម្មវិធីឧបករណ៍ស្ងួតសំណើមដីរបស់អ្នកបានជោគជ័យ! + +--- + + +**ការ​បដិសេធ​ខ្លះៗ**៖ +ឯកសារ​នេះត្រូវ​បាន​បកប្រែ​ដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ម្យ៉ាងវិញទៀត បើយើងខិតខំរកភាពត្រឹមត្រូវ សូមយល់ដឹងថា ការបកប្រែដោយស្វ័យប្រវត្តិ​អាចមានកំហុស ឬខុសត្រូវខ្លះៗ។ ឯកសារដើមនៅក្នុងភាសាម្ចាស់របស់វាគួរត្រូវបានគិតថាជាមូលដ្ឋានសម្របសម្រួល​ដ៏ត្រឹមត្រូវ។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឲ្យប្រើការបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសៗពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md b/translations/km/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md new file mode 100644 index 000000000..9fa21aa07 --- /dev/null +++ b/translations/km/2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md @@ -0,0 +1,110 @@ +# វាស់សំណើមដី - Wio Terminal + +នៅផ្នែកនេះនៃមេរៀន អ្នកនឹងបន្ថែមឧបករណ៍ចាប់យកសំណើមដីប្រភេទ capacitive ទៅកាន់ Wio Terminal របស់អ្នក ហើយអានតម្លៃពីវា។ + +## ឧបករណ៍រឹង + +Wio Terminal ត្រូវការឧបករណ៍ចាប់យកសំណើមដីប្រភេទ capacitive។ + +ឧបករណ៍ដែលអ្នកនឹងប្រើគឺ [Capacitive Soil Moisture Sensor](https://www.seeedstudio.com/Grove-Capacitive-Moisture-Sensor-Corrosion-Resistant.html) ដែលវាស់សំណើមដីដោយការបញ្ជាក់ពី capacitance របស់ដី ដែលជាគុណលក្ខណៈមួយដែលផ្លាស់ប្តូរតាមសំណើមដី។ នៅពេលសំណើមដីកើនឡើង វឌ្ឍន voltage ដកចុះ។ + +នេះគឺជាឧបករណ៍អាណាឡូគ ដែលភ្ជាប់ទៅនឹងគំនូសអាណាឡូគលើ Wio Terminal ដោយប្រើជំនួយ ADC នៅលើផ្ទៃកូនហើយបង្កើតតម្លៃចាប់ពី 0 ដល់ 1,023។ + +### ភ្ជាប់ឧបករណ៍ចាប់យកសំណើមដី + +ឧបករណ៍ Grove soil moisture sensor អាចភ្ជាប់ទៅនឹងច្រក analog/digital ដែលអាចកំណត់បានសម្រាប់ Wio Terminal។ + +#### បេសកកម្ម - ភ្ជាប់ឧបករណ៍ចាប់យកសំណើមដី + +ភ្ជាប់ឧបករណ៍ចាប់យកសំណើមដី។ + +![ឧបករណ៍ Grove soil moisture sensor](../../../../../translated_images/km/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78b.webp) + +1. បញ្ចូលចុងខាងមួយនៃខ្សែ Grove ទៅក្នុងស៊ុកអាងនៅលើឧបករណ៍ soil moisture sensor។ វានឹងបញ្ចូលបានតែលើផ្លូវមួយផងប៉ុណ្ណោះ។ + +1. ជាមួយ Wio Terminal ដែលបិទភ្ជាប់ពីកុំព្យូទ័រឬប្រភពថាមពល ផ្ទេរចុងខាងមួយទៀតនៃខ្សែ Grove ទៅក្នុងស៊ុក Grove មាននៅផ្នែកខាងស្តាំនៃ Wio Terminal នៅពេលអ្នកមើលផ្ទាំងអេក្រង់។ នេះគឺជាស៊ុកដែលនៅចម្ងាយបំផុតពីប៊ូតុងថាមពល។ + +![ឧបករណ៍ grove soil moisture sensor ភ្ជាប់ទៅស៊ុកខាងស្តាំ](../../../../../translated_images/km/wio-soil-moisture-sensor.46919b61c3f6cb74.webp) + +1. បញ្ចូលឧបករណ៍ soil moisture sensor ចូលក្នុងដី។ វាមាន "ខ្សែបន្ទាត់ទីតាំងខ្ពស់បំផុត" មួយ — ខ្សែពណ៌សឆ្លងកាត់ឧបករណ៍។ បញ្ចូលឧបករណ៍រហូតដល់តែគ្រាន់តែដល់ខ្សែនេះ ប៉ុន្តែមិនលើស។ + +![ឧបករណ៍ grove soil moisture sensor ក្នុងដី](../../../../../translated_images/km/soil-moisture-sensor-in-soil.bfad91002bda5e96.webp) + +1. ឥឡូវអ្នកអាចភ្ជាប់ Wio Terminal ទៅកុំព្យូទ័ររបស់អ្នកបាន។ + +## បញ្ចូលកម្មវិធីឧបករណ៍ចាប់យកសំណើមដី + +ឥឡូវនេះ Wio Terminal អាចត្រូវបានកម្មវិធីតាមដើម្បីប្រើឧបករណ៍ soil moisture sensor ដែលភ្ជាប់។ + +### បេសកកម្ម - បញ្ចូលកម្មវិធីឧបករណ៍ចាប់យកសំណើមដី + +កម្មវិធីឧបករណ៍។ + +1. បង្កើតគម្រោង Wio Terminal ថ្មីមួយដោយប្រើ PlatformIO។ ហៅគម្រោងនេះ `soil-moisture-sensor`។ បន្ថែមកូដក្នុងមុខងារ `setup` ដើម្បីកំណត់ច្រក serial។ + + > ⚠️ អ្នកអាចយោងទៅ [សេចក្តីណែនាំសម្រាប់បង្កើតគម្រោង PlatformIO ក្នុងគម្រោង 1 មេរៀន 1 ប្រសិនបើចាំបាច់](../../../1-getting-started/lessons/1-introduction-to-iot/wio-terminal.md#create-a-platformio-project)។ + +1. មិនមានបណ្ណាល័យសម្រាប់ឧបករណ៍នេះទេ ជំនួសអ្នកអាចអានពីច្រកអាណាឡូគប្រើមុខងារ Arduino [`analogRead`](https://www.arduino.cc/reference/en/language/functions/analog-io/analogread/) ដែលមានមុន។ ចាប់ផ្តើមដោយកំណត់ច្រក analog ជាច្រកបញ្ចូល ដើម្បីអាចអានតម្លៃពីវាតាមការបន្ថែមកូដខាងក្រោមក្នុងមុខងារ `setup`។ + + ```cpp + pinMode(A0, INPUT); + ``` + + នេះកំណត់ច្រក `A0` ដែលជាច្រករួមអាណាឡូ​គ/ឌីជីថល ជាច្រកបញ្ចូល ដែលអាចអានវ៉ុលពីវា។ + +1. បន្ថែមកូដខាងក្រោមទៅមុខងារ `loop` ដើម្បីអានវ៉ុលពីច្រកនេះ៖ + + ```cpp + int soil_moisture = analogRead(A0); + ``` + +1. ខាងក្រោមកូដនេះ បន្ថែមកូដដូចខាងក្រោម ដើម្បីបោះពុម្ពតម្លៃទៅច្រក serial៖ + + ```cpp + Serial.print("Soil Moisture: "); + Serial.println(soil_moisture); + ``` + +1. ចុងក្រោយ បន្ថែមការពន្យាពេល ១០ វិនាទី៖ + + ```cpp + delay(10000); + ``` + +1. សង់ និងផ្ទុកកម្មវិធីទៅកាន់ Wio Terminal។ + + > ⚠️ អ្នកអាចយោងទៅ [សេចក្តីណែនាំសម្រាប់បង្កើតគម្រោង PlatformIO ក្នុងគម្រោង 1 មេរៀន 1 ប្រសិនបើចាំបាច់](../../../1-getting-started/lessons/1-introduction-to-iot/wio-terminal.md#write-the-hello-world-app)។ + +1. ពេលផ្ទុករួច អ្នកអាចត្រួតពិនិត្យសំណើមដីបានដោយប្រើមនីទ័រចរន្តស៊េរី។ បន្ថែមទឹកក៏ដូចជាលុបឧបករណ៍ sensor ចេញពីដី ដើម្បីមើលការផ្លាស់ប្តូរតម្លៃ។ + + ```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 --- + Soil Moisture: 526 + Soil Moisture: 529 + Soil Moisture: 521 + Soil Moisture: 494 + Soil Moisture: 454 + Soil Moisture: 456 + Soil Moisture: 395 + Soil Moisture: 388 + Soil Moisture: 394 + Soil Moisture: 391 + ``` + + ក្នុងឧទាហរណ៍លទ្ធផលខាងលើ អ្នកអាចមើលឃើញថាវ៉ុលធ្លាក់ចុះនៅពេលបន្ថែមទឹក។ + +> 💁 អ្នកអាចស្វែងរកកូដនេះនៅក្នុងថត [code/wio-terminal](../../../../../2-farm/lessons/2-detect-soil-moisture/code/wio-terminal) ។ + +😀 កម្មវិធីឧបករណ៍ soil moisture sensor របស់អ្នកបានជោគជ័យ! + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលពួកយើងខិតខំរក្សាការថែរក្សាការត្រឹមត្រូវ សូមយកចិត្តទុកដាក់ថា ការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬការខកច្រឡំ។ ឯកសារដើមក្នុងភាសាមូលដ្ឋានគួរត្រូវបានគេរាប់បញ្ចូលជាអ្នកផ្ដល់ព័ត៌មានដែលមានសុពលភាព។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយមនុស្សជំនាញគឺថ្នាក់ដូច្នេះ។ ពួកយើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសៗណាមួយដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/2-farm/lessons/3-automated-plant-watering/README.md b/translations/km/2-farm/lessons/3-automated-plant-watering/README.md new file mode 100644 index 000000000..4b1610604 --- /dev/null +++ b/translations/km/2-farm/lessons/3-automated-plant-watering/README.md @@ -0,0 +1,308 @@ +# ការជួរទឹកឪ្យដំណាំដោយស្វ័យប្រវត្តិ + +![ទិដ្ឋភាពសង្ខេបរបស់មេរៀននេះ](../../../../../translated_images/km/lesson-7.30b5f577d3cb8e03.webp) + +> សេកឃុនត្រូវបានគុណ Nitya Narasimhan ដែល [Nitya Narasimhan](https://github.com/nitya) បង្កើត។ ចុចលើរូបភាពសម្រាប់មើលទំហំធំជាងនេះ។ + +មេរៀននេះត្រូវបានបង្រៀនជាផ្នែកមួយនៃ [គម្រោង IoT សម្រាប់អ្នកចាប់ផ្តើម ផ្នែកទី 2 - ស៊េរីកសិក្សាអំពីកសិកម្មឌីជីថល](https://youtube.com/playlist?list=PLmsFUfdnGr3yCutmcVg6eAUEfsGiFXgcx) ពី [Microsoft Reactor](https://developer.microsoft.com/reactor/?WT.mc_id=academic-17441-jabenn)។ + +[![ការជួរទឹកឪ្យដំណាំដោយស្វ័យប្រវត្តិដែលគ្រប់គ្រងដោយ IoT](https://img.youtube.com/vi/g9FfZwv9R58/0.jpg)](https://youtu.be/g9FfZwv9R58) + +## ការប្រលងមុនមេរៀន + +[ការប្រលងមុនមេរៀន](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/13) + +## ការណាត់ដឹក + +នៅក្នុងមេរៀនមុន អ្នកបានរៀនពីរបៀបតាមដានសំណើមដី។ ក្នុងមេរៀននេះ អ្នកនឹងរៀនរបៀបតៀមបង្កើតអង្គធាតុសំខាន់ៗនៃប្រព័ន្ធជួរទឹកដោយស្វ័យប្រវត្តិដែលឆ្លើយតបទៅនឹងសំណើមដី។ អ្នកនឹងរៀនអំពីពេលវេលា - របៀបដែលឧបករណ៍សិនស័រអាចត្រូវការពេលវេលាដើម្បីឆ្លើយតបនឹងការផ្លាស់ប្តូរ និងរបៀបដែលឧបករណ៍អេកទ័រអាចចំណាយពេលវេលាដើម្បីផ្លាស់ប្តូរភាពល្អបង់ដែលត្រូវបានវាស់ដោយឧបករណ៍សិនស័រ។ + +មេរៀននេះយើងនឹងគ្របដណ្តប់៖ + +* [គ្រប់គ្រងឧបករណ៍ថាមពលខ្ពស់​ពីឧបករណ៍ IoT ថាមពលទាប](#គ្រប់គ្រងឧបករណ៍ថាមពលខ្ពស់​ពីឧបករណ៍-iot-ថាមពលទាប) +* [គ្រប់គ្រងរេលេ](#គ្រប់គ្រងរេលេ) +* [គ្រប់គ្រងដំណាំរបស់អ្នកតាមរយៈ MQTT](#គ្រប់គ្រងរេលេ) +* [ពេលវេលាក្នុងឧបករណ៍សិនស័រនិងឧបករណ៍អេកទ័រ](#ពេលវេលាឧបករណ៍សិនស័រនិងឧបករណ៍អេកទ័រ) +* [បន្ថែមពេលវេលាទៅម៉ាស៊ីនបម្រើគ្រប់គ្រងដំណាំរបស់អ្នក](#បន្ថែមពេលវេលាជាមួយម៉ាស៊ីនបើកល្បឿនរុក្ខជាតិរបស់អ្នក) + +## គ្រប់គ្រងឧបករណ៍ថាមពលខ្ពស់​ពីឧបករណ៍ IoT ថាមពលទាប + +ឧបករណ៍ IoT ប្រើថាមពលតង់ស្យុងទាប។ ពេលនេះគ្រប់គ្រងគ្រឿងចក្រនិងឧបករណ៍អេកទ័រថាមពលទាបដូចជា LED បានល្អ តែថាមពលនេះទាបពេកសម្រាប់ការគ្រប់គ្រងឧបករណ៍ធំៗ ដូចជាបង្អែកទឹកដែលប្រើសម្រាប់ការរុងរឿង។ បង្អែកទឹកតូចៗដែលអ្នកអាចប្រើសម្រាប់ដំណាំក្នុងផ្ទះគឺស្រូបចរន្តច្រើនពេកសម្រាប់ឧបករណ៍រៀបចំ IoT ហើយវានឹងបំផ្លាញក្តារប្រមូលទិន្នន័យ។ + +> 🎓 ចរន្ត ដែលវាស់ជាម៉ាស៊ីន(Amp/Amps, A) គឺជាចំនួនអគ្គិសនីដែលឆ្លងកាត់ស៊ីរប៉ូត។ តង់ស្យុងផ្តល់ឲ្យផ្ទះឱ និង ចរន្តគឺចំនួនដែលត្រូវបានផ្តល់កម្មង់។ អ្នកអាចអានបន្ថែមអំពីចរន្តនៅលើ [ទំព័រចរន្តអគ្គិសនីនៅវីគីភីឌា](https://wikipedia.org/wiki/Electric_current)។ + +ដំណោះស្រាយសម្រាប់នេះគឺចងបង្អែកទឹកទៅចំហៀងថាមពលខាងក្រៅ ហើយប្រើឧបករណ៍អេកទ័រដើម្បីបើកបង្អែកទឹក ដូចជាការបិទបើកភ្លើង។ វាត្រូវការថាមពលតិចមួយ (ជារាងថាមពលក្នុងរាងកាយរបស់អ្នក) ដើម្បីបញ្ជូនម្រាមដៃឲ្យបិទបើកបត់ និងភ្ជាប់ភ្លើងជាមួយអគ្គិសនីហ្គោល 110v/240v។ + +![ការបិទបើកភ្លើងដែលបើកថាមពលទៅភ្លើង](../../../../../translated_images/km/light-switch.760317ad6ab8bd6d.webp) + +> 🎓 [អគ្គិសនីហ្គោល](https://wikipedia.org/wiki/Mains_electricity) ជាអគ្គិសនីដែលផ្តល់ទៅផ្ទះនិងអាជីវកម្មតាមរយៈហាគ្រីជាតិច្រើននៅក្នុងពិភពលោក។ + +✅ ឧបករណ៍ IoT ទូទៅអាចផ្តល់ 3.3V ឬ 5V ដែលមិនលើស 1 អាំ (1A)។ ប្រៀបធៀបទៅនឹងអគ្គិសនីហ្គោលដែលជាទូទៅមានតង់ស្យុង 230V (120V នៅអាមេរិកខាងជើង និង 100V នៅជប៉ុន) និងអាចផ្តល់ថាមពលសម្រាប់ឧបករណ៍ដែលស្រូបចរន្ត 30A។ + +មានឧបករណ៍អេកទ័រជាច្រើនដែលអាចធ្វើបែបនេះ រួមបញ្ចូលការទ្រទ្រង់កញ្ចក់ក៏ដូចជាឧបករណ៍ធ្វើម៉ាស៊ីនមេកានិចដែលអ្នកអាចភ្ជាប់ទៅកាន់ការបិទបើកដែលមានសញ្ញាដូចដៃបត់។ ដែលពេញនិយមបំផុតគឺរេលេ។ + +### រេលេ + +រេលេគឺជាប៊ូតុងម៉ាស៊ីនមេកានិចដែលបម្លែងសញ្ញាអគ្គិសនីទៅចលនាមេកានិចដែលបើកប៊ូតុង។ ភាគមូលដ្ឋាននៃរេលេគឺម៉ាញេទិចអគ្គិសនី។ + +> 🎓 [ម៉ាញេទិចអគ្គិសនី](https://wikipedia.org/wiki/Electromagnet) ជាម៉ាញេទិចដែលបង្កើតដោយការផ្លាស់ប្តូរអគ្គិសនីតាមរ៉ូត័រមួយ។ ពេលដែលអគ្គិសនីបើក រ៉ូត័រនេះមានម៉ាញេទិច។ ពេលអគ្គិសនីបិទ រ៉ូត័រមានទំនងខូចម៉ាញេទិច។ + +![ពេលបើក ម៉ាញេទិចអគ្គិសនីបង្កើតវាលម៉ាញេទិច បញ្ចេញប៊ូតុងសម្រាប់សៀរស៊ើបអូតប៊ូតុង](../../../../../translated_images/km/relay-on.4db16a0fd6b66926.webp) + +នៅក្នុងរេលេ វដ្តគ្រប់គ្រងផ្តល់ថាមពលទៅម៉ាញេទិចអគ្គិសនី។ ពេលម៉ាញេទិចអគ្គិសនីបើក វាសម្លាប់ទំពារដែលបើកប៊ូតុង បិទភាគីយោលពីរកន្លែងនិងបញ្ចប់សៀរស៊ើបអូតប៊ូតុង។ + +![ពេលបិទ ម៉ាញេទិចអគ្គិសនីមិនបង្កើតវាលម៉ាញេទិច បិទប៊ូតុងសម្រាប់អូតប៊ូតុង](../../../../../translated_images/km/relay-off.c34a178a2960fecd.webp) + +ពេលតួរគ្រប់គ្រងត្រូវបិទ ម៉ាញេទិចអគ្គិសនីបិទ បញ្ឈប់ទំពារនិងបើកការតភ្ជាប់ បិទអូតប៊ូតុង។ រេលេគឺជាឧបករណ៍អេកទ័រឌីជីថល - សញ្ញាខ្ពស់ទៅរេលេជួយបើកវា សញ្ញាទាបបិទវា។ + +អូតប៊ូតុងអាចប្រើសម្រាប់ផ្តល់ថាមពលឧបករណ៍បន្ថែម ដូចជាប្រព័ន្ធបង្អែកទឹក។ ឧបករណ៍ IoT អាចបើករេលេ បញ្ចប់អូតប៊ូតុងដែលផ្តល់ថាមពលប្រព័ន្ធបង្អែកទឹក ហើយដំណាំទទួលទឹក។ បន្ទាប់មកឧបករណ៍ IoT អាចបិទរេលេ បិទថាមពលប្រព័ន្ធបង្អែកទឹក បិទទឹក។ + +![រេលេបើក បង្ហាញបង្អែកទឹកទៅដំណាំ](../../../../../images/strawberry-pump.gif) + +ក្នុងវីដេអូមើលខាងលើ រេលេត្រូវបានបើក។ LED នៅលើរេលេភ្លឺសំរាប់បង្ហាញថាវាបើក (សូម្បីមានក្តាររេលេមួយចំនួនមាន LED សំរាប់បង្ហាញរេលេបើកឬបិទ) ហើយថាមពលទៅបង្អែកទឹក បើកបង្អែកទឹក និងបញ្ចេញទឹកទៅដំណាំ។ + +> 💁 រេលេក៏អាចប្រើសម្រាប់ប្តូរវិញទៅវិញរវាងសៀរស៊ើបអូតប៊ូតុងពីរដើម្បីមិនបើកឬបិទតែមួយ។ ពេលទំពារផ្លាស់ប្តូរវា ផ្លាស់ប្តូរប៊ូតុងពីការបញ្ចប់សៀរស៊ើបអតប៊ូតុងមួយទៅចប់សៀរស៊ើបអតប៊ូតុងផ្សេងទៀត ដែលភាគច្រើនមានការតភ្ជាប់ថាមពលរួម ឬការតភ្ជាប់ដីរួម។ + +✅ ស្វែងរកព័ត៌មានបន្ថែម៖ មានប្រភេទរេលេជាច្រើន មានភាពខុសគ្នាដូចជាវិធីដែលសៀរស៊ើបគ្រប់គ្រងរេលេបើក ឬបិទ ព្រមទាំងមានសៀរស៊ើបអតប៊ូតុងច្រើន។ ស្វែងរកព័ត៌មានអំពីប្រភេទរេលេទាំងនោះ។ + +ពេលទំពារផ្លាស់ប្តូរ អ្នកសូម្បីតែអាចស្ដាប់ឮសំឡេង "ចាក់" ដែលមានពិការណ៍ច្បាស់លាស់។ + +> 💁 រេលេអាចភ្ជាប់ជាមួយក្បាលខ្សែដែលពេលភ្ជាប់នេះ វានឹងបំបែកថាមពលទៅរេលេ បិទរេលេ ហើយបញ្ចូនថាមពលទៅរេលេបើកឡើងវិញ ហើយបន្តបែបនេះវិញ។ នេះបណ្តាលឱ្យរេលេចាក់យ៉ាងលឿន និងបង្កើតសំឡេងហូបប្រដាប់ពីត្រាស់ៗមើលបាន។ នេះជាវិធីដែលវ៉ាស៊ឺរប៊ែរ ដែលប្រើក្នុងច្រកទ្វារអគ្គិសនីល្បីបំផុត។ + +### ថាមពលរេលេ + +ម៉ាញេទិចអគ្គិសនីមិនចាំបាច់ត្រូវការថាមពលច្រើនដើម្បីបើកនិងបញ្ចេញទំពារ វាអាចត្រូវបានគ្រប់គ្រងដោយការចេញថាមពល 3.3V ឬ 5V ពីឧបករណ៍អភិវឌ្ឍន៍ IoT។ អូតប៊ូតុងអាចពន្លឿនថាមពលច្រើនជាងនេះ ទាក់ទងទៅនឹងរេលេ រួមបញ្ចូលថាមពលម៉ាញេទិចឬថាមពលខ្ពស់សម្រាប់គេហដ្ឋានឧស្សាហកម្ម។ ដូច្នេះឧបករណ៍អភិវឌ្ឍន៍ IoT អាចគ្រប់គ្រងប្រព័ន្ធបង្អែកទឹកពីបង្អែកទឹកតូចមួយសម្រាប់ដំណាំតែមួយ ដល់ប្រព័ន្ធឧស្សាហកម្មធំសម្រាប់កសិដ្ឋានពាណិជ្ជកម្មទាំងមូល។ + +![រេលេ Grove ជាមួយសៀរស៊ើបគ្រប់គ្រង អូតប៊ូតុង និងរេលេស្លាក](../../../../../translated_images/km/grove-relay-labelled.293e068f5c3c2a19.webp) + +រូបភាពនៅលើបង្ហាញរេលេ Grove។ សៀរស៊ើបគ្រប់គ្រងភ្ជាប់ឧបករណ៍ IoT ហើយបើក ឬបិទរេលេដោយ​ប្រើ 3.3V ឬ 5V។ អូតប៊ូតុងមានផ្នែកទទួលសោ, មួយណាមួយអាចជាថាមពល ឬដី។ អូតប៊ូតុងអាចទប់ទល់បានដល់ 250V នៅ 10A គ្រប់គ្រាន់សម្រាប់ឧបករណ៍ដែលប្រើថាមពលម៉ាញេទិច។ អ្នកអាចរកបានរេលេដែលអាចដោះសោបានថាមពលខ្ពស់ជាងនេះ។ + +![បង្អែកទឹកភ្ជាប់តាមរេលេ](../../../../../translated_images/km/pump-wired-to-relay.66c5cfc0d8918990.webp) + +រូបភាពខាងលើនេះបង្ហាញថាមពលផ្គត់ផ្គង់ទៅបង្អែកទឹកតាមរយៈរេលេ។ មានខ្សែក្រហមភ្ជាប់ពីផ្នែក +5V នៃថង់ថាមពល USB ទៅផ្នែកមួយនៃអូតប៊ូតុងរេលេ ហើយខ្សែក្រហមមួយទៀតភ្ជាប់ពីផ្នែកពីរនៃអូតប៊ូតុងទៅបង្អែកទឹក។ ខ្សែក្រហមខ្មៅភ្ជាប់បង្អែកទឹកទៅដីនៃថង់ថាមពល USB។ ពេលរេលេបើក វាបញ្ចប់សៀរស៊ើប បញ្ជូន 5V ទៅបង្អែកទឹក បើកបង្អែកទឹក។ + +## គ្រប់គ្រងរេលេ + +អ្នកអាចគ្រប់គ្រងរេលេពីឧបករណ៍អភិវឌ្ឍន៍ IoT របស់អ្នក។ + +### បេសកកម្ម - គ្រប់គ្រងរេលេ + +ធ្វើការតាមដានមេរៀនពាក់ព័ន្ធ ដើម្បីគ្រប់គ្រងរេលេដោយប្រើឧបករណ៍ IoT របស់អ្នក៖ + +* [Arduino - Wio Terminal](wio-terminal-relay.md) +* [កុំព្យួទ័រឋានមួយ - Raspberry Pi](pi-relay.md) +* [កុំព្យួទ័រឋានមួយ - ឧបករណ៍ Virtual](virtual-device-relay.md) + +## គ្រប់គ្រងដំណាំរបស់អ្នកតាមរយៈ MQTT + +រហូតមកដល់បច្ចុប្បន្ន រេលេរបស់អ្នកត្រូវបានគ្រប់គ្រងដោយឧបករណ៍ IoT តាមការវាស់សំណើមដីតែមួយ។ នៅក្នុងប្រព័ន្ធបង្អែកទឹកពាណិជ្ជកម្ម យន្តការគ្រប់គ្រងនឹងត្រូវមានមជ្ឈមណ្ឌល ដែលអនុញ្ញាតឲ្យវាគ្រប់គ្រងការសម្រេចចិត្តក្នុងការជួរទឹកជាមួយទិន្នន័យពីឧបករណ៍សិនស័រច្រើន ហើយអនុញ្ញាតឲ្យកំណត់តម្លៃណាមួយកែប្រែលើកទីមួយតែម្ដង។ ដើម្បីធ្វើការតម្រៀបនេះ អ្នកអាចគ្រប់គ្រងរេលេតាម MQTT។ + +### បេសកកម្ម - គ្រប់គ្រងរេលេតាម MQTT + +1. បន្ថែមបណ្ណាល័យ MQTT / កញ្ចប់ pip និងកូដដែលពាក់ព័ន្ធទៅក្នុងគម្រោង `soil-moisture-sensor` របស់អ្នក ដើម្បីភ្ជាប់ទៅ MQTT។ បង្កើតឈ្មោះ client ID ជា `soilmoisturesensor_client` បូកបន្ថែមមុនដោយអត្តសញ្ញាណរបស់អ្នក។ + + > ⚠️ អ្នកអាចយោងទៅ [ការណែនាំសម្រាប់ភ្ជាប់ទៅ MQTT ក្នុងគម្រោង ១ មេរៀន ៤ ប្រសិនបើត្រូវការ](../../../1-getting-started/lessons/4-connect-internet/README.md#connect-your-iot-device-to-mqtt)។ + +1. បន្ថែមកូដឧបករណ៍ដែលពាក់ព័ន្ធដើម្បីផ្ញើព័ត៌មានទីបមូលផ្តល់ពីសំណើមដី។ សម្រាប់សារតែមូល, បង្កើតឈ្មោះវាល `soil_moisture`។ + + > ⚠️ អ្នកអាចយោងទៅ [ការណែនាំសម្រាប់ផ្ញើព័ត៌មានទីបមូលទៅ MQTT ក្នុងគម្រោង ១ មេរៀន ៤ ប្រសិនបើត្រូវការ](../../../1-getting-started/lessons/4-connect-internet/README.md#send-telemetry-from-your-iot-device)។ + +1. បង្កើតកូដម៉ាស៊ីនបម្រើមួយនៅភាគីមូលដ្ឋានដើម្បីជាវទំនាក់ទំនងទីបមូល និងផ្ញើការបញ្ជាដើម្បីគ្រប់គ្រងរេលេនៅក្នុងថតឯកសារឈ្មោះ `soil-moisture-sensor-server`។ បង្កើតឈ្មោះវាលក្នុងសារបញ្ជា​ជា `relay_on` ហើយកំណត់ client ID ជា `soilmoisturesensor_server` បូកបន្ថែមមុនដោយអត្តសញ្ញាណរបស់អ្នក។ រក្សារចំនុចដូចគ្នាជាមួយកូដម៉ាស៊ីនបម្រើដែលអ្នកបានសរសេរក្នុងគម្រោង ១ មេរៀន ៤ ព្រោះអ្នកនឹងបន្ថែមកូដនេះក្រោយមកក្នុងមេរៀននេះ។ + + > ⚠️ អ្នកអាចយោងទៅ [ការណែនាំសម្រាប់សរសេរកូដម៉ាស៊ីនបម្រើដើម្បីទទួលព័ត៌មានទីបមូល](../../../1-getting-started/lessons/4-connect-internet/README.md#write-the-server-code) និង [ការផ្ញើបញ្ជាទៅអ្នកផ្គត់ផ្គង់ MQTT](../../../1-getting-started/lessons/4-connect-internet/README.md#send-commands-to-the-mqtt-broker) ក្នុងគម្រោង ១ មេរៀន ៤ ប្រសិនបើត្រូវការ។ + +1. បន្ថែមកូដឧបករណ៍ដែលពាក់ព័ន្ធក្នុងការគ្រប់គ្រងរេលេពីបញ្ជាដែលទទួលបាន ដោយប្រើវាល `relay_on` ពីសារបញ្ជា។ ផ្ញើ true សម្រាប់ `relay_on` ប្រសិនបើ `soil_moisture`​ ធំជាង 450 ផ្ទុះពីនេះផ្ញើ false ដូចគ្នានឹងយុទ្ធសាស្ត្រដែលអ្នកបានបន្ថែមសម្រាប់ឧបករណ៍ IoT មុននេះ។ + + > ⚠️ អ្នកអាចយោងទៅ [ការណែនាំសម្រាប់ការឆ្លើយតបបញ្ជា MQTT នៅគម្រោង ១ មេរៀន ៤ ប្រសិនបើត្រូវការ](../../../1-getting-started/lessons/4-connect-internet/README.md#handle-commands-on-the-iot-device)។ + +> 💁 អ្នកអាចរកឃើញកូដនេះនៅក្នុងថត [code-mqtt](../../../../../2-farm/lessons/3-automated-plant-watering/code-mqtt)។ + +ធ្វើឱ្យប្រាកដថាកូដដំណើរការលើឧបករណ៍របស់អ្នក និងម៉ាស៊ីនបម្រើមូលដ្ឋាន ហើយសាកល្បងដោយផ្លាស់ប្ដូរសំណើមដី ជាផ្លាស់ប្ដូរតម្លៃដែលផ្ញើដោយឧបករណ៍សិនស័រវីរៈឬផ្លាស់ប្ដូរសំណើមដីដោយបន្ថែមទឹក ឬដកឧបករណ៍សិនស័រចេញពីដី។ + +## ពេលវេលាឧបករណ៍សិនស័រនិងឧបករណ៍អេកទ័រ + +នៅក្នុងមេរៀន ៣ អ្នកបានកសាងភ្លែត្រស្រមោល - LED ដែលបើកភ្លឺវិលតែមួយភ្លែត្រពន្លឺទាបត្រូវបានស្គាល់ដោយឧបករណ៍សិនស័រពន្លឺ។ ឧបករណ៍សិនស័រពន្លឺបានរកឃើញការផ្លាស់ប្តូរភ្លឺភ្លើងភ្លាមៗ ហើយឧបករណ៍អាចឆ្លើយតបបានយ៉ាងរហ័ស ដែលមានដែនកំណត់តែប្រវែងពេលនៃការពន្យារពេលក្នុងមុខងារ `loop` ឬក្នុងវដ្ត `while True:`។ ជាអ្នកអភិវឌ្ឍន៍ IoT អ្នកមិនអាចគិតទុកលើវដ្តបាតតាមFeedback លឿនបែបនេះជានិច្ចទេ។ + +### ពេលវេលាសម្រាប់សំណើមដី + +ប្រសិនបើអ្នកបានធ្វើមេរៀនមុនស្តីពីសំណើមដីដោយប្រើឧបករណ៍សិនស័រពិត អ្នកនឹងមើលឃើញថាការវាស់សំណើមដីចំណាយពេលប៉ុន្មានវិនាទីដើម្បីធ្លាក់ក្រោមបន្ទាប់ពីអ្នកជួរទឹកដំណាំរបស់អ្នក។ វាមិនមែនត្រូវសិនស័រពេក ឬយឺតទេ តែគឺត្រូវការពេលវេលាឲ្យទឹករំលាយតាមដី។ + +> 💁 បើអ្នកជួរទឹកនៅជិតឧបករណ៍សិនស័រ អ្នកអាចបានឃើញការវាស់ចុះយ៉ាងឆាប់រហ័ស ហើយបន្ទាប់មកឡើងវិញ - នេះបណ្តាលមកពីទឹកនៅជិតសិនស័របង្កើតចែកចាយនៅក្នុងដី ដែលបន្ថយសំណើមដែលឧបករណ៍សិនស័รวាស់បាន។ + +![ការវាស់សំណើមដីនៅកម្រិត 658 មិនផ្លាស់ប្តូរពេលជួរទឹកទេ វាប្រឹងតែកើនឡើងទៅ 320 ប៉ុន្តែបន្ទាប់ពីទឹករំលាយតាមចូលដី](../../../../../translated_images/km/soil-moisture-travel.a0e31af222cf1438.webp) + +ក្នុងខ្សែផែនភាពខាងលើ វាស់សំណើមដីបង្ហាញចំនួន 658។ ដំណាំត្រូវបានជួរទឹក ប៉ុន្តែតម្លៃនេះមិនផ្លាស់ប្តូរជាបន្ទាន់ទេ ព្រោះទឹកមិនទាន់ដល់ឧបករណ៍សិនស័រ។ ការជួរទឹកអាចបញ្ចប់ពីមុនពេលទឹកទទួលទៅឧបករណ៍សិនស័រនិងតម្លៃធ្លាក់ចុះដើម្បីបង្ហាញសំណើមថ្មី។ + +បើអ្នកសរសេរកូដដើម្បីគ្រប់គ្រងប្រព័ន្ធបង្អែកទឹកតាមរេលេដោយផ្អែកលើកម្រិតសំណើមដី អ្នកនឹងត្រូវគិតរយៈពេលពន្យល់នេះ និងបង្កើតម៉ាស៊ីន IoT ដោយមានពេលវេលាឆ្លើយតបផ្សេងគ្នា។ + +✅ សូមចំណាយពេលគិតពីរបៀបដែលអាចធ្វើបាន។ + +### គ្រប់គ្រងពេលវេលាឧបករណ៍សិនស័រនិងឧបករណ៍អេកទ័រ +សូមស្រមៃថាអ្នកត្រូវបានចាត់តាំងឲ្យសាងសង់ប្រព័ន្ធជីរដ្ឋានសម្រាប់ដែនធ្លីមួយ។ ដោយផ្អែកលើប្រភេទដី កម្រិតសំណើមដីដ៏ល្អបំផុតសម្រាប់រុក្ខជាតិដែលបានដាំគឺផ្គូរផ្គង់ជាមួយនឹងការវាស់ថាមពលអាណាឡอก ៤០០-៤៥០។ + +អ្នកអាចកម្មវិធីឧបករណ៍ដូចដដូចបំពង់ពន្លឺយប់ - រាល់ពេលដែលឧបករណ៍សិនស័រអានលើស ៤៥០ សូមបើករេលេដើម្បីបើកម៉ាស៊ីនបូមទឹក។ ក្តីបញ្ហានេះគឺទឹកត្រូវការពេលវេលាដើម្បីឈានដល់ពីម៉ាស៊ីនបូម តាមល្បឿនជាចន្លោះលើដីទៅឧបករណ៍សិនស័រ។ ឧបករណ៍សិនស័រនឹងបិទទឹកនៅពេលវាគិតថាបានឃើញកម្រិត ៤៥០ ប៉ុន្តែមក្រិតទឹកនោះនឹងត្រូវបន្តធ្លាក់ចុះ ដោយសារទឹកដែលបានបូមនៅតែងបន្តស្រូបឡើងនឹងដី។ លទ្ធផលចុងក្រោយគឺការប្រើប្រាស់ទឹកចោល និងហានិភ័យនៃការខូចខាតឫសភាគ។ + +✅ គិតចាំ - ទឹកច្រើនពេកអាចធ្វើអោយរុក្ខជាតិខូចដូចជាទឹកតិចពេកផងដែរ ហើយវាយសម័យធនធានមិនសូវមានតម្លៃ។ + +ដំណោះស្រាយល្អជាងគេគឺត្រូវយល់ថាមានការពន្យារពេលរវាងការបើកឧបករណ៍បញ្ជាដែលផ្លាស់ប្តូរនិងលទ្ធផលដែលឧបករណ៍សិនស័រត្រូវបានអាន។ នេះមានន័យថាគ្រប់ពេលដែលឧបករណ៍សិនស័រត្រូវរង់ចាំរយៈពេលមួយមុនពេលវានឹងវាស់តម្លៃម្ដងទៀត ប៉ុន្តែកម្មវិធីបញ្ជាសកម្មភាពត្រូវតែបិទរយៈពេលមួយមុនពេលការវាស់បន្ទាប់គឺត្រូវបានធ្វើឡើង។ + +តើរេលេត្រូវបើករយៈពេលប៉ុន្មានម្តងមួយ? វាល្អជាងក្នុងការប្រុងប្រយ័ត្ន និងបើករេលេរយៈពេលខ្លី ហើយរង់ចាំឲ្យទឹកធ្លាយអាម៉ាត់រួចហើយបន្ទាប់មកពិនិត្យវិញកម្រិតសំណើមទឹក។ បន្ទាប់មក អ្នកអាចបើកម្ដងទៀតសម្រាប់បន្ថែមទឹកបាន តែក្នុងពេលនេះមិនអាចចាប់ទឹកចេញពីដីបានទេ។ + +> 💁 ការគ្រប់គ្រងពេលវេលាប្រភេទនេះមានលក្ខណៈពិសេសទៅនឹងឧបករណ៍ IoT ដែលអ្នកកំពុងសាងសង់ លក្ខណៈដែលអ្នកវាស់ និងឧបករណ៍សិនស័រ និងឧបករណ៍បញ្ជាប្រើ។ + +![រុក្ខជាតិស្ទ្រប៉ែរីភ្ជាប់ទឹកតាមម៉ាស៊ីនបូម ដែលម៉ាស៊ីនបូមភ្ជាប់ទៅកាន់រេលេ។ រេលេនិងឧបករណ៍សិនស័រសំណើមដីនៅក្នុងរុក្ខជាតិទាំងពីរភ្ជាប់ទៅកាន់ Raspberry Pi](../../../../../translated_images/km/strawberry-with-pump.b410fc72ac6aabad.webp) + +ឧទាហរណ៍ ខ្ញុំមានរុក្ខជាតិស្ទ្រប៉ែរៀរបស់ខ្ញុំមានឧបករណ៍សិនស័រសំណើមដី និងម៉ាស៊ីនបូមដែលត្រូវគ្រប់គ្រងដោយរេលេ។ ខ្ញុំបានមើលឃើញថា ពេលដែលខ្ញុំបន្ថែមទឹក វាត្រូវរយៈពេលប្រហែល ២០ វិនាទីសម្រាប់ការវាស់សំណើមដីឲ្យមានស្ថិរភាព។ នោះមានន័យថាខ្ញុំត្រូវបិទរេលេហើយរង់ចាំ ២០ វិនាទី មុនពេលពិនិត្យកម្រិតសំណើម។ ខ្ញុំចង់មានទឹកតិចជាងទឹកច្រើនពេក - ខ្ញុំអាចបើកម៉ាស៊ីនបូមម្ដងទៀតបានជានិច្ច ប៉ុន្តែខ្ញុំមិនអាចយកទឹកចេញពីរុក្ខជាតិនោះបានទេ។ + +![ជំហាន ១ វាស់ទឹក។ ជំហាន ២ បន្ថែមទឹក។ ជំហាន ៣ រងចាំទឹកបត់ចូលដី។ ជំហាន ៤ វាស់វិញ](../../../../../translated_images/km/soil-moisture-delay.865f3fae206db01d.webp) + +នេះមានន័យថាដំណើរការល្អបំផុតគឺជាចំណុចជារបស់ប្រព័ន្ធសុវត្ថិភាព៖ + +* បើកម៉ាស៊ីនបូមរយៈពេល ៥ វិនាទី +* រងចាំ ២០ វិនាទី +* ពិនិត្យសំណើមដី +* ប្រសិនបើកម្រិតនៅតែខ្ពស់ជាងអ្វីដែលខ្ញុំត្រូវការ សូមធ្វើម្តងទៀតដូចខាងលើ + +៥ វិនាទីអាចយូរពេកសម្រាប់ម៉ាស៊ីនបូម ជាពិសេសបើកម្រិតសំណើមញឹកញាប់តែខ្ពស់តិចតួចជាងកម្រិតដែលត្រូវការ។ វិធីល្អបំផុតដើម្បីដឹងថាត្រូវប្រើពេលវេលាប៉ុន្មានគឺសាកល្បង ហើយកែតម្រូវនៅពេលដែលអ្នកមានទិន្នន័យ sensor ជាមួយនឹងវដ្តប្រតិកម្មមិនប្រែប្រួល។ នេះអាចនាំឲ្យមានពេលវេលាកាន់តែលម្អិត ដូចជា បើកម៉ាស៊ីនបូមរយៈពេល ១ វិនាទីសម្រាប់រាល់ ១០០ ខ្ពស់ជាងកម្រិតសំណើមដីដែលត្រូវការ ជំនួស ៥ វិនាទីថេរ។ + +✅ ស្រាវជ្រាវបន្ត៖ មានបញ្ហាតេលស្សិ្តពេលវេលាផ្សេងទៀតទេ? តើអាចបូមទឹកនៅពេលណាមួយក៏បានពេលសំណើមដីទាប ឬមានពេលវេលា ព្រឹក និងល្ងាច ដែលល្អ ឬអាក្រក់សម្រាប់បូមទឹកឬទេ? + +> 💁 ការព្យាករណ៍អាកាសធាតុអាចត្រូវបានគិតទៅនិងគ្រប់គ្រងប្រព័ន្ធបូមទឹកស្វ័យប្រវត្តិសម្រាប់កសិដ្ឋានក្រៅផ្ទះ។ ប្រសិនបើមានការរំពឹងទុកភ្លៀង បូមទឹកអាចត្រូវបានផ្អាករហូតដល់ភ្លៀងឈប់។ ពេលនោះដីអាចមានសំណើមគ្រប់គ្រាន់ហើយមិនចាំបូមទឹកទៀតទេ ល្អជាងការប្រើប្រាស់ទឹកអោយចោលយ៉ាងក្រៃលែងដោយបូមទឹកមុនភ្លៀង។ + +## បន្ថែមពេលវេលាជាមួយម៉ាស៊ីនបើកល្បឿនរុក្ខជាតិរបស់អ្នក + +កូដម៉ាស៊ីនបម្រុងអាចត្រូវបានកែប្រែដើម្បីបន្ថែមការគ្រប់គ្រងពេលវេលាជុំវិញរយៈពេលប្រតិបត្តិការបូមទឹក និងការរង់ចាំឲ្យសំណើមដីផ្លាស់ប្តូរ។ ហេតុអាកប្បកិរិយារបស់ម៉ាស៊ីនបើកល្បឿនដែលគ្រប់គ្រងពេលវេលារបស់រេលេគឺ៖ + +1. ទទួលបានសារ telemetry +1. ពិនិត្យកម្រិតសំណើមដី +1. ប្រសិនបើវាត្រឹមត្រូវ មិនចាំបាច់ធ្វើអ្វីទាំងអស់។ ប្រសិនបើការវាស់លើស (មានន័យថាសំណើមដីទាបពេក) នោះ: + 1. ផ្ញើសំណើបើករេលេ + 1. រងចាំ ៥ វិនាទី + 1. ផ្ញើសំណើបិទរេលេ + 1. រងចាំ ២០ វិនាទីសម្រាប់សំណើមដីស្ថិតស្ថេរ + +វដ្តបូមទឹក ពីពេលទទួលសារ telemetry ទៅពេលរងចាំសំណើមដីផ្លាស់ប្តូរកាន់តែមានរយៈពេលប្រហែល ២៥ វិនាទី។ យើងផ្ញើទិន្នន័យសំណើមដីរៀងរាល់ ១០ វិនាទី ដូច្នេះមានការបា្រស់គ្នា ដែលមានសារមួយត្រូវបានទទួលខណៈដែលម៉ាស៊ីនបម្រុងកំពុងរង់ចាំសំណើមដីស្ថិតស្ថេរ ដែលអាចចាប់ផ្តើមរយៈពេលបូមទឹកម្តុំនៃបន្ទាប់។ + +មានជម្រើសពីរដើម្បីអាចដោះស្រាយបញ្ហានេះ៖ + +* ផ្លាស់ប្ដូរកូដឧបករណ៍ IoT ដើម្បីផ្ញើតែសារ telemetry រៀងរាល់មួយនាទី ដូច្នេះវដ្តបូមទឹកនឹងបានបញ្ចប់មុនសារបន្ទាប់ +* មិនដើម្បីរងចាំទទួលសារពេលវដ្តបូមទឹកកំពុងដំណើរការ + +ជម្រើសដំបូងមិនមែនជាដំណោះស្រាយល្អសម្រាប់កសិដ្ឋានធំទេ។ កសិករអាចចង់ប្រមូលកម្រិតសំណើមដីក្នុងអំឡុងពេលដែលដីកំពុងទទួលទឹកសម្រាប់ការវិភាគក្រោយ សម្រាប់ដៃគូចាំបាច់ដើម្បីចាប់ផ្តើមបូមទឹកនៅតំបន់ផ្សេងៗនៅលើដែនដី។ ជម្រើសទីពីរល្អជាង - កូដគ្រាន់តែមិនព្យាយាមមើលសារនោះ ខណៈដែលវដ្តបូមទឹកកំពុងដំណើរការ ប៉ុន្តែសារនោះនៅតែមានសម្រាប់សេវាកម្មផ្សេងៗដែលអាចចូលរួមអាន។ + +> 💁 ទិន្នន័យ IoT មិនត្រូវបានផ្ញើពីឧបករណ៍តែឧបករណ៍មួយទៅសេវាកម្មមួយទេ ប៉ុន្តែឧបករណ៍ជាច្រើនអាចផ្ញើទិន្នន័យទៅកាន់ broker ហើយសេវាកម្មជាច្រើនអាចស្តាប់ទិន្នន័យពី broker។ ឧទាហរណ៍ សេវាកម្មមួយអាចស្តាប់ទិន្នន័យសំណើមដី ហើយរក្សាទុកក្នុងមូលដ្ឋានទិន្នន័យសម្រាប់វិភាគក្រោយ។ សេវាកម្មមួយផ្សេងទៀតអាចស្តាប់ទិន្នន័យឯងដែរដើម្បីគ្រប់គ្រងប្រព័ន្ធជីរដ្ឋាន។ + +### ភារកិច្ច - បន្ថែមពេលវេលាជាមួយម៉ាស៊ីនបើកល្បឿនរុក្ខជាតិរបស់អ្នក + +ធ្វើបច្ចុប្បន្នភាពកូដម៉ាស៊ីនបម្រុងរបស់អ្នកដើម្បីបើករេលេរយៈពេល ៥ វិនាទី បន្ទាប់មករង់ចាំ ២០ វិនាទី។ + +1. បើកថត `soil-moisture-sensor-server` ក្នុង VS Code ប្រសិនបើវាមិនបានបើករួចទេ។ ជ្រាបថាបរិស្ថានអមតៈត្រូវបានដំណើរការ។ + +1. បើកឯកសារ `app.py` + +1. បន្ថែមកូដខាងក្រោមទៅឯកសារ `app.py` ខាងក្រោមការនាំចូលដែលមានរួចហើយ៖ + + ```python + import threading + ``` + + វាកំណត់ឲ្យនាំចូល `threading` ពីបណ្ណាល័យ Python ដែល threading អនុញ្ញាតឲ្យ_python_រត់កូដផ្សេងទៀតពេលដែលកំពុងរង់ចាំ។ + +1. បន្ថែមកូដខាងក្រោមមុនមុខងារ `handle_telemetry` ដែលដំណើរការសារតេឡេមេត្រីដែលទទួលបានចូលពីកូដម៉ាស៊ីនបម្រុង៖ + + ```python + water_time = 5 + wait_time = 20 + ``` + + នេះកំណត់រយៈពេលបើករេលេ (`water_time`) និងរយៈពេលដែលត្រូវរងចាំបន្ទាប់មកសម្រាប់ពិនិត្យសំណើមដី (`wait_time`)។ + +1. ខាងក្រោមកូដនេះ បន្ថែមកូដនេះ៖ + + ```python + def send_relay_command(client, state): + command = { 'relay_on' : state } + print("Sending message:", command) + client.publish(server_command_topic, json.dumps(command)) + ``` + + កូដនេះកំណត់មុខងារដែលមានឈ្មោះ `send_relay_command` ដែលផ្ញើសេចក្តីបញ្ជាតាម MQTT ដើម្បីគ្រប់គ្រងរេលេ។ ទិន្នន័យ telemetry ត្រូវបានបង្កើតជា dictionary បន្ទាប់មកបម្លែងទៅជាស្ទ្រីង JSON។ តម្លៃបញ្ជាក់ក្នុង `state` នឹងកំណត់ថារេលេគួរត្រូវបើកឬបិទ។ + +1. បន្ទាប់ពីមុខងារ `send_relay_command` បន្ថែមកូដខាងក្រោម៖ + + ```python + def control_relay(client): + print("Unsubscribing from telemetry") + mqtt_client.unsubscribe(client_telemetry_topic) + + send_relay_command(client, True) + time.sleep(water_time) + send_relay_command(client, False) + + time.sleep(wait_time) + + print("Subscribing to telemetry") + mqtt_client.subscribe(client_telemetry_topic) + ``` + + នេះកំណត់មុខងារដើម្បីគ្រប់គ្រងរេលេដោយផ្អែកលើពេលវេលាដែលត្រូវការ។ វាចាប់ផ្តើមដោយមិនត្រូវស្តាប់សារ telemetry ដើម្បីឲ្យសារសំណើមដីមិនត្រូវបានដំណើរការកាលណាកំពុងបូមទឹក។ បន្ទាប់មកវាផ្ញើសេចក្តីបញ្ជាបើករេលេ។ បន្ទាប់មកវារង់ចាំរយៈពេល `water_time` មុនពេលផ្ញើបញ្ជាបិទរេលេ។ ចុងក្រោយវារង់ចាំរយៈពេល `wait_time` សម្រាប់សំណើមដីមានស្ថិរភាព។ បន្ទាប់មកវាស្តារវិញការស្តាប់សារ telemetry។ + +1. ផ្លាស់ប្ដូរមុខងារ `handle_telemetry` ដូចខាងក្រោម៖ + + ```python + def handle_telemetry(client, userdata, message): + payload = json.loads(message.payload.decode()) + print("Message received:", payload) + + if payload['soil_moisture'] > 450: + threading.Thread(target=control_relay, args=(client,)).start() + ``` + + កូដនេះពិនិត្យកម្រិតសំណើមដី។ ប្រសិនបើវាធំជាង ៤៥០ ដីត្រូវការជីរដ្ឋាន ដូច្នេះវាហៅមុខងារ `control_relay`។ មុខងារនេះត្រូវបានដំណើរការលើកម្មវិធីត្រួតពិនិត្យផ្សេងៗ ដំណើរការប្រតិបត្តិការ​នៅ​ផ្ទៃ​ក្រោយ។ + +1. ត្រួតពិនិត្យឲ្យប្រាកដថាឧបករណ៍ IoT របស់អ្នកកំពុងដំណើរការ បន្ទាប់មកបើកកូដនេះ។ ប្រែសំណើមដីហើយសង្កេតមើលអ្វីដែលកើតឡើងទៅរេលេ - វាគួរត្រូវបើករយៈពេល ៥ វិនាទី បន្ទាប់មកបិទរយៈពេលយ៉ាងហោចណាស់ ២០ វិនាទី ហើយបើកឡើងវិញតែនៅពេលសំណើមដីមិនគ្រប់គ្រាន់ទេ។ + + ```output + (.venv) ➜ soil-moisture-sensor-server ✗ python app.py + Message received: {'soil_moisture': 457} + Unsubscribing from telemetry + Sending message: {'relay_on': True} + Sending message: {'relay_on': False} + Subscribing to telemetry + Message received: {'soil_moisture': 302} + ``` + + វិធីល្អសម្រាប់សាកល្បងប្រព័ន្ធជីរដ្ឋានតាមការស្ទៀងស្ម័គ្រនៅក្នុងផ្ទះគឺប្រើដីស្ងួត បន្ទាប់បួសទឹកដៃផ្ទាល់ខ្លួននៅពេលរេលេបើក ហើយបញ្ឈប់បួសពេលរេលេបិទ។ + +> 💁 អ្នកអាចរកកូដនេះនៅក្នុងថត [code-timing](../../../../../2-farm/lessons/3-automated-plant-watering/code-timing)។ + +> 💁 ប្រសិនបើអ្នកចង់ប្រើម៉ាស៊ីនបូមទឹកដើម្បីសាងសង់ប្រព័ន្ធជីរដ្ឋានពិត អ្នកអាចប្រើ [ម៉ាស៊ីនបូមទឹក 6V](https://www.seeedstudio.com/6V-Mini-Water-Pump-p-1945.html) ជាមួយ [ឧបករណ៍ផ្គត់ផ្គង់ថាមពល USB](https://www.adafruit.com/product/3628)។ សូមប្រាកដថាថាមពលទៅម៉ាស៊ីនបូមត្រូវភ្ជាប់តាមរយៈរេលេ។ + +--- + +## 🚀 អប្បបរមា + +តើអ្នកគិតថា មានឧបករណ៍ IoT ឬឧបករណ៍អគ្គិសនីផ្សេងៗមួយចំនួនដែលមានបញ្ហាស្រដៀងគ្នា ដែលវាត្រូវការពេលវេលាក្នុងការផ្លាស់ប្តូរវិស័យត្រីលក្ខណៈរបស់ឧបករណ៍បញ្ជាដល់ឧបករណ៍សិនស័រឬដោយ? ប្រហែលជាអ្នកមានឧបករណ៍បែបនេះប៉ុន្មាននៅផ្ទះ ឬសាលារៀនរបស់អ្នក។ + +* តើវាវាស់កម្រិតអ្វី? +* តើវាត្រូវការពេលវេលាប៉ុន្មានសម្រាប់បម្លែងបន្ទាប់ពីមានការប្រើឧបករណ៍បញ្ជា? +* តើវាជាការល្អដែលអោយលក្ខណៈនោះបន្តបម្លែងលើសតម្លៃដែលត្រូវការ? +* តើធ្វើដូចម្តេចដើម្បីយកវាចេញទៅតម្លៃដែលត្រូវការវិញ ប្រសិនបើចាំបាច់? + +## សំណួរបន្ទាប់ពេលវគ្គ + +[សំណួរបន្ទាប់ពេលវគ្គ](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/14) + +## ពិនិត្យនិងរៀនផ្ទាល់ខ្លួន + +* អានបន្ថែមអំពីរេលេសំរាប់មើលប្រវត្តិសាស្ត្ររបស់វានៅក្នុងការបម្លែងទូរស័ព្ទនៅលើ [ទំព័រ Wiki រេលេ](https://wikipedia.org/wiki/Relay)។ + +## ភារកិច្ច + +[សាងសង់វដ្តបូមទឹកដែលមានប្រសិទ្ធភាព](assignment.md) + +--- + + +**និយាមកសារៈ**: +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំឲ្យបានភាពត្រឹមត្រូវ សូមយល់ថាបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវខ្លះ។ ឯកសារដើមដែលមាននៅជាសំដែងភាសាត្រូវបានគេចាត់ទុកជាប្រភពស្របតាមច្បាប់។ សម្រាប់ព័ត៌មានសំខាន់ៗ យោលបកប្រែដោយអ្នកជំនាញមនុស្សគឺគួរតែអនុវត្ត។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំនា ឬការបកស្រាយខុសពីការប្រើប្រាស់បកប្រែនេះនោះទេ។ + \ No newline at end of file diff --git a/translations/km/2-farm/lessons/3-automated-plant-watering/assignment.md b/translations/km/2-farm/lessons/3-automated-plant-watering/assignment.md new file mode 100644 index 000000000..3e8cc8298 --- /dev/null +++ b/translations/km/2-farm/lessons/3-automated-plant-watering/assignment.md @@ -0,0 +1,47 @@ +# បង្កើតវដ្តការបម្រុះទឹកដែលមានប្រសិទ្ធភាពបន្ថែម + +## សេចក្តីណែនាំ + +មេរៀននេះបានបង្ហាញពីរបៀបគ្រប់គ្រង relay តាមទិន្នន័យឧបករណ៍ស្ទង់ខ្យល់ និង relay នោះអាចគ្រប់គ្រងម៉ាស៊ីនបូមទឹកសម្រាប់ប្រព័ន្ធជីរុក្ខជាតិបាន។ សម្រាប់ដីដែលបានកំណត់ មុខងារបូមទឹករយៈពេលថេរមួយគួរតែមានឥទ្ធិពលដូចគ្នាលើការសើមនៃដី។ នេះមានន័យថាអ្នកអាចពិចារណាថានាទីប៉ុន្មាននៃការបម្រុះទឹកសមរម្យនឹងនាំឲ្យមានការធ្លាក់ចុះប៉ុន្មាននៅក្នុងតម្លៃសើមដី។ ដោយប្រើទិន្នន័យនេះ អ្នកអាចបង្កើតប្រព័ន្ធជីរុក្ខជាតិកាន់តែត្រឺមត្រូវ។ + +សម្រាប់ភារកិច្ចនេះ អ្នកនឹងគណនាថាគេចាំបាច់បូមទឹករយៈពេលប៉ុន្មានសម្រាប់កំណើនមួយនៅក្នុងការសើមដី។ + +> ⚠️ ប្រសិនបើអ្នកកំពុងប្រើឧបករណ៍ IoT វិជ្ជមាន អ្នកអាចធ្វើតាមដំណើរការនេះ ប៉ុន្តែសម្លឹងតែក្នុងការស្ទង់តម្លៃសើមដីដោយបន្ថែមដោយដៃក្នុងមួយវិនាទីដែល relay ដំណើរការ។ + +1. ចាប់ផ្តើមជាមួយដីស្ងួត។ វាស់តម្លៃសើមដី។ + +1. បន្ថែមទឹកប្រែមួយចំនួនថេរ ដោយបូមទឹករយៈពេល ១ វិនាទី ឬដោយចាក់ទឹកចំនួនថេរចូល។ + + > ម៉ាស៊ីនបូមគួរតែបូមដោយលំដាប់ថេរ ដូចនេះរាល់មួយវិនាទីដែលម៉ាស៊ីនបូមដំណើរការ គួរតែផ្គត់ផ្គង់ទឹកបរិមាណដូចគ្នា។ + +1. រង់ចាំរហូតដល់កម្រិតសើមដីមានស្ថេរភាព ហើយធ្វើការស្ទង់ទឹក។ + +1. ធ្វើឡើងម្ដងទៀតជាច្រើនដង ហើយបង្កើតតារាងលទ្ធផល។ ឧទាហរណ៍នៃតារាងនេះមានរូបមន្តខាងក្រោម។ + + | រយៈពេលបូមទឹកសរុប | សើមដី | ការធ្លាក់ចុះ | + | --- | --: | -: | + | ស្ងួត | 643 | 0 | + | 1 វិនាទី | 621 | 22 | + | 2 វិនាទី | 601 | 20 | + | 3 វិនាទី | 579 | 22 | + | 4 វិនាទី | 560 | 19 | + | 5 វិនាទី | 539 | 21 | + | 6 វិនាទី | 521 | 18 | + +1. គណនាកំណត់ប្រកួតមធ្យមនៃកំណើនសើមដីក្នុងមួយវិនាទីនៃទឹក។ ក្នុងឧទាហរណ៍ខាងលើ រាល់មួយវិនាទីនៃទឹកនាំឲ្យតម្លៃសើមធ្លាក់ចុះជាមធ្យម 20.3 ។ + +1. ប្រើទិន្នន័យនេះដើម្បីបង្កើនប្រសិទ្ធភាព កូដម៉ាស៊ីនបម្រើរបស់អ្នក ដោយបូមទឹករយៈពេលត្រឹមត្រូវដើម្បីឲ្យសើមដីទៅដល់កម្រិតដែលត្រូវការ។ + +## Rubric + +| ការវាយតម្លៃ | ល្អឥតខ្ចោះ | គ្រប់គ្រាន់ | ត្រូវការកែលម្អ | +| -------- | --------- | -------- | ----------------- | +| ស្ទង់សើមដី | អាចស្ទង់ទិន្នន័យច្រើនបន្ទាប់ពីបន្ថែមទឹកបរិមាណថេរ | អាចស្ទង់ទិន្នន័យខ្លះដោយបរិមាណទឹកថេរ | អាចស្ទង់បានត្រឹមតែ១ ឬ ២ ដង ឬមិនអាចប្រើបរិមាណទឹកថេរ | +| កំណត់តម្លៃកូដម៉ាស៊ីនបម្រើ | អាចគណនាការធ្លាក់ចុះមធ្យមនៃតម្លៃសើមដី និងធ្វើបច្ចុប្បន្នភាពកូដម៉ាស៊ីនបម្រើ | អាចគណនាការធ្លាក់ចុះមធ្យម ប៉ុន្តែមិនអាចធ្វើបច្ចុប្បន្នភាពកូដម៉ាស៊ីនបម្រើ ឬអាចគណនាត្រឹមតែម្ដង ប៉ុន្តែប្រើតម្លៃនេះធ្វើបច្ចុប្បន្នភាពបានត្រឹមត្រូវ | មិនអាចគណនាមធ្យម ឬ មិនអាចធ្វើបច្ចុប្បន្នភាពកូដម៉ាស៊ីនបម្រើ | + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះបីយើងមានការខិតខំសំរាប់ភាពត្រឹមត្រូវក៏ដោយ សូមយល់ដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិក្នុងខ្លះអាចមានកំហុសឬការមិនត្រឹមត្រូវជាមួយ។ ឯកសារដើមនៅក្នុងភាសាមាតុភាសាគួរត្រូវបានគេចាត់ទុកជាភស្តុតាងផ្លូវការនៃព័ត៌មាន។ សំរាប់ព័ត៌មានសំខាន់ៗ គេណែនាំឱ្យប្រើការបកប្រែដោយមនុស្សជំនាញជាជម្រើស។ យើងមិនត្រូវទទួលខុសត្រូវចំពោះការយល់មិនស្របឬការបកប្រែខុសប្រភេទណាមួយដែលកើតឡើងពីការប្រើប្រាស់បកប្រែនេះទេ។ + \ No newline at end of file diff --git a/translations/km/2-farm/lessons/3-automated-plant-watering/pi-relay.md b/translations/km/2-farm/lessons/3-automated-plant-watering/pi-relay.md new file mode 100644 index 000000000..a78bd9a81 --- /dev/null +++ b/translations/km/2-farm/lessons/3-automated-plant-watering/pi-relay.md @@ -0,0 +1,116 @@ +# ការគ្រប់គ្រង relay - Raspberry Pi + +នៅក្នុងផ្នែកនេះនៃមេរៀន អ្នកនឹងបន្ថែម relay ទៅកាន់ Raspberry Pi របស់អ្នក בנוסף לֹsensor សំណើមដី ហើយគ្រប់គ្រងវាដោយផ្អែកលើមាតិកាសំណើមដី។ + +## ឧបករណ៍រឹង + +Raspberry Pi ត្រូវការ relay។ + +relay ដែលអ្នកនឹងប្រើគឺ [Grove relay](https://www.seeedstudio.com/Grove-Relay.html), relay ដែលធម្មតា(មានន័យថាសៀគ្វី output បើក ឬផ្តាច់នៅពេលគ្មានសញ្ញាបញ្ជូនទៅ relay) ដែលអាចដោះស្រាយសៀគ្វី output ដល់ 250V និង 10A។ + +នេះគឺជាឧបករណ៍អេឡិចត្រូនិចឌីជីថល, ដូច្នេះភ្ជាប់ទៅកាន់ពិន្ទុឌីជីថលលើ Grove Base Hat។ + +### ភ្ជាប់ relay + +Grove relay អាចភ្ជាប់ទៅកាន់ Raspberry Pi ។ + +#### ប្រធានការងារ + +ភ្ជាប់ relay ។ + +![A grove relay](../../../../../translated_images/km/grove-relay.d426958ca210fbd0.webp) + +1. បញ្ចូលចុងម្ខាងនៃខ្សែ Grove ទៅក្នុងប្រអប់នៅលើ relay ។ វានឹងបញ្ចូលតែទិសមួយតែប៉ុណ្ណោះ។ + +1. នៅពេល Raspberry Pi មិនបានបើកថាមពលភ្លើងភ្លើងភ្ជាប់ចុងទៀតនៃខ្សែ Grove ទៅក្នុងប្រអប់ឌីជីថលដែលមានស្លាក **D5** លើ Grove Base hat ដែលភ្ជាប់ទៅ Pi ។ ប្រអប់នេះគឺជាបន្ទាត់ទីពីរពីខាងឆ្វេង នៅជុំវិញប្រអប់ជិតពិន្ទុ GPIO ។ ទុកឲ្យដាក់ sensor សំណើមដីនៅក្នុងប្រអប់ **A0**។ + +![The grove relay connected to the D5 socket, and the soil moisture sensor connected to the A0 socket](../../../../../translated_images/km/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e.webp) + +1. បញ្ចូល sensor សំណើមដីចូលក្នុងដី ប្រសិនបើវាមាននៅពីមុនក្នុងមេរៀនមុន។ + +## កម្មវិធី relay + +Raspberry Pi ឥឡូវនេះអាចបានកម្មវិធីដើម្បីប្រើ relay ដែលភ្ជាប់។ + +### ប្រធានការងារ + +កម្មវិធីឧបករណ៍។ + +1. បើកថាមពល Pi ហើយរង់ចាំវាបើកឡើង + +1. បើកគម្រោង `soil-moisture-sensor` ពីមេរៀនចុងក្រោយក្នុង VS Code ប្រសិនបើវាមិនទើបបើកនោះទេ ។ អ្នកនឹងបន្ថែមទៅកាន់គម្រោងនេះ។ + +1. បន្ថែមកូដខាងក្រោមទៅឯកសារ `app.py` ខាងក្រោមការ import មានរួចហើយ៖ + + ```python + from grove.grove_relay import GroveRelay + ``` + + ពាក្យបញ្ជានេះនាំចូល `GroveRelay` ពីបណ្ណាល័យ Python Grove ដើម្បីអន្តរកម្មជាមួយ Grove relay។ + +1. បន្ថែមកូដខាងក្រោមក្រោមការប្រកាស `ADC` class ដើម្បីបង្កើតឧបករណ៍ `GroveRelay`: + + ```python + relay = GroveRelay(5) + ``` + + នេះបង្កើត relay ដោយប្រើ pin **D5**, pin ឌីជីថលដែលអ្នកបានភ្ជាប់ relay ទៅ។ + +1. ដើម្បីសាកល្បងថា relay ធ្វើការ ត្រូវបន្ថែមដូចខាងក្រោមទៅក្នុងលំនាំ `while True:`: + + ```python + relay.on() + time.sleep(.5) + relay.off() + ``` + + កូដនេះបិទ relay បើករយៈពេល 0.5 វិនាទី បន្ទាប់មកបិទ relay។ + +1. រត់កម្មវិធី Python ។ relay នឹងបើក និងបិទរៀងរាល់ 10 វិនាទី មានការពន្យារពេលអពាំអណ្តែតក្នុងការបើក និងបិទ ។ អ្នកនឹងឮសំឡេង click relay បើក ហើយបិទ។ អចលនាដែលមានភ្លើង LED លើ Grove board នឹងភ្លឺនៅពេល relay បើក ហើយបិទពេល relay បិទ។ + + ![The relay turning on and off](../../../../../images/relay-turn-on-off.gif) + +## គ្រប់គ្រង relay ពីសំណើមដី + +ឥឡូវ relay ធ្វើការ ហើយវាអាចគ្រប់គ្រងដោយបន្ដាមតិឆ្លុះសំណើមដីបាន។ + +### ប្រធានការងារ + +គ្រប់គ្រង relay។ + +1. លុបបន្ទាត់កូដ 3 តួដែលអ្នកបានបន្ថែមសម្រាប់សាកល្បង relay ។ ជំនួសវាជាមួយកូដខាងក្រោមនេះ៖ + + ```python + if soil_moisture > 450: + print("Soil Moisture is too low, turning relay on.") + relay.on() + else: + print("Soil Moisture is ok, turning relay off.") + relay.off() + ``` + + កូដនេះពិនិត្យមើលកម្រិតសំណើមដីពី sensor សំណើមដី ។ ប្រសិនបើវាខ្ពស់ជាង 450 វាបើក relay ហើយបិទវា ពេលវាទាបជាង 450។ + + > 💁 សូមចងចាំ sensor សំណើមដីប្រភេទ capacitive អានកម្រិតសំណើមដីថាបើវាទាប វាបង្ហាញថាមានសំណើមច្រើនក្នុងដី ហើយវិញវិញខ្ពស់បង្ហាញថាសំណើមតិច។ + +1. រត់កម្មវិធី Python ។ អ្នកនឹងឃើញ relay បើកឬបិទអាស្រ័យលើកម្រិតសំណើមដី។ សូមសាកល្បងក្នុងដីស្ងួត បន្ទាប់ដាក់ទឹក។ + + ```output + Soil Moisture: 638 + Soil Moisture is too low, turning relay on. + Soil Moisture: 452 + Soil Moisture is too low, turning relay on. + Soil Moisture: 347 + Soil Moisture is ok, turning relay off. + ``` + +> 💁 អ្នកអាចរកឃើញកូដនេះនៅក្នុងថត [code-relay/pi](../../../../../2-farm/lessons/3-automated-plant-watering/code-relay/pi) ។ + +😀 កម្មវិធី sensor សំណើមដីរបស់អ្នកដែលគ្រប់គ្រង relay បានសម្រេចជោគជ័យ! + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំរកភាពត្រឹមត្រូវ សូមយល់ពីការតែតំបន់ថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬការមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាមាតុភូមិនឹងត្រូវបានពិចារណាថាជាផ្លូវការនិងមានសុពលភាព។ សម្រាប់ព័ត៌មានសំខាន់ សូមផ្ដល់អាទិភាពការបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md b/translations/km/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md new file mode 100644 index 000000000..18a7824c7 --- /dev/null +++ b/translations/km/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md @@ -0,0 +1,120 @@ +# គ្រប់គ្រង relay - រ៉េហ្វវ័រពីរម៉ៀន IoT + +ក្នុងផ្នែកនេះនៃមេរៀន អ្នកនឹងបន្ថែម relay ទៅឧបករណ៍ IoT ពីរម៉ៀនរបស់អ្នក បន្ថែមលើឧបករណ៍វាស់សំណើមដី ហើយគ្រប់គ្រងវាដោយផ្អែកលើកម្រិតសំណើមដី។ + +## ហาร์ដវ័រទេស + +ឧបករណ៍ IoT ពីរម៉ៀននេះនឹងប្រើ relay Grove ចម្លង។ នេះធ្វើឱ្យមន្ទីរបង្រៀននេះនៅដូចគ្នាជាមួយបង្កាន់ដៃ Raspberry Pi ដែលមាន relay Grove រូបសំណាក់។ + +នៅក្នុងឧបករណ៍ IoT ជាក់ស្តែង relay នឹងជារបារធម្មតា which normally-open relay (មានន័យថាសៀគ្វីចេញគឺបើក ឬផ្ដាច់បើគ្មានសញ្ញាផ្ញើទៅឲ្យ relay)។ Relay លักษณะនេះអាចគ្រប់គ្រងសៀគ្វីចេញរហូតដល់ 250V និង 10A។ + +### បន្ថែម relay ទៅ CounterFit + +ដើម្បីប្រើ relay ពីរម៉ៀន អ្នកត្រូវបន្ថែមវាទៅកម្មវិធី CounterFit + +#### ការងារ + +បន្ថែម relay ទៅកម្មវិធី CounterFit។ + +1. បើកគម្រោង `soil-moisture-sensor` ពីមេរៀនមុនក្នុង VS Code ប្រសិនបើវាមិនទាន់បើកទេ។ អ្នកនឹងបន្ថែមទៅគម្រោងនេះ។ + +1. ប្រាកដថាកម្មវិធី CounterFit ផ្ដល់សេវាកម្មត្រូវដំណើរការ។ + +1. បង្កើត relay: + + 1. នៅក្នុងប្រអប់ *Create actuator* ក្នុងផ្នែក *Actuators* បូកធ្លាក់ប្រអប់ *Actuator type* ហើយជ្រើស *Relay*។ + + 1. កំណត់ *Pin* ទៅ *5* + + 1. ជ្រើសប៊ូតុង **Add** ដើម្បីបង្កើត relay នៅ Pin 5 + + ![The relay settings](../../../../../translated_images/km/counterfit-create-relay.fa7c40fd0f2f6afc.webp) + + relay នឹងត្រូវបានបង្កើត និងបង្ហាញក្នុងបញ្ជី actuators។ + + ![The relay created](../../../../../translated_images/km/counterfit-relay.bbf74c1dbdc8b9ac.webp) + +## កម្មវិធី relay + +កម្មវិធីឧបករណ៍វាស់សំណើមដីឥឡូវនេះអាចកម្មវិធី relay Grove ពីរម៉ៀនហើយបាន។ + +### ការងារ + +កម្មវិធីឧបករណ៍ពីរម៉ៀន។ + +1. បើកគម្រោង `soil-moisture-sensor` ពីមេរៀនមុនក្នុង VS Code ប្រសិនបើវាមិនទាន់បើកទេ។ អ្នកនឹងបន្ថែមទៅគម្រោងនេះ។ + +1. បន្ថែមកូដខាងក្រោមទៅឯកសារ `app.py` ខាងក្រោមការនាំចូលដែលមានស្រាប់៖ + + ```python + from counterfit_shims_grove.grove_relay import GroveRelay + ``` + + ពាក្យបញ្ជានេះនាំចូល `GroveRelay` ពីបណ្ណាល័យ Grove Python shim ដើម្បីអនុវត្តន៍ទៅ relay Grove ពីរម៉ៀន។ + +1. បន្ថែមកូដខាងក្រោមនៅក្រោមការបញ្ចាក់ថ្នាក់ `ADC` ដើម្បីបង្កើតឱ្យមាន relay GroveRelay មួយ៖ + + ```python + relay = GroveRelay(5) + ``` + + នេះបង្កើត relay ប្រើ pin **5** ដែលជាប៊ិចដែលអ្នកភ្ជាប់ relay ទៅ។ + +1. ដើម្បីសាកល្បងយល់ថា relay ដំណើរការ ត្រូវបន្ថែមកូដខាងក្រោមទៅវដ្ត `while True:`៖ + + ```python + relay.on() + time.sleep(.5) + relay.off() + ``` + + កូដនេះបើក relay រង់ចាំរយៈពេល 0.5 វិនាទី បន្ទាប់មកបិទ relay។ + +1. រត់កម្មវិធី Python។ relay នឹងបើក និងបិទរៀងរាល់ ១០ វិនាទី ដោយមានពេលយឺតរយៈពេលពាក់កណ្តាលវិនាទីរវាងការបើកនិងបិទ។ អ្នកនឹងមើលឃើញ relay ពីរម៉ៀននៅក្នុងកម្មវិធី CounterFit បិទ និងបើកឡើងពេល relay ត្រូវបើក និងបិទ។ + + ![The virtual relay turning on and off](../../../../../images/virtual-relay-turn-on-off.gif) + +## គ្រប់គ្រង relay ពីសំណើមដី + +ឥឡូវ relay ធ្វើការ បាន អាចគ្រប់គ្រងតាមបំណិនចេញពីការវាស់សំណើមដីបាន។ + +### ការងារ + +គ្រប់គ្រង relay។ + +1. លុបបន្ទាត់កូដ ៣ ខ្សែរ ដែលបានបន្ថែមសម្រាប់សាកល្បង relay។ ជំនួសដោយកូដខាងក្រោម៖ + + ```python + if soil_moisture > 450: + print("Soil Moisture is too low, turning relay on.") + relay.on() + else: + print("Soil Moisture is ok, turning relay off.") + relay.off() + ``` + + កូដនេះពិនិត្យកម្រិតសំណើមដីពីឧបករណ៍វាស់សំណើមដី។ ប្រសិនបើខ្ពស់ជាង ៤៥០ វានឹងបើក relay ហើយបិទ relay ប្រសិនបើទាបជាង ៤៥០។ + + > 💁 ចងចាំថាឧបករណ៍វាស់សំណើមដីប្រភេទ capacitive យកតម្លៃតិចបង្ហាញថា ដីមានសំណើមច្រើន ហើយតម្លៃខ្ពស់បង្ហាញថាសំណើមមានតិច។ + +1. រត់កម្មវិធី Python។ អ្នកនឹងឃើញ relay បើក ឬបិទ ដោយផ្អែកលើកម្រិតសំណើមដី។ ប្ដូរតម្លៃ *Value* ឬការកំណត់ *Random* សម្រាប់ឧបករណ៍វាស់សំណើមដីដើម្បីមើលការប្រែប្រួលតម្លៃ។ + + ```output + Soil Moisture: 638 + Soil Moisture is too low, turning relay on. + Soil Moisture: 452 + Soil Moisture is too low, turning relay on. + Soil Moisture: 347 + Soil Moisture is ok, turning relay off. + ``` + +> 💁 អ្នកអាចរកកូដនេះនៅក្នុងថត [code-relay/virtual-device](../../../../../2-farm/lessons/3-automated-plant-watering/code-relay/virtual-device)។ + +😀 កម្មវិធីឧបករណ៍វាស់សំណើមដីពីរម៉ៀនដែលគ្រប់គ្រង relay របស់អ្នកជោគជ័យហើយ! + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំប្រឹងប្រែងសំរាប់ភាពត្រឹមត្រូវ សូមជម្រាបជាអតិភាពថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមដែលមាននៅក្នុងភាសាមូលដ្ឋានគួរត្រូវបានពិចារណាថាជា ប្រភពត្រឹមត្រូវបំផុត។ សំរាប់ព័ត៌មានសំខាន់ៗ យើងផ្តល់អនុសាសន៍ឲ្យប្រើការបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសពីការប្រើប្រាស់ការបកប្រែនេះទេ។ + \ No newline at end of file diff --git a/translations/km/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md b/translations/km/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md new file mode 100644 index 000000000..2ad021842 --- /dev/null +++ b/translations/km/2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md @@ -0,0 +1,114 @@ +# ពិសោធន៍សន្ទស្សន៍ Relay - Wio Terminal + +នៅផ្នែកនេះនៃមេរៀន អ្នកនឹងបន្ថែមសន្ទស្សន៍ទៅលើ Wio Terminal របស់អ្នក បន្ថែមពីឧបករណ៍វាស់សំណើមដី ហើយគ្រប់គ្រងវាតាមមូលដ្ឋានលើកម្រិតសំណើមដី។ + +## ឧបករណ៍គ្រប់គ្រាន់ + +Wio Terminal ត្រូវការសន្ទស្សន៍ relay។ + +Relay ដែលអ្នកនឹងប្រើគឺ [Grove relay](https://www.seeedstudio.com/Grove-Relay.html) ដែលជាសន្ទស្សន៍បើកធម្មតា (មានមនុស្សលទ្ធភាពបើកសៀគ្វីចេញ ឬផ្ដាច់ពីគ្នា នៅពេលពុំមានសញ្ញាត្រូវផ្ញើទៅសន្ទស្សន៍) ដែលអាចគ្រប់គ្រងសៀគ្វីចេញដល់ទៅ 250V និង 10A។ + +នេះគឺជាឧបករណ៍អេឡិចត្រូនិចជាក់ស្តែង (digital actuator) ដូច្នេះភ្ជាប់ទៅនឹងគ្រាប់ digital នៅលើ Wio Terminal។ ប្រភេទច្រកផ្សំរវាងអាណាឡុក/ឌីជីថលត្រូវបានគេប្រើរួចជាមួយឧបករណ៍វាស់សំណើមដី ហើយដូច្នេះវាទំនាក់ទំនងទៅច្រកផ្សំផ្សេងទៀត ដែលជាច្រកផ្សំ I2C និងឌីជីថលរួមគ្នា។ + +### ភ្ជាប់សន្ទស្សន៍ relay + +Grove relay អាចត្រូវបានភ្ជាប់ទៅច្រកឌីជីថលនៃ Wio Terminal។ + +#### ពិសោធន៍ + +ភ្ជាប់សន្ទស្សន៍ relay។ + +![A grove relay](../../../../../translated_images/km/grove-relay.d426958ca210fbd0.webp) + +1. បញ្ចូលមួយចំហៀងនៃខ្សែ Grove ចូលទៅក្នុងរន្ធនៅលើសន្ទស្សន៍។ វានឹងចូលតែលបើកមួយទិសតែម្តង។ + +1. នៅពេលដែល Wio Terminal មិនភ្ជាប់ទៅកុំព្យូទ័រឬថាមពលផ្សេងទៀតទេ សូមភ្ជាប់ម្ខាងទៀតនៃខ្សែ Grove ទៅនឹងរន្ធ Grove ផ្នែកខាងឆ្វេងនៅលើ Wio Terminal នៅពេលអ្នកមើលទៅផ្ទៃថេប។ ទុកឱ្យឧបករណ៍វាស់សំណើមដីនៅតែភ្ជាប់នៅលើរន្ធខាងស្ដាំ។ + +![The grove relay connected to the left-hand socket, and the soil moisture sensor connected to the right hand socket](../../../../../translated_images/km/wio-relay-and-soil-moisture-sensor.ed722202d42babe0.webp) + +1. បញ្ចូលឧបករណ៍វាស់សំណើមដីចូលក្នុងដី ប្រសិនបើវាមិនបានជាប់រួចពីមេរៀនមុនទេ។ + +## ពិសោធន៍កម្មវិធីសន្ទស្សន៍ relay + +ឥឡូវនេះ Wio Terminal អាចត្រូវបានកម្មវិធីបំពាក់ ដើម្បីប្រើ relay ដែលភ្ជាប់រួចហើយ។ + +### ពិសោធន៍ + +កម្មវិធីឱ្យឧបករណ៍ដំណើរការ។ + +1. បើកគម្រោង `soil-moisture-sensor` ពីមេរៀនមុនក្នុង VS Code ប្រសិនបើវាមានការបើករួចហើយ។ អ្នកនឹងកំពុងបន្ថែមទៅគម្រោងនេះ។ + +2. គ្មានបណ្ណាល័យសម្រាប់ឧបករណ៍នេះទេ - វាជាឧបករណ៍ឌីជីថលដែលត្រូវបានគ្រប់គ្រងដោយសញ្ញាខ្ពស់ ឬទាប។ ដើម្បីបើកវា អ្នកផ្ញើសញ្ញាខ្ពស់ទៅលេខពិន (3.3V) ដើម្បីបិទវា អ្នកផ្ញើសញ្ញាទាប (0V)។ អ្នកអាចប្រើមុខងារ Arduino ក្នុងសំណុំបែបបទ [`digitalWrite`](https://www.arduino.cc/reference/en/language/functions/digital-io/digitalwrite/)។ ចាប់ផ្តើមដោយបន្ថែមខាងក្រោមទៅផ្នែកចុះក្រោមរបស់មុខងារ `setup` ដើម្បីកំណត់ច្រក I2C/ឌីជីថលរួមជាលេខពិនចេញសម្រាប់ផ្ញើវ៉ុលទៅសន្ទស្សន៍ relay៖ + + ```cpp + pinMode(PIN_WIRE_SCL, OUTPUT); + ``` + + `PIN_WIRE_SCL` ជាលេខសម្រាប់ច្រក I2C/ឌីជីថលរួម។ + +1. ដើម្បីសាកល្បង relay ប្រតិបត្តិការបាន ត្រូវបន្ថែមខាងក្រោមទៅមុខងារ `loop` ក្រោមមុខងារ `delay` ចុងក្រោយ៖ + + ```cpp + digitalWrite(PIN_WIRE_SCL, HIGH); + delay(500); + digitalWrite(PIN_WIRE_SCL, LOW); + ``` + + កូដនេះសរសេរសញ្ញាខ្ពស់ទៅលើលេខពិនដែល relay ភ្ជាប់ដើម្បីបើកវា រង់ចាំ 500 មីល្លីនាទី (កន្លះវិនាទី) បន្ទាប់មកសរសេរសញ្ញាទាបដើម្បីបិទ relay។ + +1. រៀបចំនិងផ្ទុកកូដទៅលើ Wio Terminal។ + +1. បន្ទាប់ពីផ្ទុករួច relay នឹងបើក និងបិទរៀងរាល់ 10 វិនាទី ភ្លាមដាក់ពន្លឺលម្អៀងកន្លះវិនាទីនៅពេលបើក និងបិទ។ អ្នកនឹងឮសំឡេង relay ចុចបើកបិទ។ LED នៅលើកំណត់ Grove នឹងភ្លឺពេល relay បើក ហើយងាក់ទៅពេល relay បិទ។ + + ![The relay turning on and off](../../../../../images/relay-turn-on-off.gif) + +## គ្រប់គ្រង relay ពីសំណើមដី + +ឥឡូវ relay ដំណើរការបាន អ្នកអាចគ្រប់គ្រងវាតាមការអានកម្រិតសំណើមដី។ + +### ពិសោធន៍ + +គ្រប់គ្រង relay។ + +1. លុបបន្ទាត់កូដ ៣ ដែលអ្នកបានបន្ថែមសម្រាប់សាកល្បង relay។ ជំនួសរបស់វា ជាមួយកូដដូចខាងក្រោម៖ + + ```cpp + if (soil_moisture > 450) + { + Serial.println("Soil Moisture is too low, turning relay on."); + digitalWrite(PIN_WIRE_SCL, HIGH); + } + else + { + Serial.println("Soil Moisture is ok, turning relay off."); + digitalWrite(PIN_WIRE_SCL, LOW); + } + ``` + + កូដនេះពិនិត្យកម្រិតសំណើមដីពីឧបករណ៍វាស់សំណើមដី។ ប្រសិនបើវាលើសពី 450 វាបើក relay ហើយបិទ relay នៅពេលវាជំរុញក្រោម 450។ + + > 💁 ចងចាំថា ឧបករណ៍វាស់សំណើមដីប្រើតែកម្រិតសំណើមដីទាបបង្ហាញថាមានសំណើមច្រើនក្នុងដី ហើយផ្ទុយគ្នា។ + +1. រៀបចំនិងផ្ទុកកូដទៅលើ Wio Terminal។ + +1. ត្រួតពិនិត្យឧបករណ៍តាមរយៈម៉ូនីទ័រ serial។ អ្នកនឹងឮ relay បើក ឬបិទផ្អែកលើកម្រិតសំណើមដី។ សាកល្បងនៅក្នុងដីស្ងួត រួចបន្ថែមទឹកមើល។ + + ```output + Soil Moisture: 638 + Soil Moisture is too low, turning relay on. + Soil Moisture: 452 + Soil Moisture is too low, turning relay on. + Soil Moisture: 347 + Soil Moisture is ok, turning relay off. + ``` + +> 💁 អ្នកអាចស្វែងរកកូដនេះនៅក្នុងថត [code-relay/wio-terminal](../../../../../2-farm/lessons/3-automated-plant-watering/code-relay/wio-terminal)។ + +😀 កម្មវិធីឧបករណ៍វាស់សំណើមធ្វើការគ្រប់គ្រង relay របស់អ្នកទទួលបានជោគជ័យ! + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយការប្រើប្រាស់សេវាកម្មបកប្រែដោយ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំប្រឹងប្រែងដើម្បីភាពត្រឹមត្រូវ សូមយល់ដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិស័ព្ទអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារច្បាស់លាស់ដើមដោយភាសាដើមគួរតែប្រើជាធនាគារផ្លូវការ។ សម្រាប់ព័ត៌មានសំខាន់ណាស់ គួរតែប្រើប្រាស់ការបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំឬការបកប្រែខុសណាមួយដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md b/translations/km/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md new file mode 100644 index 000000000..a07920dcc --- /dev/null +++ b/translations/km/2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md @@ -0,0 +1,442 @@ +# ប្ដូរដំណាំរបស់អ្នកទៅមេឃ + +![រូបថតសង្ខេបនៃមេរៀននេះ](../../../../../translated_images/km/lesson-8.3f21f3c11159e6a0.webp) + +> សេតចំណាំដោយ [Nitya Narasimhan](https://github.com/nitya). ចុចលើរូបភាពសម្រាប់កំណែធំជាងនេះ។ + +មេរៀននេះត្រូវបានបង្រៀនជាផ្នែកមួយនៃ [គម្រោង IoT សម្រាប់អ្នកចាប់ផ្ដើម ភាគ 2 - ស៊េរីកស្រះកសិកម្មឌីជីថល](https://youtube.com/playlist?list=PLmsFUfdnGr3yCutmcVg6eAUEfsGiFXgcx) ពី [Microsoft Reactor](https://developer.microsoft.com/reactor/?WT.mc_id=academic-17441-jabenn)។ + +[![ភ្ជាប់ឧបករណ៍របស់អ្នកទៅមេឃជាមួយ Azure IoT Hub](https://img.youtube.com/vi/bNxjopXkhvk/0.jpg)](https://youtu.be/bNxjopXkhvk) + +## ប្រលងមុនបង្រៀន + +[ប្រលងមុនបង្រៀន](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/15) + +## បើកមុខ + +ក្នុងមេរៀនមុន អ្នកបានរៀនពីរបៀបភ្ជាប់ដំណាំរបស់អ្នកទៅរបង MQTT និងគ្រប់គ្រងឌីខ្ល័រពីកូដម៉ាស៊ីនមេដែលដំណើរការជាស្រុក។ វាជាគន្លងមូលដ្ឋាននៃប្រព័ន្ធបាញ់ទឹកដើម្បីស្វ័យប្រវត្តិនៃប្រភេទដែលប្រើពីដំណាំមួយនៅផ្ទះរហូតដល់កសិដ្ឋានពាណិជ្ជកម្ម។ + +ឧបករណ៍ IoT បានធ្វើការទំនាក់ទំនងជាមួយរបង MQTT សាធារណៈជារបៀបដើម្បីបង្ហាញគន្លងបច្ចេកទេស ប៉ុន្តែវាមិនមែនជារបៀបដែលទុកចិត្ត ឬមានសុវត្ថិភាពខ្ពស់បំផុតទេ។ ក្នុងមេរៀននេះ អ្នកនឹងរៀនអំពីមេឃ និងសមត្ថភាព IoT ដែលបានផ្តល់ដោយសេវាកម្មមេឃសាធារណៈ។ អ្នកនឹងរៀនផងដែរ របៀបប្ដូរដំណាំរបស់អ្នកទៅកាន់សេវាកម្មមេឃមួយចេញពីរបង MQTT សាធារណៈ។ + +នៅក្នុងមេរៀននេះ យើងនឹងគ្របដណ្តប់៖ + +* [មេឃគឺជាអ្វី?](#មេឃគឺជាអ្វី) +* [បង្កើតការជាវមេឃ](#បង្កើតការជាវមេឃ) +* [សេវា IoT មេឃ](#សេវា-iot-មេឃ) +* [បង្កើតសេវា IoT នៅក្នុងមេឃ](#បង្កើតសេវា-iot-នៅក្នុងមេឃ) +* [ទំនាក់ទំនងជាមួយ IoT Hub](#ទំនាក់ទំនងជាមួយ-iot-hub) +* [ភ្ជាប់ឧបករណ៍របស់អ្នកទៅកាន់សេវា IoT](#តភ្ជាប់ឧបករណ៍របស់អ្នកទៅសេវា-iot) + +## មេឃគឺជាអ្វី? + +មុនមានមេឃ បុគ្គលិកភាពមួយចង់ផ្តល់សេវាកម្មទៅបុគ្គលិករបស់ពួកគេ (ដូចជា ទិន្នន័យធ្វើបរិញ្ញាណ ឬផ្ទុកឯកសារ) ឬឲ្យសាធារណៈ (ដូចជា វេបសាយ) ពួកគេនឹងសាងសង់និងដំណើរការទិន្នន័យមួយកន្លែង។ វាផ្ទុយពីបន្ទប់មានកុំព្យូទ័រលិចលាក់មួយ ឬអគារធំៗមានកុំព្យូទ័រច្រើន។ ក្រុមហ៊ុននឹងគ្រប់គ្រងគ្រប់យ៉ាង រួមមាន៖ + +* ទិញកុំព្យូទ័រ +* រក្សាប្រព័ន្ធគ្រឿងចក្រ +* អគ្គិសនី និង ការចង្អុលត្រជាក់ +* បណ្ដាញ +* សុវត្ថិភាព រួមមានសុវត្ថិភាពអគារ និងសុវត្ថិភាពកម្មវិធីកុំព្យូទ័រ +* ដំឡើងនិងធ្វើបច្ចុប្បន្នភាពកម្មវិធី + +វាអាចមានតម្លៃខ្ពស់ តម្រូវឲ្យមានបុគ្គលិកជំនាញជាច្រើន និងយឺតយ៉ាវក្នុងការផ្លាស់ប្តូរតាមតម្រូវការ។ ឧទាហរណ៍ ប្រសិនបើហាងលក់អនឡាញត្រូវផ្ដល់ការរៀបចំសម្រាប់រដូវកាលលក់បំផុតពិសេសនៃថ្ងៃឈប់សម្រាក ពួកគេចាំបាច់ត្រូវគ្រោងមុនជាច្រើនខែដើម្បីទិញឧបករណ៍បន្ថែម កំណត់រចនាសម្ព័ន្ធ តម្លើងនិងដំឡើងកម្មវិធីដើម្បីដំណើរការជួញដូរ។ បន្ទាប់ពីរដូវកាលលក់បញ្ចប់ និងលក់ធ្លាក់ចុះ ពួកគេទទួលខុសត្រូវនៅកុំព្យូទ័រដែលបានទិញ ហើយវានៅមិនប្រើប្រាស់រហូតដល់រដូវកាលលក់បន្ទាប់។ + +✅ តើអ្នកគិតថាវានឹងអនុញ្ញាតឲ្យក្រុមហ៊ុនយកល្បឿនលឿន? ប្រសិនបើហាងលក់សម្លៀកបំពាក់ទំនើបមួយកើតមានពេញនិយមយ៉ាងខ្លាំងដោយសារម្ចាស់ពាណិជ្ជកម្មមួយបង្ហាញក្នុងសម្លៀកបំពាក់ រកដល់ពួកគេអាចបង្កើនថាមពលកុំព្យូទ័របានយ៉ាងលឿនគ្រប់គ្រងការបញ្ជាទិញចោល? + +### កុំព្យូទ័ររបស់អ្នកផ្សេងទៀត + +មេឃអាចត្រូវបានគេចោទថាជា 'កុំព្យូទ័ររបស់អ្នកផ្សេងទៀត' ដោយការកំប្លែង។ គំនិតដំបូន្មានគឺ យើងមិនទិញកុំព្យូទ័រឡើយ តែជួលកុំព្យូទ័ររបស់អ្នកផ្សេងទៀត។ អ្នកផ្គត់ផ្គង់កុំព្យូទ័រមេឃធំៗនឹងគ្រប់គ្រងមជ្ឈមណ្ឌលទិន្នន័យធំនេះ។ ពួកគេមានទំនួលខុសត្រូវទិញនិងដំឡើងគ្រឿងចក្រ បើកផ្គត់ផ្គង់អគ្គិសនី និងត្រជាក់ បណ្ដាញ សុវត្ថិភាពអគារ និងកម្មវិធីធ្វើបច្ចុប្បន្នភាព។ ជាអតិថិជន អ្នកនឹងជួលកុំព្យូទ័រត្រូវការប្រើ ជួលច្រើនជាងពេលតម្រូវការ បន្ទាប់បន្ថយចំនួនជួលពេលតម្រូវការបិទ។ មជ្ឈមណ្ឌលទិន្នន័យមេឃទាំងនេះមាននៅជុំវិញពិភពលោក។ + +![មជ្ឈមណ្ឌលទិន្នន័យមេឃ Microsoft](../../../../../translated_images/km/azure-region-existing.73f704604f2aa6cb.webp) +![ការពង្រីកដែលមានផែនការរបស់មជ្ឈមណ្ឌលទិន្នន័យមេឃ Microsoft](../../../../../translated_images/km/azure-region-planned-expansion.a5074a1e8af74f15.webp) + +មជ្ឈមណ្ឌលទិន្នន័យទាំងនេះអាចមានទំហំនាប់រាងច្រើនគីឡូម៉ែត្រការ៉េ។ រូបភាពខាងលើបានចាប់យកមុននេះរយៈពេលពីរឆ្នាំនៅក្នុងមជ្ឈមណ្ឌលទិន្នន័យមេឃ Microsoft ហើយលើកសហគ្រាសដំបូងរបស់វា ជាមួយផែនការពង្រីកខាងមុខ។ ដែនទន្លារភាគច្រើនសម្រាប់ការពង្រីកនេះមានលើស 5 គីឡូម៉ែត្រការ៉េ។ + +> 💁 មជ្ឈមណ្ឌលទិន្នន័យទាំងនេះត្រូវប្រើអគ្គិសនីច្រើនបំផុត ហើយខ្លះមានបរិក្ខារផ្ទាល់ខ្លួនផ្គត់ផ្គង់អគ្គិសនី។ ដោយសារ ទំហំ និងការវិនិយោគខ្ពស់ពីអ្នកផ្គត់ផ្គង់មេឃ វាមានភាពជាមិត្តបរិស្ថានខ្ពស់។ វាសមត្ថភាពប្រើប្រាស់ល្អជាងមជ្ឈមណ្ឌលទិន្នន័យតូចច្រើនៗមួយចំនួន ជាញឹកញាប់ប្រើថាមពលអាចត្រឡប់មកវិញបាន ហើយអ្នកផ្គត់ផ្គង់មេឃខំប្រឹងកាត់បន្ថយអាកប្បកិរិយា កាត់បន្ថយការប្រើប្រាស់ទឹក និងដាំព្រៃឡើងវិញ ដើម្បីជំនួសព្រៃដែលបានកាត់ដើម្បីផ្ដល់កន្លែងសាងសង់មជ្ឈមណ្ឌលទិន្នន័យ។ អ្នកអាចអានបន្ថែមអំពីរបៀបដែលអ្នកផ្គត់ផ្គង់មេឃមួយកំពុងធ្វើការនៅលើការរស់នៅតែមួយនៅលើ [គេហទំព័រស្វាគមន៍របស់ Azure](https://azure.microsoft.com/global-infrastructure/sustainability/?WT.mc_id=academic-17441-jabenn)។ + +✅ ស្វែងយល់បន្ថែម៖ អានអំពីមេឃធំៗ ដូចជា [Azure ពី Microsoft](https://azure.microsoft.com/?WT.mc_id=academic-17441-jabenn) ឬ [GCP ពី Google](https://cloud.google.com) ពួកគេមានមជ្ឈមណ្ឌលទិន្នន័យប៉ុន្មាន និងមានទីតាំងនៅឯណានៅលើពិភពលោក? + +ការប្រើប្រាស់មេឃរក្សាតម្លៃបានទាបសម្រាប់ក្រុមហ៊ុន ហើយអនុញ្ញាតឲ្យពួកគេផ្ដោតលើអ្វីដែលពួកគេច្បាស់លាស់ ដោយទុកជំនាញកុំព្យូទ័រជំនួយសម្រាប់អ្នកផ្គត់ផ្គង់។ ក្រុមហ៊ុនមិនចាំបាច់ជួល ឬទិញទីតាំងមជ្ឈមណ្ឌលទិន្នន័យ បង់ប្រាក់ជាអ្នកផ្គត់ផ្គង់ផ្សេងៗសម្រាប់ការតភ្ជាប់ និងអគ្គិសនី ឬជ្រើសរើសជំនាញទេ។ ផ្ទុយទៅវិញ ពួកគេអាចបង់ប្រាក់ជាប្រាក់ខែឲ្យអ្នកផ្គត់ផ្គង់មេឃមួយ ដើម្បីឲ្យគ្រប់យ៉ាងត្រូវបានអនុវត្ត។ + +អ្នកផ្គត់ផ្គង់មេឃហូបប្រាក់ច្រើន ដើម្បីធន់ទៅនឹងចំណាយ និងទិញកុំព្យូទ័រច្រើនជាបក្ស ឬឧបករណ៍រចនាថ្មីៗ ដើម្បីធ្វើអោយសេវាកម្មរបស់ពួកគេប្រសើរឡើង។ + +### Microsoft Azure + +Azure គឺជាមេឃសម្រាប់អ្នកអភិវឌ្ឍដោយ Microsoft ហើយនេះគឺជាមេឃដែលអ្នកនឹងប្រើសម្រាប់មេរៀនទាំងនេះ។ វីដេអូខាងក្រោមផ្តល់ការណែនាំខ្លីពី Azure៖ + +[![សង្ខេបអំពីវីដេអូ Azure](../../../../../translated_images/km/what-is-azure-video-thumbnail.20174db09e03bbb8.webp)](https://www.microsoft.com/videoplayer/embed/RE4Ibng?WT.mc_id=academic-17441-jabenn) + +## បង្កើតការជាវមេឃ + +ដើម្បីប្រើសេវាកម្មក្នុងមេឃ អ្នកចាំបាច់ត្រូវចុះឈ្មោះសម្រាប់ការជាវជាមួយពុម្ពម្ចាស់មេឃ។ សម្រាប់មេរៀននេះ អ្នកនឹងចុះឈ្មោះពីការជាវ Microsoft Azure។ ប្រសិនបើអ្នកមានការជាវ Azure របស់អ្នករួចហើយ អ្នកអាចរំលងភារកិច្ចនេះបាន។ ព័ត៌មានការជាវដែលពិពណ៌នានៅទីនេះខាងលើត្រឹមត្រូវនៅពេលនិពន្ធ ប៉ុន្តែអាចផ្លាស់ប្តូរបាន។ + +> 💁 ប្រសិនបើអ្នកកំពុងចូលប្រើមេរៀនទាំងនេះតាមរយៈសាលារៀនរបស់អ្នក អ្នកអាចមានការជាវ Azure ដែលមានស្រាប់រួច។ សូមពិនិត្យជាមួយគ្រូរបស់អ្នក។ + +មានប្រភេទការជាវ Azure ដោយឥតគិតថ្លៃពីរ ដែលអ្នកអាចចុះឈ្មោះ៖ + +* **Azure សម្រាប់សិស្ស** - នេះគឺជាការជាវដែលគេរចនាឡើងសម្រាប់សិស្សអាយុ 18ឆ្នាំឡើង។ អ្នកមិនចាំបាច់មានកាតឥណទានសម្រាប់ចុះឈ្មោះទេ ហើយអ្នកប្រើអាសយដ្ឋានអ៊ីមែលសាលារបស់អ្នកសម្រាប់ផ្ទៀងផ្ទាត់ថាអ្នកជាសិស្ស។ ពេលចុះឈ្មោះ អ្នកនឹងទទួលបានប្រាក់ US$100 សម្រាប់ប្រើចំណាយលើធនធាន Cloud ជាមួយនឹងសេវាឥតគិតថ្លៃ រួមមានកំណែថ្មោងនៃសេវា IoT។ វាគ្រោងនៅរយៈពេល 12 ខែ ហើយអ្នកអាចផ្លាស់ប្តូរជាប្រចាំរៀងរាល់ឆ្នាំពេលអ្នកនៅជាសិស្ស។ + +* **ការជាវ Azure ដោយឥតគិតថ្លៃ** - នេះគឺជាការជាវសម្រាប់នរណាក៏បានដែលមិនមែនជាសិស្ស។ អ្នកចាំបាច់ត្រូវមានកាតឥណទានសម្រាប់ចុះឈ្មោះការជាវ ប៉ុន្តែកាតរបស់អ្នកនឹងមិនត្រូវបានគិតថ្លៃទេ វាត្រឹមតែបង្កើតការផ្ទៀងផ្ទាត់ថាអ្នកជាមនុស្សពិតមិនមែនជារ៉ូបូត។ អ្នកនឹងទទួលបានកាតឥណទាន $200 សម្រាប់ប្រើក្នុងរយៈពេល 30ថ្ងៃផ្តើម សម្រាប់សេវាណាមួយជាមួយកម្រិតឥតគិតថ្លៃ។ បន្ទាប់ពីកាតឥណទានបានប្រើបញ្ចប់ កាតរបស់អ្នកនឹងមិនត្រូវបានគិតថ្លៃទេទៅលើយ៉ាងដូច្នេះទេ ប្រសិនបើអ្នកមិនបម្លែងជាការជាវបង់តាមការប្រើប្រាស់។ + +> 💁 Microsoft មានផ្តល់ជូនការជាវ Azure សម្រាប់សិស្សចាប់ពីក្រោម 18 ឆ្នាំ ដែរ ប៉ុន្តែពេលនេះមិនគាំទ្រ សេវា IoT ណាមួយទេ។ + +### ភារកិច្ច - ចុះឈ្មោះសម្រាប់ការជាវមេឃឥតគិតថ្លៃ + +ប្រសិនបើអ្នកជាសិស្សអាយុ 18 ឆ្នាំឡើង អ្នកអាចចុះឈ្មោះសម្រាប់ការជាវ Azure សម្រាប់សិស្ស។ អ្នកត្រូវផ្ទៀងផ្ទាត់ដោយអាសយដ្ឋានអ៊ីមែលសាលារៀន។ អ្នកអាចធ្វើនេះមានពីរប្រភេទ៖ + +* ចុះឈ្មោះសម្រាប់កញ្ចប់អ្នកអភិវឌ្ឍន៍សិស្ស GitHub នៅ [education.github.com/pack](https://education.github.com/pack)។ នេះផ្តល់ឱ្យអ្នកនូវឧបករណ៍ និងការផ្តល់ជូនជាច្រើន រួមមាន GitHub និង Microsoft Azure។ បន្ទាប់ពីចុះឈ្មោះរួច អ្នកអាចដំណើរការ Azure សម្រាប់សិស្សបាន។ + +* ចុះឈ្មោះផ្ទាល់សម្រាប់គណនី Azure សម្រាប់សិស្សនៅ [azure.microsoft.com/free/students](https://azure.microsoft.com/free/students/?WT.mc_id=academic-17441-jabenn)។ + +> ⚠️ ប្រសិនបើអាសយដ្ឋានអ៊ីមែលសាលារបស់អ្នកមិនត្រូវបានស្គាល់ សូមបង្កើត [បញ្ហានៅក្នុងផ្ទាំងនេះ](https://github.com/Microsoft/IoT-For-Beginners/issues) ហើយយើងនឹងពិនិត្យមើលថាតើអាចបន្ថែមវាទៅបញ្ជីអនុញ្ញាត Azure សម្រាប់សិស្សទៅបានដែរឬទេ។ + +ប្រសិនបើអ្នកមិនមែនជាសិស្ស ឬអ្នកមិនមានអាសយដ្ឋានអ៊ីមែលសាលាដែលត្រឹមត្រូវទេ អ្នកអាចចុះឈ្មោះសម្រាប់ការជាវ Azure ដោយឥតគិតថ្លៃបាន។ + +* ចុះឈ្មោះសម្រាប់ការជាវ Azure ដោយឥតគិតថ្លៃនៅ [azure.microsoft.com/free](https://azure.microsoft.com/free/?WT.mc_id=academic-17441-jabenn) + +## សេវា IoT មេឃ + +របង MQTT សាធារណៈសាកល្បងដែលអ្នកកំពុងប្រើជួយសម្រាប់បង្រៀនមានគុណសម្បត្តិល្អ ប៉ុន្តែមានកំហុសជាច្រើនទាក់ទងឧបករណ៍ជាងតែក្នុងបរិបទពាណិជ្ជកម្ម៖ + +* ភាពទុកចិត្ត - វាជាសេវាឥតគិតថ្លៃ និងគ្មានការធានា ចេះតែអាចបិទពេលណាមួយបាន +* សុវត្ថិភាព - វាសាធារណៈ ដូច្នេះបើអ្នកណាអាចស្តាប់ទិន្នន័យរបស់អ្នក ឬផ្ញើបញ្ជាលេងដើម្បីគ្រប់គ្រងឧបករណ៍របស់អ្នកបាន +* ប្រសិទ្ធភាព - វាត្រូវបានរចនាឡើងសម្រាប់សារតែប៉ុន្មាន ដូច្នេះមិនអាចទ្រាំបានសារច្រើនៗកំពុងផ្ញើសារមក +* ការស្វែងរក - គ្មានវិធីដឹងថាឧបករណ៍ណាភ្ជាប់ + +សេវា IoT ក្នុងមេឃសំរេចករណីទាំងនេះ។ ពួកគេបានគ្រប់គ្រងដោយអ្នកផ្គត់ផ្គង់មេឃធំៗដែលវិនិយោគយ៉ាងខ្លាំងលើភាពទុកចិត្ត និងរួចរាល់ដើម្បីជំរុញពេលមានបញ្ហាណាមួយកើតឡើង។ ពួកគេមានសុវត្ថិភាពមូលដ្ឋានដើម្បីបញ្ឈប់អ្នកបញ្ឆោតដែលបានអានទិន្នន័យ ឬផ្ញើបញ្ជាជ្រើសរើស។ ពួកគេមានប្រសិទ្ធភាពខ្ពស់អាចដំណើរការសារលានលានរាប់លានលានសារពេលថ្ងៃហើយប្រើប្រាស់មេឃក្នុងការកំណត់កម្រិតតាមតម្រូវ។ + +> 💁 ទោះបីជាអ្នកបង់ប្រាក់សេវាគ្រប់ខែ សេវាកម្មមេឃភាគច្រើនផ្តល់ជូនកំណែឥតគិតថ្លៃនៃសេវា IoT របស់ពួកគេ ជាមួយនឹងកំណត់កម្រិតសារប្រចាំថ្ងៃ ឬឧបករណ៍របស់អ្នកភ្ជាប់។ កំណែឥតគិតថ្លៃនេះគឺគ្រប់គ្រាន់សម្រាប់អ្នកអភិវឌ្ឍសិក្សាអំពីសេវា។ + +ឧបករណ៍ IoT ភ្ជាប់ទៅសេវាមេឃដោយប្រើ SDK ឧបករណ៍ (បណ្ណាល័យផ្តល់កូដដើម្បីដំណើរការជាមួយមុខងារសេវា) ឬដោយផ្ទាល់តាមប្រព័ន្ធទំនាក់ទំនងដូចជា MQTT ឬ HTTP។ SDK ឧបករណ៍គឺមធ្យោបាយងាយស្រួលបំផុត ដោយវាគ្រប់គ្រងគ្រប់យ៉ាង ដូចជា ផ្ដាច់ល្បែងតំណផ្សព្វផ្សាយ ឬចុះបញ្ជី ហើយរបៀបគ្រប់គ្រងសុវត្ថិភាព។ + +![ឧបករណ៍ភ្ជាប់ទៅសេវាកម្មដោយប្រើ SDKឧបករណ៍។ កូដម៉ាស៊ីនមេចុះភ្ជាប់ទៅសេវាកម្មតាម SDK](../../../../../translated_images/km/iot-service-connectivity.7e873847921a5d6f.webp) + +ឧបករណ៍របស់អ្នក នឹងទំនាក់ទំនងជាមួយផ្នែកផ្សេងៗនៃកម្មវិធីរបស់អ្នកតាមសេវានេះ - ដូចជាការផ្ញើទិន្នន័យ និងទទួលបញ្ជាជាមួយ MQTT។ វាត្រូវបានគ្រប់គ្រងជាទូទៅតាម SDK សេវា ឬបណ្ណាល័យដូចគ្នា។ សារនឹងមកពីឧបករណ៍មកសេវា ដែលផ្នែកផ្សេងៗនៃកម្មវិធីអាចអានបាន និងសារអាចផ្ញើត្រឡប់ទៅឧបករណ៍របស់អ្នក។ + +![ឧបករណ៍មិនមានសោលេខសម្ងាត់ត្រឹមត្រូវមិនអាចភ្ជាប់ទៅសេវា IoT](../../../../../translated_images/km/iot-service-allowed-denied-connection.818b0063ac213fb8.webp) + +សេវាទាំងនេះអនុវត្តសុវត្ថិភាពដោយដឹងពីឧបករណ៍ទាំងអស់អាចភ្ជាប់និងផ្ញើទិន្នន័យ ប្រសិនបើឧបករណ៍ត្រូវបានចុះបញ្ជីជាមុនជាមួយសេវា ឬផ្តល់ឧបករណ៍អាក្រក់ ឬវិញ្ញាបនបត្រដើម្បីអនុញ្ញាតឲ្យឧបករណ៍ចុះបញ្ជីខ្លួននៅពេលដំបូងភ្ជាប់។ ឧបករណ៍មិនស្គាល់មិនអាចភ្ជាប់ បើពួកគេសាកល្បង សេវានឹងបដិសេធការភ្ជាប់ និងមិនពិនិត្យសារដែលបានផ្ញើ។ + +✅ ស្វែងយល់បន្ថែម៖ តើគ្រោះថ្នាក់អ្វីខ្លះដែលមានពីការមានសេវា IoT កើតស្វាត្យ ដែលឧបករណ៍ ឬកូដណាមួយអាចភ្ជាប់បាន? តើអ្នកអាចរកឃើញឧទាហរណ៍ច្បាស់លាស់នៃអ្នកបញ្ឆោតដែលប្រើប្រាស់វានេះបានបែបណា? + +ផ្នែកផ្សេងៗនៃកម្មវិធីរបស់អ្នកអាចភ្ជាប់ទៅសេវា IoT និងស្គាល់ពីឧបករណ៍ទាំងអស់ដែលភ្ជាប់ ឬបានចុះបញ្ជី ហើយទំនាក់ទំនងផ្ទាល់ជាច្រើនឬចុងក្រោមមួយ។ + +> 💁 សេវា IoT ក៏អនុវត្តសមត្ថភាពបន្ថែមទៀត ហើយអ្នកផ្គត់ផ្គង់មេឃមានសេវា និងកម្មវិធីបន្ថែមដែលអាចភ្ជាប់ទៅសេវានេះបាន។ ឧទាហរណ៍ ប្រសិនបើអ្នកចង់ផ្ទុកសារទិន្នន័យទាំងអស់ពីឧបករណ៍ទាំងអស់ក្នុងមូលដ្ឋានទិន្នន័យ វាគ្រាន់តែចុចពីរដងក្នុងឧបករណ៍ផ្គត់ផ្គង់មេឃដើម្បីភ្ជាប់សេវាទៅមូលដ្ឋានទិន្នន័យនោះ ហើយបញ្ចេញទិន្នន័យចូល។ + +## បង្កើតសេវា IoT នៅក្នុងមេឃ + +ឥឡូវនេះអ្នកមានការជាវ Azure អ្នកអាចចុះឈ្មោះសម្រាប់សេវា IoT មួយ។ សេវា IoT ពី Microsoft ហៅថា Azure IoT Hub។ + +![រូបសញ្ញា Azure IoT Hub](../../../../../translated_images/km/azure-iot-hub-logo.28a19de76d0a1932.webp) + +វីដេអូខាងក្រោមផ្តល់ការណែនាំខ្លីអំពី Azure IoT Hub៖ + +[![សង្ខេបវីដេអូ Azure IoT Hub](https://img.youtube.com/vi/smuZaZZXKsU/0.jpg)](https://www.youtube.com/watch?v=smuZaZZXKsU) + +> 🎥 ចុចលើរូបភាពខាងលើដើម្បីមើលវីដេអូ + +✅ ចំណាយពេលបន្តិចសម្រាប់ស្រាវជ្រាវ និងអានសង្ខេបអំពី IoT hub នៅក្នុង [ឯកសារអំពី Microsoft IoT Hub](https://docs.microsoft.com/azure/iot-hub/about-iot-hub?WT.mc_id=academic-17441-jabenn)។ +សេវាកម្មមេឃដែលមាននៅក្នុង Azure អាចត្រូវបានកំណត់តាមរយៈបណ្តាញផ្ទាល់លើគេហទំព័រ ឬតាមរយៈចំណុចបញ្ជាដោយប្រើ command-line interface (CLI)។ សម្រាប់ភារកិច្ចនេះ អ្នកនឹងប្រើ CLI។ + +### ភារកិច្ច - បញ្ចូល Azure CLI + +ដើម្បីប្រើ Azure CLI មុនដំបូងវាជាត្រូវតែបានបញ្ចូលលើកុំព្យូទ័រ PC ឬ Mac របស់អ្នក។ + +1. អនុវត្តតាមការណែនាំនៅក្នុង [ឯកសារ Azure CLI](https://docs.microsoft.com/cli/azure/install-azure-cli?WT.mc_id=academic-17441-jabenn) ដើម្បីបញ្ចូល CLI។ + +1. Azure CLI គាំទ្រតំណាងបន្ថែមជាច្រើនដែលបន្ថែមសមត្ថភាពក្នុងការគ្រប់គ្រងសេវាកម្ម Azure ផ្សេងៗ។ បញ្ចូលការបន្ថែម IoT ដោយរកម្មវិធីបញ្ជាខាងក្រោមពី command line របស់អ្នក៖ + + ```sh + az extension add --name azure-iot + ``` + +1. ពី command line របស់អ្នក ឬ terminal របស់អ្នក ប្រតិបត្តិការបញ្ជាខាងក្រោមដើម្បីចូលក្នុងជាវស្តុក Azure របស់អ្នកពី Azure CLI។ + + ```sh + az login + ``` + + ទំព័របណ្តាញនឹងត្រូវបានបើកនៅកម្មវិធីរុករករបស់អ្នក។ ចូលដោយគណនីដែលអ្នកបានបង្កើតជាវសម្រាប់ជាវ Azure របស់អ្នក។ បន្ទាប់ពីចូលរួចអ្នកអាចបិទផ្ទាំងរុករកបាន។ + +1. បើអ្នកមានជាវ Azure ច្រើន ដូចជាជាវដែលផ្តល់ដោយសាលា និងជាវ Azure សម្រាប់សិស្សរបស់អ្នកផ្ទាល់ អ្នកត្រូវតែជ្រើសរើសជាវដែលអ្នកចង់ប្រើ។ ប្រតិបត្តិការបញ្ជាបង្ហាញបញ្ជីជាវទាំងអស់ដែលអ្នកអាចចូលដំណើរការ៖ + + ```sh + az account list --output table + ``` + + ក្នុងលទ្ធផល អ្នកនឹងឃើញឈ្មោះនៃជាវនីមួយៗរួមជាមួយ `SubscriptionId`។ + + ```output + ➜ ~ az account list --output table + Name CloudName SubscriptionId State IsDefault + ---------------------- ----------- ------------------------------------ ------- ----------- + School-subscription AzureCloud cb30cde9-814a-42f0-a111-754cb788e4e1 Enabled True + Azure for Students AzureCloud fa51c31b-162c-4599-add6-781def2e1fbf Enabled False + ``` + + ដើម្បីជ្រើសរើសជាវដែលអ្នកចង់ប្រើ ប្រើបញ្ជាខាងក្រោម៖ + + ```sh + az account set --subscription + ``` + + ជំនួស `` ជាមួយ ID នៃជាវ ដែលអ្នកចង់ប្រើ។ បន្ទាប់ពីប្រតិបត្តិការ បញ្ជាខាងលើ សូមបើកបញ្ជាដូចគ្នាថ្មី ដើម្បីបញ្ជីគណនីរបស់អ្នក។ អ្នកនឹងឃើញជួរឈរ `IsDefault` ត្រូវបានសម្គាល់ជា `True` សម្រាប់ជាវដែលអ្នកបានកំណត់ថ្មី។ + +### ភារកិច្ច - បង្កើតក្រុមធនធាន (Resource Group) + +សេវាកម្ម Azure ដូចជា IoT Hub instances, កុំព្យូទ័រវិចិត្រស័ក្ត្រ, ប្រព័ន្ធទិន្នន័យ ឬសេវា AI ត្រូវបានគេស្គាល់ឈ្មោះថា **ធនធាន**។ មួយធនធានត្រូវបានដាក់ក្នុង **ក្រុមធនធាន** ដែលជាការប្រមូលផ្ដុំយោគយល់នៃធនធានមួយ ឬច្រើន។ + +> 💁 ការប្រើក្រុមធនធានមានន័យថាអ្នកអាចគ្រប់គ្រងសេវាកម្មជាច្រើនក្នុងពេលតែមួយ។ ឧទាហរណ៍ បន្ទាប់ពីលោកអ្នកបញ្ចប់មេរៀនទាំងអស់ សម្រាប់គម្រោងនេះ អ្នកអាចលុបក្រុមធនធាន ហើយធនធានទាំងអស់នៅក្នុងនោះនឹងត្រូវលុបដោយស្វ័យប្រវត្តិ។ + +1. មានមណ្ឌលទិន្នន័យ Azure ច្រើនដល់ជុំវិញពិភពលោក ដែលបានបែងចែកជាតំបន់។ នៅពេលអ្នកបង្កើតធនធានឬក្រុមធនធាន Azure អ្នកត្រូវជ្រើសទីតាំងដែលចង់បង្កើតវា។ ប្រតិបត្តិការបញ្ជាខាងក្រោមដើម្បីទទួលបញ្ជីទីតាំង៖ + + ```sh + az account list-locations --output table + ``` + + អ្នកនឹងឃើញបញ្ជីទីតាំងមួយ។ បញ្ជីនេះវែង។ + + > 💁 នៅពេលសរសេរ មានទីតាំង 65 ទីតាំងដែលអ្នកអាចដាក់បាន។ + + ```output + ➜ ~ az account list-locations --output table + DisplayName Name RegionalDisplayName + ------------------------ ------------------- ------------------------------------- + East US eastus (US) East US + East US 2 eastus2 (US) East US 2 + South Central US southcentralus (US) South Central US + ... + ``` + + ចំណាំតម្លៃពីជួរឈរ `Name` នៃតំបន់ជិតអ្នកបំផុត។ អ្នកអាចស្វែងរកតំបន់នៅលើផែនទីនៅ [ទំព័រ Azure geographies](https://azure.microsoft.com/global-infrastructure/geographies/?WT.mc_id=academic-17441-jabenn)។ + +1. ប្រតិបត្តិការបញ្ជាខាងក្រោមដើម្បីបង្កើតក្រុមធនធានឈ្មោះ `soil-moisture-sensor`។ ឈ្មោះក្រុមធនធានត្រូវមានភាពតែមួយក្នុងជាវរបស់អ្នក។ + + ```sh + az group create --name soil-moisture-sensor \ + --location + ``` + + ជំនួស `` ជាមួយទីតាំងដែលអ្នកបានជ្រើសនៅជំហានមុន។ + +### ភារកិច្ច - បង្កើត IoT Hub + +ឥឡូវនេះអ្នកអាចបង្កើតធនធាន IoT Hub ក្នុងក្រុមធនធានរបស់អ្នកបានហើយ។ + +1. ប្រើបញ្ជាខាងក្រោមដើម្បីបង្កើតធនធាន IoT Hub រៀងរបស់អ្នក៖ + + ```sh + az iot hub create --resource-group soil-moisture-sensor \ + --sku F1 \ + --partition-count 2 \ + --name + ``` + + ជំនួស `` ជាមួយឈ្មោះសម្រាប់ hub របស់អ្នក។ ឈ្មោះនេះត្រូវតែមានភាពតែមួយជាសកល - គឺគ្មាន IoT Hub មួយទៀតដែលបង្កើតដោយនរណាមួយមានឈ្មោះដូចគ្នា។ ឈ្មោះនេះត្រូវបានប្រើនៅក្នុង URL ដែលបង្ហាញទៅកាន់ hub ដូច្នេះត្រូវតែមិនធ្វើយ៉ាងខុសគ្នា។ ប្រើឈ្មោះដូចជា `soil-moisture-sensor-` ហើយបន្ថែមនិមិត្តសញ្ញាផ្ទាល់ខ្លួននៅចុង ឧ. ពាក្យចៃដន្យ ឬឈ្មោះអ្នក។ + + ជម្រើស `--sku F1` ប្រាប់ឱ្យវាប្រើថ្នាក់ឥតគិតថ្លៃ។ ថ្នាក់ឥតគិតថ្លៃគាំទ្រ 8,000 សារក្នុងមួយថ្ងៃ រួមជាមួយតម្រងមុខងារច្រើនពីថ្នាក់បង់ប្រាក់ពេញលេញ។ + + > 🎓 កំរិតតម្លៃផ្សេងៗនៃសេវាកម្ម Azure ត្រូវបានគេស្គាល់ថាជា tiers។ Mỗi tier có chi phí khác nhau và cung cấp các tính năng hoặc khối lượng dữ liệu khác nhau. + + > 💁 ប្រសិនបើអ្នកចង់រៀនបន្ថែមអំពីតម្លៃ អ្នកអាចស្ថិតនៅក្នុង [Azure IoT Hub pricing guide](https://azure.microsoft.com/pricing/details/iot-hub/?WT.mc_id=academic-17441-jabenn)។ + + ជម្រើស `--partition-count 2` កំណត់ចំនួនច្រកទិន្នន័យដែល IoT Hub គាំទ្រ ច្រើន partition ជួយកាត់បន្ថយការចាប់ខ្សែទិន្នន័យពេលមានការអាននិងសរសេរពហុគ្រឿងពី IoT Hub។ Partitions ក្រៅសិក្សានៃមេរៀនទាំងនេះ ប៉ុន្តែតម្លៃនេះត្រូវបានកំណត់ដើម្បីបង្កើត IoT Hub ថ្នាក់ឥតគិតថ្លៃ។ + + > 💁 អ្នកអាចមាន IoT Hub ថ្នាក់ឥតគិតថ្លៃតែមួយក្នុងគណនីជាវផ្ទាល់ខ្លួន។ + +IoT Hub នឹងត្រូវបានបង្កើត។ វាអាចយកពេលប៉ុន្មាននាទីដើម្បីបញ្ចប់។ + +## ទំនាក់ទំនងជាមួយ IoT Hub + +ក្នុងមេរៀនមុន អ្នកបានប្រើ MQTT និងផ្ញើសារ ទៅមកអំពីប្រធានផ្សេងៗ មានគោលបំណងខុសគ្នា។ ជំនួសការផ្ញើសារវិញ១០លើប្រធានផ្សេងៗ IoT Hub មានវិធីជាច្រើនសម្រាប់ឧបករណ៍ធ្វើទំនាក់ទំនងជាមួយ Hub ឬ Hub ទៅ ឧបករណ៍។ + +> 💁 នៅក្នុង ឧបករណ៍យានឡើងទំនាក់ទំនងរវាង IoT Hub និងឧបករណ៍របស់អ្នកអាចប្រើ MQTT, HTTPS ឬ AMQP។ + +* សារ Device ទៅ cloud (D2C) - សារទាំងនេះផ្ញើពីឧបករណ៍ទៅ IoT Hub ដូចជា telemetry។ បន្ទាប់អាចអានពី IoT Hub ដោយកូដកម្មវិធីរបស់អ្នក។ + + > 🎓 នៅខាងក្រោយ IoT Hub ប្រើសេវាកម្ម Azure ដែលមានឈ្មោះ [Event Hubs](https://docs.microsoft.com/azure/event-hubs/?WT.mc_id=academic-17441-jabenn)។ ពេលអ្នកសរសេរកូដអានសារ ផ្ញើទៅ hub។ + +* សារ Cloud ទៅ device (C2D) - សារដែលផ្ញើពីកូដកម្មវិធី តាម IoT Hub ទៅឧបករណ៍ IoT + +* Direct method requests - សារដែលផ្ញើពីកូដកម្មវិធី តាម IoT Hub ទៅឧបករណ៍ IoT ដើម្បីស្នើឱ្យឧបករណ៍ធ្វើអ្វីមួយ ដូចជាការគ្រប់គ្រង actuator។ សារទាំងនេះត្រូវបានតម្រូវឲ្យមានការ​ឆ្លើយតប ដើម្បីឲ្យកូដកម្មវិធីដឹងថាតើបានដំណើរការជោគជ័យឬអត់។ + +* Device twins - ជាឯកសារ JSON ដែលរក្សាឲ្យសមរម្យរវាងឧបករណ៍ និង IoT Hub ហើយប្រើសម្រាប់រក្សាទុកការកំណត់ ឬគុណលក្ខណៈផ្សេងៗ ដែលមកពីឧបករណ៍ ឬត្រូវបានកំណត់នៅលើឧបករណ៍ (ហៅថា desired) ដោយ IoT Hub។ + +IoT Hub អាចរក្សាទុកសារ និង direct method requests រយៈពេលដែលអាចកំណត់ (លំនាំដើមមួយថ្ងៃ) ដូច្នេះ បើឧបករណ៍ ឬកូដកម្មវិធីបាត់បង់ការតភ្ជាប់ វានឹងអាចទាញយកសារដែលបានផ្ញើខណៈពេលវាអនឡាញម្តងទៀត។ Device twins ត្រូវបានរក្សាទុកជាប្រចាំក្នុង IoT Hub ដូច្នេះឧបករណ៍អាចភ្ជាប់ឡើងវិញ និងទទួលបាន device twin បច្ចុប្បន្នបានគ្រប់ពេល។ + +✅ ស្វែងយល់បន្ថែម៖ អានបន្ថែមអំពីប្រភេទសារទាំងនេះ នៅ [Device-to-cloud communications guidance](https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-d2c-guidance?WT.mc_id=academic-17441-jabenn), និង [Cloud-to-device communications guidance](https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-c2d-guidance?WT.mc_id=academic-17441-jabenn) នៅឯកសារ IoT Hub ។ + +## តភ្ជាប់ឧបករណ៍របស់អ្នកទៅសេវា IoT + +បន្ទាប់ពី hub ត្រូវបានបង្កើត ឧបករណ៍ IoT របស់អ្នកអាចតភ្ជាប់របស់វាទៅវា។ គ្រាន់តែឧបករណ៍ដែលបានចុះបញ្ជីតែប៉ុណ្ណោះអាចតភ្ជាប់ទៅសេវា ដូច្នេះអ្នកត្រូវចុះបញ្ជីឧបករណ៍របស់អ្នកមុន។ ពេលចុះបញ្ជី អ្នកអាចទទួលបានខ្សែភាពយន្តការតភ្ជាប់ ដែលឧបករណ៍អាចប្រើដើម្បីភ្ជាប់។ ខ្សែភាពយន្តការតភ្ជាប់នេះត្រូវបានឲ្យឧបករណ៍ជាក់លាក់ ហើយមានព័ត៌មានអំពី IoT Hub, ឧបករណ៍, និងកូនសោសម្ងាត់ដែលអនុញ្ញាតឲ្យឧបករណ៍ភ្ជាប់បាន។ + +> 🎓 ខ្សែភាពយន្តការតភ្ជាប់គឺជាពាក្យទូទៅសម្រាប់អត្ថបទមួយដែលមានព័ត៌មានការតភ្ជាប់។ វាត្រូវបានប្រើពេលតភ្ជាប់ទៅ IoT Hubs, មូលដ្ឋានទិន្នន័យ និងសេវាកម្មជាច្រើនផ្សេងទៀត។ វាមានផ្នែកសម្គាល់សម្រាប់សេវា ដូចជា URL និងព័ត៌មានសុវត្ថិភាពដូចជា កូនសោសម្ងាត់។ ផ្តល់ឲ្យ SDKs ដើម្បីតភ្ជាប់ទៅសេវា។ + +> ⚠️ ខ្សែភាពយន្តការតភ្ជាប់ត្រូវរក្សាឲ្យសុវត្ថិភាព! អ្នកនឹងរៀនបន្ថែមអំពីសុវត្ថិភាពនៅក្នុងមេរៀនក្រោយ។ + +### ភារកិច្ច - ចុះបញ្ជីឧបករណ៍ IoT របស់អ្នក + +ឧបករណ៍ IoT អាចចុះបញ្ជីជាមួយ IoT Hub របស់អ្នកតាមរយៈ Azure CLI។ + +1. ប្រតិបត្តិការបញ្ជាខាងក្រោមដើម្បីចុះបញ្ជីឧបករណ៍៖ + + ```sh + az iot hub device-identity create --device-id soil-moisture-sensor \ + --hub-name + ``` + + ជំនួស `` ជាមួយឈ្មោះដែលអ្នកប្រើសម្រាប់ IoT Hub ។ + + វានឹងបង្កើតឧបករណ៍ដែលមាន ID ជា `soil-moisture-sensor`។ + +1. ពេលឧបករណ៍ IoT របស់អ្នកតភ្ជាប់ទៅ IoT Hub ដោយប្រើ SDK វាត្រូវការប្រើខ្សែភាពយន្តការតភ្ជាប់ដែលផ្ដល់ URL នៃ hub ជាមួយកូនសោសម្ងាត់។ ប្រតិបត្តិការបញ្ជាខាងក្រោមដើម្បីទទួលខ្សែភាពយន្តនេះ៖ + + ```sh + az iot hub device-identity connection-string show --device-id soil-moisture-sensor \ + --output table \ + --hub-name + ``` + + ជំនួស `` ជាមួយឈ្មោះដែលអ្នកប្រើសម្រាប់ IoT Hub។ + +1. រក្សាទុកខ្សែភាពយន្តការតភ្ជាប់ដែលបង្ហាញនៅលើអ៊ុតបputa ដើម្បីប្រើនៅពេលក្រោយ។ + +### ភារកិច្ច - តភ្ជាប់ឧបករណ៍ IoT របស់អ្នកទៅពពក + +អនុវត្តតាមមគ្គុទេសក៍ពាក់ព័ន្ធ ដើម្បីតភ្ជាប់ឧបករណ៍ IoT របស់អ្នកទៅពពក៖ + +* [Arduino - Wio Terminal](wio-terminal-connect-hub.md) +* [Single-board computer - Raspberry Pi/Virtual IoT device](single-board-computer-connect-hub.md) + +### ភារកិច្ច - ត្រួតពិនិត្យព្រឹត្តិការណ៍ + +សព្វថ្ងៃនេះ អ្នកមិនចាំបាច់ធ្វើបច្ចុប្បន្នភាពកូដម៉ាស៊ីនបម្រើទេ។ ជំនួស អ្នកអាចប្រើ Azure CLI ដើម្បីត្រួតពិនិត្យព្រឹត្តិការណ៍ពីឧបករណ៍ IoT របស់អ្នក។ + +1. ប្រាកដថា ឧបករណ៍ IoT របស់អ្នកកំពុងដំណើរការនិងផ្ញើតម្លៃ telemetry សំណើមដី។ + +1. ប្រតិបត្តិការបញ្ជាខាងក្រោមនៅ command prompt ឬ terminal ដើម្បីត្រួតពិនិត្យសារ ដែលផ្ញើទៅ IoT Hub របស់អ្នក៖ + + ```sh + az iot hub monitor-events --hub-name + ``` + + ជំនួស `` ជាមួយឈ្មោះដែលអ្នកបានប្រើសម្រាប់ IoT Hub។ + + អ្នកនឹងឃើញសារបង្ហាញនៅលើ console output ខណៈពេលត្រូវបានផ្ញើដោយឧបករណ៍ IoT របស់អ្នក។ + + ```output + Starting event monitor, use ctrl-c to stop... + { + "event": { + "origin": "soil-moisture-sensor", + "module": "", + "interface": "", + "component": "", + "payload": "{\"soil_moisture\": 376}" + } + }, + { + "event": { + "origin": "soil-moisture-sensor", + "module": "", + "interface": "", + "component": "", + "payload": "{\"soil_moisture\": 381}" + } + } + ``` + + ខ្លឹមសារនៃ `payload` នឹងត្រូវតាមសារដែលផ្ញើដោយឧបករណ៍របស់អ្នក។ + + > នៅពេលសរសេរ ការបន្ថែម `az iot` កំពុងមិនដំណើរការ​ពេញលេញលើ Apple Silicon។ ប្រសិនបើអ្នកប្រើឧបករណ៍ Apple Silicon អ្នកត្រូវតែត្រួតពិនិត្យសារ តាមវិធីផ្សេង ដូចជាការប្រើ [Azure IoT Tools for Visual Studio Code](https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-vscode-iot-toolkit-cloud-device-messaging)។ + +1. សារទាំងនេះមានគុណលក្ខណៈជាច្រើនភ្ជាប់ជាមួយស្វ័យប្រវត្តិ ដូចជាពេលវេលាផ្ញើ។ គុណលក្ខណៈទាំងនេះហៅថា *annotations*។ ដើម្បីមើល annotation ពេញលេញ ប្រើបញ្ជាខាងក្រោម៖ + + ```sh + az iot hub monitor-events --properties anno --hub-name + ``` + + ជំនួស `` ជាមួយឈ្មោះដែលអ្នកបានប្រើសម្រាប់ IoT Hub។ + + អ្នកនឹងឃើញសារបង្ហាញនៅលើ console output ខណៈពេលត្រូវបានផ្ញើដោយឧបករណ៍ IoT របស់អ្នក។ + + ```output + Starting event monitor, use ctrl-c to stop... + { + "event": { + "origin": "soil-moisture-sensor", + "module": "", + "interface": "", + "component": "", + "properties": {}, + "annotations": { + "iothub-connection-device-id": "soil-moisture-sensor", + "iothub-connection-auth-method": "{\"scope\":\"device\",\"type\":\"sas\",\"issuer\":\"iothub\",\"acceptingIpFilterRule\":null}", + "iothub-connection-auth-generation-id": "637553997165220462", + "iothub-enqueuedtime": 1619976150288, + "iothub-message-source": "Telemetry", + "x-opt-sequence-number": 1379, + "x-opt-offset": "550576", + "x-opt-enqueued-time": 1619976150277 + }, + "payload": "{\"soil_moisture\": 381}" + } + } + ``` + + តម្លៃពេលវេលានៅ annotations គឺជាកំណត់ត្រា [UNIX time](https://wikipedia.org/wiki/Unix_time) ដែលបង្ហាញចំនួនវិនាទីចាប់តាំងពីមធ្យមរាត្រីថ្ងៃទី 1 ខែមករា ឆ្នាំ 1970។ + + ចេញពីកម្មវិធីត្រួតពិនិត្យព្រឹត្តិការណ៍នៅពេលអ្នកបានបញ្ចប់។ + +### ភារកិច្ច - គ្រប់គ្រងឧបករណ៍ IoT របស់អ្នក + +អ្នកអាចប្រើ Azure CLI ដើម្បីហៅ direct methods លើឧបករណ៍ IoT របស់អ្នក។ + +1. ប្រតិបត្តិការបញ្ជាខាងក្រោមនៅ command prompt ឬ terminal ដើម្បីហៅម៉េតូត `relay_on` លើឧបករណ៍ IoT៖ + + ```sh + az iot hub invoke-device-method --device-id soil-moisture-sensor \ + --method-name relay_on \ + --method-payload '{}' \ + --hub-name + ``` + + ជំនួស `` ជាមួយឈ្មោះដែលអ្នកបានប្រើសម្រាប់ IoT Hub។ + + វាផ្ញើសំណើ direct method សម្រាប់ម៉េតូតដែលបញ្ជាក់ដោយ `method-name`។ Direct methods អាចមាន payload ដែលមានទិន្នន័យសម្រាប់ម៉េតូត ហើយអាចបញ្ជាក់ក្នុង `method-payload` ជា JSON។ + + អ្នកនឹងឃើញ relay បើក និងមានការបង្ហាញផលប៉ះពាល់ពីឧបករណ៍ IoT របស់អ្នក៖ + + ```output + Direct method received - relay_on + ``` + +1. សូមធ្វើម្ដងទៀតដូចខាងលើ ប៉ុន្តែកំណត់ `--method-name` ជា `relay_off`។ អ្នកនឹងឃើញ relay បិទ និងមានការបង្ហាញផលប៉ះពាល់ពីឧបករណ៍ IoT។ + +--- + +## 🚀 ព្រឹត្តិការណ៍ប challenging + +ថ្នាក់ឥតគិតថ្លៃរបស់ IoT Hub អនុញ្ញាត 8,000 សារក្នុងមួយថ្ងៃ។ កូដដែលអ្នកបានសរសេរ ផ្ញើសារតែពីរទៅមួយសាសន្ធឹក ១០ វិនាទីម្តង។ ម៉ាស៊ែរណាចំនួនប៉ុន្មានក្នុងមួយថ្ងៃ សម្រាប់ការផ្ញើសារត/router=ម្តងនៅរំលង ១០ វិនាទី? + +សូមគិតពីប៉ុន្មានដង ត្រូវផ្ញើការវាស់សំណើមដី? តើធ្វើដូចម្តេចដើម្បីផ្លាស់ប្ដូរកូដរបស់អ្នកឲ្យស្ថិតនៅក្នុងថ្នាក់ឥតគិតថ្លៃ ហើយត្រួតពិនិត្យជាប្រចាំដោយមិនផ្ញើសារញឹកញាប់ពេក? ប្រសិនបើអ្នកចង់បន្ថែមឧបករណ៍ទីពីរម្តង? + +## ការសាកល្បងបន្ទាប់មក + +[Post-lecture quiz](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/16) + +## សង្ខេប និងសិក្សាឯករាជ្យ + +IoT Hub SDK គឺជាសូរភ័ណ្ឌសម្រាប់ Arduino និង Python ទាំងពីរ។ នៅក្នុង repository លើ GitHub មានគំរូជាច្រើនបង្ហាញពីរបៀបធ្វើការជាមួយមុខងារ IoT Hub ផ្សេងៗ។ + +* ប្រសិនបើអ្នកប្រើ Wio Terminal សូមមើល [Arduino samples on GitHub](https://github.com/Azure/azure-iot-pal-arduino/tree/master/pal/samples) +* ប្រសិនបើអ្នកប្រើ Raspberry Pi ឬឧបករណ៍ virtual សូមមើល [Python samples on GitHub](https://github.com/Azure/azure-iot-sdk-python/tree/master/azure-iot-hub/samples) + +## ប្រធានបទការងារ +[ស្វែងយល់អំពីសេវាកម្មពពក](assignment.md) + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះយើងខិតខំធ្វើឱ្យបានត្រឹមត្រូវ ប៉ុន្តែសូមជ្រាបថាការបកប្រែដោយស្វ័យប្រវត្តិក្នុងខ្លះៗអាចមានកំហុស ឬមិនត្រឹមត្រូវ។ ឯកសារដើមនៅក្នុងភាសាតំបន់ដើមត្រូវបានគេចាត់ទុកជាផ្លូវការបំផុត។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមផ្តល់អនុសាសន៍ឱ្យមានការបកប្រែដោយមនុស្សជំនាញ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសៗ ដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/2-farm/lessons/4-migrate-your-plant-to-the-cloud/assignment.md b/translations/km/2-farm/lessons/4-migrate-your-plant-to-the-cloud/assignment.md new file mode 100644 index 000000000..f7a031964 --- /dev/null +++ b/translations/km/2-farm/lessons/4-migrate-your-plant-to-the-cloud/assignment.md @@ -0,0 +1,26 @@ +# រៀនអំពីសេវាកម្មមេឃ + +## សេចក្ដីណែនាំ + +ពពក ដូចជា Azure ពី Microsoft ផ្តល់ជូនមិនត្រឹមតែការជួលកំព្យូទ័រប៉ុណ្ណោះទេ។ ប្រភេទសេវាកម្មមេឃសំខាន់ៗរួមមាន៖ + +* រចនាសម្ព័ន្ធជាសេវាកម្ម (IaaS) +* វេទិកាជាសេវាកម្ម (PaaS) +* មិនមានម៉ាស៊ីនបម្រើ +* កម្មវិធីជាសេវាកម្ម (SaaS) + +រៀនអំពីប្រភេទសេវាកម្មផ្សេងៗទាំងនេះ និងពន្យល់ពីវាទៅ និងភាពខុសគ្នារវាងវា។ ពន្យល់ថាប្រភេទសេវាកម្មណាដែលពាក់ព័ន្ធសម្រាប់អ្នកអភិវឌ្ឍន៍ IoT។ + +## វិចារណៈ + +| ប្រធានបទ | ល្អឧត្តម | គ្រប់គ្រាន់ | ត្រូវការកែលម្អ | +| -------- | --------- | -------- | ----------------- | +| ពន្យល់ពីប្រភេទសេវាកម្មមេឃផ្សេងៗ | ផ្តល់ការពន្យល់ច្បាស់លាស់ពីប្រភេទសេវាកម្មទាំង 4 | អាចពន្យល់បាន 3 ប្រភេទសេវាកម្ម | អាចពន្យល់ត្រឹមតែ 1 ឬ 2 ប្រភេទសេវាកម្ម | +| ពន្យល់ពីប្រភេទសេវាកម្មណាដែលពាក់ព័ន្ធសម្រាប់ IoT | ពិពណ៌នាការពន្យល់ពីប្រភេទសេវាកម្មដែលពាក់ព័ន្ធសម្រាប់អ្នកអភិវឌ្ឍន៍ IoT និងហេតុផល | ពិពណ៌នាការពន្យល់ពីប្រភេទសេវាកម្មដែលពាក់ព័ន្ធសម្រាប់អ្នកអភិវឌ្ឍន៍ IoT ប៉ុន្តែមិនបានបញ្ជាក់ហេតុផល | មិនអាចពិពណ៌នាប្រភេទសេវាកម្មដែលពាក់ព័ន្ធសម្រាប់អ្នកអភិវឌ្ឍន៍ IoT | + +--- + + +**ការព្រមាន**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ក្នុងខណៈពេលដែលយើងខិតខំរកភាពถูกត្រូវ នេះសូមដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬច្រឡំខុស។ ឯកសារដើមក្នុងភាសាប្រកបដោយសិទ្ធិនេះគួរឱ្យទុកចិត្តជាជាគន្លងដើមដែលមានអំណាច។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឲ្យបកប្រែដោយមនុស្សជំនាញវិជ្ជាជីវៈ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសប្រព្រឹត្តដែលបណ្តាលមកពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/2-farm/lessons/4-migrate-your-plant-to-the-cloud/single-board-computer-connect-hub.md b/translations/km/2-farm/lessons/4-migrate-your-plant-to-the-cloud/single-board-computer-connect-hub.md new file mode 100644 index 000000000..17a340adf --- /dev/null +++ b/translations/km/2-farm/lessons/4-migrate-your-plant-to-the-cloud/single-board-computer-connect-hub.md @@ -0,0 +1,123 @@ +# ភ្ជាប់ឧបករណ៍ IoT របស់អ្នកទៅមេឃ្ - សម្ភារៈ IoT Virtual និង Raspberry Pi + +ក្នុងផ្នែកនេះនៃមេរៀន អ្នកនឹងភ្ជាប់ឧបករណ៍ IoT ឌីជីថលរបស់អ្នក ឬ Raspberry Pi ទៅឲ្យ IoT Hub របស់អ្នក ដើម្បីផ្ញើព័ត៌មាន telemetry និងទទួលការបញ្ជា។ + +## ភ្ជាប់ឧបករណ៍របស់អ្នកទៅ IoT Hub + +ជំហានបន្ទាប់គឺភ្ជាប់ឧបករណ៍របស់អ្នកទៅ IoT Hub។ + +### ភារកិច្ច - ភ្ជាប់ទៅ IoT Hub + +1. បើកថត `soil-moisture-sensor` នៅក្នុង VS Code។ ពិនិត្យឲ្យប្រាកដថាបរិនៅវេតិកនៅក្នុងterminal កំពុងដំណើរការបើអ្នកកំពុងប្រើឧបករណ៍ IoT វិចិត្រស័ព្ទ។ + +1. ដំឡើងបណ្ណាល័យ Pip ផ្សេងទៀត៖ + + ```sh + pip3 install azure-iot-device + ``` + + `azure-iot-device` គឺជាបណ្ណាល័យសម្រាប់ទំនាក់ទំនងជាមួយ IoT Hub របស់អ្នក។ + +1. បញ្ចូលការនាំចូលខាងក្រោមទៅកាន់ខាងលើនៃឯកសារ `app.py` ខាងក្រោមការនាំចូលដែលមានរួចហើយ៖ + + ```python + from azure.iot.device import IoTHubDeviceClient, Message, MethodResponse + ``` + + កូដនេះនាំចូល SDK សម្រាប់ទំនាក់ទំនងជាមួយ IoT Hub របស់អ្នក។ + +1. ដកស្រាយជួរដេក `import paho.mqtt.client as mqtt` ដោយសារតែបណ្ណាល័យនេះមិនត្រូវការ់ទៀតទេ។ ដកស្រាយកូដ MQTT ទាំងអស់ រួមមានឈ្មោះក្បាលមាតិកា ទាំងអស់នៃកូដដែលប្រើប្រាស់ `mqtt_client` និង `handle_command`។ ទុកឲ្យមានតែវគ្គលូប `while True:` ប៉ុណ្ណោះ ដកបន្ទាត់ `mqtt_client.publish` ចេញពីវគ្គនេះ។ + +1. បន្ថែមកូដខាងក្រោមក្រោមបន្ទាត់នាំចូល៖ + + ```python + connection_string = "" + ``` + + ជំនួស `` ជាមួយខ្សែសន្ទស្សន៏ដែលអ្នកបានទទួលសម្រាប់ឧបករណ៍នៅមុននេះក្នុងមេរៀន។ + + > 💁 នេះមិនមែនជាប្រព័ន្ធល្អបំផុតទេ។ ខ្សែសន្ទស្សន៏គួរមិនត្រូវបានរក្សាទុកក្នុងកូដប្រភព ពីព្រោះវាអាចត្រូវបានត្រួតមើលដោយអ្នកណាមួយបាន។ យើងធ្វើបែបនេះដើម្បីស្រួល សូមប្រើអារម្មណ៍បរិស្ថានឬឧបករណ៍ដូចជា [`python-dotenv`](https://pypi.org/project/python-dotenv/)។ អ្នកនឹងរៀនបន្ថែមអំពីវានៅក្នុងមេរៀនក្រោយ។ + +1. ខាងក្រោមកូដនេះ បន្ថែមខាងក្រោមដើម្បីបង្កើតវត្ថុ device client ដែលអាចទំនាក់ទំនងជាមួយ IoT Hub ហើយភ្ជាប់វា៖ + + ```python + device_client = IoTHubDeviceClient.create_from_connection_string(connection_string) + + print('Connecting') + device_client.connect() + print('Connected') + ``` + +1. រត់កូដនេះ។ អ្នកនឹងឃើញឧបករណ៍របស់អ្នកភ្ជាប់បាន។ + + ```output + pi@raspberrypi:~/soil-moisture-sensor $ python3 app.py + Connecting + Connected + Soil moisture: 379 + ``` + +## ផ្ញើ telemetry + +ឥឡូវនេះឧបករណ៍របស់អ្នកបានភ្ជាប់ហើយ អ្នកអាចផ្ញើ telemetry ទៅ IoT Hub ជំនួសឲ្យ MQTT broker។ + +### ភារកិច្ច - ផ្ញើ telemetry + +1. បន្ថែមកូដខាងក្រោមនៅក្នុងវគ្គ `while True` មុនពេលរាត្រីងliegen: + + ```python + message = Message(json.dumps({ 'soil_moisture': soil_moisture })) + device_client.send_message(message) + ``` + + កូដនេះបង្កើតសារ IoT Hub `Message` ដែលមានការអានសំណើមខ្សោយដីជា string JSON ហើយបញ្ជូនវាទៅ IoT Hub ជាសារឧបករណ៍ទៅមេឃ្។ + +## គ្រប់គ្រងបញ្ជា + +ឧបករណ៍របស់អ្នកត្រូវការគ្រប់គ្រងបញ្ជាជាប់ពីកូដម៉ាស៊ីនមេសម្រាប់គ្រប់គ្រង relay។ នេះត្រូវបានផ្ញើជារបទបញ្ជាត្រឡប់ដោយបន្ទាត់។ + +## ភារកិច្ច - គ្រប់គ្រងបញ្ជាត្រឡប់ដោយបន្ទាត់ + +1. បន្ថែមកូដខាងក្រោមមុនវគ្គ `while True`៖ + + ```python + def handle_method_request(request): + print("Direct method received - ", request.name) + + if request.name == "relay_on": + relay.on() + elif request.name == "relay_off": + relay.off() + ``` + + នេះកំណត់កិច្ចការមួយ `handle_method_request` ដែលនឹងត្រូវហៅពេលដែលមានការraw direct method ត្រូវបានហៅដោយ IoT Hub។ direct method នីមួយៗមានឈ្មោះ ហើយកូដនេះរំពឹងថាមាន method ខាងក្រោម `relay_on` ដើម្បីបើក relay និង `relay_off` ដើម្បីបិទ relay។ + + > 💁 វាក៏អាចអនុវត្តក្នុង direct method តែមួយបានផង ដោយផ្ញើស្ថានភាពដែលចង់បានរបស់ relay ក្នុង payload ដែលអាចផ្ញើជាមួយការស្នើសុំ method ហើយអាចទទួលបានពីវត្ថុ `request`។ + +1. direct methods ត្រូវការឆ្លើយតប ឲ្យអោយកូដហៅដឹងថាត្រូវបានដំណើរការហើយ។ បន្ថែមកូដខាងក្រោមនៅចុង `handle_method_request` ដើម្បីបង្កើតការឆ្លើយតបសម្រាប់ស្នើសុំ៖ + + ```python + method_response = MethodResponse.create_from_method_request(request, 200) + device_client.send_method_response(method_response) + ``` + + កូដនេះផ្ញើការឆ្លើយតបទៅសំណើ direct method ជាមួយកូដ HTTP 200 ហើយផ្ញើវាលើវិញទៅ IoT Hub។ + +1. បន្ថែមកូដខាងក្រោមក្រោមកំណត់មុខងារ​នេះ៖ + + ```python + device_client.on_method_request_received = handle_method_request + ``` + + កូដនេះប្រាប់ឲ្យ IoT Hub client ហៅមុខងារ `handle_method_request` នៅពេលដែល direct method ត្រូវបានហៅ។ + +> 💁 អ្នកអាចស្វែងរកកូដនេះនៅក្នុងថត [code/pi](../../../../../2-farm/lessons/4-migrate-your-plant-to-the-cloud/code/pi) ឬ [code/virtual-device](../../../../../2-farm/lessons/4-migrate-your-plant-to-the-cloud/code/virtual-device)។ + +😀 ព្រីក្រោមសំណើមខ្សោយដីរបស់អ្នកបានភ្ជាប់ទៅ IoT Hub របស់អ្នកហើយ! + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំសំរាប់ភាពជាប់ចិត្ត ក៏សូមយល់ដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិនោះអាចមានកំហុស ឬការមិនត្រឹមត្រូវ។ ឯកសារដើមនៅភាសាតិចត្រូវបានគេចាត់ទុកជាផ្លូវការជាចម្បង។ សំរាប់ព័ត៌មានសំខាន់ហើយការបកប្រែដោយមនុស្សវិជ្ជាជីវៈគួរត្រូវបានផ្តល់អាទិភាព។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/2-farm/lessons/4-migrate-your-plant-to-the-cloud/wio-terminal-connect-hub.md b/translations/km/2-farm/lessons/4-migrate-your-plant-to-the-cloud/wio-terminal-connect-hub.md new file mode 100644 index 000000000..2ef8c0a17 --- /dev/null +++ b/translations/km/2-farm/lessons/4-migrate-your-plant-to-the-cloud/wio-terminal-connect-hub.md @@ -0,0 +1,299 @@ +# តភ្ជាប់ឧបករណ៍ IoT របស់អ្នកទៅកាន់ពពក - Wio Terminal + +នៅផ្នែកនេះនៃមេរៀន អ្នកនឹងតភ្ជាប់ Wio Terminal របស់អ្នកទៅកាន់ IoT Hub ដើម្បីផ្ញើព័ត៌មាន telemetry និងទទួលការបញ្ជា។ + +## តភ្ជាប់ឧបករណ៍របស់អ្នកទៅ IoT Hub + +ជំហានបន្ទាប់គឺតភ្ជាប់ឧបករណ៍របស់អ្នកទៅ IoT Hub។ + +### ការងារ - តភ្ជាប់ទៅ IoT Hub + +1. បើកគម្រោង `soil-moisture-sensor` នៅក្នុង VS Code + +1. បើកឯកសារ `platformio.ini`។ យកការពឹងផ្អែកលើបណ្ណាល័យ `knolleary/PubSubClient` ចេញ។ នេះត្រូវបានប្រើសម្រាប់តភ្ជាប់ទៅ broker MQTT សាធារណៈ ហើយមិនចាំបាច់ទេដើម្បីតភ្ជាប់ទៅ IoT Hub។ + +1. បន្ថែមការពឹងផ្អែកលើបណ្ណាល័យដូចខាងក្រោម៖ + + ```ini + seeed-studio/Seeed Arduino RTC @ 2.0.0 + arduino-libraries/AzureIoTHub @ 1.6.0 + azure/AzureIoTUtility @ 1.6.1 + azure/AzureIoTProtocol_MQTT @ 1.6.0 + azure/AzureIoTProtocol_HTTP @ 1.6.0 + azure/AzureIoTSocket_WiFi @ 1.0.2 + ``` + + បណ្ណាល័យ `Seeed Arduino RTC` ផ្តល់កូដដើម្បីអន្តរសកម្មជាមួយនឹងម៉ោងពិតនៅក្នុង Wio Terminal ដែលប្រើសម្រាប់តាមដានពេលវេលា។ បណ្ណាល័យដែលនៅសល់អនុញាតឲ្យឧបករណ៍ IoT របស់អ្នកតភ្ជាប់ទៅ IoT Hub។ + +1. បន្ថែមអ្វីខាងក្រោមទៅចុងឯកសារ `platformio.ini`៖ + + ```ini + build_flags = + -DDONT_USE_UPLOADTOBLOB + ``` + + នេះកំណត់ស្លាកកូដដែលត្រូវការពេលកូដ Arduino IoT Hub ត្រូវបានបញ្ចូល។ + +1. បើកឯកសារ header `config.h`។ លុបការកំណត់ MQTT ទាំងអស់ចេញ ហើយបន្ថែមអចលនៈខាងក្រោមសម្រាប់ខ្សែផ្សារតភ្ជាប់ឧបករណ៍៖ + + ```cpp + // ការកំណត់ IoT Hub + const char *CONNECTION_STRING = ""; + ``` + + ប្ដូរទៅ `` ជាខ្សែផ្សារតភ្ជាប់សម្រាប់ឧបករណ៍របស់អ្នកដែលអ្នកបានចម្លងមុននេះ។ + +1. ការតភ្ជាប់ទៅ IoT Hub ប្រើ token ដែលផ្អែកលើពេលវេលា។ នេះមានន័យថាឧបករណ៍ IoT ត្រូវការដឹងពេលវេលាបច្ចុប្បន្ន។ ខុសពីប្រព័ន្ធប្រតិបត្តិការដូចជា Windows, macOS ឬ Linux, មីក្រូកុងត្រូលឡើងដោយស្វ័យប្រវត្តិមិនត្រូវបាន đồng bộ ពេលវេលាបច្ចុប្បន្នតាមអ៊ីនធឺណិតទេ។ នេះមានន័យថាអ្នកត្រូវបន្ថែមកូដដើម្បីទទួលបានពេលវេលាបច្ចុប្បន្នពីម៉ាស៊ីនបម្រើ [NTP](https://wikipedia.org/wiki/Network_Time_Protocol)។ បន្ទាប់ពីទទួលបានពេលវេលា វានឹងអាចរក្សាទុកនៅម៉ោងពិតនៅក្នុង Wio Terminal ដែលអនុញ្ញាតឲ្យសំណើពេលវេលាត្រឹមត្រូវនៅថ្ងៃក្រោយបាន ដោយផ្អែកលើថាឧបករណ៍មិនបាត់បង់ថាមពល។ បន្ថែមឯកសារថ្មីដែលមានឈ្មោះ `ntp.h` ជាមួយកូដដូចខាងក្រោម៖ + + ```cpp + #pragma once + + #include "DateTime.h" + #include + #include "samd/NTPClientAz.h" + #include + + static void initTime() + { + WiFiUDP _udp; + time_t epochTime = (time_t)-1; + NTPClientAz ntpClient; + + ntpClient.begin(); + + while (true) + { + epochTime = ntpClient.getEpochTime("0.pool.ntp.org"); + + if (epochTime == (time_t)-1) + { + Serial.println("Fetching NTP epoch time failed! Waiting 2 seconds to retry."); + delay(2000); + } + else + { + Serial.print("Fetched NTP epoch time is: "); + + char buff[32]; + sprintf(buff, "%.f", difftime(epochTime, (time_t)0)); + Serial.println(buff); + break; + } + } + + ntpClient.end(); + + struct timeval tv; + tv.tv_sec = epochTime; + tv.tv_usec = 0; + + settimeofday(&tv, NULL); + } + ``` + + ព័ត៌មានលម្អិតនៃកូដនេះកន្លងពីវិសាលភាពនៃមេរៀននេះ។ វាដាក់ពាក្យបញ្ជាទៅនូវមុខងារមួយឈ្មោះ `initTime` ដែលទទួលពេលវេលាបច្ចុប្បន្នពីម៉ាស៊ីនបម្រើ NTP ហើយប្រើវាដើម្បីកំណត់ម៉ោងលើ Wio Terminal។ + +1. បើកឯកសារ `main.cpp` ហើយលុបកូដ MQTT ទាំងអស់ រួមទាំងឯកសារ header `PubSubClient.h`, ការបញ្ជាក់អថេរ `PubSubClient`, វិធីសាស្ត្រ `reconnectMQTTClient` និង `createMQTTClient`, និងការហៅទៅអថេរ និងវិធីសាស្ត្រទាំងនេះ។ ឯកសារនេះគួរតែមានកូដសម្រាប់តភ្ជាប់ WiFi, ទទួលសំណើរជាតិដី និងបង្កើតឯកសារ JSON ពីវា ប៉ុណ្ណោះ។ + +1. បន្ថែមនូវការបញ្ជាក់ `#include` ខាងលើឯកសារ `main.cpp` ដើម្បីបញ្ចូលបណ្ណាល័យ IoT Hub និងការកំណត់ពេលវេលា៖ + + ```cpp + #include + #include + #include + #include "ntp.h" + ``` + +1. បន្ថែមការហៅខាងក្រោមចុងមុខងារ `setup` ដើម្បីកំណត់ពេលវេលាបច្ចុប្បន្ន៖ + + ```cpp + initTime(); + ``` + +1. បន្ថែមការបញ្ជាក់អថេរខាងលើឯកសារ ក្រោមការបញ្ចូល `#include`៖ + + ```cpp + IOTHUB_DEVICE_CLIENT_LL_HANDLE _device_ll_handle; + ``` + + នេះបញ្ជាក់អថេរ `IOTHUB_DEVICE_CLIENT_LL_HANDLE` ដែលជាឈរជាប់ទៅកាន់ការតភ្ជាប់ទៅ IoT Hub។ + +1. ក្រោមនេះ បន្ថែមកូដដូចខាងក្រោម៖ + + ```cpp + static void connectionStatusCallback(IOTHUB_CLIENT_CONNECTION_STATUS result, IOTHUB_CLIENT_CONNECTION_STATUS_REASON reason, void *user_context) + { + if (result == IOTHUB_CLIENT_CONNECTION_AUTHENTICATED) + { + Serial.println("The device client is connected to iothub"); + } + else + { + Serial.println("The device client has been disconnected"); + } + } + ``` + + នេះបញ្ជាក់មុខងារត្រឡប់ប្រតិកម្មមួយដែលនឹងត្រូវហៅពេលកម្រិតស្ថានភាពនៃការតភ្ជាប់ទៅ IoT Hub ផ្លាស់ប្ដូរ ដូចជាការតភ្ជាប់ឬដាច់ការតភ្ជាប់។ ស្ថានភាពនេះត្រូវបានផ្ញើទៅច្រកស៊េរី។ + +1. ក្រោមនេះ បន្ថែមមុខងារមួយសម្រាប់តភ្ជាប់ទៅ IoT Hub៖ + + ```cpp + void connectIoTHub() + { + IoTHub_Init(); + + _device_ll_handle = IoTHubDeviceClient_LL_CreateFromConnectionString(CONNECTION_STRING, MQTT_Protocol); + + if (_device_ll_handle == NULL) + { + Serial.println("Failure creating Iothub device. Hint: Check your connection string."); + return; + } + + IoTHubDeviceClient_LL_SetConnectionStatusCallback(_device_ll_handle, connectionStatusCallback, NULL); + } + ``` + + កូដនេះចាប់ផ្តើមបណ្ណាល័យ IoT Hub រួចបង្កើតការតភ្ជាប់ដោយប្រើខ្សែផ្សារតភ្ជាប់នៅក្នុងឯកសារ header `config.h`។ ការតភ្ជាប់នេះផ្អែកលើ MQTT។ បើការតភ្ជាប់បរាជ័យ នេះនឹងត្រូវផ្ញើទៅច្រកស៊េរី - ប្រសិនបើអ្នកឃើញនេះនៅក្នុងលទ្ធផល សូមពិនិត្យខ្សែផ្សារតភ្ជាប់។ ចុងក្រោយ ការត្រឡប់ប្រតិកម្មស្ថានភាពត្រូវបានកំណត់។ + +1. ហៅមុខងារនេះនៅក្នុងមុខងារ `setup` ខាងក្រោមការហៅ `initTime`៖ + + ```cpp + connectIoTHub(); + ``` + +1. ដូចគ្នា និងកម្រិត MQTT client កូដនេះរត់នៅលើខ្សែទិន្នន័យតែមួយ ដូច្នេះត្រូវការពេលវេលាគ្រប់គ្រាន់សម្រាប់ដំណើរការសារ របស់ hub ផ្ញើ និងទទួល។ បន្ថែមខាងក្រោមទៅខាងលើមុខងារ `loop` ដើម្បីធ្វើដូចនេះ៖ + + ```cpp + IoTHubDeviceClient_LL_DoWork(_device_ll_handle); + ``` + +1. បង្កើត និងផ្ទុកឡើងកូដនេះ។ អ្នកនឹងឃើញការតភ្ជាប់នៅក្នុងមន្រ្តីមើលស៊េរី៖ + + ```output + Connecting to WiFi.. + Connected! + Fetched NTP epoch time is: 1619983687 + Sending telemetry {"soil_moisture":391} + The device client is connected to iothub + ``` + + នៅក្នុងលទ្ធផល អ្នកអាចឃើញពេលវេលា NTP ត្រូវបានយកមក តាមក្រោយដោយការតភ្ជាប់ឧបករណ៍ client។ វាអាចប្រើពេលប៉ុន្មានវិនាទីដើម្បីតភ្ជាប់ ដូច្នេះអ្នកអាចឃើញជាតិដីក្នុងលទ្ធផល ខណៈពេលឧបករណ៍កំពុងតភ្ជាប់។ + + > 💁 អ្នកអាចបម្លែងពេលវេលា UNIX សម្រាប់ NTP ទៅជាចំលងអាចអានបានជាងនេះដោយប្រើវេបសាយដូចជា [unixtimestamp.com](https://www.unixtimestamp.com) + +## ផ្ញើ telemetry + +ឥឡូវនេះឧបករណ៍របស់អ្នកត្រូវបានតភ្ជាប់ អ្នកអាចផ្ញើ telemetry ទៅ IoT Hub ជំនួស broker MQTT។ + +### ការងារ - ផ្ញើ telemetry + +1. បន្ថែមមុខងារខាងលើមុខងារ `setup`៖ + + ```cpp + void sendTelemetry(const char *telemetry) + { + IOTHUB_MESSAGE_HANDLE message_handle = IoTHubMessage_CreateFromString(telemetry); + IoTHubDeviceClient_LL_SendEventAsync(_device_ll_handle, message_handle, NULL, NULL); + IoTHubMessage_Destroy(message_handle); + } + ``` + + កូដនេះបង្កើតសារពីខ្សែអក្សរដែលផ្ទេរជាពារ៉ាម៉ែត្រ បញ្ជូនទៅ hub បន្ទាប់លុបវត្ថុសារនោះ។ + +1. ហៅកូដនេះនៅក្នុងមុខងារ `loop` ខាងក្រោមជួរដែលផ្ញើ telemetry ទៅច្រកស៊េរី៖ + + ```cpp + sendTelemetry(telemetry.c_str()); + ``` + +## គ្រប់គ្រងការបញ្ជា + +ឧបករណ៍របស់អ្នកត្រូវតែគ្រប់គ្រងការបញ្ជាមួយពីកូដម៉ាស៊ីនបម្រើ ដើម្បីគ្រប់គ្រង relay។ នេះត្រូវបានផ្ញើជាការស្នើសុំមុខងារ និងទទួលបានដោយផ្ទាល់។ + +## ការងារ - គ្រប់គ្រងការស្នើសុំមុខងារផ្ទាល់ + +1. បន្ថែមកូដខាងក្រោមមុនមុខងារ `connectIoTHub`៖ + + ```cpp + int directMethodCallback(const char *method_name, const unsigned char *payload, size_t size, unsigned char **response, size_t *response_size, void *userContextCallback) + { + Serial.printf("Direct method received %s\r\n", method_name); + + if (strcmp(method_name, "relay_on") == 0) + { + digitalWrite(PIN_WIRE_SCL, HIGH); + } + else if (strcmp(method_name, "relay_off") == 0) + { + digitalWrite(PIN_WIRE_SCL, LOW); + } + } + ``` + + កូដនេះកំណត់មុខងារត្រឡប់ប្រតិកម្មដែលបណ្ណាល័យ IoT Hub អាចហៅពេលវាទទួលបានសំណើសុំមុខងារផ្ទាល់។ មុខងារដែលត្រូវរកសូនឹងត្រូវផ្ញើក្នុងប៉ារ៉ាម៉ែត្រ `method_name`។ មុខងារនេះព្រីនមុខងារដែលត្រូវហៅទៅច្រកស៊េរី ហើយបិទឬបើក relay ដោយផ្អែកលើឈ្មោះមុខងារ។ + + > 💁 នេះក៏អាចអនុវត្តបានជាការស្នើសុំមុខងារផ្ទាល់តែមួយ ដោយផ្ញើស្ថានភាព relay ដែលចង់បានក្នុងគ្រាប់Payload ដែលអាចផ្ញើជាមួយសំណើនិងអាចប្រើបានពីប៉ារ៉ាម៉ែត្រ `payload`។ + +1. បន្ថែមកូដខាងក្រោមចុងមុខងារ `directMethodCallback`៖ + + ```cpp + char resultBuff[16]; + sprintf(resultBuff, "{\"Result\":\"\"}"); + *response_size = strlen(resultBuff); + *response = (unsigned char *)malloc(*response_size); + memcpy(*response, resultBuff, *response_size); + + return IOTHUB_CLIENT_OK; + ``` + + សំណើសុំមុខងារផ្ទាល់ត្រូវការឆ្លើយតប ហើយការឆ្លើយតបមានពីរផ្នែក - ជាអត្ថបទផ្តល់ចម្លើយ និងកូដបញ្ជូនត្រឡប់។ កូដនេះនឹងបង្កើតលទ្ធផលជាឯកសារ JSON ដូចខាងក្រោម៖ + + ```JSON + { + "Result": "" + } + ``` + + នេះបន្ទាប់ត្រូវបានចម្លងទៅប៉ារ៉ាម៉ែត្រ `response` ហើយទំហំនេះត្រូវបានកំណត់នៅប៉ារ៉ាម៉ែត្រ `response_size`។ កូដនេះប្រគល់តម្លៃ `IOTHUB_CLIENT_OK` ដើម្បីបង្ហាញថាមុខងារត្រូវបានគ្រប់គ្រងបានត្រឹមត្រូវ។ + +1. ភ្ជាប់ callback ដោយបន្ថែមខាងក្រោមចុងមុខងារ `connectIoTHub`៖ + + ```cpp + IoTHubClient_LL_SetDeviceMethodCallback(_device_ll_handle, directMethodCallback, NULL); + ``` + +1. មុខងារ `loop` នឹងហៅមុខងារ `IoTHubDeviceClient_LL_DoWork` ដើម្បីដំណើរការការកើតហេតុដែលផ្ញើដោយ IoT Hub។ នេះមានកំណត់ហៅរៀងរាល់ ១០ វិនាទីដោយសារពេលយឺត `delay` ដែលមានន័យថាមុខងារផ្ទាល់ត្រូវបានដំណើរការរៀងរាល់ ១០ វិនាទីទេ។ ដើម្បីធ្វើឲ្យមានប្រសិទ្ធភាពល្អជាងនេះ អ្នកអាចអនុវត្តពេលយឺត ១០ វិនាទីជា ពេលយឺតខ្លីជាច្រើន ដែលហៅ `IoTHubDeviceClient_LL_DoWork` រៀងរាល់ដង។ សូមបន្ថែមកូដខាងក្រោមមុនមុខងារ `loop`៖ + + ```cpp + void work_delay(int delay_time) + { + int current = 0; + do + { + IoTHubDeviceClient_LL_DoWork(_device_ll_handle); + delay(100); + current += 100; + } while (current < delay_time); + } + ``` + + កូដនេះនឹងរត់ច្រើនដង ដើម្បីហៅ `IoTHubDeviceClient_LL_DoWork` ហើយពន្លឿនដល់ ១០០ms រៀងរាល់ដង។ វានឹងធ្វើបែបនេះប៉ុន្មានដងដើម្បីពន្លឿនរហូតដល់ចំនួនពេលដែលបានផ្តល់នៅប៉ារ៉ាម៉ែត្រ `delay_time`។ នេះមានន័យថាឧបករណ៍រង់ចាំកម្រិតអតិបរមា ១០០ms ដើម្បីដំណើរការការស្នើសុំមុខងារផ្ទាល់។ + +1. ក្នុងមុខងារ `loop` លុបការហៅទៅ `IoTHubDeviceClient_LL_DoWork` ហើយប្តូរ `delay(10000)` ជាកូដខាងក្រោមដើម្បីហៅមុខងារថ្មីនេះ៖ + + ```cpp + work_delay(10000); + ``` + +> 💁 អ្នកអាចស្វែងរកកូដនេះនៅក្នុងថត [code/wio-terminal](../../../../../2-farm/lessons/4-migrate-your-plant-to-the-cloud/code/wio-terminal)។ + +😀 កម្មវិធីឧបករណ៍ចាប់សំណើរសំណល់ជាតិដីរបស់អ្នកត្រូវបានផ្ទៀងទៅកាន់ IoT Hub របស់អ្នកហើយ! + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែក្នុងការប្រើប្រាស់សេវាកម្មបកប្រែអេไអាយ [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំសំរាប់ភាពត្រឹមត្រូវ សូមយល់ឲ្យបានច្បាស់ថាការបកប្រែដោយស្វ័យប្រវត្តិនេះអាចមានកំហុស ឬភាពមិនត្រឹមរបស់វា។ ឯកសារដើមភាសាទីបាក់បណ្តុះត្រូវត្រូវបានគិតថាជាប្រភពដែលមានសុពលភាពត្រឹមត្រូវ។ សម្រាប់ព័ត៌មានសំខាន់ៗ ដំណើរការបកប្រែដោយមនុស្សជំនាញត្រូវបានណែនាំឲ្យប្រើ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសៗដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/2-farm/lessons/5-migrate-application-to-the-cloud/README.md b/translations/km/2-farm/lessons/5-migrate-application-to-the-cloud/README.md new file mode 100644 index 000000000..3666afc62 --- /dev/null +++ b/translations/km/2-farm/lessons/5-migrate-application-to-the-cloud/README.md @@ -0,0 +1,651 @@ +# ផ្លាស់ប្ដូរតុល្យភាពតម្រុយកម្មរបស់អ្នកទៅកាន់ពពក + +![កំណត់ត្រារូបភាពសង្ខេបសម្រាប់មេរៀននេះ](../../../../../translated_images/km/lesson-9.dfe99c8e891f48e1.webp) + +> កំណត់ត្រារូបភាពដោយ [Nitya Narasimhan](https://github.com/nitya)។ ចុចលើរូបភាពសម្រាប់មើលទំហំធំជាងនេះ។ + + +មេរៀននេះត្រូវបានបង្រៀនជាផ្នែកមួយនៃ [គម្រោង IoT សម្រាប់អ្នកចាប់ផ្តើម ភាគ ២ - ស៊េរីកសិក្សាពាណិជ្ជកម្មឌីជីថល](https://youtube.com/playlist?list=PLmsFUfdnGr3yCutmcVg6eAUEfsGiFXgcx) ពី [Microsoft Reactor](https://developer.microsoft.com/reactor/?WT.mc_id=academic-17441-jabenn)។ + +[![គ្រប់គ្រងឧបករណ៍ IoT របស់អ្នកជាមួយកូដ Serverless](https://img.youtube.com/vi/VVZDcs5u1_I/0.jpg)](https://youtu.be/VVZDcs5u1_I) + +## ការប្រលងមុនមេរៀន + +[ការប្រលងមុនមេរៀន](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/17) + +## ការណែនាំ + +ក្នុងមេរៀនមុន អ្នកបានរៀនពីរបៀបភ្ជាប់ការត្រួតពិនិត្យសំណើមដីរុក្ខជាតិ និងការត្រួតពិនិត្យចរន្តសំរាប់ relay ទៅកាន់សេវាកម្ម IoT នៅលើពពក។ ជំហានបន្ទាប់គឺផ្លាស់ប្ដូរកូដ server ដែលគ្រប់គ្រងកំណត់ពេលវេលារបស់ relay ទៅកាន់ពពក។ ក្នុងមេរៀននេះ អ្នកនឹងរៀនរបៀបធ្វើការនេះដោយប្រើមុខងារ serverless។ + +ក្នុងមេរៀននេះ យើងនឹងគ្របដណ្តប់៖ + +* [មុខងារ serverless គឺអ្វី?](#មុខងារ-serverless-គឺអ្វី) +* [បង្កើតកម្មវិធី serverless](#បង្កើតកម្មវិធី-serverless) +* [បង្កើតការបង្កើតរ៉ឺម៉្ស៊ីវវេនផ្ទៃក្នុង IoT Hub](#បង្កើតកម្មវិធីរំញ័រផ្សាយព្រឹត្តិការណ៍-iot-hub) +* [ផ្ញើការស្នើរសុំពិធីការ​ត្រង់ពីកូដ serverless](#ផ្ញើសំណើភាពdirect-method-ពីកូដ-serverless) +* [ដាក់បញ្ចូលកូដ serverless របស់អ្នកទៅពពក](#បោះពុម្ពកូដ-serverless-របស់អ្នកទៅមេឃ) + +## មុខងារ serverless គឺអ្វី? + +Serverless, ឬក៏កុំព្យូទ័រជាមួយមុខងារ serverless, មានន័យថាបង្កើតប្លុកតូចៗនៃកូដដែលត្រូវបានដំណើរការនៅលើពពកជាសន្ទស្សន៍នៃព្រឹត្តិការណ៍ផ្សេងៗ។ នៅពេលមានព្រឹត្តិការណ៍ កូដរបស់អ្នកត្រូវបានដំណើរការ និងផ្តល់ទិន្នន័យអំពីព្រឹត្តិការណ៍នោះ។ ព្រឹត្តិការណ៍ទាំងនេះអាចមកពីរឿងជាច្រើន ផ្សំឡើងពីការស្នើរសុំវេបសាយ, សារ​ដែលបានដាក់ក្នុងជួរ, ការផ្លាស់ប្តូរទិន្នន័យក្នុងមូលដ្ឋានទិន្នន័យ, ឬសារ​ដែលផ្ញើទៅសេវាកម្ម IoT ដោយឧបករណ៍ IoT។ + +![ព្រឹត្តិការណ៍ដែលផ្ញើពីសេវាកម្ម IoT ទៅសេវាកម្ម serverless ដែលទាំងអស់ត្រូវបានដំណើរការជាមួយមុខងារជាច្រើនដែលដំណើរការតែមួយពេល](../../../../../translated_images/km/iot-messages-to-serverless.0194da1cc0732bb7.webp) + +> 💁 ប្រសិនបើអ្នកបានប្រើប្រាស់ការបង្កើតរ៉ឺម៉្ស៊ីវមូលដ្ឋានទិន្នន័យពីមុន អ្នកអាចគិតថាវាគឺដូចគ្នា បូកកូដដែលត្រូវបានបញ្ចេញដោយព្រឹត្តិការណ៍ដូចជាការបញ្ចូលជួរថ្មី។ + +![នៅពេលព្រឹត្តិការណ៍ជាច្រើនត្រូវបានផ្ញើនៅពេលតែមួយ សេវាកម្ម serverless នឹងពង្រីកដំណើរការមុខងារ​ទាំងអស់ក្នុងពេលតែមួយ](../../../../../translated_images/km/serverless-scaling.f8c769adf0413fd1.webp) + +កូដរបស់អ្នកត្រូវបានដំណើរការតែពេលមានព្រឹត្តិការណ៍ ប៉ុន្តែគ្មានអ្វីរក្សាកូដរបស់អ្នកឲ្យមានជីវិតនៅពេលផ្សេងទៀតទេ។ ព្រឹត្តិការណ៍កើតឡើង កូដរបស់អ្នកត្រូវបានផ្ទុកហើយដំណើរការ។ វាធ្វើអោយ serverless មានជម្រើសច្រើនក្នុងការពង្រីកកម្រិត - ប្រសិនបើព្រឹត្តិការណ៍ជាច្រើនកើតឡើងនៅពេលតែមួយ អ្នកផ្គត់ផ្គង់ពពកអាចដំណើរការមុខងាររបស់អ្នកបានច្រើនដងក្នុងពេលតែមួយលើម៉ាស៊ីនបំរើណាមួយដែលមានស្រាប់។ បញ្ហាគឺ ប្រសិនបើអ្នកត្រូវការចែករំលែកព័ត៌មានរវាងព្រឹត្តិការណ៍ អ្នកត្រូវរក្សាទុកវានៅកន្លែងដូចជា ពាក្យគំនូសមូលដ្ឋានទិន្នន័យ ប្រៀបធៀបនឹងរក្សាទុកវាក្នុងចងចាំ។ + +កូដរបស់អ្នកត្រូវបានសរសេរជាមុខងារដែលទទួលបានព័ត៌មានលម្អិតអំពីព្រឹត្តិការណ៍ជាពារ៉ាម៉ែត្រ។ អ្នកអាចប្រើភាសាកម្មវិធីផ្សេងៗជាច្រើនសម្រាប់សរសេរមុខងារ serverless ទាំងនេះ។ + +> 🎓 Serverless ក៏ត្រូវបានហៅថា Functions as a Service (FaaS) ព្រោះរាល់កម្មវិធី trigger event ត្រូវបានអនុវត្តជាមុខងារ នៅក្នុងកូដ។ + +ទោះបីមានឈ្មោះគេ Serverless តែវាក៏ប្រើម៉ាស៊ីនបម្រើផងដែរ។ ឈ្មោះនេះមានន័យថា អ្នកជាអ្នកអភិវឌ្ឍមិនចាំបាច់ព្រួយក្រ្រមខ្លួនអំពីម៉ាស៊ីនបម្រើដែលទាមទ្រចាំបាច់សម្រាប់ដំណើរការកូដរបស់អ្នកទេ ទាំងអស់គឺអ្នកក៏ចង់ឲ្យកូដរបស់អ្នកដំណើរការចំពោះព្រឹត្តិការណ៍ណាមួយ។ អ្នកផ្គត់ផ្គង់ពពកមាន runtime serverless ដែលគ្រប់គ្រងការផ្ដល់ម៉ាស៊ីនបម្រើ បណ្ដាញ ស្តុក CPU ចងចាំ និងអ្វីៗទៀតដែលត្រូវការដើម្បីដំណើរការកូដរបស់អ្នក។ ម៉ូដែលនេះមានអត្ថន័យថា អ្នកមិនអាចបង់ប្រាក់ជាម៉ាស៊ីនបម្រើសម្រាប់សេវាកម្មទេ ព្រោះគ្មានម៉ាស៊ីនបម្រើទេ។ ផលិតផលគឺអ្នកបង់ប្រាក់សម្រាប់ពេលវេលាកូដរបស់អ្នកដំណើរការ និងចំនួនចងចាំដែលប្រើ។ + +> 💰 Serverless ជារបៀបថ្លៃថោកមួយក្នុងការដំណើរការកូដលើពពក។ ឧទាហរណ៍ នៅពេលកំឡុងពេលសរសេរ អ្នកផ្គត់ផ្គង់ពពកមួយអនុញ្ញាតឲ្យមុខងារ serverless របស់អ្នកអាចដំណើរការប្រមាណ ១,០០០,០០០ ដងក្នុងមួយខែមុនពេលចាប់ផ្តើមគិតថ្លៃ ហើយបន្ទាប់ពីនោះគេគិតថ្លៃ US$0.20 សម្រាប់ការដំណើរការ ១,០០០,០០០ ដងនីមួយៗ។ នៅពេលកូដរបស់អ្នកមិនដំណើរការនោះ អ្នកមិនចាំបាច់បង់ប្រាក់ទេ។ + +ជាអ្នកអភិវឌ្ឍ IoT ម៉ូដែល serverless គឺល្អគួរឱ្យប្រើ។ អ្នកអាចសរសេរមុខងារមួយដែលត្រូវបានហៅចំពោះសារដែលផ្ញើពីឧបករណ៍ IoT ដែលភ្ជាប់ទៅសេវាកម្ម IoT របស់អ្នកនៅលើពពក។ កូដរបស់អ្នកនឹងព្យាយាមដោះស្រាយសារ​ទាំងអស់ដែលបានផ្ញើ តែដំណើរការតែនៅពេលត្រូវការតែប៉ុណ្ណោះ។ + +✅ ចង់រកមើលកូដដែលអ្នកបានសរសេរជាកូដ server ដែលស្តាប់សារជាមួយ MQTT។ តើវាអាចដំណើរការនៅលើពពកជាមួយ serverless បានយ៉ាងដូចម្តេច? តើអ្នកគិតថាកូដត្រូវបានផ្លាស់ប្ដូរយ៉ាងដូចម្តេចដើម្បីគាំទ្រការគណនាគ្រប់គ្រង Serverless? + +> 💁 ម៉ូដែល serverless កំពុងផ្លាស់ប្ដូរទៅប្រើសេវាកម្មពពកផ្សេងទៀតផងនឹងការដំណើរការកូដ។ ឧទាហរណ៍ មានមូលដ្ឋានទិន្នន័យ serverless ដែលអាចប្រើបាននៅលើពពកជាមួយម៉ូដែលតម្លៃថ្លៃ serverless ដែលអ្នកបង់ប្រាក់តាមសំណើដែលបានធ្វើទៅកាន់មូលដ្ឋានទិន្នន័យ ដូចជា សំណួរ ឬក៏ការបញ្ចូល ពេលត្រូវការតម្លៃគិតជាការងារដែលបានអនុវត្ត។ ឧទាហរណ៍ ជម្រើសតែមួយនៃជួរមួយដែលស្វែងរកតាមគូនៃទិន្នន័យដើមមានតម្លៃថ្លៃតិចជាងប្រតិបត្តិការ מורכבת ដែលផ្សំតារាងជាច្រើន និងបង្រួមជួរយ៉ាងស្ទើរលាន។ + +## បង្កើតកម្មវិធី serverless + +សេវាកម្មគណនាភាព Serverless ពី Microsoft ត្រូវបានហៅថា Azure Functions។ + +![រូបស្លាក Azure Functions](../../../../../translated_images/km/azure-functions-logo.1cfc8e3204c9c44a.webp) + +វីដេអូចាស់ខាងក្រោមមានការណែនាំសង្ខេបអំពី Azure Functions + +[![វីដេអូនៃការណែនាំ Azure Functions](https://img.youtube.com/vi/8-jz5f_JyEQ/0.jpg)](https://www.youtube.com/watch?v=8-jz5f_JyEQ) + +> 🎥 ចុចលើរូបភាពខាងលើដើម្បីមើលវីដេអូ + +✅ ចំណាយពេលមួយមុខស្រាវជ្រាវ និងអានអតិថិជនអំពី Azure Functions នៅក្នុង [ឯកសាររបស់ Microsoft Azure Functions](https://docs.microsoft.com/azure/azure-functions/functions-overview?WT.mc_id=academic-17441-jabenn)។ + +ដើម្បីសរសេរ Azure Functions អ្នកចាប់ផ្តើមជាមួយកម្មវិធី Azure Functions សម្រាប់ភាសាដែលអ្នកចូលចិត្ត។ Azure Functions គាំទ្រភាសា Python, JavaScript, TypeScript, C#, F#, Java, និង Powershell។ នៅក្នុងមេរៀននេះ អ្នកនឹងរៀនរបៀបសរសេរកម្មវិធី Azure Functions ជាភាសា Python។ + +> 💁 Azure Functions ក៏គាំទ្រមុខងារចំណតផ្ទាល់ខ្លួន ដែលអនុញ្ញាតឲ្យអ្នកសរសេរមុខងាររបស់អ្នកជាភាសាណាមួយដែលគាំទ្រការស្នើសុំ HTTP រួមមានភាសាចាស់ៗដូចជា COBOL។ + +កម្មវិធី Functions មានមុខងារ *trigger* ច្រើនជាងមួយ - មុខងារតបតទៅនឹងព្រឹត្តិការណ៍។ អ្នកអាចមានច្រើន trigger ក្នុងកម្មវិធី Function មួយ ប្រើការកំណត់រួមគ្នា។ ឧទាហរណ៍ ក្នុងឯកសារកំណត់រចនាសម្ព័ន្ធសម្រាប់កម្មវិធី Functions របស់អ្នក អ្នកអាចមានព័ត៌មានភ្ជាប់ IoT Hub ហើយមុខងារទាំងអស់ក្នុងកម្មវិធី អាចប្រើវាដើម្បីភ្ជាប់ និងស្តាប់ព្រឹត្តិការណ៍។ + +### ការងារ - ដំឡើងឧបករណ៍ Azure Functions + +> នៅពេលបិទការសរសេរ ឧបករណ៍កូដ Azure Functions មិនដំណើរការបានគ្រប់លក្ខណៈលើ Apple Silicon ជាមួយគម្រោង Python ទេ។ អ្នកត្រូវប្រើម៉ាស៊ីន Mac ចាស់តែ Intel, កុំព្យូទ័រវីនដូរ ឬកុំព្យូទ័រឡិនុកស៍។ + +មុខងារល្អមួយនៃ Azure Functions គឺ អ្នកអាចដំណើរការវាទៅក្នុងស្រុកបាន។ Runtime ដូចគ្នានៅពពកអាចដំណើរការតាមកុំព្យូទ័ររបស់អ្នក អនុញ្ញាតឲ្យអ្នកសរសេរកូដតបត្រូវសារពីឧបករណ៍ IoT ហើយដំណើរការវាទៅក្នុងស្រុក។ អ្នកអាច debug កូដរបស់អ្នកខណៈពេលព្រឹត្តិការណ៍ត្រូវបានដោះស្រាយផងដែរ។ បន្ទាប់ពីព្រមចិត្តនឹងកូដរបស់អ្នក វាអាចដាក់បញ្ចូលទៅពពកបាន។ + +ឧបករណ៍ Azure Functions ត្រូវបានផ្តល់ជាងជា CLI ដែលគេហៅថា Azure Functions Core Tools។ + +1. ដំឡើង Azure Functions core tools ដោយអនុវត្តតាមការណែនាំនៅក្នុង [ឯកសារអំពី Azure Functions Core Tools](https://docs.microsoft.com/azure/azure-functions/functions-run-local?WT.mc_id=academic-17441-jabenn) + +1. ដំឡើងសកម្មភាព Azure Functions សម្រាប់ VS Code។ សកម្មភាពនេះផ្តល់ជំនួយក្នុងការបង្កើត, បញ្ឆោត, និងដាក់បញ្ចូល Azure functions។ សូមយោងទៅកាន់ [ឯកសារសកម្មភាព Azure Functions](https://marketplace.visualstudio.com/items?WT.mc_id=academic-17441-jabenn&itemName=ms-azuretools.vscode-azurefunctions) សម្រាប់ការណែនាំអំពីការដំឡើងសកម្មភាពនេះក្នុង VS Code។ + +ពេលអ្នកដាក់បញ្ចូលកម្មវិធី Azure Functions ទៅពពក វាត្រូវការប្រើមួយចំនួនតិចតួចនៃផ្ទុកពពកសម្រាប់រក្សារឿងដូចជា ឯកសារកម្មវិធី និងឯកសារហៅហៅ។ ពេលអ្នកដំណើរកម្មកម្មវិធី Functions នៅក្នុងស្រុក អ្នកត្រូវភ្ជាប់ទៅផ្ទុកពពកផងដែរ ប៉ុន្តែជំនួសការប្រើផ្ទុកពពកពិត អ្នកអាចប្រើកម្មវិធីក្លែងបន្លំផ្ទុកដែលមានឈ្មោះថា [Azurite](https://github.com/Azure/Azurite)។ វាដំណើរការនៅក្នុងស្រុកប៉ុន្តែមានលក្ខណៈដូចផ្ទុកពពក។ + +> 🎓 នៅក្នុង Azure ផ្ទុកដែល Azure Functions ប្រើប្រាស់គឺជាគណនី Azure Storage។ គណនីទាំងនេះអាចរក្សាទុកឯកសារ ឯកសារសារ data នៅក្នុងតារាង ឬ data នៅក្នុងជួរ។ អ្នកអាចចែករំលែកគណនីនេះរួមគ្នា រវាងកម្មវិធីជាច្រើន ដូចជា កម្មវិធី Functions និងកម្មវិធីវេបសាយ។ + +1. Azurite ជាកម្មវិធី Node.js ដូច្នេះអ្នកត្រូវដំឡើង Node.js។ អ្នកអាចរកមើលការទាញយកនិងការដំឡើងនៅលើ [គេហទំព័រ Node.js](https://nodejs.org/)។ ប្រសិនបើអ្នកប្រើ Mac អ្នកក៏អាចដំឡើងពី [Homebrew](https://formulae.brew.sh/formula/node) ផងដែរ។ + +1. ដំឡើង Azurite ដោយប្រើពាក្យបញ្ជាខាងក្រោម (`npm` ជាឧបករណ៍ដែលត្រូវបានដំឡើងពេលអ្នកដំឡើង Node.js): + + ```sh + npm install -g azurite + ``` + +1. បង្កើតថតឯកសារឈ្មោះ `azurite` សម្រាប់ Azurite ប្រើរក្សាទុកទិន្នន័យ: + + ```sh + mkdir azurite + ``` + +1. ដំណើរការ Azurite ហើយផ្ដល់ថតនេះជាអាគុយម៉ង់: + + ```sh + azurite --location azurite + ``` + + កម្មវិធីកម្មវិធីក្លែងបន្លំផ្ទុក Azurite នឹងចាប់ផ្តើម និងរួចរាល់សម្រាប់ runtime Functions នៅក្នុងស្រុកភ្ជាប់។ + + ```output + ➜ ~ azurite --location azurite + Azurite Blob service is starting at http://127.0.0.1:10000 + Azurite Blob service is successfully listening at http://127.0.0.1:10000 + Azurite Queue service is starting at http://127.0.0.1:10001 + Azurite Queue service is successfully listening at http://127.0.0.1:10001 + Azurite Table service is starting at http://127.0.0.1:10002 + Azurite Table service is successfully listening at http://127.0.0.1:10002 + ``` + +### ការងារ - បង្កើតគម្រោង Azure Functions + +CLI របស់ Azure Functions អាចប្រើសម្រាប់បង្កើតកម្មវិធី Functions ថ្មី។ + +1. បង្កើតថតសម្រាប់កម្មវិធី Functions របស់អ្នក ហើយចូលទៅក្នុងថតនោះ ហៅថា `soil-moisture-trigger` + + ```sh + mkdir soil-moisture-trigger + cd soil-moisture-trigger + ``` + +1. បង្កើត virtual environment Python នៅក្នុងថតនេះ: + + ```sh + python3 -m venv .venv + ``` + +1. បើកកំណត់ virtual environment: + + * នៅលើ Windows: + * ប្រសិនបើអ្នកប្រើ Command Prompt ឬ Command Prompt តាមរយៈ Windows Terminal អនុវត្ត៖ + + ```cmd + .venv\Scripts\activate.bat + ``` + + * ប្រសិនបើអ្នកប្រើ PowerShell អនុវត្ត៖ + + ```powershell + .\.venv\Scripts\Activate.ps1 + ``` + + * នៅលើ macOS ឬ Linux អនុវត្ត៖ + + ```cmd + source ./.venv/bin/activate + ``` + + > 💁 ពាក្យបញ្ជាទាំងនេះត្រូវដំណើរការពីទីតាំងដដែលដែលបានប្រើបង្កើត virtual environment ។ អ្នកមិនចាំបាច់ចូលទៅក្នុងថត `.venv` ទេ គួរតែដំណើរការពាក្យបញ្ជា activate និងការតំឡើងថ្នាក់ឯកសារពីថតដែលអ្នកបានបង្កើតវា។ + +1. អនុវត្តពាក្យបញ្ជាខាងក្រោម ដើម្បីបង្កើតកម្មវិធី Functions នៅក្នុងថតនេះ៖ + + ```sh + func init --worker-runtime python soil-moisture-trigger + ``` + + វានឹងបង្កើតឯកសារ 3 នៅក្នុងថតបច្ចុប្បន្ន៖ + + * `host.json` - ឯកសារផ្ទៃតំណរ JSON ដែលមានការកំណត់សម្រាប់កម្មវិធី Functions របស់អ្នក។ អ្នកមិនចាំបាច់កែប្រែការកំណត់ទាំងនេះឡើយ។ + * `local.settings.json` - ឯកសារផ្ទៃតំណរ JSON ដែលមានការកំណត់សម្រាប់កម្មវិធីរបស់អ្នកត្រូវប្រើនៅពេលដំណើរការនៅក្នុងស្រុកដូចជាប្រភេទតំណភ្ជាប់ទៅ IoT Hub។ ការកំណត់ទាំងនេះកំណត់នៅក្នុងស្រុក និងមិនគួរតែនាំចូលទៅកាន់គ្រប់គ្រងកូដ។ ពេលអ្នកដាក់បញ្ចូលកម្មវិធីទៅពពក ការកំណត់ទាំងនេះមិនត្រូវបានដាក់បញ្ចូលឡើយ ជំនួសដោយការផ្ទុកកំណត់ពីកំណត់កម្មវិធី។ វានឹងត្រូវបង្ហាញបន្ថែមបន្ទាប់។ + * `requirements.txt` - នេះគឺជា [ឯកសារទាមទារពី Pip](https://pip.pypa.io/en/stable/user_guide/#requirements-files) ដែលមានសំណុំថ្នាក់បណ្ណាល័យ Pip ដែលត្រូវរក្សាដើម្បីដំណើរការកម្មវិធី Functions របស់អ្នក។ + +1. ឯកសារ `local.settings.json` មានការកំណត់សម្រាប់គណនីផ្ទុកដែលកម្មវិធី Functions នឹងប្រើ។ នេះគឺអត្រាគ្មានសម្រាប់ការកំណត់ ដូច្នេះត្រូវកំណត់វា។ ដើម្បីភ្ជាប់ទៅ Azurite storage emulator ដែលដំណើរការនៅក្នុងស្រុក សូមកំណត់តម្លៃនេះទៅខាងក្រោម៖ + + ```json + "AzureWebJobsStorage": "UseDevelopmentStorage=true", + ``` + +1. ដំឡើងថ្នាក់បណ្ណាល័យ Pip ត្រូវបានទាមទារដោយប្រើឯកសារ requirements៖ + + ```sh + pip install -r requirements.txt + ``` + + > 💁 ថ្នាក់បណ្ណាល័យ Pip ត្រូវតែមាននៅក្នុងឯកសារនេះ ដើម្បី runtime នៅពពកអាចធានាបានថាដំឡើងថ្នាក់បណ្ណាល័យត្រឹមត្រូវ។ + +1. ដើម្បីសាកល្បងថាអ្វីៗដំណើរការត្រឹមត្រូវ អ្នកអាចចាប់ផ្តើម runtime Functions ដោយអនុវត្តពាក្យបញ្ជាខាងក្រោម៖ + + ```sh + func start + ``` + + អ្នកនឹងឃើញ runtime ចាប់ផ្តើម និងរាយការណ៍ថាវាមិនបានឃើញមុខងារជាអ្នកធ្វើការងារ (trigger) ទេ។ + + ```output + (.venv) ➜ soil-moisture-trigger func start + Found Python version 3.9.1 (python3). + + Azure Functions Core Tools + Core Tools Version: 3.0.3442 Commit hash: 6bfab24b2743f8421475d996402c398d2fe4a9e0 (64-bit) + Function Runtime Version: 3.0.15417.0 + + [2021-05-05T01:24:46.795Z] No job functions found. + ``` + + > ⚠️ ប្រសិនបើអ្នកទទួលបានការជូនដំណឹង firewall សូមអនុញ្ញាតការចូលដំណើរការ រួច application `func` ត្រូវការអាចអាន និងសរសេរទៅបណ្តាញរបស់អ្នក។ + + > ⚠️ ប្រសិនបើអ្នកប្រើ macOS អាចមានការព្រមានក្នុងលទ្ធផល៖ + > + > ```output + > (.venv) ➜ soil-moisture-trigger func start + > Found Python version 3.9.1 (python3). + > + > Azure Functions Core Tools + > Core Tools Version: 3.0.3442 Commit hash: 6bfab24b2743f8421475d996402c398d2fe4a9e0 (64-bit) + > Function Runtime Version: 3.0.15417.0 + > + > [2021-06-16T08:18:28.315Z] Cannot create directory for shared memory usage: /dev/shm/AzureFunctions + > [2021-06-16T08:18:28.316Z] System.IO.FileSystem: Access to the path '/dev/shm/AzureFunctions' is denied. Operation not permitted. + > [2021-06-16T08:18:30.361Z] No job functions found. + > ``` + > + > អ្នកអាចមិនចាំបាច់យកចិត្តទុកដាក់បើសិន runtime Functions ចាប់ផ្តើម។ ព័ត៌មានបន្ថែមស្តីពីបញ្ហានេះអាចមើលបាននៅ [Microsoft Docs Q&A](https://docs.microsoft.com/answers/questions/396617/azure-functions-core-tools-error-osx-devshmazurefu.html?WT.mc_id=academic-17441-jabenn) + +1. បញ្ឈប់កម្មវិធី Functions ដោយចុច `ctrl+c`។ + +1. បើកថតបច្ចុប្បន្ននៅក្នុង VS Code ដោយបើក VS Code រួចបើកថតនេះ ឬដំណើរការពាក្យបញ្ជាខាងក្រោម៖ + + ```sh + code . + ``` + + VS Code នឹងរកឃើញគម្រោង Functions របស់អ្នក ហើយបង្ហាញការជូនដំណឹងថា: + ```output + Detected an Azure Functions Project in folder "soil-moisture-trigger" that may have been created outside of + VS Code. Initialize for optimal use with VS Code? + ``` + + ![ការជូនដំណឹង](../../../../../translated_images/km/vscode-azure-functions-init-notification.bd19b49229963edb.webp) + + ជ្រើសរើស **Yes** ពីការជូនដំណឹងនេះ។ + +1. ប្រាកដថា Python virtual environment កំពុងរត់នៅក្នុង VS Code terminal។ បិទវា ហើយចាប់ផ្តើមឡើងវិញប្រសិនបើចាំបាច់។ + +## បង្កើតកម្មវិធីរំញ័រផ្សាយព្រឹត្តិការណ៍ IoT Hub + +កម្មវិធី Functions គឺជាសែលរបស់កូដ serverless របស់អ្នក។ ដើម្បីឆ្លើយតបនឹងព្រឹត្តិការណ៍ IoT hub អ្នកអាចបន្ថែមកម្មវិធីរំញ័រផ្សាយព្រឹត្តិការណ៍ IoT Hub ទៅកម្មវិធីនេះ។ កម្មវិធីរំញ័រនេះត្រូវការតភ្ជាប់ទៅនឹងស្ទ្រីមសារដែលត្រូវបានផ្ញើទៅ IoT Hub ហើយឆ្លើយតបដល់វា។ ដើម្បីទទួលបានស្ទ្រីមសារនេះ កម្មវិធីរំញ័ររបស់អ្នកត្រូវការ​តភ្ជាប់ទៅ IoT Hubs *event hub compatible endpoint*។ + +IoT Hub គឺមានមូលដ្ឋានមួយទៀតលើសេវា Azure ដែលបានហៅថា Azure Event Hubs។ Event Hubs គឺជា​សេវា​ដែល​អនុញ្ញាត​ឱ្យ​អ្នក​ផ្ញើ​និង​ទទួល​សារ ប្រើ IoT Hub បន្ថែមលើនេះដើម្បីផ្តល់លក្ខណៈពិសេសសម្រាប់ឧបករណ៍ IoT។ វិធីដែលអ្នកភ្ជាប់ដើម្បីអានសារពី IoT Hub គឺដូចគ្នាដូចការប្រើប្រាស់ Event Hubs។ + +✅ ប្រែសម្រួលបន្តិច៖ អានទិដ្ឋភាពទូទៅនៃ Event Hubs ក្នុង [Azure Event Hubs documentation](https://docs.microsoft.com/azure/event-hubs/event-hubs-about?WT.mc_id=academic-17441-jabenn) ។ តើលក្ខណៈមូលដ្ឋានធៀបនឹង IoT Hub យ៉ាងដូចម្តេច? + +សម្រាប់ឧបករណ៍ IoT ដើម្បីភ្ជាប់ទៅ IoT Hub វាត្រូវប្រើកូនសោសម្ងាត់ដែលធានាបានថាមានតែម្តងឧបករណ៍ដែលអនុញ្ញាតអាចភ្ជាប់បាន។ ដូចគ្នានេះ ក៏ពេលភ្ជាប់ដើម្បីអានសារកូដរបស់អ្នកត្រូវការខ្សែសង្វាក់ចំនួនមួយដែលមានកូនសោសម្ងាត់នៅក្នុងវា ជាមួយព័ត៌មានលម្អិតនៃ IoT Hub ផងដែរ។ + +> 💁 ខ្សែសង្វាក់ភ្ជាប់លំនាំដើមដែលអ្នកទទួលបានមានសិទ្ធិ **iothubowner** ដែលផ្តល់សិទ្ធិពេញលេញទៅកូដណាមួយដែលប្រើវាលើ IoT Hub។ ក្នុង ideally អ្នកគួរតែភ្ជាប់ជាមួយកម្រិតសិទ្ធិទាបបំផុតដែលចាំបាច់។ នេះនឹងត្រូវរៀបរាប់នៅមេរៀនបន្ទាប់។ + +ពេលដែលកម្មវិធីរំញ័ររបស់អ្នកបានភ្ជាប់រួច កូដនៅខាងក្នុងមុខងារនឹងត្រូវបានហៅសម្រាប់កំណត់ត្រាទាំងអស់ដែលបានផ្ញើទៅ IoT Hub មិនគិតថាឧបករណ៍ណាដែលបានផ្ញើវា។ កម្មវិធីរំញ័រនឹងទទួលសារជាពាក្យបញ្ជាទាល់តែ។ + +### បេសកកម្ម - ទទួលខ្សែសង្វាក់ភ្ជាប់ event hub compatible endpoint + +1. ពី VS Code terminal ប្រតិបត្តិការបន្ទាប់ដើម្បីទទួលខ្សែសង្វាក់ភ្ជាប់សម្រាប់ IoT Hubs Event Hub compatible endpoint៖ + + ```sh + az iot hub connection-string show --default-eventhub \ + --output table \ + --hub-name + ``` + + ជំនួស `` ជាមួយឈ្មោះដែលអ្នកបានប្រើសម្រាប់ IoT Hub របស់អ្នក។ + +1. នៅក្នុង VS Code បើកឯកសារ `local.settings.json` បន្ថែមតម្លៃបន្ថែមខាងក្រោមនៅក្នុងផ្នែក `Values`៖ + + ```json + "IOT_HUB_CONNECTION_STRING": "" + ``` + + ជំនួស `` ជាមួយតម្លៃពីជំហានមុន។ អ្នកត្រូវបន្ថែមក្បៀសក្រោយជួរខាងលើដើម្បីធ្វើឲ្យវាជា JSON ត្រឹមត្រូវ។ + +### បេសកកម្ម - បង្កើតកម្មវិធីរំញ័រផ្សាយព្រឹត្តិការណ៍ + +ឥឡូវនេះអ្នកត្រៀមខ្លួនសម្រាប់បង្កើតកម្មវិធីរំញ័រផ្សាយព្រឹត្តិការណ៍។ + +1. ពី VS Code terminal ប្រតិបត្តិការបន្ទាប់ក្នុងថត `soil-moisture-trigger`៖ + + ```sh + func new --name iot-hub-trigger --template "Azure Event Hub trigger" + ``` + + វាបង្កើតមុខងារថ្មីឈ្មោះ `iot-hub-trigger`។ កម្មវិធីរំញ័រនឹងភ្ជាប់ទៅ Event Hub compatible endpoint នៅលើ IoT Hub ដូច្នេះអ្នកអាចប្រើកម្មវិធីរំញ័រផ្សាយព្រឹត្តិការណ៍ event hub។ មិនមានកម្មវិធីរំញ័រពិសេសសម្រាប់ IoT Hub ទេ។ + +វានឹងបង្កើតថតនៅក្នុងថត `soil-moisture-trigger` ដែលមានឈ្មោះ `iot-hub-trigger` ដែលមានមុខងារនេះ។ ថតនេះនឹងមានឯកសារខាងក្នុងដូចតទៅ៖ + +* `__init__.py` - នេះគឺជា​ឯកសារកូដ Python ដែលមានកម្មវិធីរំញ័រ ប្រើឈ្មោះឯកសារតាមប្រព័ន្ធ Python ដើម្បីបម្លែងថតនេះទៅជាមូឌុល Python មួយ។ + + ឯកសារនេះនឹងមានកូដដូចខាងក្រោម៖ + + ```python + import logging + + import azure.functions as func + + + def main(event: func.EventHubEvent): + logging.info('Python EventHub trigger processed an event: %s', + event.get_body().decode('utf-8')) + ``` + + ការសំខាន់នៃកម្មវិធីរំញ័រគឺមុខងារ `main`។ នេះគឺជាមុខងារដែលត្រូវបានហៅជាមួយព្រឹត្តិការណ៍ពី IoT Hub។ មុខងារនេះមានប៉ារ៉ាម៉ែត្រមួយហៅថា `event` ដែលមានន័យថា `EventHubEvent`។ រៀងរាល់ពេលដែលសារត្រូវបានផ្ញើទៅ IoT Hub មុខងារនេះនឹងត្រូវបានហៅដោយផ្ញើសារនោះជាទីតាំង `event` ទៅដៃជាមួយគ្រប់គ្រងដែលស្រដៀងនឹងការបកស្រាយដែលអ្នកបានឃើញនៅមេរៀនមុន។ + + ការសំខាន់នៃមុខងារនេះគឺកំណត់ហេតុព្រឹត្តិការណ៍។ + +* `function.json` - នេះរួមបញ្ចូលការកំណត់សម្រាប់កម្មវិធីរំញ័រ។ ការកំណត់សំខាន់គឺនៅផ្នែក `bindings`។ វាជាសាកសមនឹងការតភ្ជាប់រវាង Azure Functions និងសេវាផ្សេងៗ Azure។ កម្មវិធីនេះមាន input binding ទៅ event hub - វាភ្ជាប់ទៅ event hub ហើយទទួលទិន្នន័យ។ + + > 💁 អ្នកអាចមាន output bindings ដែលធ្វើអោយការចេញពីមុខងារត្រូវផ្ញើទៅសេវាផ្សេងទៀត។ ឧទាហរណ៍ អ្នកអាចបន្ថែម output binding ទៅមូលដ្ឋានទិន្នន័យ ហើយបញ្ជូនព្រឹត្តិការណ៍ IoT Hub ពីមុខងារ ហើយវានឹងត្រូវបានបញ្ចូលដោយស្វ័យប្រវត្តិទៅមូលដ្ឋានទិន្នន័យ។ + + ✅ ប្រែសម្រួលបន្តិច៖ អានអំពី bindings ក្នុង [Azure Functions triggers and bindings concepts documentation](https://docs.microsoft.com/azure/azure-functions/functions-triggers-bindings?WT.mc_id=academic-17441-jabenn&tabs=python)។ + + ផ្នែក `bindings` រួមបញ្ចូលការកំណត់សម្រាប់ binding។ តម្លៃដែលគួរឱ្យចាប់អារម្មណ៍មាន៖ + + * `"type": "eventHubTrigger"` - នេះប្រាប់មុខងារថាអ្នកត្រូវតបនឹងព្រឹត្តិការណ៍ពី Event Hub + * `"name": "events"` - នេះជាឈ្មោះប៉ារ៉ាមែត្រដែលប្រើសម្រាប់ព្រឹត្តិការណ៍ Event Hub។ វาตรงនឹងឈ្មោះប៉ារ៉ាមែត្រ​ក្នុងម្ហងារ `main` ក្នុងកូដ Python។ + * `"direction": "in"` - នេះជាការចូល binding, ទិន្នន័យពី event hub មកក្នុងមុខងារ + * `"connection": ""` - នេះកំណត់ឈ្មោះនៃការកំណត់ដើម្បីអានខ្សែសង្វាក់ភ្ជាប់។ ពេលរត់លើក្រោយវិញវានឹងអានការកំណត់នេះពីឯកសារ `local.settings.json` ។ + + > 💁 ខ្សែសង្វាក់ភ្ជាប់មិនអាចរក្សាទុកនៅឯកសារ `function.json` បានទេ វាត្រូវតែអានពីការកំណត់។ នេះដើម្បីជៀសវាងករណីអ្នកបញ្ចេញខ្សែសង្វាក់ភ្ជាប់ដោយចៃដន្យ។ + +1. ដោយសារតែ [កោសិការណ៍ក្នុង template Azure Functions](https://github.com/Azure/azure-functions-templates/issues/1250) មានកម្លាំងមិនត្រឹមត្រូវសម្រាប់ `cardinality`។ សូមធ្វើបច្ចុប្បន្នភាពវានៅក្នុង `function.json` ពី `many` ទៅ `one`៖ + + ```json + "cardinality": "one", + ``` + +1. បច្ចុប្បន្នភាពតម្លៃ `"connection"` ក្នុងឯកសារ `function.json` ដើម្បីបង្ហាញទៅកាន់តម្លៃថ្មីដែលបានបន្ថែមនៅក្នុង `local.settings.json`៖ + + ```json + "connection": "IOT_HUB_CONNECTION_STRING", + ``` + + > 💁 សូមចងចាំ - វាត្រូវបង្ហាញទៅកាន់ការកំណត់ មិនមែនជាខ្សែសង្វាក់ភ្ជាប់ពិតប្រាកដទេ។ + +1. ខ្សែសង្វាក់ភ្ជាប់មានតម្លៃ `eventHubName` ដូច្នេះតម្លៃនេះនៅក្នុងឯកសារ `function.json` ត្រូវតែទទេ។ សូមធ្វើបច្ចុប្បន្នភាពវាទៅជាខ្សែសង្វាក់ទទេ៖ + + ```json + "eventHubName": "", + ``` + +### បេសកកម្ម - រត់កម្មវិធីរំញ័រព្រឹត្តិការណ៍ + +1. ប្រាកដថាអ្នកមិនបានដំណើរការកម្មវិធីមើលព្រឹត្តិការណ៍ IoT Hub ទេ។ ប្រសិនបើវាកំពុងដំណើរកាសហគ្រប់ជាមួយកម្មវិធី functions app កម្មវិធី functions app នឹងមិនអាចភ្ជាប់និងប្រើព្រឹត្តិការណ៍បានទេ។ + + > 💁 អ្នកអាចច្រើនកម្មវិធីភ្ជាប់ទៅ IoT Hub endpoints ដោយប្រើ *consumer groups* ផ្សេងគ្នា។ នេះនឹងត្រូវរៀបរាប់នៅមេរៀនក្រោយ។ + +1. ដើម្បីដំណើរការ Functions app ប្រតិបត្តិការបន្ទាប់ពី VS Code terminal + + ```sh + func start + ``` + + កម្មវិធី Functions នឹងចាប់ផ្តើម និងស្វែងរកមុខងារ `iot-hub-trigger`។ បន្ទាប់មកវានឹងដំណើរការព្រឹត្តិការណ៍ណាមួយដែលបានផ្ញើទៅ IoT Hub មុនមួយថ្ងៃ។ + + ```output + (.venv) ➜ soil-moisture-trigger func start + Found Python version 3.9.1 (python3). + + Azure Functions Core Tools + Core Tools Version: 3.0.3442 Commit hash: 6bfab24b2743f8421475d996402c398d2fe4a9e0 (64-bit) + Function Runtime Version: 3.0.15417.0 + + Functions: + + iot-hub-trigger: eventHubTrigger + + For detailed output, run func with --verbose flag. + [2021-05-05T02:44:07.517Z] Worker process started and initialized. + [2021-05-05T02:44:09.202Z] Executing 'Functions.iot-hub-trigger' (Reason='(null)', Id=802803a5-eae9-4401-a1f4-176631456ce4) + [2021-05-05T02:44:09.205Z] Trigger Details: PartitionId: 0, Offset: 1011240-1011632, EnqueueTimeUtc: 2021-05-04T19:04:04.2030000Z-2021-05-04T19:04:04.3900000Z, SequenceNumber: 2546-2547, Count: 2 + [2021-05-05T02:44:09.352Z] Python EventHub trigger processed an event: {"soil_moisture":628} + [2021-05-05T02:44:09.354Z] Python EventHub trigger processed an event: {"soil_moisture":624} + [2021-05-05T02:44:09.395Z] Executed 'Functions.iot-hub-trigger' (Succeeded, Id=802803a5-eae9-4401-a1f4-176631456ce4, Duration=245ms) + ``` + + រៀងរាល់ការហៅមុខងារនឹងមានខ្នាត `Executing 'Functions.iot-hub-trigger'`/`Executed 'Functions.iot-hub-trigger'` ក្នុងលទ្ធផលបង្ហាញ ដូច្នេះអ្នកអាចមើលបានថាម៉េស្សេរ៉​ដែលត្រូវបានដំណើរការនៅក្នុងមុខងារនីមួយៗ។ + +1. ប្រាកដថាឧបករណ៍ IoT របស់អ្នកកំពុងរត់ អ្នកនឹងឃើញសារប្រេងសើមដីថ្មីប្រើបង្ហាញចូលក្នុង Functions app។ + +1. បិទ និងចាប់ផ្តើមឡើងវិញ Functions app អ្នកនឹងឃើញវានឹងមិនដំណើរការសារពីមុនទៀតទេ វានឹងដំណើរការសារថ្មីតែប៉ុណ្ណោះ។ + +> 💁 VS Code ក៏គាំទ្រការត្រួតពិនិត្យកំហុស Functions របស់អ្នកផងដែរ។ អ្នកអាចកំណត់ breakpoint ដោយចុចលើព្រំដែននៅដើមជួរនីមួយៗនៃកូដ ឬដាក់កឺស៊័រលើជួរលេខនិងជ្រើសរើស *Run -> Toggle breakpoint*, ឬចុច `F9`។ អ្នកអាចចាប់ផ្តើម debugger ដោយជ្រើសរើស *Run -> Start debugging*, ចុច `F5`, ឬជ្រើសរើសផ្ទាំង *Run and debug* ហើយចុចប៊ូតុង **Start debugging**។ ដោយធ្វើនេះ អ្នកអាចមើលព័ត៌មានលំអិតនៃព្រឹត្តិការណ៍ដែលកំពុងដំណើរការ។ + +#### ដោះស្រាយបញ្ហា + +* ប្រសិនប្រសវាជួបកំហុសដូចខាងក្រោម៖ + + ```output + The listener for function 'Functions.iot-hub-trigger' was unable to start. Microsoft.WindowsAzure.Storage: Connection refused. System.Net.Http: Connection refused. System.Private.CoreLib: Connection refused. + ``` + + ពិនិត្យថា Azurite កំពុងរត់ និងអ្នកបានកំណត់ `AzureWebJobsStorage` នៅក្នុងឯកសារ `local.settings.json` ទៅជា `UseDevelopmentStorage=true`។ + +* ប្រសិនបើបានកំហុសដូចខាងក្រោម៖ + + ```output + System.Private.CoreLib: Exception while executing function: Functions.iot-hub-trigger. System.Private.CoreLib: Result: Failure Exception: AttributeError: 'list' object has no attribute 'get_body' + ``` + + ពិនិត្យថាអ្នកបានកំណត់ `cardinality` នៅក្នុងឯកសារ `function.json` ទៅជា `one`។ + +* ប្រសិនបើបានកំហុសដូចខាងក្រោម៖ + + ```output + Azure.Messaging.EventHubs: The path to an Event Hub may be specified as part of the connection string or as a separate value, but not both. Please verify that your connection string does not have the `EntityPath` token if you are passing an explicit Event Hub name. (Parameter 'connectionString'). + ``` + + ពិនិត្យថាអ្នកបានកំណត់ `eventHubName` នៅក្នុងឯកសារ `function.json` ទៅជាស្ទ្រីងទទេ។ + +## ផ្ញើសំណើភាពdirect method ពីកូដ serverless + +មកដល់ពេលនេះ Functions app របស់អ្នកកំពុងស្ដាប់សារពី IoT Hub ដោយប្រើ Event Hub compatible end point។ ឥឡូវនេះអ្នកត្រូវផ្ញើពាក្យបញ្ជាទៅឧបករណ៍ IoT។ វាគឺធ្វើបានដោយប្រើការភ្ជាប់ខុសទៅ IoT Hub តាមរយៈ *Registry Manager*។ Registry Manager គឺជាឧបករណ៍ដែលអនុញ្ញាតឲ្យអ្នកមើលឧបករណ៍ដែលបានចុះបញ្ជីជាមួយ IoT Hub ហើយទំនាក់ទំនងជាមួយឧបករណ៍ដោយផ្ញើសារ cloud to device, សំណើភាព direct method ឬធ្វើបច្ចុប្បន្នភាព device twin។ អ្នកអាចប្រើវាដើម្បីចុះបញ្ជី បច្ចុប្បន្នភាព ឬលុបឧបករណ៍ IoT ពី IoT Hub ផងដែរ។ + +ដើម្បីភ្ជាប់ទៅ Registry Manager អ្នកត្រូវការខ្សែសង្វាក់ភ្ជាប់មួយ។ + +### បេសកកម្ម - ទទួលខ្សែសង្វាក់ភ្ជាប់ Registry Manager + +1. ដើម្បីទទួលខ្សែសង្វាក់ភ្ជាប់ ប្រតិបត្តិការបន្ទាប់៖ + + ```sh + az iot hub connection-string show --policy-name service \ + --output table \ + --hub-name + ``` + + ជំនួស `` ជាមួយឈ្មោះដែលអ្នកបានប្រើសម្រាប់ IoT Hub របស់អ្នក។ + + ខ្សែសង្វាក់ភ្ជាប់ត្រូវបានស្នើសុំសម្រាប់គោលការណ៍ *ServiceConnect* ដោយប្រើប៉ារ៉ាម៉ែត្រ `--policy-name service`។ នៅពេលអ្នកស្នើសុំខ្សែសង្វាក់ភ្ជាប់ អ្នកអាចបញ្ជាក់ពីសិទ្ធិដែលខ្សែសង្វាក់នោះអនុញ្ញាត។ គោលការណ៍ ServiceConnect អនុញ្ញាតឲ្យកូដរបស់អ្នកភ្ជាប់និងផ្ញើសារទៅឧបករណ៍ IoT ។ + + ✅ ប្រែសម្រួលបន្តិច៖ អានអំពីគោលការណ៍ផ្សេងៗក្នុង [IoT Hub permissions documentation](https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-security#iot-hub-permissions?WT.mc_id=academic-17441-jabenn) + +1. នៅក្នុង VS Code បើកឯកសារ `local.settings.json` បន្ថែមតម្លៃបន្ថែមនៅក្នុងផ្នែក `Values`៖ + + ```json + "REGISTRY_MANAGER_CONNECTION_STRING": "" + ``` + + ជំនួស `` ជាមួយតម្លៃពីជំហានមុន។ អ្នកត្រូវបន្ថែមក្បៀសក្រោយជួរខាងលើដើម្បីធ្វើឲ្យវាជា JSON ត្រឹមត្រូវ។ + +### បេសកកម្ម - ផ្ញើសំណើភាពdirect method ទៅឧបករណ៍ + +1. SDK សម្រាប់ Registry Manager មានស្រាប់តាមប៉ាកេជ៍ Pip។ បន្ថែមបន្ទាត់ខាងក្រោមទៅឯកសារ `requirements.txt` ដើម្បីបន្ថែមការពឹងផ្អែកលើប៉ាកេជ៍នេះ៖ + + ```sh + azure-iot-hub + ``` + +1. ប្រាកដថា VS Code terminal មាន virtual environment ដំណើរការហើយ ប្រតិបត្តិការបន្ទាប់ដើម្បីដំឡើងប៉ាកេជ៍ Pip៖ + + ```sh + pip install -r requirements.txt + ``` + +1. បន្ថែមការនាំចូលខាងក្រោមទៅឯកសារ `__init__.py`៖ + + ```python + import json + import os + from azure.iot.hub import IoTHubRegistryManager + from azure.iot.hub.models import CloudToDeviceMethod + ``` + + នេះនាំចូលបណ្ណាល័យប្រព័ន្ធមួយចំនួន​ បូករួមជាមួយបណ្ណាល័យសម្រាប់ធ្វើប្រតិបត្តិការជាមួយ Registry Manager និងផ្ញើសំណើភាពdirect method។ + +1. ដកកូដនៅខាងក្នុងមុខងារ `main` ចេញ ប៉ុន្តែរក្សាភាពជាមុខងារទុក។ + +1. នៅក្នុងមុខងារ `main` បន្ថែមកូដខាងក្រោម៖ + + ```python + body = json.loads(event.get_body().decode('utf-8')) + device_id = event.iothub_metadata['connection-device-id'] + + logging.info(f'Received message: {body} from {device_id}') + ``` + + កូដនេះយកសាច់ព្រឹត្តិការណ៍ដែលមានសារជា JSON ផ្ញើដោយឧបករណ៍ IoT។ + + បន្ទាប់មកទទួល device ID ពី annotations ដែលបានផ្ញើជាមួយសារ។ សាច់ព្រឹត្តិការណ៍មានសារដែលបានផ្ញើជាទელები `iothub_metadata` វត្ថុឯកសារអ្នកផ្ញើរសារ IoT Hub ពី device ID របស់អ្នកផ្ញើ និងពេលវេលាដែលសារត្រូវបានផ្ញើ។ + + ព័ត៌មាននេះបន្ទាប់មកត្រូវបានកត់ត្រា។ អ្នកនឹងឃើញកំណត់ហេតុនេះនៅក្នុង terminal ពេលដែលដំណើរការ Functions app នៅក្នុងកន្លែង។ + +1. ក្រោមនេះ បន្ថែមកូដខាងក្រោម៖ + + ```python + soil_moisture = body['soil_moisture'] + + if soil_moisture > 450: + direct_method = CloudToDeviceMethod(method_name='relay_on', payload='{}') + else: + direct_method = CloudToDeviceMethod(method_name='relay_off', payload='{}') + ``` + + កូដនេះបានទទួលប្រេងសើមដីពីសារ។ បន្ទាប់មកវាប្រើប្រាស់ចំនួនប្រេងសើមដី ហើយគិតលើតម្លៃ ដើម្បីបង្កើតបន្ទះជំនួយសម្រាប់សំណើភាពdirect method របស់ `relay_on` ឬ `relay_off` ទៅ direct method។ សំណើភាពdirect method មិនត្រូវការសមាសធាតុ payload ទេ ដូច្នេះបញ្ជូនឯកសារ JSON ទទេ។ + +1. ក្រោមនេះបន្ថែមកូដខាងក្រោម៖ + + ```python + logging.info(f'Sending direct method request for {direct_method.method_name} for device {device_id}') + + registry_manager_connection_string = os.environ['REGISTRY_MANAGER_CONNECTION_STRING'] + registry_manager = IoTHubRegistryManager(registry_manager_connection_string) + ``` + + កូដនេះផ្ទុក `REGISTRY_MANAGER_CONNECTION_STRING` ពីឯកសារ `local.settings.json`។ តម្លៃនៅក្នុងឯកសារនេះត្រូវបានប្រែប្រួលជា environment variables ហើយអាចអានបានដោយប្រើមុខងារ `os.environ` ដែលជាមុខងារដែលបង្វិលត្រឡប់វាលើមេគុណនៃឡានព័ទ័របរិស្ថានទាំងអស់។ + + > 💁 ពេលដែលកូដនេះដាក់លើ cloud តម្លៃក្នុង `local.settings.json` នឹងត្រូវបានកំណត់ជា *Application Settings* ហើយអាចអានពីម៉ាស៊ីន​បរិស្ថាន។ + + កូដបន្ទាប់បង្កើតវត្ថុ Registry Manager helper តាមខ្សែសង្វាក់ភ្ជាប់។ + +1. ក្រោមនេះបន្ថែមកូដខាងក្រោម៖ + + ```python + registry_manager.invoke_device_method(device_id, direct_method) + + logging.info('Direct method request sent!') + ``` + + កូដនេះប្រាប់ registry manager ផ្ញើសំណើភាពdirect method ទៅឧបករណ៍ដែលបានផ្ញើសារទេលិម៉េត្រនេះ។ +> 💁 នៅក្នុងកំណែកម្មវិធីដែលអ្នកបានបង្កើតនៅមេរៀនមុន ដោយប្រើ MQTT ការបញ្ជាការត្រួតបញ្ជារេលីបានបញ្ជូនទៅឧបករណ៍ទាំងអស់។ កូដនេះបានកំណត់ថាអ្នកនឹងមានឧបករណ៍តែមួយតែប៉ុណ្ណោះ។ កូដនេះបានផ្ញើសំណើវិធីសាស្ត្រ (method request) ទៅឧបករណ៍តែមួយ ដូច្នេះវានឹងដំណើរការបើអ្នកមានច្រើនការតំឡើងរបស់ឧបករណ៍សឺនស័រជាតិហូម៉្ស័រ (moisture sensors) និងរេលី ដើម្បីផ្ញើសំណើវិធីសាស្ត្រប្រកបដោយភាពត្រឹមត្រូវទៅឧបករណ៍ត្រឹមត្រូវ។ + +1. ដំណើរការកម្មវិធី Functions ហើយធ្វើឱ្យប្រាកដថាឧបករណ៍ IoT របស់អ្នកកំពុងផ្ញើទិន្នន័យ។ អ្នកនឹងឃើញសារៗត្រូវបានដំណើរការនិងសំណើវិធីសាស្ត្រផ្ទាល់ត្រូវបានផ្ញើ។ ផ្លាស់ប្ដូរសឺនស័រជាតិហូម៉្ស័រចូលនិងចេញពីដីដើម្បីមើលតម្លៃបង្វិលប្ដូរនិងពន្លឿនរេលីបើកបិទ។ + +> 💁 អ្នកអាចរកកូដនេះនៅក្នុងថត [code/functions](../../../../../2-farm/lessons/5-migrate-application-to-the-cloud/code/functions)។ + +## បោះពុម្ពកូដ serverless របស់អ្នកទៅមេឃ + +កូដរបស់អ្នកឥឡូវនេះដំណើរការជាលokalហើយ ដំណាក់កាលបន្ទាប់គឺបោះពុម្ពកម្មវិធី Functions ទៅមេឃ។ + +### បុគ្គលិក - បង្កើតធនធានមេឃ + +កម្មវិធី Functions របស់អ្នកត្រូវបានបាញ់ទៅធនធាន Functions App នៅក្នុង Azure ដែលរស់នៅក្នុង Resource Group ដែលអ្នកបានបង្កើតសម្រាប់ IoT Hub របស់អ្នក។ អ្នកនឹងត្រូវការបង្កើត Storage Account នៅ Azure ដើម្បីជំនួសឯកសារលេងតំណាងដែលអ្នកកំពុងដំណើរការជាលokal។ + +1. រត់ពាក្យបញ្ជាដូចខាងក្រោមដើម្បីបង្កើត Storage Account: + + ```sh + az storage account create --resource-group soil-moisture-sensor \ + --sku Standard_LRS \ + --name + ``` + + ជំនួស `` ជាមួយឈ្មោះសម្រាប់ Storage Account របស់អ្នក។ ឈ្មោះនេះត្រូវតែមានភាពតែមួយលើសកល ដើម្បីធ្វើជាផ្នែកនៃ URL ដែលប្រើចូលមើល Storage Account។ អ្នកអាចប្រើត្រឹមតែនាករតូច និងលេខសម្រាប់ឈ្មោះនេះ ប៉ុណ្ណោះ មិនអាចប្រើតួអក្សរ ផ្សេងទៀត និងវាមានកំរិត 24 តួអក្សរ។ ប្រើអ្វីមួយដូចជា `sms` ហើយបន្ថែមអត្តសញ្ញាណដ៏តែមួយនៅចុង ដូចជាពាក្យចៃដន្យ ឬឈ្មោះរបស់អ្នក។ + + ជម្រើស `--sku Standard_LRS` ជ្រើសស្រទាប់តម្លៃតម្លៃ ដោយជ្រើសគណនីទូទៅដែលមានតម្លៃទាបបំផុត។ គ្មានស្រទាប់សេវាឥតគិតថ្លៃសម្រាប់ Storage ទេ ហើយអ្នកត្រូវបង់ប្រាក់ចំពោះការប្រើប្រាស់របស់អ្នក។ តម្លៃសេវាធៀបបានថាជាទាប ដោយ Storage ដែលថ្លៃបំផុតមានថ្លៃតិចជាង US$0.05 ក្នុងមួយខែសម្រាប់រាល់ចំណុះគីឡូបៃត់។ + + ✅ អានស្តីពីតម្លៃនៅលើ [ទំព័រពាណិជ្ជកម្ម Azure Storage Account](https://azure.microsoft.com/pricing/details/storage/?WT.mc_id=academic-17441-jabenn) + +1. រត់ពាក្យបញ្ជាដូចខាងក្រោមដើម្បីបង្កើត Function App: + + ```sh + az functionapp create --resource-group soil-moisture-sensor \ + --runtime python \ + --functions-version 3 \ + --os-type Linux \ + --consumption-plan-location \ + --storage-account \ + --name + ``` + + ជំនួស `` ជាមួយទីតាំងដែលអ្នកប្រើនៅពេលបង្កើត Resource Group នៅមេរៀនមុន។ + + ជំនួស `` ជាមួយឈ្មោះ Storage Account ដែលអ្នកបានបង្កើតនៅជំហានមុន។ + + ជំនួស `` ជាមួយឈ្មោះតែមួយសម្រាប់ Functions App របស់អ្នក។ ឈ្មោះនេះត្រូវតែមានភាពសំខាន់លើសកល ដើម្បីជាផ្នែកមួយនៃ URL ដែលអាចប្រើបានចូល Functions App។ ប្រើអ្វីមួយដូចជា `soil-moisture-sensor-` ហើយបន្ថែមអត្តសញ្ញាណតែមួយនៅចុង ដូចជាពាក្យចៃដន្យ ឬឈ្មោះរបស់អ្នក។ + + ជម្រើស `--functions-version 3` កំណត់កំណែ Azure Functions ដែលត្រូវប្រើ។ កំណែ 3 ជាកំណែចុងក្រោយ។ + + ជម្រើស `--os-type Linux` ប្រាប់Runtime Functions ឱ្យប្រើ Linux ជា OS សម្រាប់រៀបចំការងារទាំងនេះ។ Functions អាចរៀបចំលើ Linux ឬ Windows ផ្ទេខុំភាសាកម្មវិធីដែលប្រើ។ កម្មវិធី Python គ្រាន់តែនាំគាំទ្រលើ Linux ប៉ុណ្ណោះ។ + +### បុគ្គលិក - ផ្ទុកឡើងការកំណត់កម្មវិធីរបស់អ្នក + +ពេលអ្នកអភិវឌ្ឍ Functions App របស់អ្នក អ្នកបានរក្សាទុកកំណត់មួយចំនួននៅក្នុងឯកសារ `local.settings.json` សម្រាប់ខ្សែការតភ្ជាប់ទៅ IoT Hub របស់អ្នក។ ការកំណត់ទាំងនេះត្រូវបានសរសេរទៅ Application Settings នៅក្នុង Functions App របស់អ្នកនៅ Azure ដើម្បីអាចប្រើប្រាស់ដោយកូដរបស់អ្នក។ + +> 🎓 ឯកសារ `local.settings.json` សម្រាប់កំណត់ការអភិវឌ្ឍន៍ក្នុងលokalប៉ុណ្ណោះ ហើយមិនគួរត្រូវបានផ្ទុកទៅក្នុងត្រគាប់គ្រប់គ្រងកូដ ដូចជា GitHub។ ពេលបាញ់ទៅមេឃ ការកំណត់កម្មវិធី (Application Settings) ត្រូវបានប្រើ។ ការកំណត់កម្មវិធីគឺជាគំពីត/តម្លៃដែលរក្សាទុកក្នុងមេឃ ហើយត្រូវបានអានពីហេតុការណ៍បរិស្ថាន ឬក្នុងកូដ ឬមេរៀនពេលភ្ជាប់កូដទៅ IoT Hub។ + +1. រត់ពាក្យបញ្ជាលើសម្រាប់កំណត់ `IOT_HUB_CONNECTION_STRING` នៅក្នុង Function App Application Settings៖ + + ```sh + az functionapp config appsettings set --resource-group soil-moisture-sensor \ + --name \ + --settings "IOT_HUB_CONNECTION_STRING=" + ``` + + ជំនួស `` ជាមួយឈ្មោះដែលអ្នកបានប្រើសម្រាប់ Functions App របស់អ្នក។ + + ជំនួស `` ជាមួយតម្លៃ `IOT_HUB_CONNECTION_STRING` ពីឯកសារ `local.settings.json` របស់អ្នក។ + +1. ធ្វើដូចជំហានខាងលើម្តងទៀត ដោយកំណត់តម្លៃ `REGISTRY_MANAGER_CONNECTION_STRING` ជាមួយតម្លៃដែលសមរម្យពីឯកសារ `local.settings.json` របស់អ្នក។ + +ពេលអ្នកដំណើរការបញ្ជាទាំងនេះ វានឹងបង្ហាញបញ្ជី Application Settings ទាំងអស់សម្រាប់ function app។ អ្នកអាចប្រើវាទៅពិនិត្យថាតម្លៃបានកំណត់ត្រឹមត្រូវ។ + +> 💁 អ្នកនឹងឃើញតម្លៃដែលបានកំណត់សម្រាប់ `AzureWebJobsStorage` រួចមក។ នៅក្នុងឯកសារ `local.settings.json` វាត្រូវបានកំណត់ទៅតម្លៃសម្រាប់ប្រើមេរៀនstorage emulator។ ពេលបង្កើត Functions App អ្នកផ្ញើ Storage Account ជាពារ៉ាម៉ែត្រ និងវាត្រូវបានកំណត់ជាស្វ័យប្រវត្តិនៅក្នុងការកំណត់នេះ។ + +### បុគ្គលិក - បោះពុម្ព Functions App របស់អ្នកទៅមេឃ + +ឥឡូវនេះ Functions App ប្រាកដភាពរួច រាល់ កូដរបស់អ្នកអាចបោះពុម្ពទៅមេឃបាន។ + +1. រត់បញ្ជាដូចខាងក្រោម ពីтерមិន VS Code ដើម្បីផ្សព្វផ្សាយ Functions App របស់អ្នក: + + ```sh + func azure functionapp publish + ``` + + ជំនួស `` ជាមួយឈ្មោះដែលអ្នកបានប្រើសម្រាប់ Functions App របស់អ្នក។ + +កូដនឹងត្រូវបានភ្ជាប់បញ្ចូល ហើយផ្ញើទៅ Functions App ដែលនឹងត្រូវបានបោះពុម្ព និងចាប់ផ្តើម។ នឹងមានការបង្ហាញលម្អិតនៅក្នុង Solo ហើយបញ្ចប់ជាមួយការបញ្ជាក់ពីការបោះពុម្ព និងបញ្ជីរបស់ function ដែលបានបោះពុម្ព។ ក្នុងករណីនេះ បញ្ជីនឹងមានតែ trigger ប៉ុណ្ណោះ។ + +```output +Deployment successful. +Remote build succeeded! +Syncing triggers... +Functions in soil-moisture-sensor: + iot-hub-trigger - [eventHubTrigger] +``` + +ធ្វើឱ្យប្រាកដថាឧបករណ៍ IoT របស់អ្នកកំពុងដំណើរការ។ ប្រែប្រួលកម្រិតជាតិហូម៉្ស័រដោយកែប្រែជាតិហូម៉្ស័រដី ឬផ្លាស់ប្ដូរសឺនស័រចេញនិងចូលក្នុងដី។ អ្នកនឹងឃើញរេលីបើក និងបិទ ជាមួយនឹងការផ្លាស់ប្ដូរ ជាតិហូម៉្ស័រ។ + +--- + +## 🚀 ការប្រកួតប្រជែង + +នៅមេរៀនមុន អ្នកបានគ្រប់គ្រងពេលវេលាសម្រាប់រេលី ដោយមិនចូលរួមក្នុងសាររបស់ MQTT នៅពេលរេលីដំណើរការ និងរយៈពេលខ្លីបន្ទាប់ពីវាត្រូវបានបិទ។ អ្នកមិនអាចប្រើវិធីនេះនៅទីនេះទេ - អ្នកមិនអាចបដិសេធ trigger IoT Hub របស់អ្នកបានទេ។ + +សូមគិតពីវិធីផ្សេងៗដែលអ្នកអាចគ្រប់គ្រងវានៅក្នុង Functions App របស់អ្នក។ + +## សំណួរបន្ទាប់មេរៀន + +[សំណួរបន្ទាប់មេរៀន](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/18) + +## ស្រាវជ្រាវ និងសិក្សាផ្ទាល់ខ្លួន + +* អានស្តីពីកំណត់គណនេយ្យ serverless នៅលើ [ទំព័រគណនេយ្យ Serverless នៅវិគីភីឌា](https://wikipedia.org/wiki/Serverless_computing) +* អានអំពីការប្រើ serverless នៅ Azure រួមទាំងគំរូបន្ថែមនៅលើ [អត្ថបទប្លុក Go serverless សម្រាប់តម្រូវការរបស់អ្នក IoT នៅ Azure](https://azure.microsoft.com/blog/go-serverless-for-your-iot-needs/?WT.mc_id=academic-17441-jabenn) +* រៀនបន្ថែមអំពី Azure Functions នៅលើ [បណ្តាញហ្វេიშប៊ុក Azure Functions](https://www.youtube.com/c/AzureFunctions) + +## ការងារ + +[បន្ថែមការគ្រប់គ្រងរេលីដោយដៃ](assignment.md) + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះបីជា​យើងខ្ញុំ​ព្យាយាម​ឲ្យ​បាន​គ្រប់ភាព​ត្រឹម​ត្រូវ ក៏សូម​ជ្រាប​ថា​ការបកប្រែ​ស្វ័យប្រវត្តិ​អាចមានកំហុស ឬ​ពុំ​ត្រឹមត្រូវ។ ឯកសារដើមនៅភាសាតំណើរបានគួរឱ្យយកជាឧត្តមមូលដ្ឋាន។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែ​ដោយអ្នកជំនាញមនុស្សត្រូវបានផ្តល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំនិងការបកអាម៉ាស់ទៅពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/2-farm/lessons/5-migrate-application-to-the-cloud/assignment.md b/translations/km/2-farm/lessons/5-migrate-application-to-the-cloud/assignment.md new file mode 100644 index 000000000..6112da17d --- /dev/null +++ b/translations/km/2-farm/lessons/5-migrate-application-to-the-cloud/assignment.md @@ -0,0 +1,63 @@ +# បន្ថែមការត្រួតត្រារលៃជាមួយដៃ + +## សេចក្ដីណែនាំ + +កូដ Serverless រអាចត្រូវបានបើកដោយរឿងជាច្រើនដែលខុសគ្នា រួមមានសំណើ HTTP ។ អ្នកអាចប្រើការត្រួតត្រា HTTP ដើម្បីបន្ថែមការផ្ទែផ្ទាត់ដោយដៃទៅការគ្រប់គ្រងរលៃរបស់អ្នក អនុញ្ញាតឱ្យនរណាម្នាក់បើកឬបិទរលៃពីសំណើបណ្តាញ។ + +សម្រាប់ការប្រលងនេះ អ្នកត្រូវបន្ថែមការត្រួតត្រា HTTP ពីរចូលទៅក្នុង Functions App របស់អ្នក ដើម្បីបើក និងបិទរលៃ ដោយប្រើវាជាពីរបៀបដែលអ្នកបានរៀនពីមេរៀននេះក្នុងការផ្ញើពាក្យបញ្ជាទៅឧបករណ៍។ + +មានពិចារណាខ្លះៗ៖ + +* អ្នកអាចបន្ថែមការត្រួតត្រា HTTP ទៅក្នុង Functions App មានស្រាប់របស់អ្នកជាមួយពាក្យបញ្ជា៖ + + ```sh + func new --name --template "HTTP trigger" + ``` + + ជំនួស `` ជាឈ្មោះសម្រាប់ការត្រួតត្រន HTTP របស់អ្នក។ ប្រើឈ្មោះដូចជា `relay_on` និង `relay_off` + +* ការត្រួតត្រា HTTP អាចមានការត្រួតត្រា​ចូលប្រើ។ ដោយលំនាំដើមវាត្រូវការខ្សែសោ API ជាពិសេសសម្រាប់មុខងារ ត្រូវតែកាត់បន្ថយជាមួយ URL ដើម្បីអនុញ្ញាតអោយដំណើរការ។ សម្រាប់បេសកកម្មនេះ អ្នកអាចយកការកំណត់នេះចេញ ដូច្នេះនរណាដែលមានអាចប្រតិបត្តិមុខងារនេះបាន។ ដើម្បីធ្វើនេះ អាប់ដេតការកំណត់ `authLevel` នៅក្នុងឯកសារ `function.json` សម្រាប់ការត្រួតត្រា HTTP ជាដូចតទៅ៖ + + ```json + "authLevel": "anonymous" + ``` + + > 💁 អ្នកអាចអានបន្ថែមអំពីការត្រួតត្រាចូលនេះ ក្នុង [Function access keys documentation](https://docs.microsoft.com/azure/azure-functions/functions-bindings-http-webhook-trigger?WT.mc_id=academic-17441-jabenn#authorization-keys)។ + +* ការត្រួតត្រា HTTP ដោយលំនាំដើមគាំទ្រក្នុងការស្នើសុំ GET និង POST។ នេះមានន័យថាអ្នកអាចហៅវាតាមរបៀបកម្មវិធីរុករកបណ្តាញរបស់អ្នក - កម្មវិធីរុករកបណ្តាញធ្វើសំណើ GET។ + + នៅពេលអ្នករត់ Functions App ក្នុងម៉ាស៊ីនផ្ទាល់ខ្លួន អ្នកនឹងមើលឃើញ URL នៃការត្រួតត្រា: + + ```output + Functions: + + relay_off: [GET,POST] http://localhost:7071/api/relay_off + + relay_on: [GET,POST] http://localhost:7071/api/relay_on + + iot-hub-trigger: eventHubTrigger + ``` + + ប្តូរគេយូអិលទៅកម្មវិធីរុករករបស់អ្នក ហើយចុច `return` សូម្បីតែ `Ctrl+click` (`Cmd+click` នៅ macOS) លើតំណក្នុងបន្ទាត់ដំណើរការនៅ VS Code ដើម្បីបើកវានៅកម្មវិធីរុករកដើមរបស់អ្នក។ វានឹងដំណើរការការត្រួតត្រា។ + + > 💁 សូមចំណាំថា URL មាន `/api` ក្នុងវា - ការត្រួតត្រា HTTP ដោយលំនាំដើមនៅក្នុងផ្នែកសំណុំឈ្មោះផ្នែករង `api`។ + +* នៅពេលអ្នកផ្សព្វផ្សាយ Functions App URL នៃការត្រួតត្រា HTTP នឹងមានទ្រង់ទ្រាយ៖ + + `https://.azurewebsites.net/api/` + + ដែល `` គឺជាឈ្មោះ Functions App របស់អ្នក និង `` ជាឈ្មោះការត្រួតត្រារបស់អ្នក។ + +## តារាងការវាយតម្លៃ + +| កំហិតវិស័យ | ល្អប្រសើរ | ត្រឹមត្រូវ | ត្រូវការកែលម្អ | +| -------- | --------- | -------- | ----------------- | +| បង្កើតការត្រួតត្រា HTTP | បង្កើតបាន 2 ការត្រួតត្រា ដើម្បីបើក និងបិទរលៃ ជាមួយឈ្មោះសមរម្យ | បង្កើតបានមួយការត្រួតត្រាជាមួយឈ្មោះសមរម្យ | មិនអាចបង្កើតការត្រួតត្រាទេ | +| គ្រប់គ្រងរលៃពីការត្រួតត្រា HTTP | អាចភ្ជាប់ទាំងពីរការត្រួតត្រាទៅ IoT Hub និងគ្រប់គ្រងរលៃបានត្រឹមត្រូវ | អាចភ្ជាប់មួយការត្រួតត្រាទៅ IoT Hub និងគ្រប់គ្រងរលៃបានត្រឹមត្រូវ | មិនអាចភ្ជាប់ការត្រួតត្រាទៅ IoT Hub បាន | + +--- + + +**ការបដិទិន**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំរកភាពត្រឹមត្រូវ​ សូមប្រាកដថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានខុសត្រូវ ឬក៏អវចារណកថា។ ឯកសារដើមជาทាសាតិចតែលើសលប់គួរត្រូវបានគ្រប់គ្រងជាដើមកំណត់ឯកសារ។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំការបកប្រែដោយអ្នកជំនាញមនុស្សជាផ្លូវការ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសៗទេ ដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះ។ + \ No newline at end of file diff --git a/translations/km/2-farm/lessons/6-keep-your-plant-secure/README.md b/translations/km/2-farm/lessons/6-keep-your-plant-secure/README.md new file mode 100644 index 000000000..c3bdae850 --- /dev/null +++ b/translations/km/2-farm/lessons/6-keep-your-plant-secure/README.md @@ -0,0 +1,239 @@ +# រក្សាស្លាបព្រាលរបស់អ្នកឱ្យមានសុវត្ថិភាព + +![A sketchnote overview of this lesson](../../../../../translated_images/km/lesson-10.829c86b80b9403bb.webp) + +> Sketchnote by [Nitya Narasimhan](https://github.com/nitya). Click the image for a larger version. + +## Pre-lecture quiz + +[Pre-lecture quiz](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/19) + +## អំណើប្រើប្រាស់ + +នៅក្នុងមេរៀនចុងក្រោយអ្នកបានបង្កើតឧបករណ៍ IoT ត្រួតពិនិត្យដី និងភ្ជាប់វាទៅកាន់ពពក។ ប៉ុន្តែតើអ្នកគិតថា ប្រសិនបើអ្នកចោរកម្មដែលធ្វើការសម្រាប់កសិដ្ឋានប្រេទផ្សារ អាចយកការត្រួតគ្រប់គ្រងឧបករណ៍ IoT របស់អ្នកបានហ្នឹង? តើខ្លាតទេបើពួកគេស្នើសូមលម្អីផ្នែកសីតុណ្ហភាពដីខ្ពស់ ដូច្នេះរុក្ខជាតិរបស់អ្នកមិនដែលទទួលបានទឹកឡើយ ឬបើពួកគេបើកប្រព័ន្ធចាក់ទឹករបស់អ្នកដំណើរការអស់ពេលវេលា រុក្ខជាតិរបស់អ្នកអាចស្លាប់ដោយសារទទួលទឹកច្រើនពេក ហើយមានការចំណាយទឹកប្រហែលជា ឯកសារតូចមួយ? + +នៅក្នុងមេរៀននេះ អ្នកនឹងរៀនអំពីការរក្សាឧបករណ៍ IoT ឱ្យមានសុវត្ថិភាព។ ដោយសារនេះគឺជាថ្នាក់ទីចុងក្រោយសម្រាប់គម្រោងនេះ អ្នកនឹងរៀនអំពីរបៀបសម្អាតធនធានពពករបស់អ្នក ដើម្បីកាត់បន្ថយការចំណាយដែលអាចកើតមាន។ + +នៅក្នុងមេរៀននេះយើងនឹងលើកឡើង៖ + +* [ហេតុអ្វីបានជាអ្នកត្រូវការអោយឧបករណ៍ IoT មានសុវត្ថិភាព?](#ហេតុអ្វីបានជាអ្នកត្រូវការអោយឧបករណ៍-iot-មានសុវត្ថិភាព) +* [វិទ្យាសាស្រ្តរៀបចំសញ្ញា](#វិទ្យាសាស្រ្តរៀបចំសញ្ញា) +* [រក្សាឧបករណ៍ IoT របស់អ្នកឱ្យមានសុវត្ថិភាព](#រក្សាឧបករណ៍-iot-របស់អ្នកឱ្យមានសុវត្ថិភាព) +* [បង្កើតនិងប្រើវិញ្ញាបនបត្រ X.509](#generate-and-use-an-x.509-certificates) + +> 🗑 នេះគឺជាមេរៀនចុងក្រោយក្នុងគម្រោងនេះ ដូច្នេះបន្ទាប់ពីបញ្ចប់មេរៀននេះ និងការងារបង្រៀន សូមកុំភ្លេចសម្អាតសេវាកម្មពពករបស់អ្នក។ អ្នកនឹងត្រូវការសេវាកម្មទាំងនេះដើម្បីបញ្ចប់ការងារបង្រៀន ដូច្នេះសូមធ្វើការអនុវត្តន៍វាមុនគេ។ +> +> សូមយោងទៅ [មគ្គុទេសក៍សម្អាតគម្រោងរបស់អ្នក](../../../clean-up.md) ប្រសិនបើមានការត្រូវការសម្រាប់ការណែនាំរបៀបធ្វើនេះ។ + +## ហេតុអ្វីបានជាអ្នកត្រូវការអោយឧបករណ៍ IoT មានសុវត្ថិភាព? + +សុវត្ថិភាព IoT រួមបញ្ចូលការដូរថ្មថ្នាក់ថែរក្សាឱ្យមានតែកញ្ចប់ដែលមានអនុញ្ញាតអាចភ្ជាប់ទៅសេវាកម្ម IoT ពពករបស់អ្នក និងផ្ញើទិន្នន័យទស្សនវិជ្ជា ហើយតែកញ្ចប់ទាំងនោះសេវាពពករបស់អ្នកអាចផ្ញើបញ្ជារទៅឧបករណ៍។ ទិន្នន័យ IoT ក៏អាចជាទិន្នន័យផ្ទាល់ខ្លួនផងដែរ រួមមានទិន្នន័យវេជ្ជសាស្រ្ត ឬទិន្នន័យសម្រាប់មានភាពឯងឯរផងដែរដូច្នេះកម្មវិធីរបស់អ្នកទាំងមូលត្រូវចាំបាច់យកចិត្តទុកដាក់សុវត្ថិភាព ដើម្បីទប់ស្កាត់ការចាក់ចេញទិន្នន័យនេះ។ + +ប្រសិនបើកម្មវិធី IoT របស់អ្នកមិនមានសុវត្ថិភាពទេ មានវិបត្តិច្រើន៖ + +* ឧបករណ៍ក្លែងបោកអាចផ្ញើទិន្នន័យខុសចោល ហើយធ្វើឱ្យកម្មវិធីរបស់អ្នកឆ្លើយតបខុស។ ឧទាហរណ៍ ពួកវាអាចផ្ញើការវាស់ទឹកដីខ្ពស់ជាប់ៗគ្នា ហើយធ្វើឲ្យប្រព័ន្ធឆាបទឹកមិនដំណើរការទេ រុក្ខជាតិរបស់អ្នកអាចស្លាប់ដោយសារខ្វះទឹក +* អ្នកប្រើប្រាស់គ្មានសិទ្ធិអាចអានទិន្នន័យពីឧបករណ៍ IoT រួមមានទិន្នន័យផ្ទាល់ខ្លួន ឬទិន្នន័យសំខាន់ក្នុងអាជីវកម្ម +* អ្នកចោរកម្មអាចផ្ញើបញ្ជារដើម្បីគ្រប់គ្រងឧបករណ៍ដោយរបៀបដែលអាចធ្វើឱ្យឧបករណ៍ ឬឧបករណ៍ភ្ជាប់បំផ្លាញ +* ដោយភ្ជាប់ទៅឧបករណ៍ IoT អ្នកចោរកម្មអាចប្រើវាដើម្បីចូលទៅបណ្ដាញបន្ថែម ដើម្បីចូលប្រើប្រព័ន្ធឯកជន +* អ្នកគំរាមកំហែងអាចចូលទៅទិន្នន័យផ្ទាល់ខ្លួន ហើយប្រើវាសម្រាប់បញ្ជាចុះបញ្ជាល + +នេះគឺជាស្ថានភាពពិតនៅពិភពលោក ហើយកើតមានជារឿយៗ។ ឧទាហរណ៍ខ្លះបានផ្តល់នៅក្នុងមេរៀនមុនៗ តែក៏មានឧទាហរណ៍បន្ថែមទៀត៖ + +* នៅឆ្នាំ ២០១៨ អ្នកចោរកម្មប្រើចំណុច WiFi បើកឥតគ្រប់គ្រាន់នៅលើទូស៊ុមត្រី ដើម្បីចូលប្រព័ន្ធបណ្ដាញនៅកាស៊ីណូ ដើម្បីលួចទិន្នន័យ។ [The Hacker News - Casino Gets Hacked Through Its Internet-Connected Fish Tank Thermometer](https://thehackernews.com/2018/04/iot-hacking-thermometer.html) +* នៅឆ្នាំ ២០១៦ ប្រពន្ធ័ Mirai Botnet បានចាប់ផ្តើមប្រយុទ្ធដើម្បីដោះសោប្រព័ន្ធប្រតិបត្តិការទេស្ត Dyn ដែលជាអ្នកផ្គត់ផ្គង់សេវាអ៊ីនធឺណែត ដោយបានបង្ហាញសំណាក់ធំទូលាយនៃអ៊ីនធឺណែត។ បណ្តាញ Botnet នេះបានប្រើម៉ាលវែរដើម្បីភ្ជាប់ទៅឧបករណ៍ IoT ដូចជា DVRs និងកាមេរ៉ា ដែលប្រើប្រាស់ឈ្មោះអ្នកប្រើ និងពាក្យសម្ងាត់លំនាំដើម ហើយបញ្ជូនការវាយប្រហារ។ [The Guardian - DDoS attack that disrupted internet was largest of its kind in history, experts say](https://www.theguardian.com/technology/2016/oct/26/ddos-attack-dyn-mirai-botnet) +* Spiral Toys មានមូលដ្ឋានទិន្នន័យអ្នកប្រើប្រាស់លើឧបករណ៍ CloudPets ដែលភ្ជាប់ហើយអាចចូលទៅបានសាធារណៈតាមអ៊ីនធឺណែត។ [Troy Hunt - Data from connected CloudPets teddy bears leaked and ransomed, exposing kids' voice messages](https://www.troyhunt.com/data-from-connected-cloudpets-teddy-bears-leaked-and-ransomed-exposing-kids-voice-messages/). +* Strava បានតាក់អ្នករត់ដែលអ្នកធ្លាក់ទៅក្បែរហើយបង្ហាញផ្លូវរបស់ពួកគេ ពិការផ្ទាល់ខ្លួនអាចមើលឃើញកន្លែងដែលអ្នករស់នៅ។ [Kim Komndo - Fitness app could lead a stranger right to your home — change this setting](https://www.komando.com/security-privacy/strava-fitness-app-privacy/755349/). + +✅ ស្វែងយល់បន្ថែម៖ ស្វែងរកឧទាហរណ៍បន្ថែមនៃការលួចប្រើ IoT និងការបង្ហោះទិន្នន័យ IoT ជាពិសេសនឹងវត្ថុផ្ទាល់ខ្លួនដូចជាប្រដាប់ទទួលតែធ្មេញភ្ជាប់អ៊ីនធឺណែត ឬម៉ាឡេធ្មេញ។ គិតអំពីផលប៉ះពាល់ដែលការលួចប្រើទាំងនេះអាចមានចំពោះអ្នកជាប់ពាក់ព័ន្ធ ឬអតិថិជន។ + +> 💁 សុវត្ថិភាពគឺជាប្រធានបទធំជាងគេ ហើយមេរៀននេះនឹងតែប៉ះពាល់តែនៅខាងលើនៃការភ្ជាប់ឧបករណ៍របស់អ្នកទៅកាន់ពពក។ ប្រធានបទផ្សេងទៀតដែលមិនត្រូវបានគ្របដណ្តប់រួមមានការត្រួតពិនិត្យការប្រែប្រួលទិន្នន័យនៅលំហូរ ការលួចប្រើឧបករណ៍ដោយផ្ទាល់ ឬការប្រែប្រួលការកំណត់ឧបករណ៍។ ការលួចប្រើ IoT គឺជាហានិភ័យយ៉ាងខ្លាំង ដូច្នេះឧបករណ៍ដូចជា [Azure Defender for IoT](https://azure.microsoft.com/services/azure-defender-for-iot/?WT.mc_id=academic-17441-jabenn) ត្រូវបានអភិវឌ្ឍ។ ឧបករណ៍ទាំងនេះដូចជាកម្មវិធីប្រឆាំងវីរុស និងឧបករណ៍សុវត្ថិភាពដែលអ្នកប្រហែលជាមាននៅលើកុំព្យូទ័ររបស់អ្នក ដែលត្រូវបានរចនាឡើងសម្រាប់ឧបករណ៍ IoT តូចៗដែលមានថាមពលទាប។ + +## វិទ្យាសាស្រ្តរៀបចំសញ្ញា + +ពេលឧបករណ៍ភ្ជាប់ទៅសេវា IoT វាប្រើ ID ដើម្បីសម្គាល់ខ្លួនវា។ បញ្ហាគឺ ID នេះអាចត្រូវបានចម្លង - អ្នកចោរកម្មអាចដាក់ឧបករណ៍អាក្រក់មួយប្រើ ID ដូចឧបករណ៍ពិត តែក៏ផ្ញើទិន្នន័យក្លែងបោក។ + +![Both valid and malicious devices could use the same ID to send telemetry](../../../../../translated_images/km/iot-device-and-hacked-device-connecting.e0671675df74d6d9.webp) + +វិធីលត្តស្នូលគឺបំលែងទិន្នន័យដែលផ្ញើជា​ទម្រង់​រំលោភដោយប្រើតម្លៃមួយដែលរំលោភទិន្នន័យ ហើយតម្លៃនេះត្រូវបានគេដឹងតែឧបករណ៍ និងពពកប៉ុណ្ណោះ។ ដំណើរការនេះហៅថា *ការអ៊ិនគ្រីប* ហើយតម្លៃដែលប្រើសម្រាប់អ៊ិនគ្រីបទិន្នន័យហៅថា *កូនសោអ៊ិនគ្រីប*។ + +![If encryption is used, then only encrypted messages will be accepted, others will be rejected](../../../../../translated_images/km/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f.webp) + +សេវាកម្មពពកអាចបំលែងទិន្នន័យវិញទៅរូបមន្តអានចេញបាន ដោយប្រើដំណើរការហៅថា *ការដកអ៊ិនគ្រីប* ដែលប្រើឬកូនសោអ៊ិនគ្រីបដូចគ្នា ឬកូនសោដកអ៊ិនគ្រីប។ ប្រសិនបើសារដែលបានអ៊ិនគ្រីបមិនអាចដកដំណោះសោឡើងវិញដោយកូនសោបាន នោះឧបករណ៍ត្រូវបានលួចប្រើ ហើយវាអវត្តមាន។ + +បច្ចេកទេសក្នុងការធ្វើអ៊ិនគ្រីបនិងដកអ៊ិនគ្រីបហៅថា *វិទ្យាសាស្រ្តរៀបចំសញ្ញា*។ + +### វិទ្យាសាស្រ្តរៀបចំសញ្ញាបឋម + +ប្រភេទវិទ្យាសាស្រ្តរៀបចំសញ្ញាចាស់បំផុតគឺជាកូដជំនួសសញ្ញា ដែលមានរយៈពេល ៣៥០០ ឆ្នាំមកហើយ។ កូដជំនួសសញ្ញាមានអត្ថន័យក្នុងការជំនួសអក្សរមួយជាមួយអក្សរផ្សេងទៀត។ ឧទាហរណ៍ [Caesar cipher](https://wikipedia.org/wiki/Caesar_cipher) គឺការបំលែងអក្សរដោយបង្វិលប័ណ្ណអក្សរដោយចំនួនកំណត់ ដែលមានតែអ្នកផ្ញើសារ និងអ្នករួមភាគគ្រាន់តែដឹងចំនួនអក្សរដែលត្រូវបង្វិលប៉ុណ្ណោះ។ + +[Vigenère cipher](https://wikipedia.org/wiki/Vigenère_cipher) បានក៏ជួយក្នុងការបកស្រាយកាន់តែត្រជាក់ដោយប្រើពាក្យដើម្បីអ៊ិនគ្រីបអត្ថបទ ដូច្នេះអក្សរ​មួយចំនួននៅក្នុងអត្ថបទដើមត្រូវបានបង្វិលដោយចំនួនខុសៗគ្នា មិនមែនតែងតែបង្វិលដោយចំនួនដូចគ្នា។ + +វិទ្យាសាស្រ្តរៀបចំសញ្ញាត្រូវបានប្រើធ្វើការពារ ក្នុងគោលបំណងលើកលែងខ្លួន ដូចជាការពារគណនីទឹកលាបភាគល្អិតនៅប្រទេស Mesopotamia រឺការសរសេរលិខិតស្នេហាសម្ងាត់នៅឥណ្ឌា ឬរក្សាពិធីផ្ទាល់ខ្លួននៃអេហ្ស៊ីបបុរាណឲ្យសម្ងាត់។ + +### វិទ្យាសាស្រ្តរៀបចំសញ្ញាទំនើប + +វិទ្យាសាស្រ្តរៀបចំសញ្ញាទំនើបមានភាពចម្រូងចម្រាស់ខ្លាំងជាងមុន ដោយធ្វើឲ្យវាពិបាកបំផ្លាញជាងវិធីចាស់ៗ។ វិទ្យាសាស្រ្តទំនើបប្រើគណិតវិទ្យារួចរាល់ ដើម្បីអ៊ិនគ្រីបទិន្នន័យជាមួយកូនសោជាច្រើនមិនអាចគិតបំផ្លាញបាន។ + +វិទ្យាសាស្រ្តរៀបចំសញ្ញាត្រូវបានប្រើទូទៅសម្រាប់ការទូរគមនាគមន៍មានសុវត្ថិភាព។ ប្រសិនបើអ្នកកំពុងអានទំព័រនេះនៅលើ GitHub អ្នកនឹងសង្កេតឃើញអាសយដ្ឋានប្រ៊ោសើរធ្វើដំណើរដោយចាប់ផ្តើមជាមួយ *HTTPS* ដែលមានភាពសំដៅថាការទំនាក់ទំនងរវាងប្រ៊ោសើរ និងម៉ាស៊ីនបម្រើ GitHub ត្រូវបានអ៊ិនគ្រីប។ ប្រសិនបើមាននរណាម្នាក់ទទួលបានចរាចរអ៊ីនធឺណែតរវាងប្រ៊ោសើរនិង GitHub ពួកគេមិនអាចអានទិន្នន័យបានទេ ព្រោះវាត្រូវបានអ៊ិនគ្រីប។ កុំព្យូទ័ររបស់អ្នកអាចអ៊ិនគ្រីបទិន្នន័យគ្រប់យ៉ាងលើថាសរឹង ដូច្នេះប្រសិនបើនរណាម្នាក់លួចវា អ្នកនោះនឹងមិនអាចបើកអានទិន្នន័យរបស់អ្នកដោយគ្មានពាក្យសម្ងាត់បានឡើយ។ + +> 🎓 HTTPS មានន័យថា HyperText Transfer Protocol **Secure** + +អកុសល ឥឡូវនេះ មិនមែនគ្រប់យ៉ាងទ​ទួល​បានសុវត្ថិភាពទេ។ មានឧបករណ៍មួយចំនួនគ្មានសុវត្ថិភាពប្រាកដ អ្នកផ្សេងៗមានសុវត្ថិភាពតែមួយចំនួន ប៉ុន្តែមិនពិតប្រាកដប្រសើរពីការប្រើកូនសោទេ ឬគ្រប់ឧបករណ៍តែប្រភេទដូចគ្នាដែលប្រើកូនសោដូចគ្នាទាំងអស់។ មានរឿងរ៉ាវនៃឧបករណ៍ IoT ផ្ទាល់ខ្លួនខ្លះដែលគ្រប់គ្នាប្រើពាក្យសម្ងាត់ដូចគ្នាដើម្បីភ្ជាប់ទៅ WiFi ឬ Bluetooth។ ប្រសិនបើអ្នកអាចភ្ជាប់ទៅឧបករណ៍របស់អ្នកបាន អ្នកក៏អាចភ្ជាប់ទៅឧបករណ៍អ្នកដទៃបាន។ មួយពេលភ្ជាប់រួច អ្នកអាចចូលទិន្នន័យផ្ទាល់ខ្លួនខ្លាំងមួយ ឬមានការគ្រប់គ្រងលើឧបករណ៍របស់ពួកគេ។ + +> 💁 ទោះបីជាវិទ្យាសាស្រ្តរៀបចំសញ្ញាទំនើបមានការលំបាក និងការអះអាងថាចំណាយពេលរាប់ពាន់លានឆ្នាំក្នុងការបំផ្លាញសញ្ញា ប៉ុន្តែ កំណើននៃកុំព្យូទ័រថ្នាក់ quantum បានបណ្តាលឲ្យមានសក្តានុពលក្នុងការបំផ្លាញវិធីអ៊ិនគ្រីបគ្រប់ប្រភេទបានក្នុងរយៈពេលខ្លីណាស់! + +### កូនសោសមមាត្រ និងអសមមាត្រ + +ការអ៊ិនគ្រីបមាន២ប្រភេទ - សមមាត្រ និងអសមមាត្រ។ + +**សមមាត្រ** អ៊ិនគ្រីប ប្រើកូនសោដូចគ្នាទៅអ៊ិនគ្រីប និងដកអ៊ិនគ្រីបទិន្នន័យ។ ទាំងអ្នកផ្ញើ និងអ្នកទទួលត្រូវដឹងប្រភេទកូនសោដូចគ្នា។ វាជាប្រភេទមានសុវត្ថិភាពតិចជាង ព្រោះត្រូវចែករំលែកកូនសោ។ ដើម្បីឲ្យអ្នកផ្ញើផ្ញើសារអ៊ិនគ្រីបទៅអ្នកទទួល អ្នកផ្ញើប្រហែលជាត្រូវផ្ញើកូនសោទៅអ្នកទទួលជាមុន។ + +![Symmetric key encryption uses the same key to encrypt and decrypt a message](../../../../../translated_images/km/send-message-symmetric-key.a2e8ad0d495896ff.webp) + +ប្រសិនបើកូនសោត្រូវលួចនៅការដឹកជញ្ជូន ឬអ្នកផ្ញើ ឬអ្នកទទួលត្រូវបានលួច និងត្រូវបានរកឃើញកូនសោ នោះការអ៊ិនគ្រីបអាចត្រូវបំផ្លាញបាន។ + +![Symmetric key encryption is only secure if a hacker doesn't get the key - if so they can intercept and decrypt the message](../../../../../translated_images/km/send-message-symmetric-key-hacker.e7cb53db1707adfb.webp) + +**អសមមាត្រ** អ៊ិនគ្រីបប្រើកូនសោ២ខុសគ្នា - កូនសោអ៊ិនគ្រីប និងកូនសោដកអ៊ិនគ្រីប ដែលហៅថាគូកូនសោសាធារណៈ/ឯកជន។ កូនសោសាធារណៈប្រើសម្រាប់អ៊ិនគ្រីបសារ ប៉ុន្តែមិនអាចបើកអានសារបាន កូនសោឯកជនប្រើសម្រាប់ដកអ៊ិនគ្រីបសារ ប៉ុន្តែមិនអាចអ៊ិនគ្រីបសារបានឡើយ។ + +![Asymmetric encryption uses a different key to encrypt and decrypt. The encryption key is sent to any message senders so they can encrypt a message before sending it to the recipient who owns the keys](../../../../../translated_images/km/send-message-asymmetric.7abe327c62615b8c.webp) + +អ្នកទទួលចែករំលែកកូនសោសាធារណៈរបស់ពួកគេ ហើយអ្នកផ្ញើប្រើវា ដើម្បីអ៊ិនគ្រីបសារ។ ពេលសារត្រូវបានផ្ញើ អ្នកទទួលដកសារ​នេះដោយកូនសោឯកជនរបស់ពួកគេ។ អសមមាត្រ​មានសុវត្ថិភាពខ្ពស់ ព្រោះកូនសោឯកជនត្រូវរក្សាឲ្យឯកជនដោយអ្នកទទួល ហើយមិនដែលចែករំលែក។ អ្នកណាក៏ដូចជាអាចមានកូនសោសាធារណៈ ព្រោះវាអាចប្រើអ៊ីត្ដរាសម្រាប់អ៊ិនគ្រីបសារ។ + +ការអ៊ិនគ្រីបសមមាត្រលឿនជាងអសមមាត្រ ប៉ុន្តែអសមមាត្រមានសុវត្ថិភាពជាង។ ប្រព័ន្ធខ្លះៗប្រើទាំងពីរគ្នា ដោយប្រើអសមមាត្រអ៊ិនគ្រីបនិងចែករំលែកកូនសោសមមាត្រ បន្ទាប់មកប្រើកូនសោសមមាត្រ ដើម្បីអ៊ិនគ្រីបទិន្នន័យទាំងមូល។ វានេះធ្វើឲ្យមានសុវត្ថិភាពក្នុងការចែករំលែកកូនសោសមមាត្ររវាងអ្នកផ្ញើ និងអ្នកទទួល និងលឿនក្នុងការអ៊ិនគ្រីប និងដកអ៊ិនគ្រីបទិន្នន័យ។ + +## រក្សាឧបករណ៍ IoT របស់អ្នកឱ្យមានសុវត្ថិភាព + +ឧបករណ៍ IoT អាចត្រូវបានធ្វើអោយមានសុវត្ថិភាពដោយប្រើការអ៊ិនគ្រីបសមមាត្រ ឬអសមមាត្រ។ សមមាត្រងាយស្រួល ជាង ប៉ុន្តែសុវត្ថិភាពតិចជាង។ + +### កូនសោសមមាត្រ + +ពេលអ្នកតំឡើងឧបករណ៍ IoT របស់អ្នកដើម្បីប្រតិបត្តិការជាមួយ IoT Hub អ្នកបានប្រើខ្សែភ្ជាប់មួយ។ ខ្សែភ្ជាប់ឧទាហរណ៍មាន៖ + +```output +HostName=soil-moisture-sensor.azure-devices.net;DeviceId=soil-moisture-sensor;SharedAccessKey=Bhry+ind7kKEIDxubK61RiEHHRTrPl7HUow8cEm/mU0= +``` + +ខ្សែភ្ជាប់នេះមានចំណុចបីផ្នែកបំបែកគ្នាបានដោយសេមីកូឡុង មួយផ្នែកគឺកូនសោ និងតម្លៃមួយជាការពិញ្ញាណ៖ + +| កូនសោ | តម្លៃ | ពណ៌នា | +| --- | ----- | ----------- | +| HostName | `soil-moisture-sensor.azure-devices.net` | អាសយដ្ឋាន URL របស់ IoT Hub | +| DeviceId | `soil-moisture-sensor` | ID តែមួយឯងរបស់ឧបករណ៍ | +| SharedAccessKey | `Bhry+ind7kKEIDxubK61RiEHHRTrPl7HUow8cEm/mU0=` | កូនសោសមមាត្រដែលឧបករណ៍និង IoT Hub ដឹងរួច | + +ផ្នែកចុងក្រោយនៃខ្សែភ្ជាប់នេះ `SharedAccessKey` គឺជាកូនសោសមមាត្រដែលឧបករណ៍ និង IoT Hub ទាំងពីរក្តៅដឹងរួច។ កូនសោនេះមិនដែលផ្ញើពីឧបករណ៍ទៅពពក ឬពពកទៅឧបករណ៍ទេទេ។ តួវាត្រូវបានប្រើសម្រាប់អ៊ិនគ្រីបទិន្នន័យដែលផ្ញើណែនាំឬទទួលបាន។ + +✅ ប៉ិនប្រវត្តិមួយ៖ តើអ្នកគិតថាអ្វីកើតឡើង បើយោងតាមការផ្លាស់ប្តូរផ្នែក `SharedAccessKey` នៃខ្សែភ្ជាប់ពេលភ្ជាប់ឧបករណ៍ IoT របស់អ្នក? សូមសាកល្បង។ + +ពេលឧបករណ៍ព្យាយាមភ្ជាប់វានឹងផ្ញើសញ្ញា access signature (SAS) ដែលជាអាសយដ្ឋាន URL របស់ IoT Hub តាមរយៈ កំណត់ពេលវេលាដែលសញ្ញានេះនឹងផុតកំណត់ (ជាទូទៅ ១ថ្ងៃចាប់ពីពេលបច្ចុប្បន្ន) និងសញ្ញាដោយសារផ្ទាល់។ សញ្ញានេះផ្តោតទៅលើ URL និងពេលផុតកំណត់បានអ៊ិនគ្រីបដោយកូនសោសមមាត្រពីខ្សែភ្ជាប់។ + +IoT Hub នឹងដកអ៊ិនគ្រីបសញ្ញានេះដោយកូនសោសមមាត្រ ហើយប្រសិនបើតម្លៃដកអ៊ិនគ្រីបផ្គូផ្គងនឹង URL និងពេលផុតកំណត់ឧបករណ៍ត្រូវបានអនុញ្ញាតឲ្យភ្ជាប់។ វាក៏ធានាថាពេលវេលាបច្ចុប្បន្ននៅមុនពេលផុតកំណត់ ដើម្បីទប់ស្កាត់ឧបករណ៍មិនល្អចាប់យកសញ្ញា SAS ពីឧបករណ៍ពិត និងប្រើវា។ + +នេះគឺជាវិធីស្រស់ស្អាតក្នុងការផ្ទៀងផ្ទាត់ថាអ្នកផ្ញើគឺជាឧបករណ៍ត្រឹមត្រូវ។ ដោយផ្ញើទិន្នន័យមួយផ្នែកក្នុងទម្រង់ដកអ៊ិនគ្រីប និងទម្រង់អ៊ិនគ្រីប សែមេកវិធីនេះអាចផ្ទៀងផ្ទាត់ឧបករណ៍បានដោយធ្វើឲ្យទៅនូវលទ្ធផលដដែលនៅពេលវាដកអីនគ្រីបទិន្នន័យអ៊ិនគ្រីប។ ប្រសិនបើវាផ្គូផ្គង នោះអ្នកផ្ញេី និងអ្នកទទួលមានកូនសោសមមាត្រដូចគ្នា។ +> 💁 ដោយសារតែពេលវេលាផុតកំណត់ ឧបករណ៍ IoT របស់អ្នកត្រូវការដឹងពេលវេលាដែល chính xác ជាទូទៅអានពីម៉ាស៊ីនមេ [NTP](https://wikipedia.org/wiki/Network_Time_Protocol) ។ ប្រសិនបើពេលវេលាមិន chính xác ការតភ្ជាប់នឹងបរាជ័យ។ + +បន្ទាប់ពីការតភ្ជាប់ ទិន្នន័យទាំងអស់ដែលផ្ញើទៅកាន់ IoT Hub ពីឧបករណ៍ ឬទៅឧបករណ៍ពី IoT Hub នឹងត្រូវបាន mã hóa ជាមួយកូនសោចូលប្រើរួម។ + +✅ តើអ្នកគិតថាអ្វីនឹងកើតឡើង ប្រសិនបើឧបករណ៍ច្រើនចែករំលែកខ្សែតភ្ជាប់ដូចគ្នា? + +> 💁 វាជាវិធានសុវត្ថិភាពខូចក្នុងការផ្ទុកកូនសោនេះក្នុងកូដ។ ប្រសិនបើវាយប្រហារទទួលបានកូដប្រភពរបស់អ្នក ពួកគេអាចទទួលបានកូនសោរបស់អ្នក។ វាក៏ពិបាកកាន់តែច្រើន នៅពេលបញ្ចេញកូដ ដោយអ្នកត្រូវបំបែកកូដជាថ្មីជាមួយកូនសោថ្មីសម្រាប់រៀងរាល់ឧបករណ៍។ វាល្អជាងក្នុងការបញ្ចូលកូនសោនេះពីម៉ូឌុលសុវត្ថិភាពរឹង - ជាចិបនៅលើឧបករណ៍ IoT ដែលផ្ទុកតម្លៃ mã hóa ដែលអាចអានបានដោយកូដរបស់អ្នក។ +> +> នៅពេលរៀន IoT វាសាមញ្ញជាងក្នុងការបញ្ចូលកូនសោក្នុងកូដ ដូចដែលអ្នកបានធ្វើក្នុងមេរៀនមុន ប៉ុន្តែអ្នកត្រូវធានាបានថាកូនសោនេះមិនត្រូវបានត្រួតពិនិត្យចូលក្នុងគ្រប់គ្រងកូដប្រភពសាធារណៈ។ + +ឧបករណ៍មានកូនសោ ២ និងខ្សែតភ្ជាប់ដែលអនុវត្តន៍ ២។ នេះអនុញ្ញាតឱ្យអ្នកប្ដូរកូនសោ - គឺបម្លែងពីកូនសោមួយទៅកូនសោមួយផ្សេងទៀត ប្រសិនបើកូនសោទីមួយត្រូវបានរំលោភ ហើយបង្កើតឡើងវិញកូនសោទីមួយ។ + +### វិញ្ញាបនបត្រ X.509 + +នៅពេលដែលអ្នកប្រើកូដភាពមិនសមមែនជាមួយគូសោសាធារណៈ/ឯកជន អ្នកត្រូវផ្តល់សោសាធារណៈរបស់អ្នកទៅអ្នកណាមួយចង់ផ្ញើទិន្នន័យទៅអ្នក។ បញ្ហាជា តើអ្នកទទួលបានសោររបស់អ្នកអាចប្រាកដថាវាជាសោសាធារណៈរបស់អ្នក មិនមែនជាអ្នកផ្សេងមកបង្ហាញខ្លួនជាអ្នកទេ? ជំនួសផ្តល់សោ អ្នកអាចផ្តល់សោសាធារណៈរបស់អ្នកនៅក្នុងវិញ្ញាបនបត្រដែលត្រូវបានផ្ទៀងផ្ទាត់ដោយភាគីទីបី ដែលហៅថាវិញ្ញាបនបត្រ X.509។ + +វិញ្ញាបនបត្រ X.509 គឺជាឯកសារឌីជីថលដែលមានផ្នែកសោសាធារណៈនៃគូសោសាធារណៈ/ឯកជន។ វាធម្មតាត្រូវបានចេញដោយអង្គការដែលមានការជឿជាក់មួយចំនួន ហៅថា [អាជ្ញាប័ណ្ណផ្ដល់វិញ្ញាបនបត្រ](https://wikipedia.org/wiki/Certificate_authority) (CAs) ហើយត្រូវបានចុះហត្ថលេខាឌីជីថលដោយ CA ដើម្បីបញ្ជាក់ថាសោត្រឹមត្រូវ និងមកពីអ្នក។ អ្នកជឿជាក់តាមវិញ្ញាបនបត្រ និងសោសាធារណៈដែលមានក្នុងវិញ្ញាបនបត្រតាមព្រោះអ្នកជឿជាក់ CA ដូចជាការជឿជាក់លើ דרכון ឬប័ណ្ណបើកបរ ដោយសារអ្នកជឿជាក់ប្រទេសដែលចេញវា។ វិញ្ញាបនបត្រត្រូវការលុយ ដូច្នេះអ្នកអាច«ចុះហត្ថលេខារបស់ខ្លួន» គឺបង្កើតវិញ្ញាបនបត្រដោយខ្លួនឯងដែលចុះហត្ថលេខាដោយឯង សម្រាប់គោលបំណងសាកល្បង។ + +> 💁 អ្នកមិនគួរប្រើវិញ្ញាបនបត្រចុះហត្ថលេខាដោយខ្លួនឯងសម្រាប់ការចេញផ្សាយផលិតកម្មឡើយ។ + +វិញ្ញាបនបត្រ​ទាំងនេះមានច្រើនវាល ក្នុងនោះមានអ្នកផ្តល់សោសាធារណៈ ព័ត៌មាន CA ផ្ដល់វិញ្ញាបនបត្រ កំរងពេលផុតកំណត់ ហើយសោសាធារណៈផ្ទាល់។ មុនពេលប្រើវិញ្ញាបនបត្រ វាជាប្រព្រឹត្តិការល្អក្នុងការត្រួតពិនិត្យថាវាត្រូវបានចុះហត្ថលេខាដោយ CA ដើម។ + +✅ អ្នកអាចអានបញ្ជីពេញលេញនៃវាលក្នុងវិញ្ញាបនបត្រនៅក្នុងការបង្រៀន [Microsoft Understanding X.509 Public Key Certificates tutorial](https://docs.microsoft.com/azure/iot-hub/tutorial-x509-certificates?WT.mc_id=academic-17441-jabenn#certificate-fields) + +នៅពេលប្រើវិញ្ញាបនបត្រ X.509 ទាំងអ្នកផ្ញើ និងអ្នកទទួល មានសោសាធារណៈ និងឯកជនរបស់ខ្លួន និងក៏មានវិញ្ញាបនបត្រ X.509 ដែលមានសោសាធារណៈ។ ពួកគេនឹងដូរវិញ្ញាបនបត្រ X.509 យ៉ាងណាមួយ ដោយប្រើសោសាធារណៈរបស់គ្នា ដើម្បី mã hóaទិន្នន័យដែលផ្ញើ ហើយប្រើសោឯកជនរបស់ខ្លួនដើម្បីបំណែកទិន្នន័យដែលទទួលបាន។ + +![ជំនួសការចែករំលែកសោសាធារណៈ អ្នកអាចចែករំលែកវិញ្ញាបនបត្រ។ អ្នកប្រើវិញ្ញាបនបត្រអាចផ្ទៀងផ្ទាត់ថាវាមកពីអ្នក ដោយពិនិត្យជាមួយអាជ្ញាប័ណ្ណផ្ដល់វិញ្ញាបនបត្រដែលបានចុះហត្ថលេខា។](../../../../../translated_images/km/send-message-certificate.9cc576ac1e46b76e.webp) + +អត្ថប្រយោជន៍ធំមួយនៃការប្រើវិញ្ញាបនបត្រ X.509 គឺវាអាចចែករំលែករវាងឧបករណ៍បាន។ អ្នកអាចបង្កើតវិញ្ញាបនបត្រមួយ ផ្ទុកវាទៅក្នុង IoT Hub និងប្រើវាសម្រាប់ឧបករណ៍ទាំងអស់របស់អ្នក។ ឧបករណ៍រាល់ត្រូវតែដឹងពីសោឯកជនដើម្បីបំណែកសារដែលវាទទួលពី IoT Hub។ + +វិញ្ញាបនបត្រដែលឧបករណ៍របស់អ្នកប្រើប្រាស់ដើម្បី mã hóaសារដែលផ្ញើទៅ IoT Hub ត្រូវបានបោះពុម្ពផ្សាយដោយ Microsoft។ វាជាវិញ្ញាបនបត្រ ដដែលដែលសេវាកម្ម Azure ជាច្រើនប្រើ ហើយពេលខ្លះបញ្ចូលក្នុង SDKs ផងដែរ។ + +> 💁 ចូរចងចាំថា សោសាធារណៈគឺគ្រាន់តែជាសាធារណៈប៉ុណ្ណោះ។ សោសាធារណៈ Azure អាចប្រើសម្រាប់ mã hóaទិន្នន័យផ្ញើទៅ Azure តែក្នុងមិនអាចបំណែកវា ផ្សព្វផ្សាយបានគ្រប់ទីកន្លែង រួមមានក្នុងកូដប្រភពផងដែរ។ ឧទាហរណ៍ អ្នកអាចមើលវា​នៅក្នុង [កូដប្រភព Azure IoT C SDK](https://github.com/Azure/azure-iot-sdk-c/blob/master/certs/certs.c)។ + +✅ មានពាក្យបន្ទាត់ច្រើនជាមួយវិញ្ញាបនបត្រ X.509។ អ្នកអាចអាននិយមន័យនៃពាក្យខ្លះៗដែលអ្នកអាចជួបប្រទៈដូច​ក្នុង [The layman’s guide to X.509 certificate jargon](https://techcommunity.microsoft.com/t5/internet-of-things/the-layman-s-guide-to-x-509-certificate-jargon/ba-p/2203540?WT.mc_id=academic-17441-jabenn) + +## បង្កើត និងប្រើវិញ្ញាបនបត្រ X.509 + +ជំហានក្នុងការបង្កើតវិញ្ញាបនបត្រ X.509 មានដូចខាងក្រោម៖ + +1. បង្កើតគូសោសាធារណៈ/ឯកជនមួយ។ អាល់គរីធម៍ដែលគេប្រើទូលំទូលាយក្នុងការបង្កើតគូសោសាធារណៈ/ឯកជនគឺហៅថា [Rivest–Shamir–Adleman](https://wikipedia.org/wiki/RSA_(cryptosystem)) (RSA)។ + +1. ដាក់សោសាធារណៈជាមួយទិន្នន័យដែលពាក់ព័ន្ធសម្រាប់ការចុះហត្ថលេខា ច either ដោយ CA ឬដោយចុះហត្ថលេខារបស់ខ្លួន។ + +Azure CLI មានពាក្យបញ្ជារច្រើនសម្រាប់បង្កើតអត្តសញ្ញាណឧបករណ៍ថ្មីនៅ IoT Hub និងបង្កើតគូសោសាធារណៈ/ឯកជន និងបង្កើតវិញ្ញាបនបត្រ ដែលចុះហត្ថលេខារបស់ខ្លួនដោយស្វ័យប្រវត្តិ។ + +> 💁 ប្រសិនបើអ្នកចង់មើលជំហានដំណាក់កាលលម្អិត ជំនួសប្រើ Azure CLI អ្នកអាចស្វែងរកវានៅក្នុងការបង្រៀន [Using OpenSSL to create self-signed certificates tutorial in the Microsoft IoT Hub documentation](https://docs.microsoft.com/azure/iot-hub/tutorial-x509-self-sign?WT.mc_id=academic-17441-jabenn) + +### ភារកិច្ច - បង្កើតអត្តសញ្ញាណឧបករណ៍ដោយប្រើវិញ្ញាបនបត្រ X.509 + +1. រត់ពាក្យបញ្ជារខាងក្រោមដើម្បីចុះបញ្ជីអត្តសញ្ញាណឧបករណ៍ថ្មី បង្កើតកូនសោ និងវិញ្ញាបនបត្រដោយស្វ័យប្រវត្តិ៖ + + ```sh + az iot hub device-identity create --device-id soil-moisture-sensor-x509 \ + --am x509_thumbprint \ + --output-dir . \ + --hub-name + ``` + + ជំនួស `` ជាមួយឈ្មោះដែលអ្នកប្រើសម្រាប់ IoT Hub របស់អ្នក។ + + វានឹងបង្កើតឧបករណ៍មានអត្តសញ្ញាណ `soil-moisture-sensor-x509` ដើម្បីដាក់ខុសគ្នាពីអត្តសញ្ញាណឧបករណ៍ដែលអ្នកបានបង្កើតនៅមេរៀនកន្លងមក។ ពាក្យបញ្ជានេះនឹងបង្កើតឯកសារ ២ នៅថតបច្ចុប្បន្ន៖ + + * `soil-moisture-sensor-x509-key.pem` - ឯកសារនេះមានសោឯកជនសម្រាប់ឧបករណ៍។ + * `soil-moisture-sensor-x509-cert.pem` - វិញ្ញាបនបត្រ X.509 សម្រាប់ឧបករណ៍។ + + រក្សាឯកសារទាំងនេះឱ្យមានសុវត្ថិភាព! ឯកសារសោឯកជនមិនគួរត្រូវបានចុះបញ្ជីក្នុងគ្រប់គ្រងកូដប្រភពសាធារណៈឡើយ។ + +### ភារកិច្ច - ប្រើវិញ្ញាបនបត្រ X.509 នៅក្នុងកូដឧបករណ៍របស់អ្នក + +អនុវត្តតាមមគ្គុទេសក៍ដែលពាក់ព័ន្ធ ដើម្បីភ្ជាប់ឧបករណ៍ IoT របស់អ្នកទៅមេឃ ក្នុងការប្រើវិញ្ញាបនបត្រ X.509៖ + +* [Arduino - Wio Terminal](wio-terminal-x509.md) +* [កុំព្យូទ័របន្ទះតែមួយ - Raspberry Pi/ឧបករណ៍ IoT វិជ្ជមាន](single-board-computer-x509.md) + +--- + +## 🚀 ឧប្បត្តិ + +មានវិធីជាច្រើនក្នុងការបង្កើត គ្រប់គ្រង និងលុបសេវាកម្ម Azure ដូចជា Resource Groups និង IoT Hubs។ មួយក្នុងនោះគឺ [Azure Portal](https://portal.azure.com?WT.mc_id=academic-17441-jabenn) - មុខងារបណ្ដាញដែលផ្ដល់ឧបករណ៍ GUI សម្រាប់គ្រប់គ្រងសេវាកម្ម Azure របស់អ្នក។ + +ចូលទៅកាន់ [portal.azure.com](https://portal.azure.com?WT.mc_id=academic-17441-jabenn) ហើយស្វែងយល់អំពីទ្វារ។ សាកល្បងបង្កើត IoT Hub តាមបញ្ជីទ្វារ បន្ទាប់មកលុបវា។ + +**រំលឹក** - នៅពេលបង្កើតសេវាកម្មតាមរយៈទ្វារ អ្នកមិនចាំបាច់បង្កើត Resource Group ជាមុនទេ មួយអាចត្រូវបានបង្កើតពេលដែលអ្នកកំពុងបង្កើតសេវាកម្ម។ ចូរត្រូវប្រាកដថាលុបវេលាអ្នកបញ្ចប់! + +អ្នកអាចរកឯកសារ មេរៀន និងមគ្គុទេសក៍ជាច្រើនអំពី Azure Portal នៅក្នុង [ឯកសារទ្វារ Azure](https://docs.microsoft.com/azure/azure-portal/?WT.mc_id=academic-17441-jabenn)។ + +## សំណួរបន្ទាប់ពីមេរៀន + +[សំណួរបន្ទាប់ពីមេរៀន](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/20) + +## វិភាគ និងរៀនផ្ទាល់ខ្លួន + +* អានអំពីប្រវត្តិវិទ្យាសាស្ត្រសម្ងាត់នៅលើ [ទំព័រប្រវត្តិវិទ្យាសាស្ត្រសម្ងាត់នៅវិគីភីឌា](https://wikipedia.org/wiki/History_of_cryptography)។ +* អានអំពីវិញ្ញាបនបត្រ X.509 នៅលើ [ទំព័រ X.509 នៅវិគីភីឌា](https://wikipedia.org/wiki/X.509)។ + +## កិច្ចការផ្ទះ + +[សាងសង់ឧបករណ៍ IoT ថ្មី](assignment.md) + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះយើងខិតខំធ្វើអោយត្រឹមត្រូវ ក៏សូមជ្រាបថាការបកប្រែដោយស្វ័យប្រវត្តិកម្មអាចមានកំហុសឬមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាជាតិរបស់វាគួរត្រូវបានចាត់ទុកជាប្រភពដើមដែលមានសិទ្ធិកាល។ សម្រាប់ព័ត៌មានសំខាន់ៗ គ្រាន់តែក្នុងការបកប្រែដោយអ្នកជំនាញអាជីពគួរត្រូវបានផ្ដល់អាទិភាព។ យើងមិនមានកាតព្វកិច្ចចំពោះការយល់ច្រឡំ ឬការបកប្រែលាយឡំណាមួយដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/2-farm/lessons/6-keep-your-plant-secure/assignment.md b/translations/km/2-farm/lessons/6-keep-your-plant-secure/assignment.md new file mode 100644 index 000000000..f3efa54c3 --- /dev/null +++ b/translations/km/2-farm/lessons/6-keep-your-plant-secure/assignment.md @@ -0,0 +1,22 @@ +# សាងសង់ឧបករណ៍ IoT ថ្មីមួយ + +## សេចក្តីណែនាំ + +ក្នុងរយៈ ៦ មេរៀនចុងក្រោយ អ្នកបានរៀនអំពីកសិកម្មឌីជីថល និងវិធីប្រើឧបករណ៍ IoT ដើម្បីរកប្រមូលទិន្នន័យដើម្បីទាយទាក់ទាញការលូតលាស់របស់រុក្ខជាតិ និងគ្រប់គ្រងការដំឡើងទឹកដោយផ្អែកលើការអានសំណើមដី។ + +ប្រើអ្វីដែលអ្នកបានរៀនដើម្បីសាងសង់ឧបករណ៍ IoT ថ្មីមួយដោយប្រើឧបករណ៍ធ្វើអំពើ (sensor) និងឧបករណ៍បង្កើតសំឡេង (actuator) ដែលអ្នកជ្រើសរើស។ ផ្ញើព័ត៌មានតខល់ទៅកាន់ IoT Hub ហើយប្រើវាដើម្បីគ្រប់គ្រងឧបករណ៍បង្កើតសំឡេងតាមកូដ serverless។ អ្នកអាចប្រើឧបករណ៍ធ្វើអំពើ និងឧបករណ៍បង្កើតសំឡេងដែលអ្នកបានប្រើរួចក្នុងគម្រោងនេះ ឬគម្រោងមុនៗ ហើយប្រសិនបើអ្នកមានឧបករណ៍ផ្សេងទៀត អាចសាកល្បងថ្មីបាន។ + +## លក្ខណៈវិជ្ជមាន + +| កត្តា | ល្អឥតខ្ចោះ | គ្រប់គ្រាន់ | ត្រូវការកែលម្អ | +| -------- | --------- | -------- | ----------------- | +| កូដឧបករណ៍ IoT ដើម្បីប្រើឧបករណ៍ធ្វើអំពើ និងឧបករណ៍បង្កើតសំឡេង | បានកូដឧបករណ៍ IoT ដែលអាចធ្វើការជាមួយឧបករណ៍ធ្វើអំពើ និងឧបករណ៍បង្កើតសំឡេង | បានកូដឧបករណ៍ IoT ដែលអាចធ្វើការជាមួយឧបករណ៍ធ្វើអំពើ ឬឧបករណ៍បង្កើតសំឡេង | មិនអាចកូដឧបករណ៍ IoT ដើម្បីប្រើឧបករណ៍ធ្វើអំពើ ឬឧបករណ៍បង្កើតសំឡេងបានទេ | +| ភ្ជាប់ឧបករណ៍ IoT ទៅកាន់ IoT Hub | អាចដាក់ឧបករណ៍ IoT Hub និងផ្ញើព័ត៌មានតខល់ទៅវា និងទទួលបានពង្រឹងពីវា | អាចដាក់ឧបករណ៍ IoT Hub និងផ្ញើព័ត៌មានតខល់ ឬទទួលបានពង្រឹង | មិនអាចដាក់ឧបករណ៍ IoT Hub និងទំនាក់ទំនងជាមួយវាពីឧបករណ៍ IoT បានទេ | +| គ្រប់គ្រងឧបករណ៍បង្កើតសំឡេងដោយប្រើកូដ serverless | អាចដាក់កូដ Azure Function ដើម្បីគ្រប់គ្រងឧបករណ៍ ដែលចាប់ផ្តើមដោយព្រឹត្តិការណ៍ព័ត៌មានតខល់ | អាចដាក់កូដ Azure Function ដែលចាប់ផ្តើមដោយព្រឹត្តិការណ៍ព័ត៌មានតខល់ ប៉ុន្តែមិនអាចគ្រប់គ្រងឧបករណ៍បង្កើតសំឡេងបាន | មិនអាចដាក់កូដ Azure Function បានទេ | + +--- + + +**ការព្រមាន**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះយើងមានជំនឿក្នុងការរក្សាភាពត្រឹមត្រូវ ប៉ុន្តែនៅតែមានការជ្រៀតច្រឡំ ឬកំហុសអាចកើតមានក្នុងការបកប្រែដោយស្វ័យប្រវត្តិ។ ឯកសារដើមក្នុងភាសាប្រពៃណីគួរត្រូវបានគេចាត់ទុកថាជា ប្រភពផ្លូវការរបស់ព័ត៌មាន។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយមនុស្សដែលមានវិជ្ជាជីវៈត្រូវបានណែនាំ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសពីការប្រើប្រាស់ការបកប្រែនេះនោះឡើយ។ + \ No newline at end of file diff --git a/translations/km/2-farm/lessons/6-keep-your-plant-secure/single-board-computer-x509.md b/translations/km/2-farm/lessons/6-keep-your-plant-secure/single-board-computer-x509.md new file mode 100644 index 000000000..5377a6f20 --- /dev/null +++ b/translations/km/2-farm/lessons/6-keep-your-plant-secure/single-board-computer-x509.md @@ -0,0 +1,64 @@ +# ប្រើវិញ្ញាប័ណ្ណ X.509 ក្នុងកូដឧបករណ៍របស់អ្នក - ឧបករណ៍ IoT មួយហើយ Raspberry Pi + +នៅផ្នែកនេះនៃមេរៀន អ្នកនឹងភ្ជាប់ឧបករណ៍ IoT វិញ្ញាណរបស់អ្នកឬ Raspberry Pi ទៅកាន់ IoT Hub របស់អ្នកដោយប្រើវិញ្ញាប័ណ្ណ X.509។ + +## ភ្ជាប់ឧបករណ៍របស់អ្នកទៅ IoT Hub + +ជំហានបន្ទាប់គឺភ្ជាប់ឧបករណ៍របស់អ្នកទៅ IoT Hub ដោយប្រើវិញ្ញាប័ណ្ណ X.509។ + +### ភារកិច្ច - ភ្ជាប់ទៅ IoT Hub + +1. ចម្លងឯកសារតំណក់ និងវិញ្ញាប័ណ្ណទៅថតដែលមានកូដឧបករណ៍ IoT របស់អ្នក។ ប្រសិនបើអ្នកប្រើ Raspberry Pi តាមរយៈ VS Code Remote SSH ហើយបង្កើតកូនសោនៅលើកុំព្យូទ័រផ្ទាល់ខ្លួនរបស់អ្នក ឬ Mac អ្នកអាចទាញយកឯកសារទៅក្នុងកម្មវិធី explorer ក្នុង VS Code ដើម្បីចម្លង។ + +1. បើកឯកសារ `app.py` + +1. ដើម្បីភ្ជាប់ដោយប្រើវិញ្ញាប័ណ្ណ X.509 អ្នកត្រូវការឈ្មោះម៉ាស៊ីនផ្ទះ (host name) របស់ IoT Hub និងវិញ្ញាប័ណ្ណ X.509។ ចាប់ផ្តើមដោយបង្កើតអថេរមួយដែលផ្ទុកឈ្មោះម៉ាស៊ីនផ្ទះដោយបញ្ចូលកូដនេះមុនពេលបង្កើត device client: + + ```python + host_name = "" + ``` + + ជំនួស `` ជាឈ្មោះម៉ាស៊ីនផ្ទះរបស់ IoT Hub របស់អ្នក។ អ្នកអាចយកវាពីផ្នែក `HostName` នៅក្នុង `connection_string`។ វានឹងជា​ឈ្មោះ IoT Hub របស់អ្នក ដែលបញ្ចប់ដោយ `.azure-devices.net` + +1. ក្រោមនេះ ប្រកាសអថេរមួយដែលមានអត្តសញ្ញាណឧបករណ៍: + + ```python + device_id = "soil-moisture-sensor-x509" + ``` + +1. អ្នកត្រូវការជំនាន់មួយនៃ `X509` class ដែលមានឯកសារវិញ្ញាប័ណ្ណ X.509។ បន្ថែម `X509` ទៅក្នុងបញ្ជី class ដែលនាំចូលពីមូឌុល `azure.iot.device`៖ + + ```python + from azure.iot.device import IoTHubDeviceClient, Message, MethodResponse, X509 + ``` + +1. បង្កើតជំនាន់ `X509` ប្រើឯកសារវិញ្ញាប័ណ្ណ និងកូនសោរបស់អ្នក ដោយបន្ថែមកូដនេះខាងក្រោមការប្រកាស `host_name`៖ + + ```python + x509 = X509("./soil-moisture-sensor-x509-cert.pem", "./soil-moisture-sensor-x509-key.pem") + ``` + + នេះនឹងបង្កើត `X509` class ដោយប្រើឯកសារ `soil-moisture-sensor-x509-cert.pem` និង `soil-moisture-sensor-x509-key.pem` ដែលបានបង្កើតមុននេះ។ + +1. ជំនួសបន្ទាត់កូដដែលបង្កើត `device_client` ពី connection string ជាមួយបន្ទាត់កូដដូចខាងក្រោម៖ + + ```python + device_client = IoTHubDeviceClient.create_from_x509_certificate(x509, host_name, device_id) + ``` + + នេះនឹងភ្ជាប់ដោយប្រើវិញ្ញាប័ណ្ណ X.509 ជំនួស connection string។ + +1. លុបបន្ទាត់ដែលមានអថេរ `connection_string`។ + +1. រត់កូដរបស់អ្នក។ តាមដានសារដែលផ្ញើទៅ IoT Hub ហើយផ្ញើសំណើវិធីសាស្រ្តផ្ទាល់ដូចមុន។ អ្នកនឹងឃើញឧបករណ៍ភ្ជាប់ ហើយផ្ញើការវាស់សំណើមាតិកាមេរីដី គ្របដណ្តប់ការទទួលសំណើវិធីសាស្រ្តផ្ទាល់ផងដែរ។ + +> 💁 អ្នកអាចរកឃើញកូដនេះនៅក្នុងថត [code/pi](../../../../../2-farm/lessons/6-keep-your-plant-secure/code/pi) ឬ [code/virtual-device](../../../../../2-farm/lessons/6-keep-your-plant-secure/code/virtual-device)។ + +😀 កម្មវិធីឧបករណ៍វាស់សំណើមដីរបស់អ្នកបានភ្ជាប់ទៅ IoT Hub ដោយប្រើវិញ្ញាប័ណ្ណ X.509 រួចហើយ! + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំរកភាពត្រឹមត្រូវ សូមយល់ឲ្យដឹងថា ការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬអត្ថបទមិនបានត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាដើមគួរត្រូវបានគេរៀបចំពុំថ្លៃថ្នូរជាប្រភពគ្រឹះ។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមផ្ដល់អាទិភាពការបកប្រែដោយមនុស្សជំនាញវិជ្ជាជីវៈ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ឃើញមិនត្រឹមត្រូវ ឬការបកប្រែខុសពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/2-farm/lessons/6-keep-your-plant-secure/wio-terminal-x509.md b/translations/km/2-farm/lessons/6-keep-your-plant-secure/wio-terminal-x509.md new file mode 100644 index 000000000..e7c4ceccd --- /dev/null +++ b/translations/km/2-farm/lessons/6-keep-your-plant-secure/wio-terminal-x509.md @@ -0,0 +1,10 @@ +# ប្រើវិញ្ញាបនបត្រ X.509 នៅក្នុងកូដឧបករណ៍របស់អ្នក - Wio Terminal + +នៅពេលសរសេរ Azure Arduino SDK មិនគាំទ្រវិញ្ញាបនបត្រ X.509 ទេ។ ប្រសិនបើអ្នកចង់សាកល្បងវិញ្ញាបនបត្រ X.509 អ្នកអាចយោងទៅតាម [ការណែនាំឧបករណ៍ IoT ឌីជីថលដោយប្រើ Python SDK](single-board-computer-x509.md)។ + +--- + + +**ការព្រមាន**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំដើម្បីរកភាពត្រឹមត្រូវ សូមជ្រាបថាអត្ថបទបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬភាពមិនត្រឹមត្រូវបាន។ ឯកសារដើមដែលនៅក្នុងភាសាដើមគួរត្រូវបានគេពិចារណាថាជាឈ្មោះដើមដែលមានអំណាច។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមផ្តល់អនុសាសន៍ឱ្យធ្វើការបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទំនួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/3-transport/README.md b/translations/km/3-transport/README.md new file mode 100644 index 000000000..4d28100f0 --- /dev/null +++ b/translations/km/3-transport/README.md @@ -0,0 +1,31 @@ +# ការដឹកជញ្ជូនពីចម្ការ​ទៅរោងចក្រ - ប្រើប្រាស់ IoT ដើម្បីតាមដានការដឹកជញ្ជូនអាហារ + +កម្មករចម្ការច្រើនរុញកសិកម្មដើម្បីលក់ - ឬគាត់ជាកសិករជំនាញពាណិជ្ជកម្មដែលលក់គ្រប់យ៉ាងដែលគាត់ដាំដុះ ឬគាត់ជាកសិករជីវភាពដែលលក់ផលផលិតក្រៅចំនួនដើម្បីទិញប្រភេទទំនិញចាំបាច់។ ដំណើរណាមួយដែលធ្វើអោយអាហារទៅពីចម្ការទៅអ្នកប្រើប្រាស់ ហើយធម្មតា វាពឹងផ្អែកលើការដឹកជញ្ជូនចម្រុះពីចម្ការ ទៅកាន់មជ្ឈមណ្ឌលឬរោងចក្ខ ដល់ហាងលក់។ ឧទាហរណ៍ កសិករជាមួយបៃតងមួយនឹងប្រមូលបៃតង បន្ទុកវាទៅក្នុងប្រអប់ ចងប្រអប់ទុកលើឡានដឹក ហើយដាក់ចេញទៅរោងចក្រពិសោធន៍។ បៃតងនោះនឹងត្រូវបានចាត់ថ្នាក់ ហើយបន្ទាប់មកនឹងត្រូវបានផ្ញើទៅអ្នកប្រើប្រាស់ក្នុងរូបភាពជាអាហារដែលបានដំឡើងរៀបចំ លក់តាមហាងលក់រាយ ឬប្រើប្រាស់នៅភោជនីយដ្ថាន។ + +IoT អាចជួយក្នុងខ្សែផ្គត់ផ្គង់នេះដោយតាមដានអាហារកំពុងដឹក - ធានាថាម៉ូតូដឹកដល់កន្លែងដែលគួរទៅ ការត្រួតពិនិត្យទីតាំងយានយន្ត ហើយទទួលរាយការណ៍ពេលយានយន្តដល់ ដើម្បីអាហារអាចដោះទំនិញ និងត្រៀមនិងដំណើរការបន្តបានឆាប់រហ័សបំផុត។ + +> 🎓 *ខ្សែផ្គត់ផ្គង់* គឺជាជួរដំណើរការដើម្បីផលិត និងដឹកជញ្ជូនអ្វីមួយ។ ឧទាហរណ៍ក្នុងកសិកម្មបៃតង វាត្រូវរាប់បញ្ចូលគ្រាប់ពូជ ដី ជី ធនធានទឹក ការដាំដុះបៃតង ការដឹកបៃតងទៅមជ្ឈមណ្ឌលមួយ ការដឹកទៅមជ្ឈមណ្ឌលសំបូរទឹកម្ហូបក្នុងហាងលក់ ផ្ដល់ទៅហាងលក់រាយមួយៗ ការដាក់បង្ហាញលើតុ លក់ទៅអ្នកប្រើ និងយកទៅផ្ទះសម្រាប់បរិភោគ។ ជាដំណាក់កាលនីមួយៗ គឺដូចជាខ្សែជាប់គ្នាក្នុងខ្សែតភ្ជាប់។ + +> 🎓 ផ្នែកដឹកជញ្ជូននៃខ្សែផ្គត់ផ្គង់ ត្រូវបានគេហៅថា *លូជីស្ទិច*។ + +ក្នុងមេរៀនទាំង ៤ នេះ អ្នកនឹងរៀនពីរបៀបអនុវត្តបច្ចេកវិទ្យា Internet of Things ដើម្បីធ្វើឲ្យខ្សែផ្គត់ផ្គង់ប្រសើរឡើងដោយតាមដានអាហារពេលវាត្រូវបានដាក់ឡើងលើឡាន (វីរុស) ដែលត្រូវបានតាមដានពេលវាជិះទៅកន្លែងគោលដៅ។ អ្នកនឹងរៀនអំពីការតាមដាន GPS របៀបរក្សាទុក និងបង្ហាញទិន្នន័យ GPS ហើយរបៀបទទួលការជូនដំណឹងពេលឡានដល់កន្លែងគោលដៅ។ + +> 💁 មេរៀនទាំងនេះនឹងប្រើប្រាស់ធនធានភ្លៀង។ ប្រសិនបើអ្នកមិនបានបញ្ចប់មេរៀនទាំងអស់ក្នុងគម្រោងនេះ សូមប្រាកដថាអ្នកបាន [សម្អាតគម្រោងរបស់អ្នក](../clean-up.md)។ + +## ប្រធានបទ + +1. [ការតាមដានទីតាំង](lessons/1-location-tracking/README.md) +1. [រក្សាទុកទិន្នន័យទីតាំង](lessons/2-store-location-data/README.md) +1. [បង្ហាញទិន្នន័យទីតាំង](lessons/3-visualize-location-data/README.md) +1. [ប្លង់ដែន](lessons/4-geofences/README.md) + +## ការសរសើរ + +មេរៀនទាំងអស់ត្រូវបានសរសេរដោយ ♥️ ដោយ [Jen Looper](https://github.com/jlooper) និង [Jim Bennett](https://GitHub.com/JimBobBennett) + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះបានបកប្រែដោយប្រើសេវាកម្មបកប្រែកម្មវិធី AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំរកការត្រឹមត្រូវ សូមយល់ឲ្យដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមដែលប្រើភាសាតំណើរដើមគួរត្រូវបានគិតថាជាប្រភពផ្លូវការនិងមានភាពជាក់លាក់។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមផ្ដល់អនុសាសន៍ឲ្យមានការបកប្រែដោយមនុស្សជំនាញ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំបញ្ចេញ ឬការបកស្រាយខុសឆ្គងណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/3-transport/lessons/1-location-tracking/README.md b/translations/km/3-transport/lessons/1-location-tracking/README.md new file mode 100644 index 000000000..b8124afc9 --- /dev/null +++ b/translations/km/3-transport/lessons/1-location-tracking/README.md @@ -0,0 +1,210 @@ +# ការតាមដានទីតាំង + +![រូបសំណំសង្ខេបនៃមេរៀននេះ](../../../../../translated_images/km/lesson-11.9fddbac4b664c6d5.webp) + +> រូបសំណំដោយ [Nitya Narasimhan](https://github.com/nitya). ចុចលើរូបភាពដើម្បីមើលជារូបភាពធំជាងនេះ។ + +## គំនួរ முனាចុងមេរៀន + +[គំនួរ முனាចុងមេរៀន](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/21) + +## ការណែនាំ + +ដំណើរការសំខាន់សម្រាប់ការទទួលអាហារពីកសិករទៅអ្នកប្រើប្រាស់រួមមានការដាក់ប្រអប់ផលិតផលលើរថយន្ត, កប៉ាល់, អាកាសយានយន្ដ ឬយានយន្ដជួញដូរផ្សេងទៀត ហើយបញ្ជូនអាហារទៅកាន់កន្លែងណាមួយ - ឬផ្ទាល់ទៅអតិថិជន ឬទៅកាន់កណ្ដាលផ្ទុក ឬឃ្លាំងសម្រាប់ដំណើរការ។ ដំណើរការទាំងមូលពីផ្ទះចម្ការ ទៅអ្នកប្រើប្រាស់ គឺជាផ្នែកមួយនៃដំណើរការដែលហៅថា *ខ្សែផ្គត់ផ្គង់*។ វីដេអូចូលពីសាកលវិទ្យាល័យ Arizona State University របស់ W. P. Carey School of Business និយាយអំពីគំនិតខ្សែផ្គត់ផ្គង់ និងរបៀបគ្រប់គ្រងវាជារបៀបលម្អិតជាងនេះ។ + +[![What is Supply Chain Management? A video from Arizona State University's W. P. Carey School of Business](https://img.youtube.com/vi/Mi1QBxVjZAw/0.jpg)](https://www.youtube.com/watch?v=Mi1QBxVjZAw) + +> 🎥 ចុចរូបភាពខាងលើដើម្បីមើលវីដេអូ + +ការបន្ថែមឧបករណ៍ IoT អាចធ្វើឲ្យខ្សែផ្គត់ផ្គង់របស់អ្នកប្រសើរឡើងយ៉ាងខ្លាំង អនុញ្ញាតឲ្យអ្នកគ្រប់គ្រងទីតាំងវត្ថុ, ធ្វើផែនការដឹកជញ្ជូន និងដោះស្រាយទំនិញបានល្អប្រសើរជាងមុន និងឆ្លើយតបបញ្ហាបានរហ័សតាមរយៈវិធីផ្សេងៗ។ + +ពេលគ្រប់គ្រងក្រុមយានយន្ដដូចជាទំនិញ, វាជារឿងជួយបានដើម្បីដឹងថាយានយន្ដមួយៗស្ថិតនៅកន្លែងណា នៅពេលណាមួយ។ យានយន្ដអាចត្រូវបានដំឡើងឧបករណ៍ស្ញាត់ទីតាំង GPS ដែលផ្ញើទីតាំងរបស់វាទៅប្រព័ន្ធ IoT អ្នកម្ចាស់អាចកំណត់ទីតាំងប្រកបដោយត្រឹមត្រូវ, មើលផ្លូវដែលវាបានដើរតាម និងដឹងពេលវានឹងមកដល់គោលដៅរបស់វា។ យានយន្ដភាគច្រើនដំណើរការជាលើស WiFi ដូច្នោះវានឹងប្រើបណ្តាញទូរស័ព្ទដើម្បីផ្ញើព័ត៌មានប្រភេទនេះ។ ពេលខ្លះឧបករណ៍ស្ញាត់ GPS រួមបញ្ចូលក្នុងឧបករណ៍ IoT ស្មុគស្មាញជាងនេះ ដូចជា សៀវភៅកំណត់ហេតុអេឡិចត្រូនិច។ ឧបករណ៍ទាំងនេះតាមដានរយៈពេលដែលរថយន្តបានដំណើរការហើយធ្វើអោយប្រាកដថាអ្នកបើកបរដើរតាមច្បាប់ស្រុកកន្លែងដំណើរការនៃម៉ោងធ្វើការ។ + +ក្នុងមេរៀននេះ អ្នកនឹងរៀនអំពីរបៀបតាមដានទីតាំងយានយន្ដដោយប្រើឧបករណ៍ស្ញាត់ទីតាំងសកល (GPS)។ + +ក្នុងមេរៀននេះ យើងនឹងគ្រប់គ្រង៖ + +* [យានយន្ដភ្ជាប់](#យានយន្ដភ្ជាប់) +* [កូអរដោនេជាតិស្រ្តី](#កូអរដោនេជាតិស្រ្តី) +* [ប្រព័ន្ធស្ញាត់ទីតាំងសកល (GPS)](#ប្រព័ន្ធស្ញាត់ទីតាំងសកល-gps) +* [អានទិន្នន័យឧបករណ៍ស្ញាត់ GPS](#អានទិន្នន័យឧបករណ៍ស-پژួត-gps) +* [ទិន្នន័យ GPS NMEA](#ទិន្នន័យ-gps-nmea) +* [បករប្រែទិន្នន័យឧបករណ៍ស្ញាត់ GPS](#កូដសរសេរដើម្បីបកស្រាយទិន្នន័យឧបករណ៍-gps) + +## យានយន្ដភ្ជាប់ + +IoT កំពុងបម្លែងវិធីដឹកជញ្ជូនទំនិញដោយបង្កើតក្រុមយានយន្ដ *ភ្ជាប់*។ យានយន្ដទាំងនេះភ្ជាប់ទៅប្រព័ន្ធ IT កណ្តាលដែលរាយការណ៍ព័ត៌មានអំពីទីតាំងរបស់វា និងទិន្នន័យឧបករណ៍ស្ញាត់ផ្សេងទៀត។ មានក្រុមយានយន្ដភ្ជាប់មានអត្ថប្រយោជន៍ជាច្រើន៖ + +* ការតាមដានទីតាំង - អ្នកអាចកំណត់ទីតាំងយានយន្ដនៅពេលណាមួយបាន ដើម្បីអនុញ្ញាតៈ + + * ទទួលការជូនដំណឹងពេលយានយន្ដត្រៀមដល់គោលដៅ ដើម្បីរៀបចំក្រុមរួចរាល់សម្រាប់ការចូរទំនិញចេញ + * រកយានយន្ដដែលត្រូវនគរបាលបាញ់ជាតិលួច + * ផ្លាស់ប្ដូរផ្លូវនិងទីតាំងរួមជាមួយបញ្ហាចរាចរណ៍ ដើម្បីអាចប្តូរផ្លូវនៅពាក់កណ្តាលដំណើរបាន + * ទាក់ទងទៅការបង់ពន្ធ។ ប្រទេសជាច្រើនគិតពន្ធយានយន្ដតាមចំនួនគីឡូម៉ែត្រដែលបើកលើផ្លូវសាធារណៈ (ដូចជា [RUC នៃប្រទេសនូវែលស៊ីឡង់](https://www.nzta.govt.nz/vehicles/licensing-rego/road-user-charges/)) ដូច្នេះការដឹងពេលណាយានយន្ដនៅលើផ្លូវសាធារណៈ និងផ្លូវឯកជនធ្វើអោយគណនាពន្ធបានងាយស្រួល។ + * ដឹងចំពោះទីតាំងផ្ញើក្រុមថែទាំករណីខូចខាត + +* ទិន្នន័យបង្ហាញពីអ្នកបើកបរ - អាចធ្វើអោយប្រាកដថាអ្នកបើកបររត់តាមល្បឿនដែលបានកំណត់, បត់មុំក្នុងល្បឿនគួរឱ្យទទួលយក, ហាមឡានពេលវេលាមុន និងបើកបរបានយ៉ាងសុវត្ថិភាព។ យានយន្ដភ្ជាប់ក៏អាចមានកាមេរ៉ាដើម្បីថតចុះកើតគ្រោះអាក្រក់ ហើយវាអាចភ្ជាប់ទៅកាន់ធានារ៉ាប់រង ដើម្បីទទួលបានអត្រាបញ្ចុះសម្រួលសម្រាប់អ្នកបើកបរល្អ។ + +* បំពេញតាមម៉ោងបើកបររបស់អ្នកបើកបរ - ប្រាកដថាអ្នកបើកបរប្រើម៉ោងបើកបរត្រឹមត្រូវតាមច្បាប់ជាតិ ដោយផ្អែកលើម៉ោងបើក និងបិទម៉ាសុីន។ + +អត្ថប្រយោជន៍ទាំងនេះអាចបញ្ចូលគ្នាបាន - ឧទាហរណ៍ ជាសារជាដៃក្រវ៉ាត់ម៉ោងបើកបរជាមួយការតាមដានទីតាំងដើម្បីប្តូរសម្រួលផ្លូវអ្នកបើកបរ ប្រសិនបើពួកគេសម្រួលមិនបានទៅដល់គោលដៅក្នុងម៉ោងដែលបានអនុញ្ញាត។ វាអាចបញ្ចូលជាមួយទិន្នន័យបច្ចេកវិទ្យាកុងត្រូលយានយន្ដផ្សេងៗ ដូចជា ទិន្នន័យសីតុណ្ហភាពពីរថយន្តមានការត្រួតត្រាសីតុណ្ហភាព អនុញ្ញាតឲ្យប្តូរផ្លូវប្រើប្រាស់ប្រសិនបើផ្លូវបច្ចុប្បន្នមិនអាចរក្សាទំនិញបានតាមសីតុណ្ហភាព។ + +> 🎓 ការបញ្ជូនជាប្រព័ន្ធ គឺជាដំណើរការដឹកជញ្ជូនទំនិញពីកន្លែងមួយទៅកន្លែងមួយ ផ្សេងពីពីរយោងពីផ្ទះចម្ការ ទៅផ្សារទំនិញតាមរយៈឃ្លាំងមួយឬច្រើន។ កសិករវេចខ្ចប់ប្រអប់ផ្លែប៉េងប៉ោះដែលបានដាក់ឡើងរថយន្ត ដឹកទៅឃ្លាំងកណ្តាល ហើយដាក់ឡើងរថយន្តទីពីរដែលអាចមានគ្រឿងផ្សំផ្សេងៗគ្នារួមបញ្ចូលគ្នាដែលបន្ទាប់មកបានដឹកទៅផ្សារទំនិញ។ + +បច្ចេកទេសមួយសំខាន់នៅក្នុងការតាមដានយានយន្ដគឺ GPS - ឧបករណ៍ស្ញាត់ដែលអាចកំណត់ទីតាំងបានគ្រប់កន្លែងលើផែនដី។ ក្នុងមេរៀននេះ អ្នកនឹងរៀនពីរបៀបប្រើឧបករណ៍ស្ញាត់ GPS ចាប់ផ្តើមពីការស្គាល់របៀបកំណត់ទីតាំងលើផែនដី។ + +## កូអរដោនេជាតិស្រ្តី + +កូអរដោនេជាតិស្រ្តីត្រូវបានប្រើសម្រាប់កំណត់ចំណុចនៅលើផ្ទៃផែនដី ដូចជាការប្រើកូអរដោនេក្នុងការគូរស្ទីចលើអេក្រង់កុំព្យូទ័រ ឬកំណត់ទីតាំងចងក្រងក្នុងការច្នៃត្បាញ។ សម្រាប់ចំណុចតែមួយ អ្នកមានគូកូអរដោនេមួយ។ ឧទាហរណ៍ ការិយាល័យ Microsoft នៅ Redmond, Washington, USA មានទីតាំងនៅ 47.6423109, -122.1390293។ + +### អក្សររយៈកណ្តាល និងអក្សររយៈបណ្ដោយ + +ផែនដីគឺជាប្រដាប់មូល - វគឺជារង្វង់បីខ្នាត។ ដោយសារតែនេះ ចំណុចត្រូវបានកំណត់ដោយការបែងចែកវាចំណែកជា 360 អង្សា ដូចជាទ្រឹស្តីរបស់រង្វង់មូល។ អក្សររយៈកណ្តាលវាស់ចំនួនអង្សាខាងជើងទៅត្បូង និងអក្សររយៈបណ្ដោយវាស់ចំនួនអង្សាខាងកើតទៅទៅលិច។ + +> 💁 មិនមាននរណាដឹងមូលហេតុដើមហេតុអ្វីរង្វង់មូលត្រូវបានបែងចែកជា 360 អង្សាទេ។ [ទំព័រ​អំពីអង់ស្កា(angle) នៅ Wikipedia](https://wikipedia.org/wiki/Degree_(angle)) ចុះបញ្ជីពីមូលហេតុដែលអាចកើតមានបាន។ + +![បន្ទាត់អក្សររយៈកណ្តាលចាប់ពី 90° នៅគោលជើង, 45° មធ្យមខ្លះរវាងគោលជើង និងស្មើខ្នងរង្វង់, 0° នៅស្មើខ្នងរង្វង់, -45° មធ្យមខ្លះរវាងស្មើខ្នងរង្វង់ និងគោលទិសត្បូង, និង -90° នៅគោលទិសត្បូង](../../../../../translated_images/km/latitude-lines.11d8d91dfb2014a5.webp) + +អក្សររយៈកណ្តាលវាស់ដោយប្រើខ្សែបន្ទាត់ដែលវង់ជុំផែនដី និងរត់ស្របទៅលើយស្មើខ្នងរង្វង់ បែងចែកមជ្ឈិមភាគខាងជើង និងត្បូងជាសមាមាត្រទំហំ 90° នីមួយៗ។ ស្មើខ្នងរង្វង់នៅត្រឹម 0°, គោលជើងនៅ 90°, ហៅថា 90° ជាភាគខាងជើង និងគោលទិសត្បូងនៅ -90°, ឬ 90° ភាគខាងត្បូង។ + +អក្សររយៈបណ្ដោយវាស់ដោយចំនួនអង្សាផ្ទែត្បូងទៅអក្សររយៈកណ្តាល​ចេញពីគោល Prime Meridian និងវាស្ថិតនៅ 0°។ Prime Meridian ត្រូវបានកំណត់នៅឆ្នាំ 1884 មានជាបន្ទាត់ចាប់ពីគោលជើងដល់គោលទិសត្បូងឆ្លងកាត់ [ស្ថានីយចម្រុះភាគចិន Royal Observatory នៅ Greenwich, អង់គ្លេស](https://wikipedia.org/wiki/Royal_Observatory,_Greenwich)។ + +![បន្ទាត់អក្សររយៈបណ្ដោយរត់ពី -180° ទៅខាងលិចនៃ Prime Meridian ទៅ 0° នៅ Prime Meridian ទៅ 180° ខាងកើតនៃ Prime Meridian](../../../../../translated_images/km/longitude-meridians.ab4ef1c91c064586.webp) + +> 🎓 មេរីឌីតានគឺជាបន្ទាត់ឯកភាពក្រឡោចប្លែកចាប់ពីគោលជើងដល់គោលទិសត្បូង បង្កើតជាបណ្តោងកណ្ដាលមូល។ + +ដើម្បីវាស់អក្សររយៈបណ្តោយនៃចំណុចមួយ អ្នកវាស់ចំនួនអង្សាទៅជុំវិញស្មើខ្នងរង្វង់ចាប់ពី Prime Meridian ទៅមេរីឌីតានដែលកាត់តាមចំណុចនោះ។ អក្សររយៈបណ្តោយចាប់ពី -180°, ឬ 180° ខាងលិច, តាមរយៈ 0° នៅ Prime Meridian ទៅ 180°, ឬ 180° ខាងកើត។ 180° និង -180° ជាចំណុចដដែលគ្នា ដែលហៅថា antimeridian ឬមេរីឌីតានទី 180។ វាជាបន្ទាត់មេរីឌីតាននៅផ្លូវវិញនៃផែនដីពី Prime Meridian។ + +> 💁 Antimeridian មិនគួរជុំគ្នាជាមួយ International Date Line ដែលស្ថិតនៅតំបន់ប្រហែលដូចគ្នា ប៉ុន្តែមិនមែនជាបន្ទាត់បន្ទាប់ដោយផ្ទាល់និងប្រែប្រួលដើម្បីស្របតាមព្រំដែននយោបាយ។ + +✅ សូមធ្វើការស្រាវជ្រាវ៖ ព្យាយាមរកអក្សររយៈកណ្តាល និងអក្សររយៈបណ្តោយនៃទីតាំងបច្ចុប្បន្នរបស់អ្នក។ + +### អង្សា, នាទី និងវិនាទី ប្រៀបធៀបនឹងអង្សាទសភាគ + +តាមប្រពៃណី ការវាស់អង្សាររយៈកណ្តាល និងអក្សររយៈបណ្ដោយកើតមានដោយប្រើប្រព័ន្ធលេខ sexagesimal ឬ-១៦-៦០-មួយប្រព័ន្ធលេខមูลដ្ឋាន 60 ដែលបានប្រើដោយបាប៊ីលូនបុរាណ ដែលជាអ្នកធ្វើវាស់វែង និងកំណត់ពេលវេលា និងចម្ងាយដំបូង។ អ្នកប្រើប្រព័ន្ធ sexagesimal រៀងរាល់ថ្ងៃប្រហែលដោយគ្មានការយល់ដឹង - ដោយបែងចែកម៉ោងទៅជានាទី 60 និងនាទីទៅជាវិនាទី 60។ + +អក្សររយៈបណ្ដោយ និងអក្សររយៈកណ្តាលត្រូវបានវាស់ជា អង្សា, នាទី និងវិនាទី។ មួយនាទីស្មើការបែងចែក 1/60 នៃអង្សា ហើយមួយវិនាទីស្មើនាទី 1/60។ + +ឧទាហរណ៍ នៅស្មើខ្នងរង្វង់៖ + +* 1° រយៈកណ្តាល ជា **111.3 គីឡូម៉ែត្រ** +* 1 នាទី រយៈកណ្តាល ជា 111.3/60 = **1.855 គីឡូម៉ែត្រ** +* 1 វិនាទី រយៈកណ្តាល ជា 1.855/60 = **0.031 គីឡូម៉ែត្រ** + +រ៉ុងសញ្ញានាទីគឺជាអក្សរដែលដាក់បញ្ចូល ('), សញ្ញាវិនាទីគឺជា (" )។ 2 អង្សា 17 នាទី និង 43 វិនាទី គឺត្រូវបានសរសេរជា 2°17'43"។ ផ្នែកនៃវិនាទីត្រូវបានផ្ដល់ជាអង់ស្កាទសភាគ ឧទាហរណ៍ពាក់កណ្តាលវិនាទីគឺជា 0°0'0.5"។ + +កុំព្យូទ័រមិនដំណើរការផ្នែកមូលដ្ឋាន 60 ដូច្នេះកូអរដោនេនេះត្រូវបានបង្ហាញជាអង្សាទសភាគនៅពេលប្រើទិន្នន័យ GPS ក្នុងប្រព័ន្ធកុំព្យូទ័រភាគច្រើន។ ឧទាហរណ៍ 2°17'43" គឺ 2.295277។ រ៉ុងសញ្ញាអង្សា​ប្រហែលជាមិនមែនសរសេរទេ។ + +ទីតាំងអាចត្រូវបានផ្ដល់ជានិរន្តរ `latitude, longitude` ដូច្នេះឧទាហរណ៍មុននៃការិយាល័យ Microsoft នៅ 47.6423109, -122.1390293 មាន៖ + +* អក្សររយៈកណ្តាល 47.6423109 (47.6423109 អង្សាចំាងជើងនៃស្មើខ្នងរង្វង់) +* អក្សររយៈបណ្ដោយ -122.1390293 (122.1390293 អង្សាចំាងលិចនៃ Prime Meridian)។ + +![មូលដ្ឋាន Microsoft នៅ 47.6423109,-122.117198](../../../../../translated_images/km/microsoft-gps-location-world.a321d481b010f6ad.webp) + +## ប្រព័ន្ធស្ញាត់ទីតាំងសកល (GPS) + +ប្រព័ន្ធ GPS ប្រើផ្កាយផ្ទះច្រើនកំពុងបង្វិលជុំផែនដី ដើម្បីស្វែងរកទីតាំងរបស់អ្នក។ អ្នកប្រហែលជាបានប្រើប្រព័ន្ធ GPS ដោយគ្មានការយល់ដឹង - ដើម្បីស្វែងរកទីតាំងរបស់អ្នកនៅក្នុងកម្មវិធីផែនទីលើទូរស័ព្ទដូចជា Apple Maps ឬ Google Maps, ឬដើម្បីមើលរថយន្តរបស់អ្នកនៅក្នុងកម្មវិធីហៅឡានដូចជា Uber ឬ Lyft, ឬនៅពេលដែលប្រើការនាវិសញ្ញាភាពផ្កាយផ្ទះ (sat-nav) នៅលើឡានរបស់អ្នក។ + +> 🎓 ផ្កាយផ្ទះនៅក្នុង 'ការនាវិសញ្ញាភាពផ្កាយផ្ទះ' គឺជាផ្កាយផ្ទះ GPS! + +ប្រព័ន្ធ GPS ដំណើរការ ដោយមានផ្កាយផ្ទះមួយចំនួនផ្ញើសញ្ញា ជាមួយទីតាំងបច្ចុប្បន្នរបស់ផ្កាយផ្ទះ និងម៉ោងដែលត្រឹមត្រូវ។ សញ្ញាទាំងនេះត្រូវបានផ្ញើតាមរលកវិទ្យុ ហើយត្រូវបានឧបករណ៍អង់តែនាបានចាប់យកនៅក្នុងឧបករណ៍ស្ញាត់ GPS។ ឧបករណ៍ស្ញាត់ GPS នឹងរកឃើញសញ្ញាទាំងនេះ ហើយដោយប្រើម៉ោងបច្ចុប្បន្នវាវាស់រយៈពេលដែលសញ្ញាត្រូវបានផ្ញើពីផ្កាយផ្ទះដល់ឧបករណ៍ស្ញាត់ GPS។ ព្រោះល្បឿនរលកវិទ្យុមានល្បឿនថេរ ឧបករណ៍ស پژួត GPS អាចប្រើម៉ោងដែលបានផ្ញើតាមសញ្ញា ដើម្បីគណនាចម្ងាយចេញពីផ្កាយផ្ទះ។ ដោយបញ្ចូលទិន្នន័យពីផ្កាយផ្ទះ 3 ដวงឬច្រើនជាមួយពីទីតាំងផ្កាយផ្ទះដែលផ្ញើមក ឧបករណ៍ស پژួត GPS អាចកំណត់ទីតាំងផ្ទាល់មិនឲ្យកន្លែងនៅលើផែនដី។ + +> 💁 ឧបករណ៍ស پژួត GPS ត្រូវការអង់តែនាសម្រាប់ចាប់រលកវិទ្យុ។ អង់តែនារបស់រថយន្ត និងឡានដែលមាន GPS បានដំឡើងមកត្រូវបានដាក់នៅចំណុចដែលទទួលបានរលកបានល្អ ជាទូទៅនៅលើបង្អួចកញ្ចក់មុខ ឬដំបូលឡាន។ បើអ្នកប្រើប្រព័ន្ធ GPS ខាងក្រៅ ដូចជា ទូរស័ព្ទដៃ ឬឧបករណ៍ IoT, អ្នកត្រូវប្រាកដថាអង់តែនារបស់ប្រព័ន្ធ GPS ឬទូរស័ព្ទមានចំណុចមើលមេឃច្បាស់ ដូចជា ត្រូវតែដំឡើងនៅលើបង្អួចកញ្ចក់រថយន្ត។ + +![ដោយដឹងពីចម្ងាយពីឧបករណ៍ទៅផ្កាយផ្ទះច្រើន អាចគណនាទីតាំងបាន](../../../../../translated_images/km/gps-satellites.04acf1148fe25fbf.webp) + +ផ្កាយផ្ទះ GPS បង្វិលជុំផែនដី មិនមែននៅតំណែងថេរលើឧបករណ៍ទេ ដូច្នេះទិន្នន័យទីតាំងរួមបញ្ចូលថ្លឹងលើមហាសមុទ្រអាស្រ័យលើអក្សររយៈកណ្តាល និងអក្សររយៈបណ្ដោយផងដែរ។ + +GPS ដើរតួសម្រាប់មានកំណត់ភាពត្រឹមត្រូវដែលអនុវត្តដោយកងទ័ពអាមេរិក ក្នុងការកំណត់ភាពត្រឹមត្រូវមិនលើស 5 ម៉ែត្រ។ កំណត់ភាពនេះត្រូវបានលុបចោលក្នុងឆ្នាំ 2000។ ឥឡូវនេះមានភាពត្រឹមត្រូវនៅប្រមាណ 30 សង់ទីម៉ែត្រ។ ការទទួលបានភាពត្រឹមត្រូវនេះមិនស្ថិតក្នុងជាធម្មតា ដោយសារការរអាក់រអួលនៃសញ្ញា។ + +✅ ប្រសិនបើអ្នកមានទូរស័ព្ទដៃអ្នកចាប់ផ្តើមកម្មវិធីផែនទី និងស្ទាបទីតាំងរបស់អ្នក។ វាអាចនឹងចំណាយពេលខ្លីសម្រាប់ទូរស័ព្ទដៃរកឃើញផ្កាយផ្ទះច្រើនដើម្បីទទួលបានទីតាំងត្រឹមត្រូវជាងនេះ។ + +> 💁 ផ្កាយផ្ទះមានកាឡុកាដេញបាតូម ដែលមានភាពត្រឹមត្រូវយ៉ាងខ្លាំង ប៉ុន្តែវាបាត់បង់ 38 ម៉ៃក្រូវិនាទី (0.0000038 វិនាទី) មួយថ្ងៃ ប្រៀបធៀបនឹងកាឡុកាដេញបាតូមលើផែនដី ដោយសារតែពេលវេលាចុះថយតាមល្បឿនកើនឡើង ដូចបានទស្សនារបស់ Einstein របស់ទ្រឹស្តីពិសេស និងទ្រឹស្តីទូទៅនៃសាមញ្ញភាពភេទ - ផ្កាយផ្ទះដំណើរការលឿនជាងការបង្វិលរបស់ផែនដី។ ចំណុចមិនអាចបំភ្លេចបាននេះត្រូវបានប្រើបញ្ជាក់ទ្រង់ទ្រាយនៃទ្រឹស្តីពិសេស និងទូទៅ ហើយត្រូវបានកែតម្រូវក្នុងការរចនាប្រព័ន្ធ GPS។ ពិតណាស់ ពេលវេលាដំណើរការយ៉ាងយឺតលើផ្កាយផ្ទះ GPS ។ + +ប្រព័ន្ធ GPS ត្រូវបានអភិវឌ្ឍន៍ និងដាក់ឲ្យប្រើប្រាស់ដោយប្រទេស និងសហគមន៍នយោបាយជាច្រើន រួមមាន សហរដ្ឋអាមេរិក, រុស្ស៊ី, ជប៉ុន, ឥណ្ឌា, សហភាពអឺរ៉ុប និងចិន។ ឧបករណ៍ស پژួត GPS សម័យទំនើបអាចភ្ជាប់ទៅប្រព័ន្ធជាច្រើនឲ្យបានលឿន និងត្រឹមត្រូវជាងនេះ។ + +> 🎓 ក្រុមមួយនៃផ្កាយផ្ទះក្នុងការដាក់ឲ្យប្រើប្រាស់ត្រូវបានហៅថា constellation។ + +## អានទិន្នន័យឧបករណ៍ស پژួត GPS + +ឧបករណ៍ស پژួត GPSភាគច្រើនផ្ញើទិន្នន័យ GPS តាម UART។ + +> ⚠️ UART ត្រូវបានពិភាក្សា ក្នុង [project 2, lesson 2](../../../2-farm/lessons/2-detect-soil-moisture/README.md#universal-asynchronous-receiver-transmitter-uart)។ សូមយោងត្រឡប់ទៅមេរៀននោះ ប្រសិនបើត្រូវការ។ + +អ្នកអាចប្រើឧបករណ៍ស پژួត GPS លើឧបករណ៍ IoT របស់អ្នក ដើម្បីទទួលបានទិន្នន័យ GPS។ + +### បទបញ្ជា - ភ្ជាប់ឧបករណ៍ស پژួត GPS និងអានទិន្នន័យ GPS។ +ដំណើរការតាមមគ្គុទេសក៍ដែលពាក់ព័ន្ធ ដើម្បីអានទិន្នន័យ GPS ប្រើឧបករណ៍ IoT របស់អ្នក៖ + +* [Arduino - Wio Terminal](wio-terminal-gps-sensor.md) +* [កុំព្យូទ័រចល័តមួយផ្ទៅ - Raspberry Pi](pi-gps-sensor.md) +* [កុំព្យូទ័រចល័តមួយផ្ទៅ - ឧបករណ៍វឌ្ឍនភាព](virtual-device-gps-sensor.md) + +## ទិន្នន័យ GPS NMEA + +ពេលអ្នកបានរត់កូដរបស់អ្នក អ្នកធ្លាប់បានឃើញអ្វីដែលអាចមានទ្រង់ទ្រាយជាកូដមិនបំភ្លឺនៅក្នុងលទ្ធផល។ វាជាទិន្នន័យ GPS ស្តង់ដារពិតប្រាកដ ហើយវាមានអត្ថន័យទាំងមូល។ + +ឧបករណ៍ប្រើប្រាស់ GPS បញ្ចេញទិន្នន័យដោយប្រើសារ NMEA ដែលអនុវត្តតាមស្តង់ដារ NMEA 0183។ NMEA គឺជាពាក្យកាត់នៃ [National Marine Electronics Association](https://www.nmea.org) ជាសម្ព័ន្ធពាណិជ្ជកម្មនៅសហរដ្ឋអាមេរិក ដែលកំណត់ស្តង់ដារនៃការប្រាស្រ័យទាក់ទងរវាងឧបករណ៍អេឡិចត្រូនិចសមុទ្រ។ + +> 💁 ស្តង់ដារនេះគឺជាសិទ្ធិនិម្មិត និងមានតម្លៃលក់យ៉ាងហោចណាស់ US$2,000 ប៉ុន្តែនៅក្នុងតំបន់សាធារណៈមានព័ត៌មានគ្រប់គ្រងគ្រប់គ្រាន់ ដែលធ្វើឲ្យស្តង់ដារច្រើនត្រូវបានរំលែកវិញ និងអាចប្រើបានក្នុងកូដបើកទ្វារ និងកូដមិនមានគោលបំណងពាណិជ្ជកម្មផ្សេងៗ។ + +សារទាំងនេះមានលក្ខណៈអត្ថបទ។ សារៀមួយនឹងបង្កើតអត្ថបទមួយ *ប្រយោគ* ដែលចាប់ផ្តើមដោយតួអក្សរ `$` បន្ទាប់ពីមានតួអក្សរពីរដើម្បីបង្ហាញប្រភពនៃសារ (ឧ. GP សម្រាប់ប្រព័ន្ធ GPS របស់សហរដ្ឋអាមេរិក, GN សម្រាប់ GLONASS ប្រព័ន្ធ GPS របស់រុស្ស៊ី), និងតួអក្សរបីសម្រាប់បង្ហាញប្រភេទសារ។ ភាគរយសារដែលនៅខាងក្រោយគឺជាផ្នែកផ្សេងៗដែលបំបែកដោយពាក្យក្បាលជញ្ជួរពីរទៅក្រោម។ + +ប្រភេទសារដែលអាចទទួលបានមួយចំនួនមានដូចជា៖ + +| ប្រភេទ | សេចក្ដីពិពណ៌នា | +| ---- | ----------- | +| GGA | ទិន្នន័យការជួសជុល GPS រួមមាន ទីតាំងទទឹង បណ្ដោយ និងកម្ពស់របស់ឧបករណ៍ GPS ជាមួយគណនាពីចំនួនផ្កាយយោងដែលមើលឃើញសម្រាប់កំណត់ទីតាំងនេះ។ | +| ZDA | កាលបរិច្ឆេទ និងម៉ោងបច្ចុប្បន្ន រួមមានតំបន់ម៉ោងក្នុងតំបន់នោះ។ | +| GSV | ព័ត៌មានលម្អិតអំពីផ្កាយយោងដែលមើលឃើញ - មានន័យថា ផ្កាយយោងដែលឧបករណ៍ GPS អាចរកឃើញសញ្ញា។ | + +> 💁 ទិន្នន័យ GPS រួមមានស្លាកម៉ោង ដូច្នេះឧបករណ៍ IoT របស់អ្នកអាចទទួលម៉ោងប្រសិនបើត្រូវការពីឧបករណ៍ GPS ដោយមិនខ្វល់ពីការជឿទុកចិត្តលើម៉ាស៊ីនបម្រើ NTP ឬម៉ោងពិតក្នុងឧបករណ៍។ + +សារ GGA រួមបញ្ចូលទីតាំងបច្ចុប្បន្នតាមរូបមន្ត `(dd)dmm.mmmm` ជាមួយតួអក្សរតែមួយសម្រាប់បង្ហាញទិសដៅ។ `d` ក្នុងរូបមន្តគឺជាដឺក្រី, `m` គឺនាទី, ជាមួយវិនាទីមានតម្លៃដាក់ជាភាគភាគនៃនាទី។ ឧទាហរណ៍ 2°17'43" នឹងស្មើ 217.716666667 - 2 ដឺក្រី, 17.716666667 នាទី។ + +តួអក្សរទិសដៅអាចជារៀង `N` ឬ `S` សម្រាប់ទទឹង ដើម្បីបង្ហាញទិសទៅភាគជើង ឬភាគខាងត្បូង, និង `E` ឬ `W` សម្រាប់បណ្ដោយ ដើម្បីបង្ហាញជាទិស។ ឧទាហរណ៍ ទទឹង 2°17'43" នឹងមានតួអក្សរទិសដៅជា `N`, -2°17'43" នឹងមានតួអក្សរទិសដៅជា `S`។ + +ឧទាហរណ៍ - ប្រយោគ NMEA `$GNGGA,020604.001,4738.538654,N,12208.341758,W,1,3,,164.7,M,-17.1,M,,*67` + +* ផ្នែកទទឹងគឺ `4738.538654,N` ដែលបំលែងទៅជា 47.6423109 ដឺក្រីដប់សង្ខេប។ `4738.538654` គឺ 47.6423109 ហើយទិសដៅគឺ `N` (ភាគជើង) ដូច្នោះវាជាទទឹងវិជ្ជមាន។ + +* ផ្នែកបណ្ដោយគឺ `12208.341758,W` ដែលបំលែងទៅជា -122.1390293 ដឺក្រីដប់សង្ខេប។ `12208.341758` គឺ 122.1390293°, ហើយទិសដៅគឺ `W` (ភាគលិច) ដូច្នោះវាជាបណ្ដោយអវិជ្ជមាន។ + +## កូដសរសេរដើម្បីបកស្រាយទិន្នន័យឧបករណ៍ GPS + +ជំនួសការប្រើទិន្នន័យ NMEA ដើម វាល្អជាងក្នុងការបកស្រាយវាទៅជាទ្រង់ទ្រាយមានប្រយោជន៍ជាង។ មានបណ្ណាល័យបើកចំហដែលអ្នកអាចប្រើដើម្បីជួយដកស្រង់ទិន្នន័យដែលមានប្រយោជន៍ពីសារប្រភេទ NMEA ដើម។ + +### ភារកិច្ច - បកស្រាយទិន្នន័យឧបករណ៍ GPS + +ដំណើរការតាមមគ្គុទេសក៍ដែលពាក់ព័ន្ធដើម្បីបកស្រាយទិន្នន័យឧបករណ៍ GPS ប្រើឧបករណ៍ IoT របស់អ្នក៖ + +* [Arduino - Wio Terminal](wio-terminal-gps-decode.md) +* [កុំព្យូទ័រចល័តមួយផ្ទៅ - Raspberry Pi/ឧបករណ៍ IoT វិជ្ជមាន](single-board-computer-gps-decode.md) + +--- + +## 🚀 បញ្ហាចម្រុះ + +សរសេរកូដបកស្រាយ NMEA ផ្ទាល់ខ្លួន! ជំនួសការជឿទុកចិត្តលើបណ្ណាល័យភាគីទីបីក្នុងការបកស្រាយប្រយោគ NMEA តើអ្នកអាចសរសេរកូដបកស្រាយផ្ទាល់ខ្លួនដើម្បីដកទិន្នន័យទទឹង និងបណ្ដោយពីប្រយោគ NMEA? + +## ប្រឡងបន្ទាប់ម៉ោងសិក្សា + +[ប្រឡងបន្ទាប់ម៉ោងសិក្សា](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/22) + +## ការពិនិត្យឡើងវិញ និងការសិក្សាផ្ទាល់ខ្លួន + +* អានបន្ថែមអំពីមុំដែនភូមិសាស្ត្រពីទំព័រសីមាភូមិសាស្ត្រនៅលើវីគីភីឌា [Geographic coordinate system page on Wikipedia](https://wikipedia.org/wiki/Geographic_coordinate_system)។ +* អានអំពី Prime Meridians នៅលើវត្ថុផ្កាយផ្សេងទៀតក្រៅពីផែនដីនៅលើទំព័រ Prime Meridian នៅវីគីភីឌា [Prime Meridian page on Wikipedia](https://wikipedia.org/wiki/Prime_meridian#Prime_meridian_on_other_planetary_bodies) +* ស្រាវជ្រាវប្រព័ន្ធ GPS ផ្សេងៗពីរដ្ឋាភិបាល និងសហព័ន្ធនយោបាយជាច្រើនដូចជា EU, ជប៉ុន, រុស្ស៊ី, ឥណ្ឌា និងសហរដ្ឋអាមេរិក។ + +## កិច្ចការផ្ទះ + +[ស៊ើបអង្កេតទិន្នន័យ GPS ផ្សេងទៀត](assignment.md) + +--- + + +**ការបដិសេធៈ** +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ក្រៅពីយើងខ្ញុំមានការខិតខំដើម្បីឲ្យមានភាពត្រឹមត្រូវ សូមយល់ព្រមថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមនៅក្នុងភាសាទីតាំងរបស់វាគួរត្រូវបានគេយកជាគោលដៅដើម្បីយោង។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមផ្ដល់អាទិភាពការបកប្រែដោយមនុស្សអ្នកជំនាញ។ យើងខ្ញុំមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/3-transport/lessons/1-location-tracking/assignment.md b/translations/km/3-transport/lessons/1-location-tracking/assignment.md new file mode 100644 index 000000000..e238f3883 --- /dev/null +++ b/translations/km/3-transport/lessons/1-location-tracking/assignment.md @@ -0,0 +1,22 @@ +# ស្រាវជ្រាវទិន្នន័យ GPS ផ្សេងទៀត + +## សេចក្ដីណែនាំ + +ប្រយោល NMEA ដែលមកពីឧបករណ៍ GPS របស់អ្នកមានទិន្នន័យផ្សេងទៀតលើសពីទីតាំង។ ស្រាវជ្រាវទិន្នន័យបន្ថែមនេះ ហើយប្រើវានៅក្នុងឧបករណ៍ IoT របស់អ្នក។ + +ឧទាហរណ៍ - តើអ្នកអាចទទួលបានកាលបរិច្ឆេទ និងម៉ោងបច្ចុប្បន្នបានទេ? ប្រសិនបើអ្នកកំពុងប្រើម៉ៃក្រូកុងត្រូលឡែរ តើអ្នកអាចកំណត់ម៉ោងដោយប្រើទិន្នន័យ GPS ដូចជាដែលអ្នកកំណត់ដោយប្រើសញ្ញា NTP នៅក្នុងគម្រោងមុននេះទេ? តើអ្នកអាចទទួលបានកម្ពស់ (កម្ពស់របស់អ្នកលើមហាសមុទ្រ) ឬល្បឿនបច្ចុប្បន្នរបស់អ្នកបានទេ? + +បើអ្នកកំពុងប្រើឧបករណ៍ IoT ដោយរូបមន្ត អ្នកអាចទទួលបានទិន្នន័យខ្លះៗជាមួយស៊ីនថេន NMEA ដែលបង្កើតដោយឧបករណ៍ [nmeagen.org](https://www.nmeagen.org)។ + +## ការវាយតម្លៃ + +| ការវាយតម្លៃ | ឧទាហរណ៍ល្អបំផុត | គ្រប់គ្រាន់ | ត្រូវការការកែលម្អ | +| -------- | --------- | -------- | ----------------- | +| ទទួលបានទិន្នន័យ GPS បន្ថែម | អាចទទួលបាន និងប្រើទិន្នន័យ GPS បន្ថែម អាចជា តេឡេមេត្រី ឬកំណត់សម្រាប់ឧបករណ៍ IoT | អាចទទួលបានទិន្នន័យ GPS បន្ថែម ប៉ុន្តែមិនអាចប្រើបាន | មិនអាចទទួលបានទិន្នន័យ GPS បន្ថែម | + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពួកយើងខិតខំយកភាពត្រឹមត្រូវ សូមយល់ថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមនៅភាសាម្រាស់គួរត្រូវបានចាត់ទុកថាជាផ្លូវការរបស់ប្រភព។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមផ្តល់អនុសាសន៍ឱ្យប្រើការបកប្រែដោយមនុស្សជាជំនាញ។ ពួកយើងមិនមានកាតព្វកិច្ចអោយកើតមានការយល់ច្រឡំ ឬការបកស្រាយខុសណាមួយពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/3-transport/lessons/1-location-tracking/pi-gps-sensor.md b/translations/km/3-transport/lessons/1-location-tracking/pi-gps-sensor.md new file mode 100644 index 000000000..55cea5bfe --- /dev/null +++ b/translations/km/3-transport/lessons/1-location-tracking/pi-gps-sensor.md @@ -0,0 +1,186 @@ +# ការអានទិន្នន័យ GPS - Raspberry Pi + +ក្នុងផ្នែកនេះនៃមេរៀន អ្នកនឹងបន្ថែមឧបករណ៍សំយោគ GPS ទៅកាន់ Raspberry Pi របស់អ្នក ហើយអានតម្លៃពីវា។ + +## ហា៊ដវែរមេ + +Raspberry Pi ត្រូវការឧបករណ៍សំយោគ GPS។ + +ឧបករណ៍ដែលអ្នកនឹងប្រើគឺ [ឧបករណ៍ Grove GPS Air530](https://www.seeedstudio.com/Grove-GPS-Air530-p-4584.html)។ ឧបករណ៍នេះអាចភ្ជាប់ទៅប្រព័ន្ធ GPS ជាច្រើនសម្រាប់កំណត់ទីតាំងយ៉ាងលឿន និងត្រឹមត្រូវ។ ឧបករណ៍ត្រូវបានបង្កើតពី 2 ផ្នែក - អេឡិចត្រូនិចមេនៃឧបករណ៍ និងអង់តែនាខាងក្រៅភ្ជាប់ដោយខ្សែតូចមួយដើម្បីទទួលរលកកាំរស្មីពីផ្កាយយោង។ + +នេះជាឧបករណ៍ UART ដូច្នេះវាបញ្ចូនទិន្នន័យ GPS តាមរយៈ UART។ + +## ភ្ជាប់ឧបករណ៍ GPS + +ឧបករណ៍ Grove GPS អាចភ្ជាប់ទៅកាន់ Raspberry Pi។ + +### ជំនួយ - ភ្ជាប់ឧបករណ៍ GPS + +ភ្ជាប់ឧបករណ៍ GPS។ + +![ឧបករណ៍ Grove GPS](../../../../../translated_images/km/grove-gps-sensor.247943bf69b03f0d.webp) + +1. បញ្ចូលចុងខ្លះមួយនៃខ្សែ Grove ទៅក្នុងប្រអប់នៅលើឧបករណ៍ GPS។ វានឹងភ្ជាប់តែនៅផ្នែកមួយទេ។ + +1. នៅពេលដែល Raspberry Pi មិនមានថាមពល សូមភ្ជាប់ចុងខ្វះនៃខ្សែ Grove ទៅប្រអប់ UART ដែលសម្គាល់ជា **UART** នៅលើ Grove Base hat ដែលភ្ជាប់ទៅ Pi។ ប្រអប់នេះមានទីតាំងនៅជួរមកណាត់ផ្នែកកណ្ដាល ផ្នែកក្បែរស្លុតកាបូសេអេស ឆ្វេងពីគ្មានចំពោះសំណុំប៊ក USB និងប្រអប់អ៊ីធើណិត។ + + ![ឧបករណ៍ Grove GPS ភ្ជាប់ទៅប្រអប់ UART](../../../../../translated_images/km/pi-gps-sensor.1f99ee2b2f652891.webp) + +1. ដាក់ឧបករណ៍ GPS ដើម្បីអង់តែនាខាប់ផ្គត់ផ្គង់ឲ្យអាចមើលឃើញមេឃបាន - ល្អបើនៅក្បែរបង្អួចបើក ឬនៅខាងក្រៅ។ វាងាយស្រួលក្នុងការ សំឡេងសញ្ញាកាន់តែច្បាស់ដោយគ្មានអ្វីនៅចន្លោះអង់តែនា។ + +## ពិប្រតិការឧបករណ៍ GPS + +Raspberry Pi ឥឡូវនេះអាចត្រូវបានបង្កើតកម្មវិធីដើម្បីប្រើឧបករណ៍ GPS ដែលភ្ជាប់។ + +### ជំនួយ - ពិប្រតិការឧបករណ៍ GPS + +បង្កើតកម្មវិធីសម្រាប់ឧបករណ៍។ + +1. បើកភ្លើង Pi ហើយរង់ចាំឲ្យវាបើករួច។ + +1. ឧបករណ៍ GPS មាន LED 2ដែល - LED ពណ៌ខៀវដែលភ្លឺបញ្ចាំងពេលទិន្នន័យត្រូវបានបញ្ជូន និង LED ពណ៌បៃតងដែលភ្លឺបញ្ចាំងរៀងរាល់វិនាទីពេលទទួលទិន្នន័យពីផ្កាយ។ សូមប្រាកដថា LED ខៀវភ្លឺពេលបើក Pi។ បន្ទាប់ពីពេលខ្លះ LED បៃតងនឹងភ្លឺ - ប្រសិនបើមិនបាន សូមតំរូវផ្លាស់ទីអង់តែនា។ + +1. បើក VS Code ម្តងទៀត ឬភ្ជាប់ជាមួយជំនួយ Remote SSH extension។ + + > ⚠️ អ្នកអាចយោងទៅ [ការណែនាំក្នុងការតម្លើង និងបើក VS Code នៅមេរៀនទី 1 ប្រសិនបើត្រូវការ](../../../1-getting-started/lessons/1-introduction-to-iot/pi.md)។ + +1. ជាមួយនឹងកំណែថ្មីនៃ Raspberry Pi ដែលគាំទ្រ Bluetooth មានជម្លោះរវាងច្រកស៊េរីដែលប្រើសម្រាប់ Bluetooth និងច្រកស៊េរីដែល Grove UART ប្រើ។ ដើម្បីដោះស្រាយបញ្ហានេះ សូមធ្វើដូចតទៅ៖ + + 1. ពី Terminal របស់ VS Code កែប្រែឯកសារ `/boot/config.txt` ដោយប្រើ `nano` ដែលជាកម្មវិធីកែសម្រួលអត្ថបទក្នុង Terminal ដោយប្រើពាក្យបញ្ជាដូចខាងក្រោម៖ + + ```sh + sudo nano /boot/config.txt + ``` + + > ឯកសារនេះមិនអាចកែប្រែដោយ VS Code ទេ ព្រោះអ្នកត្រូវតែប្រើសិទ្ធិ `sudo` ដែលមានសិទ្ធិខ្ពស់។ VS Code មិនដំណើរការនេះទេ។ + + 1. ប្រើក្តារចុចដើម្បីរុករកទៅចុងចុងឯកសារ បន្ទាប់មកចម្លងកូដខាងក្រោម ហើយបិទបញ្ចូលនៅចុងឯកសារ៖ + + ```ini + dtoverlay=pi3-miniuart-bt + dtoverlay=pi3-disable-bt + enable_uart=1 + ``` + + អ្នកអាចបិទបញ្ចូលដោយប្រើកត្តាចុចដូចធម្មតាសម្រាប់ឧបករណ៍របស់អ្នក (`Ctrl+v` នៅលើ Windows, Linux ឬ Raspberry Pi OS, `Cmd+v` នៅលើ macOS)។ + + 1. រក្សាទុកឯកសារនិងចេញពី nano ដោយចុច `Ctrl+x`។ ចុច `y` នៅពេលមានសំណួរថាតើអ្នកចង់រក្សាទុក buffer ដែលបានកែប្រែរួចឬនៅបន្ទាប់មកចុច `enter` ដើម្បីបញ្ជាក់ថាចង់លើសរសេរ `/boot/config.txt`។ + + > ប្រសិនបើអ្នកមានកំហុស អ្នកអាចចាកចេញដោយមិនរក្សាទុក ហើយធ្វើជំហាននេះម្តងទៀត។ + + 1. កែប្រែឯកសារ `/boot/cmdline.txt` ប្រើ nano ដោយប្រើពាក្យបញ្ជាដូចខាងក្រោម៖ + + ```sh + sudo nano /boot/cmdline.txt + ``` + + 1. ឯកសារនេះមានជុំវិញគូវាល/គូតម្លៃសង្ខេបជាមួយគ្នាដោយប្រើចន្លោះ។ សូមដកគូនេះចេញសម្រាប់ប្រភេទគូ `console`។ វាអាចស្រដៀងល្អជាមួយនេះ៖ + + ```output + console=serial0,115200 console=tty1 + ``` + + អ្នកអាចរុករកទៅកាន់ការចូលបញ្ជូលនេះដោយប្រើក្តារចុចរុករក បន្ទាប់មកលុបដោយប្រើ `del` ឬ `backspace`។ + + ឧទាហរណ៍ ប្រសិនបើឯកសារដើមរបស់អ្នកមើលដូចនេះ៖ + + ```output + console=serial0,115200 console=tty1 root=PARTUUID=058e2867-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait + ``` + + កំណែថ្មីនឹងមានរូបរាងដូចខាងក្រោម៖ + + ```output + root=PARTUUID=058e2867-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait + ``` + + 1. អនុវត្តវាជំហានខាងលើដើម្បីរក្សាទុកឯកសារនិងចេញពី nano + + 1. ចាប់ផ្តើម Pi របស់អ្នកឡើងវិញ បន្ទាប់មកភ្ជាប់ឡើងវិញនៅក្នុង VS Code ពេល Pi បានបើកឡើងវិញ។ + +1. ពី Terminal បង្កើតថតថ្មីមួយក្នុងថតផ្ទះអ្នកប្រើ `pi` ឈ្មោះថា `gps-sensor`។ បង្កើតឯកសារមួយនៅក្នុងថតនេះឈ្មោះថា `app.py`។ + +1. បើកថតនេះនៅក្នុង VS Code + +1. មូឌុល GPS ផ្ញើទិន្នន័យ UART តាមច្រកស៊េរីមួយ។ តម្លើងបណ្ណាល័យ Pip `pyserial` ដើម្បីទំនាក់ទំនងជាមួយច្រកស៊េរីពីកូដ Python របស់អ្នក៖ + + ```sh + pip3 install pyserial + ``` + +1. បន្ថែមកូដខាងក្រោមទៅក្នុងឯកសារ `app.py` របស់អ្នក៖ + + ```python + import time + import serial + + serial = serial.Serial('/dev/ttyAMA0', 9600, timeout=1) + serial.reset_input_buffer() + serial.flush() + + def print_gps_data(line): + print(line.rstrip()) + + while True: + line = serial.readline().decode('utf-8') + + while len(line) > 0: + print_gps_data(line) + line = serial.readline().decode('utf-8') + + time.sleep(1) + ``` + + កូដនេះនាំចូលមូឌុល `serial` ពីបណ្ណាល័យ Pip `pyserial`។ វាភ្ជាប់ទៅកាន់ច្រកស៊េរី `/dev/ttyAMA0` - ដែលជាអាសយដ្ឋានច្រកស៊េរីដែល Grove Pi Base Hat ប្រើសម្រាប់ច្រក UART របស់វា។ វាប្រលូតទិន្នន័យដែលមានស្រាប់ពីការតភ្ជាប់ច្រកស៊េរីនេះ។ + + បន្ទាប់មកមានមុខងារ `print_gps_data` ដែលបោះពុម្ពអត្ថបទដែលបានបញ្ជូនទៅកាន់ console។ + + បន្ទាប់មកកូដធ្វើដំណើរជាអនន្តភាព អានបន្ទាត់អត្ថបទច្រើនដែលអាចពីច្រកស៊េរីនៅក្នុងរាល់វដ្ដហាត់។ វាហៅមុខងារ `print_gps_data` សម្រាប់បន្ទាត់នីមួយៗ។ + + បន្ទាប់ពីអានទិន្នន័យទាំងអស់រួច វាដំណេីរកំណត់ ១ វិនាទី ហើយព្យាយាមម្ដងទៀត។ + +1. ដំណើរការ​កូដ​នេះ។ អ្នកនឹងឃើញលទ្ធផលដើមពីឧបករណ៍ GPS ប្រហែលដូចខាងក្រោម៖ + + ```output + $GNGGA,020604.001,4738.538654,N,12208.341758,W,1,3,,164.7,M,-17.1,M,,*67 + $GPGSA,A,1,,,,,,,,,,,,,,,*1E + $BDGSA,A,1,,,,,,,,,,,,,,,*0F + $GPGSV,1,1,00*79 + $BDGSV,1,1,00*68 + ``` + + > ប្រសិនបើអ្នកទទួលបានកំហុសពីមួយក្នុងចំណោមនេះពេលបញ្ឈប់និងចាប់ផ្តើមកូដឡើងវិញ សូមបន្ថែមប្លុក `try - except` ទៅក្នុងរង្វិល while របស់អ្នក។ + + ```output + UnicodeDecodeError: 'utf-8' codec can't decode byte 0x93 in position 0: invalid start byte + UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf1 in position 0: invalid continuation byte + ``` + + ```python + while True: + try: + line = serial.readline().decode('utf-8') + + while len(line) > 0: + print_gps_data() + line = serial.readline().decode('utf-8') + + # មានរំពេចចៃឆន្ទ៍មួយដែលបៃទីមួយដែលកំពុងត្រូវបានអានគឺជាផ្នែកមួយក្នុងតួអក្សរ។ + # អានបន្ទាត់ពេញមួយទៀតហើយបន្ត។ + + except UnicodeDecodeError: + line = serial.readline().decode('utf-8') + + time.sleep(1) + ``` + +> 💁 អ្នកអាចរកឃើញកូដនេះនៅក្នុងថត [code-gps/pi](../../../../../3-transport/lessons/1-location-tracking/code-gps/pi)។ + +😀 កម្មវិធីឧបករណ៍ GPS របស់អ្នកបានជោគជ័យ! + +--- + + +**ការបដិសេធការ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលពួកយើងខិតខំសម្រាប់ភាពត្រឹមត្រូវ សូមដឹងថាបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមជាភាសាម្ចាស់របស់វាគួរត្រូវបានពិចារណាជាអ្នកផ្គត់ផ្គង់ព័ត៌មានស្របច្បាប់។ សម្រាប់ព័ត៌មានសំខាន់ សូមផ្ដល់អាទិភាពការបកប្រែដោយមនុស្សជំនាញ។ ពួកយើងមិនទទួលខុសត្រូវចំពោះការយល់ខុស ឬការបកស្រាយខុសពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/3-transport/lessons/1-location-tracking/single-board-computer-gps-decode.md b/translations/km/3-transport/lessons/1-location-tracking/single-board-computer-gps-decode.md new file mode 100644 index 000000000..21e44f824 --- /dev/null +++ b/translations/km/3-transport/lessons/1-location-tracking/single-board-computer-gps-decode.md @@ -0,0 +1,68 @@ +# បំបែកទិន្នន័យ GPS - ឧបករណ៍ IoT ស្មារតី និង Raspberry Pi + +នៅក្នុងផ្នែកនេះនៃមេរៀន អ្នកនឹងបំបែកសារជាសំណង NMEA ដែលបានអានពីឧបករណ៍ GPS ដោយ Raspberry Pi ឬឧបករណ៍ IoT ស្មារតី ហើយយកតំបន់កោងដែនទ័រនិងរយៈដែនទ័រ។ + +## បំបែកទិន្នន័យ GPS + +បន្ទាប់ពីទិន្នន័យ NMEA ដើមត្រូវបានអានពីច្រកស៊ីរីល បច្ចេកវិទ្យាអាចបំបែកវា ដោយប្រើបណ្ណាល័យ NMEA កូដព្រៃ។ + +### ភារកិច្ច - បំបែកទិន្នន័យ GPS + +កម្មវិធីឧបករណ៍ដើម្បីបំបែកទិន្នន័យ GPS។ + +1. បើកគំរូកម្មវិធី `gps-sensor` ប្រសិនបើមិនទើបបើកទេ + +1. ដំឡើងកញ្ចប់ Pip `pynmea2`។ កញ្ចប់នេះមានកូដសម្រាប់បំបែកសារជាសំណង NMEA។ + + ```sh + pip3 install pynmea2 + ``` + +1. បន្ថែមកូដខាងក្រោមទៅការនាំចូលនៅក្នុងឯកសារ `app.py` សម្រាប់នាំចូលម៉ូឌុល `pynmea2`៖ + + ```python + import pynmea2 + ``` + +1. ប្តូររបស់ក្នុងមុខងារ `print_gps_data` ជាកូដដូចខាងក្រោម៖ + + ```python + msg = pynmea2.parse(line) + if msg.sentence_type == 'GGA': + lat = pynmea2.dm_to_sd(msg.lat) + lon = pynmea2.dm_to_sd(msg.lon) + + if msg.lat_dir == 'S': + lat = lat * -1 + + if msg.lon_dir == 'W': + lon = lon * -1 + + print(f'{lat},{lon} - from {msg.num_sats} satellites') + ``` + + កូដនេះនឹងប្រើបណ្ណាល័យ `pynmea2` ដើម្បីវិភាគបន្ទាត់ដែលបានអានពីច្រកស៊ីរី UART។ + + ប្រសិនបើប្រភេទប្រយោគនៃសារ គឺជា `GGA` នោះហើយនេះគឺជាសារកំណត់ទីតាំង ហើយត្រូវបានដំណើរការ។ តម្លៃតំបន់កោងដែនទ័រនិងរយៈដែនទ័រត្រូវបានអានពីសារ ហើយបម្លែងទៅជាដឺក្រេសទសភាគពីរបៀប NMEA `(d)ddmm.mmmm`។ មុខងារ `dm_to_sd` ធ្វើបម្លែងនេះ។ + + ទិសដៅនៃតំបន់កោងដែនទ័រត្រូវបានពិនិត្យបន្ទាប់ ហើយប្រសិនបើតំបន់កោងដែនទ័រស្ថិតនៅត្បូង តម្លៃនោះត្រូវបានបម្លែងទៅជាព្រឹតិ្តអវិជ្ជមាន។ ដូចគ្នានឹងរយៈដែនទ័រ បើវារស្ថិតនៅភាគលិច វាត្រូវបានបម្លែងឲ្យជាលេខអវិជ្ជមាន។ + + ជាចុងក្រោយ អង្គតំបន់ត្រូវបានបោះពុម្ពទៅខ្សែទ្រនិច រាប់ជាមួយនឹងចំនួនផ្កាយផ្កាយដែលប្រើសម្រាប់ទទួលទីតាំង។ + +1. រត់កូដ។ ប្រសិនបើអ្នកកំពុងប្រើឧបករណ៍ IoT ស្មារតី សូមធានាថាកម្មវិធី CounterFit កំពុងរត់ ហើយទិន្នន័យ GPS កំពុងត្រូវផ្ញើ។ + + ```output + pi@raspberrypi:~/gps-sensor $ python3 app.py + 47.6423109,-122.1390293 - from 3 satellites + ``` + +> 💁 អ្នកអាចស្វែងរកកូដនេះនៅក្នុងថត [code-gps-decode/virtual-device](../../../../../3-transport/lessons/1-location-tracking/code-gps-decode/virtual-device) ឬថត [code-gps-decode/pi](../../../../../3-transport/lessons/1-location-tracking/code-gps-decode/pi)។ + +😀 កម្មវិធីឧបករណ៍ GPS របស់អ្នកដែលមានការបំបែកទិន្នន័យបានជោគជ័យ! + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែក្នុងគោលបំណងប្រើប្រាស់សេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំដើម្បីបានភាពត្រឹមត្រូវ សូមជ្រាបថា ការបកប្រែមួយចំនួនដែលអូតូម៉ាទិចអាចមានកំហុស ឬការមិនត្រឹមត្រូវ។ ឯកសារដើមនៅក្នុងភាសាដែលមានដើមគួរត្រូវបានរកឃើញជា ប្រភពសម្បទាន ឬប្រភពផ្លូវការ។ សម្រាប់ព័ត៌មានសំខាន់ របៀបបកប្រែដោយមនុស្សជំនាញគឺត្រូវបានណែនាំ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសពីការប្រើប្រាស់ការបកប្រែនេះទេ។ + \ No newline at end of file diff --git a/translations/km/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md b/translations/km/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md new file mode 100644 index 000000000..e41cfe6fa --- /dev/null +++ b/translations/km/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md @@ -0,0 +1,137 @@ +# អានទិន្នន័យ GPS - ឧបករណ៍ IoT វិរុតថល + +ក្នុងផ្នែកនេះនៃមេរៀន អ្នកនឹងបន្ថែមឧបករណ៍មានឧស្សាហកម្ម GPS ទៅឧបករណ៍ IoT វិរុតថលរបស់អ្នក ហើយអានតម្លៃពីវា។ + +## ឧបករណ៍វិរុតថល + +ឧបករណ៍ IoT វិរុតថលនឹងប្រើឧបករណ៍ GPS អំព្យូដែលបានចាក់សារបានតាមរយៈ UART តាមរយៈផ្លូវស៊េរី។ + +ឧបករណ៍ GPS រាងរែកតាមរយៈជាផ្នែករឹង មានអង់តែនាមួយសម្រាប់ទទួលរលកវិទ្យុពីផ្កាយ GPS ហើយបម្លែងសញ្ញា GPS ទៅជាទិន្នន័យ GPS។ កំណត់តួវិរុតថលនេះអង់តែនត្រូវបានស្ទាត់ម៉ូដែលដោយអនុញ្ញាតឱ្យអ្នកកំណត់រយៈទទឹង និងរយៈបណ្ដោយត្រង់ ដាក់បញ្ចូនប្រយោល NMEA ដើម ឬផ្ទុកឯកសារ GPX ជាមួយតំបន់ជាច្រើនដែលអាចត្រូវបានត្រឡប់ទៅតាមលំដាប់។ + +> 🎓 ប្រយោល NMEA នឹងត្រូវបានគ្របដណ្តប់នៅពេលក្រោយក្នុងមេរៀននេះ + +### បន្ថែមឧបករណ៍ទៅ CounterFit + +ដើម្បីប្រើឧបករណ៍ GPS វិរុតថល អ្នកត្រូវបន្ថែមឧបករណ៍មួយទៅកម្មវិធី CounterFit + +####ភារកិច្ច - បន្ថែមឧបករណ៍ទៅ CounterFit + +បន្ថែមឧបករណ៍ GPS ទៅកម្មវិធី CounterFit។ + +1. បង្កើតកម្មវិធី Python ថ្មីនៅលើកុំព្យូទ័ររបស់អ្នកក្នុងថតឯកសារដដែលឈ្មោះ `gps-sensor` មានឯកសារតែមួយឈ្មោះ `app.py` និងបរិបទ Python វិរុតថល ហើយបន្ថែមកញ្ចប់ pip របស់ CounterFit។ + + > ⚠️ អ្នកអាចយោងទៅ [ការណែនាំសម្រាប់បង្កើត និងកំណត់កន្លែងគម្រោង Python CounterFit ក្នុងមេរៀន 1 ប្រសិនបើត្រូវការ](../../../1-getting-started/lessons/1-introduction-to-iot/virtual-device.md)។ + +1. តំឡើងកញ្ចប់ Pip បន្ថែមមួយដើម្បីដំឡើងឧបករណ៍ចំណុះ CounterFit ដែលអាចនិយាយជាមួយឧបករណ៍ UART តាមរយៈការតភ្ជាប់ស៊េរី។ អ្នកប្រាកដថាខណៈដែលតំឡើងត្រូវបើកបរិបទវិរុតថល។ + + ```sh + pip install counterfit-shims-serial + ``` + +1. ប្រាកដថាកម្មវិធីបណ្ដាញ CounterFit កំពុងដំណើរការ + +1. បង្កើតឧបករណ៍ GPS៖ + + 1. ក្នុងប្រអប់ *Create sensor* នៅផ្នែក *Sensors* បើកប្រអប់ *Sensor type* ហើយជ្រើស *UART GPS*។ + + 1. ទុកបន្ទាត់ *Port* នៅ */dev/ttyAMA0* + + 1. ជ្រើសប៊ូតុង **Add** ដើម្បីបង្កើតឧបករណ៍ GPS នៅផត `/dev/ttyAMA0` + + ![ការកំណត់ឧបករណ៍ GPS](../../../../../translated_images/km/counterfit-create-gps-sensor.6385dc9357d85ad1.webp) + + ឧបករណ៍ GPS នឹងត្រូវបានបង្កើត និងបង្ហាញនៅក្នុងបញ្ជីឧបករណ៍។ + + ![ឧបករណ៍ GPS ដែលបានបង្កើត](../../../../../translated_images/km/counterfit-gps-sensor.3fbb15af0a536756.webp) + +## កម្មវិធីឧបករណ៍ GPS + +ឧបករណ៍ IoT វិរុតថលឥឡូវនេះអាចត្រូវបានកម្មវិធីដើម្បីប្រើឧបករណ៍ GPS វិរុតថល។ + +### ភារកិច្ច - កម្មវិធីឧបករណ៍ GPS + +កម្មវិធីកម្មវិធីឧបករណ៍ GPS។ + +1. ប្រាកដថាកម្មវិធី `gps-sensor` ត្រូវបានបើកនៅក្នុង VS Code + +1. បើកឯកសារ `app.py` + +1. បន្ថែមកូដខាងក្រោមទៅនៅលើសំណុំ `app.py` ដើម្បីភ្ជាប់កម្មវិធីទៅ CounterFit៖ + + ```python + from counterfit_connection import CounterFitConnection + CounterFitConnection.init('127.0.0.1', 5000) + ``` + +1. បន្ថែមកូដខាងក្រោមនេះនូវក្រោមដើម្បីនាំចូលបណ្ណាល័យខ្លះៗដែលត្រូវការ រួមទាំងបណ្ណាល័យសម្រាប់ច្រកស៊េរី CounterFit៖ + + ```python + import time + import counterfit_shims_serial + + serial = counterfit_shims_serial.Serial('/dev/ttyAMA0') + ``` + + កូដនេះនាំចូលមេគុណ `serial` ពីកញ្ចប់ Pip `counterfit_shims_serial`។ វា បន្ទាប់ភ្ជាប់ទៅច្រកស៊េរី `/dev/ttyAMA0` - ដែលជាអាសយដ្ឋានច្រកស៊េរីដែលឧបករណ៍ GPS វិរុតថលប្រើសម្រាប់ច្រក UART របស់វា។ + +1. បន្ថែមកូដខាងក្រោមនេះនៅក្រោមដើម្បីអានពីច្រកស៊េរី ហើយបោះពុម្ពតម្លៃទៅកុងសូឡ៍៖ + + ```python + def print_gps_data(line): + print(line.rstrip()) + + while True: + line = serial.readline().decode('utf-8') + + while len(line) > 0: + print_gps_data(line) + line = serial.readline().decode('utf-8') + + time.sleep(1) + ``` + + មុខងារ​មួយឈ្មោះ `print_gps_data` ត្រូវបានកំណត់ សម្រាប់បោះពុម្ពបន្ទាត់ដែលផ្ញើទៅវាទៅកុងសូឡ៍។ + + បន្ទាប់មកកូដវាយវត្ដអស់កល្បជានិច្ច ដោយអានបន្ទាត់អក្សរជាច្រើនពីច្រកស៊េរីក្នុងអំឡុងវដ្តនីមួយៗ។ វាហៅមុខងារ `print_gps_data` សម្រាប់បន្ទាត់នីមួយៗ។ + + បន្ទាប់ពីអានទិន្នន័យទាំងអស់រួច វដ្តនោះដេកសម្រាក ១ វិនាទី ហើយព្យាយាមម្ដងទៀត។ + +1. ប្រតិបត្តិកូដនេះ ប្រាកដថាអ្នកកំពុងប្រើផ្ទាំងបញ្ជារប្រតិបត្តិកាលផ្សេងពីដែលកម្មវិធី CounterFit កំពុងរត់ ដើម្បីឱ្យកម្មវិធី CounterFit បន្តរត់។ + +1. ពីកម្មវិធី CounterFit ផ្លាស់ប្តូរតម្លៃឧបករណ៍ gps ។ អ្នកអាចធ្វើបានដោយរបៀបចំណុចទាំងនេះ៖ + + * កំណត់ **Source** ទៅ `Lat/Lon` ហើយកំណត់រយៈទទឹង, រយៈបណ្ដោយ និងចំនួនផ្កាយផែងដែលបានប្រើសម្រាប់ទទួល GPS fix ។ តម្លៃនេះនឹងត្រូវបញ្ចូនតែមួយដង, ដូច្នេះសូមពិនិត្យប្រអប់ **Repeat** ដើម្បីឲ្យទិន្នន័យបន្តធ្វើម្ដងម្កាលក្នុងមួយវិនាទី។ + + ![ឧបករណ៍ GPS ជាមួយជ្រើសរយៈទទឹងរយៈបណ្ដោយ](../../../../../translated_images/km/counterfit-gps-sensor-latlon.008c867d75464fbe.webp) + + * កំណត់ **Source** ទៅ `NMEA` ហើយបញ្ចូលប្រយោល NMEA តូចៗទៅក្នុងប្រអប់អក្សរ។ តម្លៃទាំងនេះនឹងត្រូវបញ្ចូនធ្វើម្ដងម្កាល ហើយមានការពន្យារពេល ១ វិនាទីមុនពេលអានប្រយោល GGA ថ្មីមួយ (ការត្រួតពិនិត្យទីតាំង) ។ + + ![ឧបករណ៍ GPS ជាមួយប្រយោល NMEA ត្រូវបានកំណត់](../../../../../translated_images/km/counterfit-gps-sensor-nmea.c62eea442171e17e.webp) + + អ្នកអាចប្រើឧបករណ៍ដូចជា [nmeagen.org](https://www.nmeagen.org) ដើម្បីបង្កើតប្រយោលទាំងនេះដោយគូរសាលខណ្ឌលើផែនទី។ តម្លៃទាំងនេះនឹងត្រូវបញ្ចូនតែមួយដង, ដូច្នេះសូមពិនិត្យប្រអប់ **Repeat** ដើម្បីឲ្យទិន្នន័យធ្វើម្ដងម្កាលបន្ទាប់ពីបានផ្ញើទាំងអស់រួច។ + + * កំណត់ **Source** ទៅឯកសារ GPX ហើយផ្ទុកឡើងឯកសារផ្លូវ GPX ដែលមានទីតាំងតាមផ្លូវ។ អ្នកអាចទាញយកឯកសារ GPX ពីគេហទំព័រផែនទីនិងដើរជិះមួយចំនួន ដូចជា [AllTrails](https://www.alltrails.com/). ឯកសារទាំងនេះមានទីតាំង GPS ជាច្រើនជាមធ្យោបាយ ហើយឧបករណ៍ GPS នឹងត្រឡប់ទីតាំងថ្មីជាបន្តបន្ទាប់គ្នា ក្នុងរយៈពេល ១ វិនាទី។ + + ![ឧបករណ៍ GPS ជាមួយឯកសារ GPX ត្រូវបានកំណត់](../../../../../translated_images/km/counterfit-gps-sensor-gpxfile.8310b063ce8a425c.webp) + + តម្លៃទាំងនេះនឹងត្រូវបញ្ចូនតែមួយដង ដូច្នេះសូមពិនិត្យប្រអប់ **Repeat** ដើម្បីឲ្យទិន្នន័យធ្វើម្ដងម្កាលបន្ទាប់ពីបានផ្ញើទាំងអស់រួច។ + + បន្ទាប់ពីអ្នកកំណត់រចនាសម្ព័ន្ធ GPS សូមជ្រើសប៊ូតុង **Set** ដើម្បីបញ្ជាក់តម្លៃទាំងនេះទៅឧបករណ៍។ + +1. អ្នកនឹងឃើញលទ្ធផលខ្លោងពីឧបករណ៍ GPS ដូចជា៖ + + ```output + $GNGGA,020604.001,4738.538654,N,12208.341758,W,1,3,,164.7,M,-17.1,M,,*67 + $GNGGA,020604.001,4738.538654,N,12208.341758,W,1,3,,164.7,M,-17.1,M,,*67 + ``` + +> 💁 អ្នកអាចរកឃើញកូដនេះនៅក្នុងថត [code-gps/virtual-device](../../../../../3-transport/lessons/1-location-tracking/code-gps/virtual-device) ។ + +😀 កម្មវិធីឧបករណ៍ GPS របស់អ្នកបានជោគជ័យ! + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះយើងខិតខំសម្រាប់ភាពត្រឹមត្រូវ ក៏សូមយកចិត្តទុកដាក់ថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាដើមគួរត្រូវបានគេចាត់ទុកជាដើមទាំងស្រុង។ សម្រាប់ព័ត៌មានសំខាន់ ការបកប្រែដោយអ្នកជំនាញអាចផ្ដល់ព័ត៌មានបានល្អជាង។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសឆ្គងណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះទេ។ + \ No newline at end of file diff --git a/translations/km/3-transport/lessons/1-location-tracking/wio-terminal-gps-decode.md b/translations/km/3-transport/lessons/1-location-tracking/wio-terminal-gps-decode.md new file mode 100644 index 000000000..e1a9438a0 --- /dev/null +++ b/translations/km/3-transport/lessons/1-location-tracking/wio-terminal-gps-decode.md @@ -0,0 +1,76 @@ +# ដកស្រង់ទិន្នន័យ GPS - Wio Terminal + +នៅផ្នែកនេះនៃមេរៀន អ្នកនឹងដកស្រង់សារពីប្រភេទ NMEA ដែលបានអានពីឧបករណ៍អាប់ឌែនសញ្ញា GPS ដោយ Wio Terminal ហើយដកយកទិសដៅរយៈទទឹងបច្ចុប្បន្ននិងរយៈបណ្ដោយ។ + +## ដកស្រង់ទិន្នន័យ GPS + +បន្ទាប់ពីទិន្នន័យ NMEA ចុងក្រោយត្រូវបានអានពីរបារសេរី វាអាចត្រូវបានដកស្រង់ដោយប្រើបណ្ណាល័យ NMEA ដ៏ចំហ។ + +### បេសកកម្ម - ដកស្រង់ទិន្នន័យ GPS + +ប្រើប្រាស់កម្មវិធីដើម្បីដកស្រង់ទិន្នន័យ GPS។ + +1. បើកម៉ាស្សាជាកម្មវិធី `gps-sensor` ប្រសិនបើវាមិនត្រូវបានបើករួចហើយ + +1. បន្ថែមការជាប់ទាក់ទងបណ្ណាល័យសម្រាប់បណ្ណាល័យ [TinyGPSPlus](https://github.com/mikalhart/TinyGPSPlus) ទៅក្នុងឯកសារ `platformio.ini` នៃគម្រោង។ បណ្ណាល័យនេះមានកូដសម្រាប់ដកស្រង់ទិន្នន័យ NMEA។ + + ```ini + lib_deps = + mikalhart/TinyGPSPlus @ 1.0.2 + ``` + +1. នៅក្នុងឯកសារ `main.cpp` បន្ថែមបញ្ជាលើសម្រាប់បណ្ណាល័យ TinyGPSPlus៖ + + ```cpp + #include + ``` + +1. ក្រោមការប្រកាស `Serial3` ប្រកាសវត្ថុ TinyGPSPlus មួយសម្រាប់ដំណើរការវាខ្សែ NMEA៖ + + ```cpp + TinyGPSPlus gps; + ``` + +1. ផ្លាស់ប្ដូរគន្លងនៅមុខងារ `printGPSData` ទៅដូចកម្មវិធីខាងក្រោម៖ + + ```cpp + if (gps.encode(Serial3.read())) + { + if (gps.location.isValid()) + { + Serial.print(gps.location.lat(), 6); + Serial.print(F(",")); + Serial.print(gps.location.lng(), 6); + Serial.print(" - from "); + Serial.print(gps.satellites.value()); + Serial.println(" satellites"); + } + } + ``` + + កូដនេះអានតួអក្សរបន្ទាប់ពីលុបចេញពីផតថល UART ហៅទៅកាន់កម្មវិធីដកស្រង់ NMEA ដែលមានឈ្មោះ `gps`។ បន្ទាប់ពីអានតួអក្សរមួយៗ វានឹងត្រួតពិនិត្យមើលថាតើកម្មវិធីដកស្រង់អានប្រយោគដែលត្រឹមត្រូវ ឬទេ ហើយបន្ទាប់មកត្រួតពិនិត្យមើលថាតើវាអានទីតាំងដែលត្រឹមត្រូវ ឬអត់។ ប្រសិនបើទីតាំងត្រឹមត្រូវ វានឹងផ្ញើទៅកាន់ម៉ូនីទ័រសេរី ដោយមានចំនួនផ្កាយសតាតែលាដែលបានរួមចំណែកក្នុងការកំណត់ទីតាំងនេះផងដែរ។ + +1. សង់និងផ្ទុកកូដទៅកាន់ Wio Terminal។ + +1. បន្ទាប់ពីបានផ្ទុករួច អ្នកអាចត្រួតពិនិត្យទិន្នន័យទីតាំង GPS ដោយប្រើម៉ូនីទ័រសេរីបាន។ + + ```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 --- + 47.6423109,-122.1390293 - from 3 satellites + ``` + +> 💁 អ្នកអាចរក្គកូដនេះបាននៅក្នុងថត [code-gps-decode/wio-terminal](../../../../../3-transport/lessons/1-location-tracking/code-gps-decode/wio-terminal)។ + +😀 កម្មវិធីឧបករណ៍សង្ឃឹម GPS របស់អ្នកជាមួយការដកស្រង់ទិន្នន័យបានជោគជ័យ! + +--- + + +**ការបដិសេធ**: +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំរកភាពត្រឹមត្រូវ សូមជ្រាបថាការបកប្រែដោយស្វ័យប្រវត្តិក្នុងមួយចំនួនអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមដែលមានជាភាសាដើមគួរត្រូវបានគិតជាធនធានមានអាជ្ញាសិទ្ធិសម្រាប់ព័ត៌មាន។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឲ្យប្រើការបកប្រែដោយមនុស្សដែលមានជំនាញ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុស បង្កឡើងពីការប្រើប្រាស់ការបកប្រែនេះទេ។ + \ No newline at end of file diff --git a/translations/km/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md b/translations/km/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md new file mode 100644 index 000000000..548b91cf0 --- /dev/null +++ b/translations/km/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md @@ -0,0 +1,147 @@ +# អានទិន្នន័យ GPS - Wio Terminal + +នៅក្នុងផ្នែកនេះនៃមេរៀន អ្នកនឹងបន្ថែមឧបករណ៍ចាប់សញ្ញា GPS ទៅកាន់ Wio Terminal របស់អ្នក ហើយអានតម្លៃពីវា។ + +## ឧបករណ៍រឹង + +Wio Terminal ត្រូវការឧបករណ៍ចាប់សញ្ញា GPS។ + +ឧបករណ៍ដែលអ្នកនឹងប្រើគឺ [Grove GPS Air530 sensor](https://www.seeedstudio.com/Grove-GPS-Air530-p-4584.html)។ ឧបករណ៍នេះអាចភ្ជាប់ទៅប្រព័ន្ធ GPS ផ្សេងៗសម្រាប់ការកំណត់ទីតាំងលឿន និងត្រឹមត្រូវ។ ឧបករណ៍នេះមានពីរផ្នែក - អេឡិចត្រូនិចស្នូលរបស់ឧបករណ៍ និងអង់ទីណាផ្ទៃក្រៅដែលភ្ជាប់ដោយខ្សែស្រឡាយស្តើងសម្រាប់ទទួលរលកវិទ្យុពីផ្កាយយោធា។ + +នេះជាឧបករណ៍ UART ដូច្នេះវាបញ្ជូនទិន្នន័យ GPS តាមរយៈ UART។ + +### ភ្ជាប់ឧបករណ៍ចាប់សញ្ញា GPS + +ឧបករណ៍ Grove GPS អាចភ្ជាប់ទៅ Wio Terminal។ + +#### ភារកិច្ច - ភ្ជាប់ឧបករណ៍ចាប់សញ្ញា GPS + +ភ្ជាប់ឧបករណ៍ចាប់សញ្ញា GPS។ + +![ឧបករណ៍ Grove GPS](../../../../../translated_images/km/grove-gps-sensor.247943bf69b03f0d.webp) + +1. បញ្ចូលចុងត្រង់មួយនៃខ្សែ Grove ទៅក្នុងកំពង់ភ្ជាប់លើឧបករណ៍ចាប់សញ្ញា GPS។ វានឹងចូលតែម្តងតែមួយបែប។ + +1. នៅពេលដែល Wio Terminal មិនភ្ជាប់ទៅកាន់កុំព្យូទ័រឬអានត្ថាដល់ថ្មផ្សេងទៀតឡើយ សូមភ្ជាប់ចុងទៀតនៃខ្សែ Grove ទៅកាន់កំពង់ភ្ជាប់ Grove ខាងឆ្វេងលើ Wio Terminal ដូចដែលអ្នកមើលទៅកាន់អេក្រង់។ នេះគឺជាកំពង់ដែលនៅជិតប៊ូតុងថ្មបំផុត។ + + ![ឧបករណ៍ Grove GPS ភ្ជាប់ទៅកំពង់ខាងឆ្វេង](../../../../../translated_images/km/wio-gps-sensor.19fd52b81ce58095.webp) + +1. ដាក់ឧបករណ៍មកេត្ត GPS ដើម្បីអង់ទីណាភ្ជាប់មានការមើលឃើញមេឃ - ជាសាកល្បងជិតបង្អួចបើកឬខាងហายนៅក្រៅផ្ទះ។ វាងាយស្រួលទទួលសញ្ញាច្បាស់ជាងពេលមានអ្វីមួយរាំងខ្សែអង់ទីណា។ + +1. ឥឡូវនេះ អ្នកអាចភ្ជាប់ Wio Terminal ទៅកាន់កុំព្យូទ័ររបស់អ្នកបាន។ + +1. ឧបករណ៍ចាប់សញ្ញា GPS មាន LED ២ចំណុច - LED ពណ៌ខៀវដែលភ្លឺចេញពេលទិន្នន័យបញ្ជូន និង LED ពណ៌បៃតងដែលភ្លឺរៀងរាល់មួយវិនាទីពេលទទួលទិន្នន័យពីផ្កាយយោធា។ អះអាងថា LED ខៀវកំពុងភ្លឺពេលអ្នកបើក Wio Terminal។ បន្ទាប់ពីប៉ុន្មាននាទី LED បៃតងនឹងភ្លឺ - ប្រសិនបើមិនដូច្នោះ អ្នកប្រហែលជាចាំបាច់ប្ដូរទីតាំងអង់ទីណា។ + +## កម្មវិធីឧបករណ៍ចាប់សញ្ញា GPS + +ឥឡូវនេះ Wio Terminal អាចត្រូវបានកម្មវិធីដើម្បីប្រើឧបករណ៍ចាប់សញ្ញា GPS ដែលភ្ជាប់។ + +### ភារកិច្ច - កម្មវិធីឧបករណ៍ចាប់សញ្ញា GPS + +កម្មវិធីឧបករណ៍។ + +1. បង្កើតគម្រោង Wio Terminal ថ្មីដោយប្រើ PlatformIO ហៅគម្រោងនេះថា `gps-sensor`។ បន្ថែមកូដនៅក្នុងមុខងារ `setup` ដើម្បីកំណត់ការកំណត់របស់ច្រកស៊េរី។ + +1. បន្ថែមបញ្ជា include ខាងក្រោមទៅកំពូលឯកសារ `main.cpp`។ នេះរួមបញ្ចូលឯកសារ header ដែលមានមុខងារកំណត់ច្រក Grove ខាងឆ្វេងសម្រាប់ UART។ + + ```cpp + #include + ``` + +1. ក្រោមនេះ បន្ថែមបន្ទាត់កូដខាងក្រោមដើម្បីប្រកាសការតភ្ជាប់ច្រកស៊េរីទៅច្រក UART: + + ```cpp + static Uart Serial3(&sercom3, PIN_WIRE_SCL, PIN_WIRE_SDA, SERCOM_RX_PAD_1, UART_TX_PAD_0); + ``` + +1. អ្នកត្រូវបន្ថែមកូដមួយចំនួនដើម្បីប្តូរគណិក្រះសញ្ញានៅក្នុងទៅច្រកស៊េរីនេះ។ បន្ថែមកូដខាងក្រោមក្រោមការប្រកាស `Serial3`: + + ```cpp + void SERCOM3_0_Handler() + { + Serial3.IrqHandler(); + } + + void SERCOM3_1_Handler() + { + Serial3.IrqHandler(); + } + + void SERCOM3_2_Handler() + { + Serial3.IrqHandler(); + } + + void SERCOM3_3_Handler() + { + Serial3.IrqHandler(); + } + ``` + +1. ក្នុងមុខងារ `setup` ខាងក្រោមកន្លែងកំណត់ច្រក `Serial` បញ្ជាក់ច្រកស៊េរី UART ជាមួយកូដខាងក្រោម៖ + + ```cpp + Serial3.begin(9600); + + while (!Serial3) + ; // រង់ចាំឲ្យ Serial3 ត្រៀមរួច + + delay(1000); + ``` + +1. ខាងក្រោមកូដនេះក្នុងមុខងារ `setup` បន្ថែមកូដខាងក្រោមដើម្បីភ្ជាប់ពិន Grove ទៅច្រកស៊េរី: + + ```cpp + pinPeripheral(PIN_WIRE_SCL, PIO_SERCOM_ALT); + ``` + +1. បន្ថែមមុខងារខាងក្រោមមុខងារ `loop` ដើម្បីផ្ញើទិន្នន័យ GPS ទៅម៉ូនីទ័រស៊េរី: + + ```cpp + void printGPSData() + { + Serial.println(Serial3.readStringUntil('\n')); + } + ``` + +1. ក្នុងមុខងារ `loop` បន្ថែមកូដខាងក្រោមសម្រាប់អានពីច្រកស៊េរី UART ហើយបង្ហាញលទ្ធផលទៅម៉ូនីទ័រស៊េរី: + + ```cpp + while (Serial3.available() > 0) + { + printGPSData(); + } + + delay(1000); + ``` + + កូដនេះអានពីច្រកស៊េរី UART។ មុខងារ `readStringUntil` អានរហូតដល់តួអក្សរបញ្ចប់ មួយនៅទីនេះគឺជាបន្ទាត់ថ្មី។ វានឹងអានឃ្លា NMEA ទាំងមូល (ឃ្លា NMEA ត្រូវបានបញ្ចប់ដោយតួអក្សរបន្ទាត់ថ្មី)។ ដល់ពេលដែលទិន្នន័យអាចអានពីច្រក UART បាន វានឹងអាន ហើយផ្ញើទៅម៉ូនីទ័រដោយប្រើមុខងារ `printGPSData`។ ពេលវេលាអានមិនបានទៀត `loop` នឹងពន្យារពេល ១ វិនាទី (1000ms)។ + +1. បង្កើត និងបញ្ចូលកូដទៅកាន់ Wio Terminal។ + +1. បន្ទាប់ពីបានបញ្ចូល អ្នកអាចត្រួតពិនិត្យទិន្នន័យ GPS ដោយប្រើម៉ូនីទ័រស៊េរី។ + + ```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 --- + $GNGGA,020604.001,4738.538654,N,12208.341758,W,1,3,,164.7,M,-17.1,M,,*67 + $GPGSA,A,1,,,,,,,,,,,,,,,*1E + $BDGSA,A,1,,,,,,,,,,,,,,,*0F + $GPGSV,1,1,00*79 + $BDGSV,1,1,00*68 + ``` + +> 💁 អ្នកអាចរកឃើញកូដនេះនៅក្នុងថត [code-gps/wio-terminal](../../../../../3-transport/lessons/1-location-tracking/code-gps/wio-terminal)។ + +😀 កម្មវិធីឧបករណ៍ចាប់សញ្ញា GPS របស់អ្នកជោគជ័យ! + +--- + + +**ការធ្វើបាយ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំផ្តល់ភាពត្រឹមត្រូវ សូមចំណាំថាការបកប្រែដោយស្វ័យប្រវត្តិនោះអាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដែលមានភាសាដើមគួរត្រូវបានពិចារណាទៅជាផលិតផលដើមដែលមានសុពលភាព។ សម្រាប់ព័ត៌មានសំខាន់ណាស់ ជំនាញបកប្រែដោយមនុស្សមានវិជ្ជាជីវៈគឺត្រូវបានផ្តល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែដែលមានការយល់ច្រឡំណាមួយដែលកើតឡើងពីការប្រើប្រាស់បកប្រែកម្មនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/3-transport/lessons/2-store-location-data/README.md b/translations/km/3-transport/lessons/2-store-location-data/README.md new file mode 100644 index 000000000..1afab75a4 --- /dev/null +++ b/translations/km/3-transport/lessons/2-store-location-data/README.md @@ -0,0 +1,474 @@ +# ផ្ទុកទិន្នន័យទីតាំង + +![រូបរាងសង្ខេបនៃមេរៀននេះ](../../../../../translated_images/km/lesson-12.ca7f53039712a3ec.webp) + +> សេចក្ដីសង្ខេបដោយ [Nitya Narasimhan](https://github.com/nitya)។ ចុចលើរូបភាពដើម្បីទទួលបានមុខងារធំជាងនេះ។ + +## ការសាកល្បងមុនមេរៀន + +[ការសាកល្បងមុនមេរៀន](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/23) + +## ការណែនាំ + +ក្នុងមេរៀនចុងក្រោយ អ្នកបានរៀនពីរបៀបប្រើឧបករណ៍សំគាល់មុខ GPS ដើម្បីចាប់យកទិន្នន័យទីតាំង។ ដើម្បីប្រើទិន្នន័យនេះក្នុងការបង្ហាញទីតាំងរថយន្តដឹកម្ហូប និងដំណើររបស់វា វាត្រូវត្រូវបានផ្ញើទៅសេវាកម្ម IoT ក្នុងពពក ហើយបន្ទាប់មកផ្ទុកនៅកន្លែងណាមួយ។ + +ក្នុងមេរៀននេះ អ្នកនឹងរៀនអំពីវិធីផ្សេងៗក្នុងការផ្ទុកទិន្នន័យ IoT ហើយរៀនពីរបៀបផ្ទុកទិន្នន័យពីសេវាកម្ម IoT របស់អ្នកដោយប្រើកូដមិនមានម៉ាស៊ីនបម្រើ។ + +ក្នុងមេរៀននេះ យើងនឹងគ្របដណ្តប់ៈ + +* [ទិន្នន័យដែលមានរចនាសម្ព័ន្ធ និងទិន្នន័យដែលគ្មានរចនាសម្ព័ន្ធ](#ទិន្នន័យដែលមានរចនាសម្ព័ន្ធ-និងទិន្នន័យដែលគ្មានរចនាសម្ព័ន្ធ) +* [ផ្ញើទិន្នន័យ GPS ទៅ IoT Hub](#ផ្ញើទិន្នន័យ-gps-ទៅ-iot-hub) +* [ផ្លូវក្ដៅ ផ្លូវកម្តៅ និងផ្លូវត្រជាក់](#ផ្លូវក្ដៅ-ផ្លូវកម្តៅ-និងផ្លូវត្រជាក់) +* [គ្រប់គ្រងព្រឹត្តិការណ៍ GPS ដោយប្រើកូដមិនមានម៉ាស៊ីនបម្រើ](#គ្រប់គ្រងព្រឹត្តិការណ៍-gps-ដោយប្រើកូដមិនមានម៉ាស៊ីនបម្រើ) +* [គណនីផ្ទុក Azure](#គណនីផ្ទុក-azure-storage-accounts) +* [តភ្ជាប់កូដមិនមានម៉ាស៊ីនបម្រើរបស់អ្នកទៅការផ្ទុក](#ភ្ជាប់កូដ-serverless-របស់អ្នកទៅផ្ទុកទិន្នន័យ) + +## ទិន្នន័យដែលមានរចនាសម្ព័ន្ធ និងទិន្នន័យដែលគ្មានរចនាសម្ព័ន្ធ + +ប្រព័ន្ធកុំព្យូទ័រប្រើប្រាស់ទិន្នន័យ ហើយទិន្នន័យនេះមានទម្រង់ និងទំហំប្លែកៗគ្នា។ វាអាចមានតម្លៃពីលេខតែមួយ ដល់អត្ថបទច្រើន ដល់វីដេអូ និងរូបភាព និងទិន្នន័យ IoT។ ទិន្នន័យនេះផ្លែក្ៗគ្នាទៅក្នុងពីរប្រភេទមួយនោះគឺ *ទិន្នន័យដែលមានរចនាសម្ព័ន្ធ* និង *ទិន្នន័យដែលគ្មានរចនាសម្ព័ន្ធ*។ + +* **ទិន្នន័យដែលមានរចនាសម្ព័ន្ធ** គឺទិន្នន័យដែលមានរចនាសម្ព័ន្ធច្បាស់លាស់ និងរឹងមាំ មិនប្រែប្រួល ហើយជាទូទៅត្រូវបានផែនទីទៅតារាងទិន្នន័យដែលមានទំនាក់ទំនងគ្នា។ ឧទាហរណ៏មួយគឺព័ត៌មានផ្ទាល់ខ្លួនរបស់មនុស្សរួមមានឈ្មោះ ថ្ងៃខែឆ្នាំកំណើត និងទ្រនំទីលំនៅ។ + +* **ទិន្នន័យដែលគ្មានរចនាសម្ព័ន្ធ** គឺទិន្នន័យដែលមិនមានរចនាសម្ព័ន្ធច្បាស់លាស់ និងរឹងមាំ រួមមកពីទិន្នន័យដែលអាចប្រែប្រួលរចនាសម្ព័ន្ធបានជាញឹកញាប់។ ឧទាហរណ៏មួយគឺឯកសារដូចជាឯកសារសរសេរ ឬសៀវភៅបត់តារាង។ + +✅ ស្រាវជ្រាវមួយចំនួន៖ តើអ្នកអាចគិតពីឧទាហរណ៏ផ្សេងទៀតនៃទិន្នន័យដែលមានរចនាសម្ព័ន្ធ និងទិន្នន័យដែលគ្មានរចនាសម្ព័ន្ធ? + +> 💁 មានទិន្នន័យសែម​រចនាសម្ព័ន្ធផងដែលមានរចនាសម្ព័ន្ធ ប៉ុន្តែវាមិនសមរម្យចូលក្នុងតារាងទិន្នន័យថ្នាក់ទីមួយដែលមានកំណត់។ + +ទិន្នន័យ IoT ត្រូវបានគិតថាជាទិន្នន័យដែលគ្មានរចនាសម្ព័ន្ធជាទូទៅ។ + +ស្រមៃថាអ្នកកំពុងបន្ថែមឧបករណ៍ IoT ចូលក្នុងទូកគ្រប់គ្រងបញ្ជារានៃយានយន្តសម្រាប់កសិដ្ឋានពាណិជ្ជកម្មធំមួយ។ អ្នកប្រហែសថ្មីលើឧបករណ៍ផ្សេងៗគ្នាសម្រាប់ប្រភេទយានយន្តផ្សេងៗ។ ឧទាហរណ៏៖ + +* សំរាប់យានយន្តកសិកម្មដូចជាត្រាក់ទ័រ អ្នកចង់បានទិន្នន័យ GPS ដើម្បីធានាថាវាកំពុងដំណើរការនៅលើស្រែត្រឹមត្រូវ +* សំរាប់រថយន្តដឹកជញ្ជូនម្ហូបទៅឃ្លាំង អ្នកចង់បានទិន្នន័យ GPS ព្រមទាំងទិន្នន័យល្បឿន និងការបង្កល្បឿន ដើម្បីធានាថាវិថីបើកបើកយានយន្តយ៉ាងសុវត្ថិភាព និងទិន្នន័យអត្តសញ្ញាណអ្នកបើក និងទិន្នន័យចាប់ផ្តើម/បញ្ឈប់ ដើម្បីធានាថាមានការទទួលខុសត្រូវការបើកបរ​តាមច្បាប់មូលដ្ឋានស្តីពីម៉ោងធ្វើការ +* សំរាប់រថយន្តត្រជាក់ទឹកកក អ្នកចង់បានទិន្នន័យសីតុណ្ហភាពដើម្បីធានាថាខម្អែមិនមានកំដៅខ្ពស់ ឬត្រជាក់ទាបពេក ដែលអាចបំផ្លាញម្ហូបក្នុងដំណើរ។ + +ទិន្នន័យនេះអាចប្រែប្រួលជានិរន្តរ៍។ ឧទាហរណ៏ បើឧបករណ៍ IoT នៅក្នុងជាន់រថយន្តទន្ទឹម អ្នកផ្ញើទិន្នន័យអាចប្រែប្រួលទៅតាមការផ្លាស់ប្ដូររបស់ទូកទស្សន៍មួយ ដូចជាការផ្ញើទិន្នន័យសីតុណ្ហភាពតែពេលមានទូកទស្សន៍ត្រជាក់ទឹកកកត្រូវបានប្រើប្រាស់ជាដើម។ + +✅ តើទិន្នន័យ IoT ផ្សេងទៀតអ្វីខ្លះដែលអាចចាប់យកបាន? សូមគិតពីប្រភេទទំនិញដែលរថយន្តអាចនាំចូល និងទិន្នន័យថែទាំនានា។ + +ទិន្នន័យនេះប្រែប្រួលពីយានយន្តមួយទៅមួយ ប៉ុន្តែទាំងអស់ត្រូវបានផ្ញើទៅសេវាកម្ម IoT ដូចគ្នាសម្រាប់ដំណើរការជាពេលមួយ។ សេវា IoT ត្រូវការការដំណើរការទិន្នន័យគ្មានរចនាសម្ព័ន្ធនេះ ដោយផ្ទុកវាប្រើរបៀបដែលអនុញ្ញាតឱ្យស្វែងរក ឬវិភាគបាន ក្នុងន័យថាវាចង់អាចដំណើរការរចនាសម្ព័ន្ធច្រើនផ្សេងៗគ្នានៃទិន្នន័យនេះបាន។ + +### ការផ្ទុកទិន្នន័យ SQL ប្រៀបធៀប NoSQL + +មូលដ្ឋានទិន្នន័យគឺជាសេវាកម្មដែលធ្វើឲ្យអ្នកអាចផ្ទុក និងស្វែងយល់ពីទិន្នន័យបាន។ មូលដ្ឋានទិន្នន័យមានពីរប្រភេទ - SQL និង NoSQL + +#### មូលដ្ឋានទិន្នន័យ SQL + +មូលដ្ឋានទិន្នន័យដំបូងគឺ ប្រព័ន្ធគ្រប់គ្រងមូលដ្ឋានទិន្នន័យទំនាក់ទំនង (RDBMS) ឬ មូលដ្ឋានទិន្នន័យទំនាក់ទំនង។ វាត្រូវបានគេស្គាល់ថាជាមូលដ្ឋានទិន្នន័យ SQL ក្រោយភាសាតំណើរការជាក់លាក់ (SQL) ដែលប្រើសម្រាប់ផ្ទុក លុប បន្ទាន់សម័យ ឬស្វែងយល់ទិន្នន័យ។ មូលដ្ឋានទិន្នន័យទាំងនេះមាន Schema - ជាសំណុំតារាងទិន្នន័យដែលកំណត់ជាក់លាក់ ដូចជាសៀវភៅបត់តារាងមួយ។ តារាងនីមួយៗមានជួរឈរឈ្មោះច្រើន។ នៅពេលអ្នកបញ្ចូលទិន្នន័យ អ្នកបន្ថែមជួរដេកមួយទៅតារាង ដាក់តម្លៃទៅក្នុងជួរឈរនីមួយៗ។ វាធ្វើឲ្យទិន្នន័យនៅក្នុងរចនាសម្ព័ន្ធរឹងមាំណាស់ - ទោះបីអ្នកអាចទុកឱ្យជួរឈរមួយទំនេរ ប្រសិនបើមានបំណងបន្ថែមជួរឈរថ្មី អ្នកត្រូវធ្វើវានៅលើមូលដ្ឋានទិន្នន័យ និងបំពេញតម្លៃសម្រាប់ជួរដេកដែលមានរួច។ មូលដ្ឋានទិន្នន័យទាំងនេះជាទំនាក់ទំនងដែលមានតារាងមួយអាចមានទំនាក់ទំនងទៅតារាងផ្សេងទៀត។ + +![មូលដ្ឋានទិន្នន័យទំនាក់ទំនងជាមួយ ID នៃតារាងអ្នកប្រើ ដែលទាក់ទងនឹងជួរឈរលេខសម្គាល់អ្នកប្រើនៃតារាងការទិញ និង ID នៃតារាងផលិតផលដែលទាក់ទងនឹងលេខសម្គាល់ផលិតផលនៃតារាងការទិញ](../../../../../translated_images/km/sql-database.be160f12bfccefd3.webp) + +ឧទាហរណ៍ ប្រសិនបើអ្នកផ្ទុកព័ត៌មានផ្ទាល់ខ្លួនរបស់អ្នកប្រើនៅក្នុងតារាងមួយ អ្នកនឹងមានលេខសម្គាល់ផ្ទាល់ខ្លួនឯកតាសម្រាប់អ្នកប្រើនីមួយៗ ដែលប្រើនៅជួរដេកមួយក្នុងតារាងដែលមានឈ្មោះ និងអាសយដ្ឋានរបស់អ្នកប្រើ។ បើអ្នកចង់ផ្ទុកព័ត៌មានផ្សេងទៀតអំពីអ្នកប្រើ នោះដូចជា ការទិញរបស់ពួកគេ ក្នុងតារាងមួយផ្សេងទៀត អ្នកនឹងមានជួរឈរមួយក្នុងតារាងថ្មីសម្រាប់លេខសម្គាល់អ្នកប្រើនោះ។ នៅពេលអ្នកស្វែងរកអ្នកប្រើ អ្នកអាចប្រើលេខសម្គាល់របស់ពួកគេដើម្បីទទួលបានព័ត៌មានផ្ទាល់ខ្លួនពីតារាងមួយ និងការទិញពីតារាងមួយផ្សេងទៀត។ + +មូលដ្ឋានទិន្នន័យ SQL សមស្របសម្រាប់ផ្ទុកទិន្នន័យដែលមានរចនាសម្ព័ន្ធ និងសម្រាប់ពេលដែលអ្នកចង់ធានាថាទិន្នន័យត្រូវគ្នាជាមួយ Schema របស់អ្នក។ + +✅ ប្រសិនបើអ្នកមិនធ្លាប់ប្រើ SQL មុននេះ ទុកពេលមួយសម្រាប់អានអំពីវាពី [ទំព័រ SQL លើ Wikipedia](https://wikipedia.org/wiki/SQL)។ + +មូលដ្ឋានទិន្នន័យ SQL ដែលគេស្គាល់មានរួមមាន Microsoft SQL Server, MySQL និង PostgreSQL។ + +✅ ស្រាវជ្រាវមួយចំនួន៖ អានអំពីមូលដ្ឋានទិន្នន័យ SQL ទាំងនេះ និងសមត្ថភាពរបស់វា។ + +#### មូលដ្ឋានទិន្នន័យ NoSQL + +មូលដ្ឋានទិន្នន័យ NoSQL ត្រូវបានហៅថា NoSQL ព្រោះវាមិនមានរចនាសម្ព័ន្ធរឹងមាំដូចមូលដ្ឋានទិន្នន័យ SQL ទេ។ វាក៏ត្រូវបានហៅថាមូលដ្ឋានទិន្នន័យឯកសារ ព្រោះវាអាចផ្ទុកទិន្នន័យគ្មានរចនាសម្ព័ន្ធ ដូចជា ឯកសារប្រភេទជាឯកសារ។ + +> 💁 បើទោះបីមានឈ្មោះក៏ដោយ មូលដ្ឋានទិន្នន័យ NoSQL ខ្លះៗ អាចអនុញាតឱ្យអ្នកប្រើ SQL ដើម្បីស្វែងរកទិន្នន័យបាន។ + +![ឯកសារក្នុងថតមួយក្នុងមូលដ្ឋានទិន្នន័យ NoSQL](../../../../../translated_images/km/noqsl-database.62d24ccf5b73f60d.webp) + +មូលដ្ឋានទិន្នន័យ NoSQL មិនមាន Schema ដែលកំណត់មុនជាក់លាក់ដែលកំណត់របៀបបំពេញទិន្នន័យទេ ផ្ទុយទៅវិញ អ្នកអាចបញ្ចូលទិន្នន័យគ្មានរចនាសម្ព័ន្ធណាមួយ ច្រើនភាគច្រើនដោយប្រើឯកសារ JSON។ ឯកសារเหล่านี้អាចត្រូវបានរៀបចំទៅក្នុងថតជាដូចជា ឯកសារលើកុំព្យូទ័ររបស់អ្នក។ ឯកសារនីមួយៗអាចមានវាលខុសគ្នាពីឯកសារផ្សេងៗ - ឧទាហរណ៍ ប្រសិនបើអ្នកកំពុងផ្ទុកទិន្នន័យ IoT ពីយានយន្តកសិកម្មរបស់អ្នក មួយចំនួនអាចមានវាលសម្រាប់ទិន្នន័យអេកសែលឡែរកូម៉ែត្រ និងល្បឿន ខណៈដែលអ្នកដទៃអាចមានវាលសម្រាប់សីតុណ្ហភាពនៅក្នុងទូកទស្សន៍។ ប្រសិនបើអ្នកបន្ថែមប្រភេទរថយន្តថ្មីមួយ ដូចជាធ្វើរថយន្តជាមួយតុល្យភាពសាកល្បងក្នុងខ្លួន ដើម្បីតាមដានទម្ងន់ផលិតផលដែលបានដឹកដាក់ អ្នកនឹងអាចបន្ថែមវាលថ្មីនេះ ហើយវាអាចផ្ទុកបានដោយមិនចាំបាច់ផ្លាស់ប្តូរមូលដ្ឋានទិន្នន័យទេទេ។ + +មូលដ្ឋានទិន្នន័យ NoSQL ដែលគេស្គាល់រួមមាន Azure CosmosDB, MongoDB និង CouchDB។ + +✅ ស្រាវជ្រាវមួយចំនួន៖ អានអំពីមូលដ្ឋានទិន្នន័យ NoSQL ទាំងនេះ និងសមត្ថភាពរបស់វា។ + +ក្នុងមេរៀននេះ អ្នកនឹងប្រើការផ្ទុក NoSQL សម្រាប់ផ្ទុកទិន្នន័យ IoT។ + +## ផ្ញើទិន្នន័យ GPS ទៅ IoT Hub + +ក្នុងមេរៀនចុងក្រោយ អ្នកបានចាប់យកទិន្នន័យ GPS ពីឧបករណ៍សំគាល់ GPS ដែលភ្ជាប់ទៅឧបករណ៍ IoT របស់អ្នក។ ដើម្បីផ្ទុកទិន្នន័យ IoT នេះក្នុងពពក អ្នកត្រូវផ្ញើវាទៅសេវាកម្ម IoT។ ម្តងទៀត អ្នកនឹងប្រើ Azure IoT Hub សេវាកម្មពពក IoT ដូចគ្នានេះនៅក្នុងគម្រោងមុន។ + +![ផ្ញើទិន្នន័យ GPS ពីឧបករណ៍ IoT ទៅ IoT Hub](../../../../../translated_images/km/gps-telemetry-iot-hub.8115335d51cd2c12.webp) + +### ការងារ - ផ្ញើទិន្នន័យ GPS ទៅ IoT Hub + +1. បង្កើត IoT Hub ថ្មីមួយដោយប្រើផ្នែករួមឥតគិតថ្លៃ។ + + > ⚠️ អ្នកអាចយោងទៅក្នុង [សេចក្តីណែនាំសម្រាប់បង្កើត IoT Hub ពីគម្រោងទី 2 មេរៀន 4](../../../2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md#create-an-iot-service-in-the-cloud) ប្រសិនបើចាំបាច់។ + + ចងចាំបង្កើត Resource Group ថ្មីមួយ។ ឈ្មោះ Resource Group ថ្មី `gps-sensor` ហើយ IoT Hub ថ្មីគួរតែមានឈ្មោះតែមួយផ្អែកលើ `gps-sensor` ដូចជា `gps-sensor-<ឈ្មោះរបស់អ្នក>`។ + + > 💁 ប្រសិនបើអ្នកនៅតែមាន IoT Hub ពីគម្រោងមុន អ្នកអាចប្រើវាបានម្ដងទៀត។ ចងចាំប្រើឈ្មោះ IoT Hub នេះ និង Resource Group ដែលវាផ្ទុកនៅក្នុងពេលបង្កើតសេវាកម្មផ្សេងទៀត។ + +1. បន្ថែមឧបករណ៍ថ្មីមួយទៅ IoT Hub។ ហៅឧបករណ៍នេះថា `gps-sensor`។ ទាញយកសន្លឹកខ្សែការតភ្ជាប់សម្រាប់ឧបករណ៍នេះ។ + +1. បន្ទាន់សម័យកូដឧបករណ៍របស់អ្នកដើម្បីផ្ញើទិន្នន័យ GPS ទៅ IoT Hub ថ្មីដោយប្រើខ្សែការតភ្ជាប់ឧបករណ៍ពីជំហានមុន។ + + > ⚠️ អ្នកអាចយោងទៅក្នុង [សេចក្តីណែនាំសម្រាប់ភ្ជាប់ឧបករណ៍របស់អ្នកទៅឧបករណ៍ IoT ពីគម្រោងទី 2 មេរៀន 4](../../../2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md#connect-your-device-to-the-iot-service) ប្រសិនបើចាំបាច់។ + +1. នៅពេលអ្នកផ្ញើទិន្នន័យ GPS សូមផ្ញើវាជា JSON ក្នុងទ្រង់ទ្រាយដូចខាងក្រោម: + + ```json + { + "gps" : + { + "lat" : , + "lon" : + } + } + ``` + +1. ផ្ញើទិន្នន័យ GPS រាល់មួយនាទី ដើម្បីមិនប្រើបំណែកសារប្រចាំថ្ងៃរបស់អ្នក។ + +ប្រសិនបើអ្នកប្រើ Wio Terminal សូមចងចាំបន្ថែមបណ្ណាល័យទាំងអស់ដែលចាំបាច់ ហើយកំណត់ម៉ោងដោយប្រើម៉ាស៊ីនបម្រើ NTP។ កូដរបស់អ្នកត្រូវមាននូវការប្រាកដថាវាបានអានទិន្នន័យពីច្រកស៊េរីរួចមុនផ្ញើទីតាំង GPS ដោយប្រើកូដដែលមានរួចពីមេរៀនមុន។ ប្រើកូដខាងក្រោមក្នុងការបង្កើតឯកសារ JSON៖ + +```cpp +DynamicJsonDocument doc(1024); +doc["gps"]["lat"] = gps.location.lat(); +doc["gps"]["lon"] = gps.location.lng(); +``` + +ប្រសិនបើអ្នកប្រើឧបករណ៍ IoT មេរៀនវើចឆាល សូមចងចាំដំឡើងបណ្ណាល័យទាំងអស់តាមបរិបទវើចឆាលដ៏ត្រឹមត្រូវ។ + +សម្រាប់ Raspberry Pi និងឧបករណ៍ IoT មេរៀនវើចឆាល អ្នកត្រូវប្រើកូដដែលមានរួចពីមេរៀនមុនដើម្បីទទួលបានតម្លៃចន្លោះទទឹង និងបណ្ដោយ បន្ទាប់មកផ្ញើវានៅក្នុងទ្រង់ទ្រាយ JSON ត្រឹមត្រូវដោយប្រើកូដដូចខាងក្រោម៖ + +```python +message_json = { "gps" : { "lat":lat, "lon":lon } } +print("Sending telemetry", message_json) +message = Message(json.dumps(message_json)) +``` + +> 💁 អ្នកអាចរកឃើញកូដនេះនៅក្នុងថត [code/wio-terminal](../../../../../3-transport/lessons/2-store-location-data/code/wio-terminal), [code/pi](../../../../../3-transport/lessons/2-store-location-data/code/pi) ឬ [code/virtual-device](../../../../../3-transport/lessons/2-store-location-data/code/virtual-device) ។ + +រត់កូដឧបករណ៍របស់អ្នក និងធ្វើអោយប្រាកដថាសារបានបញ្ជូនចូលទៅក្នុង IoT Hub ដោយប្រើពាក្យបញ្ជា CLI `az iot hub monitor-events`។ + +## ផ្លូវក្ដៅ ផ្លូវកម្តៅ និងផ្លូវត្រជាក់ + +ទិន្នន័យដែលធ្លាក់ចេញពីឧបករណ៍ IoT ទៅពពកមិនត្រូវបានដំណើរការជារហ័សជានិច្ច។ ទិន្នន័យខ្លះត្រូវការបរិច្ឆេទបន្ទាន់ ខណៈទីតាំងផ្សេងទៀតអាចដំណើរការជាមុន តិចៗ ហើយទិន្នន័យផ្សេងទៀតអាចដំណើរការពេលក្រោយជាពណ៌ដ៏ច្រើនកាល។ របៀបដំណើរការទិន្នន័យទៅសេវាកម្មផ្សេងៗ ដែលដំណើរការទិន្នន័យនៅពេលខុសគ្នានេះហៅថា ផ្លូវក្ដៅ, ផ្លូវកម្តៅ និងផ្លូវត្រជាក់។ + +### ផ្លូវក្ដៅ + +ផ្លូវក្ដៅមានន័យថាទិន្នន័យត្រូវបានដំណើរការជាបន្ទាន់ ឬជិតនឹងពេលខ្លី។ អ្នកប្រើផ្លូវក្ដៅសម្រាប់សញ្ញាឧបករណ៍ដូចជា ទទួលបានសញ្ញាថាយានយន្តកំពុងជិតមជ្ឈមណ្ឌល ឬសីតុណ្ហភាពក្នុងរថយន្តត្រជាក់ទឹកកកលើសកម្រិត។ + +ដើម្បីប្រើទិន្នន័យផ្លូវក្ដៅ កូដរបស់អ្នកនឹងតបស្នងចំពោះព្រឹត្តិការណ៍នៅពេលវាវាយតម្លៃដោយសេវាកម្មពពករបស់អ្នក។ + +### ផ្លូវកម្តៅ + +ផ្លូវកម្តៅ​មានន័យថាទិន្នន័យអាចដំណើរការបន្ទាប់ពីពេលខ្លី នូវពេលដែលទទួលបាន ទៅមុន អ្នកប្រើទិន្នន័យផ្លូវកម្តៅសម្រាប់របាយការណ៍ជារៀងរាល់ថ្ងៃ ឬវិភាគរយៈពេលខ្លី។ ប្រើទិន្នន័យផ្លូវកម្តៅសម្រាប់របាយការណ៍លើចម្ងាយដំណើរការ យានយន្ត ប្រើទិន្នន័យដែលបានចាប់យកម្សិលមិញ។ + +ទិន្នន័យផ្លូវកម្តៅត្រូវបានផ្ទុកនៅពេលវាត្រូវបានទទួលដោយសេវាកម្មពពកក្នុងប្រភេទផ្ទុកដែលអាចចូលប្រើបានយ៉ាងរហ័ស។ + +### ផ្លូវត្រជាក់ + +ផ្លូវត្រជាក់មានន័យថា ទិន្នន័យប្រវត្តិសាស្ត្រ ដែលបានផ្ទុកសម្រាប់រយៈពេលវែង ដើម្បីដំណើរការមានពេលណាមួយដែលត្រូវការ។ ឧទាហរណ៍ អ្នកអាចប្រើផ្លូវត្រជាក់សម្រាប់របាយការណ៍កម្រិតប្រចាំឆ្នាំ ឬធ្វើវិភាគលើផ្លូវដដែលភាគច្រើនដើម្បីកាត់បន្ថយចំណាយប្រេងឥន្ធនៈ។ + +ទិន្នន័យផ្លូវត្រជាក់ត្រូវបានផ្ទុកក្នុងឃ្លាំងទិន្នន័យ - មូលដ្ឋានទិន្នន័យដែលរចនាសម្រាប់ផ្ទុកទិន្នន័យច្រើនដែលមិនប្រែប្រួល និងអាចស្វែងរកបានយ៉ាងរហ័ស។ អ្នកធម្មតានឹងមានការងារស régulière ក្នុងកម្មវិធីពពករបស់អ្នក ដំណើរការជារៀងរាល់ថ្ងៃ សប្តាហ៍ ឬខែ ដើម្បីផ្លាស់ទីទិន្នន័យពីផ្លូវកម្តៅទៅឃ្លាំងទិន្នន័យ។ + +✅ សូមគិតពីទិន្នន័យដែលអ្នកបានចាប់យកជាប្រភេទផ្លូវក្ដៅ កម្តៅ ឬត្រជាក់? + +## គ្រប់គ្រងព្រឹត្តិការណ៍ GPS ដោយប្រើកូដមិនមានម៉ាស៊ីនបម្រើ + +ពេលដែលទិន្នន័យចូលរួចទៅ IoT Hub របស់អ្នក អ្នកអាចសរសេរកូដមិនមានម៉ាស៊ីនបម្រើមួយ ដើម្បីស្ដាប់ព្រឹត្តិការណ៍ដែលបានផ្សព្វផ្សាយទៅកាន់ចំណុចបញ្ចប់ដែលផ្គួបនឹង Event-Hub។ នេះគឺជាផ្លូវកម្តៅ - ទិន្នន័យនេះនឹងត្រូវបានផ្ទុក និងប្រើសម្រាប់របាយការណ៍ដំណើរនៅមេរៀនបន្ទាប់។ + +![ផ្ញើទិន្នន័យ GPS ពីឧបករណ៍ IoT ទៅ IoT Hub បន្ទាប់មកទៅ Azure Functions តាម event hub trigger](../../../../../translated_images/km/gps-telemetry-iot-hub-functions.24d3fa5592455e9f.webp) + +### ការងារ - គ្រប់គ្រងព្រឹត្តិការណ៍ GPS ដោយប្រើកូដមិនមានម៉ាស៊ីនបម្រើ +1. បង្កើតកម្មវិធី Azure Functions មួយដោយប្រើ Azure Functions CLI។ ប្រើ Python runtime ហើយបង្កើតវាក្នុងថតដែលឈ្មោះ `gps-trigger` ហើយប្រើឈ្មោះដូចគ្នាសម្រាប់ឈ្មោះគម្រោង Functions App។ ត្រូវប្រាកដថាអ្នកបានបង្កើតបរិយាកាសវើឌ្យូជ_virtual environment ដែលអាចប្រើបានសម្រាប់នេះ។ + + > ⚠️ អ្នកអាចយោងទៅការណែនាំ [ការបង្កើតគំរោង Azure Functions ពីគម្រោង 2 មេរៀន 5](../../../2-farm/lessons/5-migrate-application-to-the-cloud/README.md#create-a-serverless-application) ប្រសិនបើចាំបាច់។ + +1. បន្ថែម trigger ព្រឹត្តិការណ៍ IoT Hub មួយដែលប្រើចំណុចចូល Event Hub ដែលអាចបង្កប់ជាមួយ IoT Hub ។ + + > ⚠️ អ្នកអាចយោងទៅការណែនាំ [ការបង្កើត trigger ព្រឹត្តិការណ៍ IoT Hub ពីគម្រោង 2 មេរៀន 5](../../../2-farm/lessons/5-migrate-application-to-the-cloud/README.md#create-an-iot-hub-event-trigger) ប្រសិនបើចាំបាច់។ + +1. កំណត់ខ្សែការភ្ជាប់ចំណុចចូល Event Hub compatible ក្នុងឯកសារ `local.settings.json` ហើយប្រើពាក្យគន្លឹះនោះនៅក្នុងឯកសារ `function.json`។ + +1. ប្រើកម្មវិធី Azurite ជាឧបករណ៍អេមូលេតផ្ទុកតាមកន្លែង។ + +1. ប្រតិបត្តិកម្ម Functions app របស់អ្នកដើម្បីធានាថាវាបានទទួលព្រឹត្តិការណ៍ពីឧបករណ៍ GPS របស់អ្នក។ ត្រូវប្រាកដថាឧបករណ៍ IoT របស់អ្នកកំពុងដំណើរការ និងផ្ញើទិន្នន័យ GPS ផងដែរ។ + + ```output + Python EventHub trigger processed an event: {"gps": {"lat": 47.73481, "lon": -122.25701}} + ``` + +## គណនីផ្ទុក Azure Storage Accounts + +![រូបសញ្ញា Azure Storage](../../../../../translated_images/km/azure-storage-logo.605c0f602c640d48.webp) + +Azure Storage Accounts គឺជាសេវាកម្មផ្ទុកទូទៅមួយដែលអាចផ្ទុកទិន្នន័យក្នុងមធ្យោបាយផ្សេងៗគ្នា។ អ្នកអាចផ្ទុកទិន្នន័យជាប្លុក (blobs), ក្នុងបញ្ជីរង (queues), ក្នុងតារាង (tables), ឬជាឯកសារ (files) ព្រមទាំងទាំងនៅពេលដដែល។ + +### ផ្ទុក Blob storage + +ពាក្យ *Blob* មានន័យថា binary large objects តែវាបានក្លាយជាពាក្យសម្រាប់ទិន្នន័យគ្មានរចនាសម្ព័ន្ធគ្រប់គ្រាន់។ អ្នកអាចផ្ទុកទិន្នន័យណាមួយក្នុងការផ្ទុក Blob storage ដូចជា ឯកសារ JSON ដែលមានទិន្នន័យ IoT ទៅដល់ឯកសាររូបភាព និងភាពយន្ដ។ Blob storage មានគំនិតរបស់ *containers* ដែលជាឈុតធុងដែលអ្នកអាចផ្ទុកទិន្នន័យក្នុងនោះ ដូចជាតារាងក្នុងមូលដ្ឋានទិន្នន័យទំនាក់ទំនង។ Containers ពីរនេះអាចមានថតមួយ ឬច្រើនបំពេញផ្ទុកប្លុក មានតែមួយថតមានបន្លែមថតផ្សេងទៀត ដែលដូចជាក្នុងអត្ថបទរបស់ផ្ទុកឯកសារនៅលើកុំព្យូទ័ររបស់អ្នក។ + +អ្នកនឹងប្រើ blob storage នៅក្នុងមេរៀននេះសម្រាប់ផ្ទុកទិន្នន័យ IoT។ + +✅ សូមធ្វើការស្រាវជ្រាវ៖ អានអំពី [Azure Blob Storage](https://docs.microsoft.com/azure/storage/blobs/storage-blobs-overview?WT.mc_id=academic-17441-jabenn) + +### ផ្ទុក Table storage + +Table storage អនុញ្ញាតឲ្យអ្នកផ្ទុកទិន្នន័យក្នុងមួយផ្នែករៀបចំបានមួយផ្នែក។ Table storage ជាដែនទិន្នន័យ NoSQL មួយ ដូច្នេះវាមិនត្រូវការតារាងដែលបានកំណត់ជាមុនទេ ប៉ុន្តែវាត្រូវបានរចនាឡើងសម្រាប់ផ្ទុកទិន្នន័យក្នុងតារាងមួយ ឬច្រើន ជាមួយកូនសោជាគោលដៅដើម្បីកំណត់ជួរដេកនិមួយៗ។ + +✅ សូមធ្វើការស្រាវជ្រាវ៖ អានអំពី [Azure Table Storage](https://docs.microsoft.com/azure/storage/tables/table-storage-overview?WT.mc_id=academic-17441-jabenn) + +### ផ្ទុក Queue storage + +Queue storage អនុញ្ញាតឲ្យអ្នកផ្ទុកសារ ដែលមានទំហំមិនលើស 64KB នៅក្នុងបញ្ជីរងមួយ។ អ្នកអាចបន្ថែមសារទៅតង់ចុងក្រោយនៃបញ្ជីរង ហើយអានវាបានពីចំពោះមុខ។ អ្នកបញ្ជីរងផ្ទុកសារបានយូរប្រសិនបើយើងនៅមានទំហំផ្ទុកនៅ សារអាចផ្ទុកបានរយៈពេលវែង ហើយអាចអានតាមពេលត្រូវការបាន។ ឧទាហរណ៍ ប្រសិនបើអ្នកចង់បើកការងារប្រចាំខែដើម្បីដំណើរការទិន្នន័យ GPS អ្នកអាចបន្ថែមវាទៅក្នុងបញ្ជីរងរៀងរាល់ថ្ងៃរយៈពេលមួយខែ បន្ទាប់មកនៅចុងខែដំណើរការសារទាំងអស់នៅក្នុងបញ្ជីរង។ + +✅ សូមធ្វើការស្រាវជ្រាវ៖ អានអំពី [Azure Queue Storage](https://docs.microsoft.com/azure/storage/queues/storage-queues-introduction?WT.mc_id=academic-17441-jabenn) + +### ផ្ទុក File storage + +File storage គឺជាការផ្ទុកឯកសារនៅក្នុងពពក ហើយកម្មវិធីឬឧបករណ៍ណាមួយអាចភ្ជាប់បានដោយប្រើពិធីសាស្រ្តផ្លូវការតាមវិស័យ។ អ្នកអាចសរសេរឯកសារទៅក្នុង File storage ហើយបន្ទាប់មកភ្ជាប់វាជាឧបករណ៍ផ្ទុកលើកុំព្យូទ័រ PC ឬ Mac របស់អ្នក។ + +✅ សូមធ្វើការស្រាវជ្រាវ៖ អានអំពី [Azure File Storage](https://docs.microsoft.com/azure/storage/files/storage-files-introduction?WT.mc_id=academic-17441-jabenn) + +## ភ្ជាប់កូដ serverless របស់អ្នកទៅផ្ទុកទិន្នន័យ + +កម្មវិធី function app របស់អ្នកឥឡូវនេះត្រូវការតភ្ជាប់ទៅ blob storage ដើម្បីផ្ទុកសារពី IoT Hub។ មានពីរបៀបក្នុងការធ្វើនេះ៖ + +* នៅក្នុងកូដ function, ភ្ជាប់ទៅ blob storage ដោយប្រើ Python SDK សម្រាប់ blob storage ហើយសរសេរទិន្នន័យជាប្លុក +* ប្រើ output function binding ដើម្បីភ្ជាប់តម្លៃត្រឡប់ពី function ទៅ blob storage ហើយមានការសន្សំប្លុកដោយស្វ័យប្រវត្តិ + +ក្នុងមេរៀននេះ អ្នកនឹងប្រើ Python SDK ដើម្បីមើលតើយ៉ាងដូចម្តេចមានអន្តរកម្មជាមួយ blob storage។ + +![ផ្ញើទិន្នន័យ telemery GPS ពីឧបករណ៍ IoT ទៅ IoT Hub បន្ទាប់មកទៅ Azure Functions តាមប្រើ event hub trigger ហើយបន្ទាប់មករក្សាទុកវាទៅ blob storage](../../../../../translated_images/km/save-telemetry-to-storage-from-functions.ed3b1820980097f1.webp) + +ទិន្នន័យនឹងត្រូវបានរក្សាទុកជា JSON blob ដែលមានរចនាសម្ព័ន្ធដូចខាងក្រោម៖ + +```json +{ + "device_id": , + "timestamp" :