<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://tutorial.imagrove.com/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/"/></url><url><loc>https://tutorial.imagrove.com/ble-offline-sensor-network/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/ble-offline-sensor-network/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/ble-offline-sensor-network/"/></url><url><loc>https://tutorial.imagrove.com/ble-offline-sensor-network/01-ble-offline-sensor-network/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/ble-offline-sensor-network/01-ble-offline-sensor-network/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/ble-offline-sensor-network/01-ble-offline-sensor-network/"/></url><url><loc>https://tutorial.imagrove.com/conclusion-next-steps/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/conclusion-next-steps/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/conclusion-next-steps/"/></url><url><loc>https://tutorial.imagrove.com/conclusion-next-steps/01-course-summary/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/conclusion-next-steps/01-course-summary/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/conclusion-next-steps/01-course-summary/"/></url><url><loc>https://tutorial.imagrove.com/conclusion-next-steps/02-technology-stack-review/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/conclusion-next-steps/02-technology-stack-review/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/conclusion-next-steps/02-technology-stack-review/"/></url><url><loc>https://tutorial.imagrove.com/conclusion-next-steps/03-project-architecture-patterns/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/conclusion-next-steps/03-project-architecture-patterns/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/conclusion-next-steps/03-project-architecture-patterns/"/></url><url><loc>https://tutorial.imagrove.com/conclusion-next-steps/04-best-practices-summary/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/conclusion-next-steps/04-best-practices-summary/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/conclusion-next-steps/04-best-practices-summary/"/></url><url><loc>https://tutorial.imagrove.com/conclusion-next-steps/05-common-pitfalls-and-solutions/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/conclusion-next-steps/05-common-pitfalls-and-solutions/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/conclusion-next-steps/05-common-pitfalls-and-solutions/"/></url><url><loc>https://tutorial.imagrove.com/conclusion-next-steps/06/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/conclusion-next-steps/06/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/conclusion-next-steps/06/"/></url><url><loc>https://tutorial.imagrove.com/conclusion-next-steps/07-technical-requirements-documentation/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/conclusion-next-steps/07-technical-requirements-documentation/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/conclusion-next-steps/07-technical-requirements-documentation/"/></url><url><loc>https://tutorial.imagrove.com/conclusion-next-steps/08/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/conclusion-next-steps/08/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/conclusion-next-steps/08/"/></url><url><loc>https://tutorial.imagrove.com/conclusion-next-steps/09-scope-of-work-definition/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/conclusion-next-steps/09-scope-of-work-definition/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/conclusion-next-steps/09-scope-of-work-definition/"/></url><url><loc>https://tutorial.imagrove.com/conclusion-next-steps/10-further-learning-resources/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/conclusion-next-steps/10-further-learning-resources/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/conclusion-next-steps/10-further-learning-resources/"/></url><url><loc>https://tutorial.imagrove.com/docker-environment-setup/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/docker-environment-setup/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/docker-environment-setup/"/></url><url><loc>https://tutorial.imagrove.com/docker-environment-setup/01-docker-fundamentals/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/docker-environment-setup/01-docker-fundamentals/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/docker-environment-setup/01-docker-fundamentals/"/></url><url><loc>https://tutorial.imagrove.com/docker-environment-setup/02-docker-compose-for-iot-stack/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/docker-environment-setup/02-docker-compose-for-iot-stack/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/docker-environment-setup/02-docker-compose-for-iot-stack/"/></url><url><loc>https://tutorial.imagrove.com/docker-environment-setup/03-quick-demo-environment-setup/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/docker-environment-setup/03-quick-demo-environment-setup/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/docker-environment-setup/03-quick-demo-environment-setup/"/></url><url><loc>https://tutorial.imagrove.com/docker-environment-setup/04-container-management-with-portainer/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/docker-environment-setup/04-container-management-with-portainer/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/docker-environment-setup/04-container-management-with-portainer/"/></url><url><loc>https://tutorial.imagrove.com/docker-environment-setup/05-data-persistence-and-backup/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/docker-environment-setup/05-data-persistence-and-backup/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/docker-environment-setup/05-data-persistence-and-backup/"/></url><url><loc>https://tutorial.imagrove.com/docker-environment-setup/06-environment-migration-guide/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/docker-environment-setup/06-environment-migration-guide/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/docker-environment-setup/06-environment-migration-guide/"/></url><url><loc>https://tutorial.imagrove.com/docker-environment-setup/07-ssl-and-security-basics/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/docker-environment-setup/07-ssl-and-security-basics/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/docker-environment-setup/07-ssl-and-security-basics/"/></url><url><loc>https://tutorial.imagrove.com/docker-environment-setup/08-troubleshooting-common-issues/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/docker-environment-setup/08-troubleshooting-common-issues/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/docker-environment-setup/08-troubleshooting-common-issues/"/></url><url><loc>https://tutorial.imagrove.com/enclosure-design/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/enclosure-design/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/enclosure-design/"/></url><url><loc>https://tutorial.imagrove.com/enclosure-design/01-enclosure-design/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/enclosure-design/01-enclosure-design/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/enclosure-design/01-enclosure-design/"/></url><url><loc>https://tutorial.imagrove.com/esp32-advanced/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-advanced/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-advanced/"/></url><url><loc>https://tutorial.imagrove.com/esp32-advanced/01-platformio-ide-setup/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-advanced/01-platformio-ide-setup/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-advanced/01-platformio-ide-setup/"/></url><url><loc>https://tutorial.imagrove.com/esp32-advanced/02-visual-studio-code-integration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-advanced/02-visual-studio-code-integration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-advanced/02-visual-studio-code-integration/"/></url><url><loc>https://tutorial.imagrove.com/esp32-advanced/03-ai-assisted-development-with-trae-and-qoder/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-advanced/03-ai-assisted-development-with-trae-and-qoder/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-advanced/03-ai-assisted-development-with-trae-and-qoder/"/></url><url><loc>https://tutorial.imagrove.com/esp32-advanced/04-scratch-visual-programming-for-esp32/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-advanced/04-scratch-visual-programming-for-esp32/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-advanced/04-scratch-visual-programming-for-esp32/"/></url><url><loc>https://tutorial.imagrove.com/esp32-advanced/05-micropython-programming-on-esp32/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-advanced/05-micropython-programming-on-esp32/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-advanced/05-micropython-programming-on-esp32/"/></url><url><loc>https://tutorial.imagrove.com/esp32-advanced/06-code-portability-between-ides/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-advanced/06-code-portability-between-ides/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-advanced/06-code-portability-between-ides/"/></url><url><loc>https://tutorial.imagrove.com/esp32-advanced/07-arduino-framework-vs-esp-idf-development/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-advanced/07-arduino-framework-vs-esp-idf-development/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-advanced/07-arduino-framework-vs-esp-idf-development/"/></url><url><loc>https://tutorial.imagrove.com/esp32-advanced/08-esp32-for-stem-education-overview/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-advanced/08-esp32-for-stem-education-overview/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-advanced/08-esp32-for-stem-education-overview/"/></url><url><loc>https://tutorial.imagrove.com/esp32-advanced/09-esp32-drone-open-source-project/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-advanced/09-esp32-drone-open-source-project/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-advanced/09-esp32-drone-open-source-project/"/></url><url><loc>https://tutorial.imagrove.com/esp32-development-basics/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-development-basics/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-development-basics/"/></url><url><loc>https://tutorial.imagrove.com/esp32-development-basics/01-esp32-board-selection/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-development-basics/01-esp32-board-selection/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-development-basics/01-esp32-board-selection/"/></url><url><loc>https://tutorial.imagrove.com/esp32-development-basics/02-esp32-devkit-vs-d1-vs-tower/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-development-basics/02-esp32-devkit-vs-d1-vs-tower/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-development-basics/02-esp32-devkit-vs-d1-vs-tower/"/></url><url><loc>https://tutorial.imagrove.com/esp32-development-basics/03-esp32-capability-assessment/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-development-basics/03-esp32-capability-assessment/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-development-basics/03-esp32-capability-assessment/"/></url><url><loc>https://tutorial.imagrove.com/esp32-development-basics/04-arduino-ide-compatibility/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-development-basics/04-arduino-ide-compatibility/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-development-basics/04-arduino-ide-compatibility/"/></url><url><loc>https://tutorial.imagrove.com/esp32-development-basics/05-basic-sketch-architecture/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-development-basics/05-basic-sketch-architecture/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-development-basics/05-basic-sketch-architecture/"/></url><url><loc>https://tutorial.imagrove.com/esp32-development-basics/06-blink-without-delay-pattern/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-development-basics/06-blink-without-delay-pattern/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-development-basics/06-blink-without-delay-pattern/"/></url><url><loc>https://tutorial.imagrove.com/esp32-development-basics/07-wifi-connection-implementation/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-development-basics/07-wifi-connection-implementation/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-development-basics/07-wifi-connection-implementation/"/></url><url><loc>https://tutorial.imagrove.com/fly-platform-deployment/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/fly-platform-deployment/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/fly-platform-deployment/"/></url><url><loc>https://tutorial.imagrove.com/fly-platform-deployment/01-fly-platform-app-deployment/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/fly-platform-deployment/01-fly-platform-app-deployment/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/fly-platform-deployment/01-fly-platform-app-deployment/"/></url><url><loc>https://tutorial.imagrove.com/github-project-management/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/github-project-management/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/github-project-management/"/></url><url><loc>https://tutorial.imagrove.com/github-project-management/01-github-project-management-support/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/github-project-management/01-github-project-management-support/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/github-project-management/01-github-project-management-support/"/></url><url><loc>https://tutorial.imagrove.com/introduction/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/introduction/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/introduction/"/></url><url><loc>https://tutorial.imagrove.com/introduction/01-iot-solution-overview/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/introduction/01-iot-solution-overview/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/introduction/01-iot-solution-overview/"/></url><url><loc>https://tutorial.imagrove.com/introduction/02-technology-stack-components/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/introduction/02-technology-stack-components/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/introduction/02-technology-stack-components/"/></url><url><loc>https://tutorial.imagrove.com/introduction/03-customer-scenarios/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/introduction/03-customer-scenarios/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/introduction/03-customer-scenarios/"/></url><url><loc>https://tutorial.imagrove.com/introduction/04-demo-environment-setup-guide/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/introduction/04-demo-environment-setup-guide/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/introduction/04-demo-environment-setup-guide/"/></url><url><loc>https://tutorial.imagrove.com/kicad-hardware-design/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/kicad-hardware-design/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/kicad-hardware-design/"/></url><url><loc>https://tutorial.imagrove.com/kicad-hardware-design/01-kicad-hardware-design/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/kicad-hardware-design/01-kicad-hardware-design/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/kicad-hardware-design/01-kicad-hardware-design/"/></url><url><loc>https://tutorial.imagrove.com/matter-protocol/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/matter-protocol/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/matter-protocol/"/></url><url><loc>https://tutorial.imagrove.com/matter-protocol/01-matter-protocol/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/matter-protocol/01-matter-protocol/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/matter-protocol/01-matter-protocol/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-protocol/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-protocol/01-mqtt-protocol-overview/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/01-mqtt-protocol-overview/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/01-mqtt-protocol-overview/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-protocol/02-publish-subscribe-architecture/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/02-publish-subscribe-architecture/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/02-publish-subscribe-architecture/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-protocol/03-broker-and-client-roles/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/03-broker-and-client-roles/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/03-broker-and-client-roles/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-protocol/04-broker-comparison-mosquitto-vs-emqx/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/04-broker-comparison-mosquitto-vs-emqx/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/04-broker-comparison-mosquitto-vs-emqx/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-protocol/05-topic-structure-and-hierarchy/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/05-topic-structure-and-hierarchy/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/05-topic-structure-and-hierarchy/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-protocol/06-single-level-wildcards/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/06-single-level-wildcards/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/06-single-level-wildcards/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-protocol/07-multi-level-wildcards/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/07-multi-level-wildcards/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/07-multi-level-wildcards/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-protocol/08-quality-of-service-level-0/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/08-quality-of-service-level-0/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/08-quality-of-service-level-0/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-protocol/09-quality-of-service-level-1/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/09-quality-of-service-level-1/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/09-quality-of-service-level-1/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-protocol/10-quality-of-service-level-2/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/10-quality-of-service-level-2/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/10-quality-of-service-level-2/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-protocol/11-qos-comparison-and-selection/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/11-qos-comparison-and-selection/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/11-qos-comparison-and-selection/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-protocol/12-retained-messages/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/12-retained-messages/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/12-retained-messages/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-protocol/13-birth-and-death-messages/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/13-birth-and-death-messages/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/13-birth-and-death-messages/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-protocol/14-last-will-and-testament/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/14-last-will-and-testament/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/14-last-will-and-testament/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-protocol/15-mqtt-topic-best-practices/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/15-mqtt-topic-best-practices/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/15-mqtt-topic-best-practices/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-protocol/16-mqtt-cli-operations/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/16-mqtt-cli-operations/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/16-mqtt-cli-operations/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-protocol/17-mqtt-explorer-tool/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/17-mqtt-explorer-tool/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/17-mqtt-explorer-tool/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-protocol/18-mqtt-client-setup/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/18-mqtt-client-setup/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/18-mqtt-client-setup/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-protocol/19-json-message-construction/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/19-json-message-construction/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/19-json-message-construction/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-protocol/20-mqtt-publish-and-subscribe/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/20-mqtt-publish-and-subscribe/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/20-mqtt-publish-and-subscribe/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-protocol/21-callback-function-handling/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/21-callback-function-handling/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/21-callback-function-handling/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-tls-security/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-tls-security/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-tls-security/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-tls-security/01-mqtt-security-challenges/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-tls-security/01-mqtt-security-challenges/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-tls-security/01-mqtt-security-challenges/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-tls-security/02-tlsssl-encryption-overview/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-tls-security/02-tlsssl-encryption-overview/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-tls-security/02-tlsssl-encryption-overview/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-tls-security/03-lets-encrypt-certificate-setup/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-tls-security/03-lets-encrypt-certificate-setup/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-tls-security/03-lets-encrypt-certificate-setup/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-tls-security/04-dyndns-domain-configuration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-tls-security/04-dyndns-domain-configuration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-tls-security/04-dyndns-domain-configuration/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-tls-security/05-mosquitto-tls-configuration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-tls-security/05-mosquitto-tls-configuration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-tls-security/05-mosquitto-tls-configuration/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-tls-security/06-certificate-path-setup/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-tls-security/06-certificate-path-setup/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-tls-security/06-certificate-path-setup/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-tls-security/07-port-8883-configuration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-tls-security/07-port-8883-configuration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-tls-security/07-port-8883-configuration/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-tls-security/08-cli-tls-testing/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-tls-security/08-cli-tls-testing/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-tls-security/08-cli-tls-testing/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-tls-security/09-esp32-certificate-integration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-tls-security/09-esp32-certificate-integration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-tls-security/09-esp32-certificate-integration/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-tls-security/10-wificlientsecure-setup/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-tls-security/10-wificlientsecure-setup/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-tls-security/10-wificlientsecure-setup/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-tls-security/11-certificate-storage-in-esp32/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-tls-security/11-certificate-storage-in-esp32/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-tls-security/11-certificate-storage-in-esp32/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-tls-security/12-mqtt-secure-connection/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-tls-security/12-mqtt-secure-connection/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-tls-security/12-mqtt-secure-connection/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-tls-security/13-wireshark-traffic-analysis/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-tls-security/13-wireshark-traffic-analysis/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-tls-security/13-wireshark-traffic-analysis/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-tls-security/14-encrypted-vs-unencrypted-comparison/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-tls-security/14-encrypted-vs-unencrypted-comparison/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-tls-security/14-encrypted-vs-unencrypted-comparison/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-tls-security/15-security-best-practices/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-tls-security/15-security-best-practices/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-tls-security/15-security-best-practices/"/></url><url><loc>https://tutorial.imagrove.com/mqtt-tls-security/16-alibaba-cloud-iot-security-reference/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-tls-security/16-alibaba-cloud-iot-security-reference/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-tls-security/16-alibaba-cloud-iot-security-reference/"/></url><url><loc>https://tutorial.imagrove.com/node-red-fundamentals/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/"/></url><url><loc>https://tutorial.imagrove.com/node-red-fundamentals/01-node-red-architecture-overview/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/01-node-red-architecture-overview/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/01-node-red-architecture-overview/"/></url><url><loc>https://tutorial.imagrove.com/node-red-fundamentals/02-flow-design-principles/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/02-flow-design-principles/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/02-flow-design-principles/"/></url><url><loc>https://tutorial.imagrove.com/node-red-fundamentals/03-node-types-and-palette/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/03-node-types-and-palette/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/03-node-types-and-palette/"/></url><url><loc>https://tutorial.imagrove.com/node-red-fundamentals/04-deploy-strategies/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/04-deploy-strategies/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/04-deploy-strategies/"/></url><url><loc>https://tutorial.imagrove.com/node-red-fundamentals/05-inject-and-debug-nodes/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/05-inject-and-debug-nodes/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/05-inject-and-debug-nodes/"/></url><url><loc>https://tutorial.imagrove.com/node-red-fundamentals/06-function-node-programming/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/06-function-node-programming/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/06-function-node-programming/"/></url><url><loc>https://tutorial.imagrove.com/node-red-fundamentals/07-message-payload-manipulation/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/07-message-payload-manipulation/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/07-message-payload-manipulation/"/></url><url><loc>https://tutorial.imagrove.com/node-red-fundamentals/08-multi-output-function-nodes/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/08-multi-output-function-nodes/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/08-multi-output-function-nodes/"/></url><url><loc>https://tutorial.imagrove.com/node-red-fundamentals/09-json-data-processing/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/09-json-data-processing/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/09-json-data-processing/"/></url><url><loc>https://tutorial.imagrove.com/node-red-fundamentals/10-variable-scopes-and-context/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/10-variable-scopes-and-context/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/10-variable-scopes-and-context/"/></url><url><loc>https://tutorial.imagrove.com/node-red-fundamentals/11-flow-and-global-variables/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/11-flow-and-global-variables/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/11-flow-and-global-variables/"/></url><url><loc>https://tutorial.imagrove.com/node-red-fundamentals/12-join-node-for-data-aggregation/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/12-join-node-for-data-aggregation/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/12-join-node-for-data-aggregation/"/></url><url><loc>https://tutorial.imagrove.com/node-red-fundamentals/13-mqtt-broker-configuration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/13-mqtt-broker-configuration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/13-mqtt-broker-configuration/"/></url><url><loc>https://tutorial.imagrove.com/node-red-fundamentals/14-mqtt-inout-nodes/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/14-mqtt-inout-nodes/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/14-mqtt-inout-nodes/"/></url><url><loc>https://tutorial.imagrove.com/node-red-fundamentals/15-influxdb-integration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/15-influxdb-integration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/15-influxdb-integration/"/></url><url><loc>https://tutorial.imagrove.com/node-red-fundamentals/16-grafana-data-visualization/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/16-grafana-data-visualization/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/16-grafana-data-visualization/"/></url><url><loc>https://tutorial.imagrove.com/node-red-fundamentals/17-mariadb-sql-operations/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/17-mariadb-sql-operations/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/17-mariadb-sql-operations/"/></url><url><loc>https://tutorial.imagrove.com/ota-firmware-updates/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/ota-firmware-updates/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/ota-firmware-updates/"/></url><url><loc>https://tutorial.imagrove.com/ota-firmware-updates/01-ota-technology-overview/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/ota-firmware-updates/01-ota-technology-overview/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/ota-firmware-updates/01-ota-technology-overview/"/></url><url><loc>https://tutorial.imagrove.com/ota-firmware-updates/02-esp32-ota-mechanisms/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/ota-firmware-updates/02-esp32-ota-mechanisms/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/ota-firmware-updates/02-esp32-ota-mechanisms/"/></url><url><loc>https://tutorial.imagrove.com/ota-firmware-updates/03-partition-scheme-and-management/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/ota-firmware-updates/03-partition-scheme-and-management/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/ota-firmware-updates/03-partition-scheme-and-management/"/></url><url><loc>https://tutorial.imagrove.com/ota-firmware-updates/04-arduino-ota-configuration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/ota-firmware-updates/04-arduino-ota-configuration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/ota-firmware-updates/04-arduino-ota-configuration/"/></url><url><loc>https://tutorial.imagrove.com/ota-firmware-updates/05-http-ota-setup/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/ota-firmware-updates/05-http-ota-setup/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/ota-firmware-updates/05-http-ota-setup/"/></url><url><loc>https://tutorial.imagrove.com/ota-firmware-updates/06-firmware-version-management/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/ota-firmware-updates/06-firmware-version-management/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/ota-firmware-updates/06-firmware-version-management/"/></url><url><loc>https://tutorial.imagrove.com/ota-firmware-updates/07-rollback-and-safety-mechanisms/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/ota-firmware-updates/07-rollback-and-safety-mechanisms/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/ota-firmware-updates/07-rollback-and-safety-mechanisms/"/></url><url><loc>https://tutorial.imagrove.com/ota-firmware-updates/08-technical-capability-assessment/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/ota-firmware-updates/08-technical-capability-assessment/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/ota-firmware-updates/08-technical-capability-assessment/"/></url><url><loc>https://tutorial.imagrove.com/ota-firmware-updates/09-customization-possibilities/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/ota-firmware-updates/09-customization-possibilities/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/ota-firmware-updates/09-customization-possibilities/"/></url><url><loc>https://tutorial.imagrove.com/pcba-manufacturing/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/pcba-manufacturing/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/pcba-manufacturing/"/></url><url><loc>https://tutorial.imagrove.com/pcba-manufacturing/01-pcba-manufacturing-soldering-process/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/pcba-manufacturing/01-pcba-manufacturing-soldering-process/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/pcba-manufacturing/01-pcba-manufacturing-soldering-process/"/></url><url><loc>https://tutorial.imagrove.com/product-manager-methodology/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/product-manager-methodology/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/product-manager-methodology/"/></url><url><loc>https://tutorial.imagrove.com/product-manager-methodology/01-product-manager-methodology/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/product-manager-methodology/01-product-manager-methodology/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/product-manager-methodology/01-product-manager-methodology/"/></url><url><loc>https://tutorial.imagrove.com/project-asset-tracking/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-asset-tracking/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-asset-tracking/"/></url><url><loc>https://tutorial.imagrove.com/project-asset-tracking/01-project-architecture-overview/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-asset-tracking/01-project-architecture-overview/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-asset-tracking/01-project-architecture-overview/"/></url><url><loc>https://tutorial.imagrove.com/project-asset-tracking/02-rfid-reader-hardware-setup/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-asset-tracking/02-rfid-reader-hardware-setup/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-asset-tracking/02-rfid-reader-hardware-setup/"/></url><url><loc>https://tutorial.imagrove.com/project-asset-tracking/03-rc522-module-integration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-asset-tracking/03-rc522-module-integration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-asset-tracking/03-rc522-module-integration/"/></url><url><loc>https://tutorial.imagrove.com/project-asset-tracking/04-rfid-tag-uid-reading/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-asset-tracking/04-rfid-tag-uid-reading/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-asset-tracking/04-rfid-tag-uid-reading/"/></url><url><loc>https://tutorial.imagrove.com/project-asset-tracking/05-timetagger-open-source-software/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-asset-tracking/05-timetagger-open-source-software/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-asset-tracking/05-timetagger-open-source-software/"/></url><url><loc>https://tutorial.imagrove.com/project-asset-tracking/06-rest-api-authentication/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-asset-tracking/06-rest-api-authentication/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-asset-tracking/06-rest-api-authentication/"/></url><url><loc>https://tutorial.imagrove.com/project-asset-tracking/07-http-post-request-implementation/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-asset-tracking/07-http-post-request-implementation/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-asset-tracking/07-http-post-request-implementation/"/></url><url><loc>https://tutorial.imagrove.com/project-asset-tracking/08-check-in-api-integration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-asset-tracking/08-check-in-api-integration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-asset-tracking/08-check-in-api-integration/"/></url><url><loc>https://tutorial.imagrove.com/project-asset-tracking/09-state-management-logic/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-asset-tracking/09-state-management-logic/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-asset-tracking/09-state-management-logic/"/></url><url><loc>https://tutorial.imagrove.com/project-asset-tracking/10-led-status-indicators/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-asset-tracking/10-led-status-indicators/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-asset-tracking/10-led-status-indicators/"/></url><url><loc>https://tutorial.imagrove.com/project-asset-tracking/11-technical-capability-assessment/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-asset-tracking/11-technical-capability-assessment/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-asset-tracking/11-technical-capability-assessment/"/></url><url><loc>https://tutorial.imagrove.com/project-asset-tracking/12-customization-possibilities/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-asset-tracking/12-customization-possibilities/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-asset-tracking/12-customization-possibilities/"/></url><url><loc>https://tutorial.imagrove.com/project-auto-dosing/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-auto-dosing/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-auto-dosing/"/></url><url><loc>https://tutorial.imagrove.com/project-auto-dosing/01-project-architecture-overview/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-auto-dosing/01-project-architecture-overview/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-auto-dosing/01-project-architecture-overview/"/></url><url><loc>https://tutorial.imagrove.com/project-auto-dosing/02-relay-module-wiring/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-auto-dosing/02-relay-module-wiring/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-auto-dosing/02-relay-module-wiring/"/></url><url><loc>https://tutorial.imagrove.com/project-auto-dosing/03-pump-control-logic/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-auto-dosing/03-pump-control-logic/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-auto-dosing/03-pump-control-logic/"/></url><url><loc>https://tutorial.imagrove.com/project-auto-dosing/04-level-sensor-integration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-auto-dosing/04-level-sensor-integration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-auto-dosing/04-level-sensor-integration/"/></url><url><loc>https://tutorial.imagrove.com/project-auto-dosing/05-analog-sensor-reading/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-auto-dosing/05-analog-sensor-reading/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-auto-dosing/05-analog-sensor-reading/"/></url><url><loc>https://tutorial.imagrove.com/project-auto-dosing/06-deep-sleep-hourly-wake-up/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-auto-dosing/06-deep-sleep-hourly-wake-up/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-auto-dosing/06-deep-sleep-hourly-wake-up/"/></url><url><loc>https://tutorial.imagrove.com/project-auto-dosing/07-node-red-scheduling-logic/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-auto-dosing/07-node-red-scheduling-logic/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-auto-dosing/07-node-red-scheduling-logic/"/></url><url><loc>https://tutorial.imagrove.com/project-auto-dosing/08-timing-algorithm-implementation/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-auto-dosing/08-timing-algorithm-implementation/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-auto-dosing/08-timing-algorithm-implementation/"/></url><url><loc>https://tutorial.imagrove.com/project-auto-dosing/09-conditional-control-logic/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-auto-dosing/09-conditional-control-logic/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-auto-dosing/09-conditional-control-logic/"/></url><url><loc>https://tutorial.imagrove.com/project-auto-dosing/10-mqtt-control-signal/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-auto-dosing/10-mqtt-control-signal/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-auto-dosing/10-mqtt-control-signal/"/></url><url><loc>https://tutorial.imagrove.com/project-auto-dosing/11-dashboard-visualization/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-auto-dosing/11-dashboard-visualization/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-auto-dosing/11-dashboard-visualization/"/></url><url><loc>https://tutorial.imagrove.com/project-auto-dosing/12-alert-system/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-auto-dosing/12-alert-system/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-auto-dosing/12-alert-system/"/></url><url><loc>https://tutorial.imagrove.com/project-auto-dosing/13-technical-capability-assessment/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-auto-dosing/13-technical-capability-assessment/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-auto-dosing/13-technical-capability-assessment/"/></url><url><loc>https://tutorial.imagrove.com/project-auto-dosing/14-customization-possibilities/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-auto-dosing/14-customization-possibilities/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-auto-dosing/14-customization-possibilities/"/></url><url><loc>https://tutorial.imagrove.com/project-energy-monitoring/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-energy-monitoring/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-energy-monitoring/"/></url><url><loc>https://tutorial.imagrove.com/project-energy-monitoring/01-smart-relay-technologies-overview/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-energy-monitoring/01-smart-relay-technologies-overview/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-energy-monitoring/01-smart-relay-technologies-overview/"/></url><url><loc>https://tutorial.imagrove.com/project-energy-monitoring/02-shelly-device-architecture/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-energy-monitoring/02-shelly-device-architecture/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-energy-monitoring/02-shelly-device-architecture/"/></url><url><loc>https://tutorial.imagrove.com/project-energy-monitoring/03-shelly-mqtt-configuration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-energy-monitoring/03-shelly-mqtt-configuration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-energy-monitoring/03-shelly-mqtt-configuration/"/></url><url><loc>https://tutorial.imagrove.com/project-energy-monitoring/04-tasmota-firmware-flashing/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-energy-monitoring/04-tasmota-firmware-flashing/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-energy-monitoring/04-tasmota-firmware-flashing/"/></url><url><loc>https://tutorial.imagrove.com/project-energy-monitoring/05-tasmota-mqtt-setup/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-energy-monitoring/05-tasmota-mqtt-setup/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-energy-monitoring/05-tasmota-mqtt-setup/"/></url><url><loc>https://tutorial.imagrove.com/project-energy-monitoring/06-power-consumption-data-collection/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-energy-monitoring/06-power-consumption-data-collection/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-energy-monitoring/06-power-consumption-data-collection/"/></url><url><loc>https://tutorial.imagrove.com/project-energy-monitoring/07-voltage-and-current-monitoring/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-energy-monitoring/07-voltage-and-current-monitoring/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-energy-monitoring/07-voltage-and-current-monitoring/"/></url><url><loc>https://tutorial.imagrove.com/project-energy-monitoring/08-mqtt-topic-structure-for-shelly/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-energy-monitoring/08-mqtt-topic-structure-for-shelly/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-energy-monitoring/08-mqtt-topic-structure-for-shelly/"/></url><url><loc>https://tutorial.imagrove.com/project-energy-monitoring/09-node-red-control-flow-design/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-energy-monitoring/09-node-red-control-flow-design/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-energy-monitoring/09-node-red-control-flow-design/"/></url><url><loc>https://tutorial.imagrove.com/project-energy-monitoring/10-power-threshold-logic/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-energy-monitoring/10-power-threshold-logic/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-energy-monitoring/10-power-threshold-logic/"/></url><url><loc>https://tutorial.imagrove.com/project-energy-monitoring/11-grafana-energy-dashboard/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-energy-monitoring/11-grafana-energy-dashboard/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-energy-monitoring/11-grafana-energy-dashboard/"/></url><url><loc>https://tutorial.imagrove.com/project-energy-monitoring/12-alert-and-notification-system/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-energy-monitoring/12-alert-and-notification-system/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-energy-monitoring/12-alert-and-notification-system/"/></url><url><loc>https://tutorial.imagrove.com/project-energy-monitoring/13-technical-capability-assessment/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-energy-monitoring/13-technical-capability-assessment/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-energy-monitoring/13-technical-capability-assessment/"/></url><url><loc>https://tutorial.imagrove.com/project-energy-monitoring/14-implementation-complexity-analysis/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-energy-monitoring/14-implementation-complexity-analysis/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-energy-monitoring/14-implementation-complexity-analysis/"/></url><url><loc>https://tutorial.imagrove.com/project-energy-monitoring/15-customization-possibilities/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-energy-monitoring/15-customization-possibilities/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-energy-monitoring/15-customization-possibilities/"/></url><url><loc>https://tutorial.imagrove.com/project-factory-display/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-display/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-display/"/></url><url><loc>https://tutorial.imagrove.com/project-factory-display/01-e-ink-display-technology-overview/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-display/01-e-ink-display-technology-overview/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-display/01-e-ink-display-technology-overview/"/></url><url><loc>https://tutorial.imagrove.com/project-factory-display/02-e-paper-display-wiring/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-display/02-e-paper-display-wiring/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-display/02-e-paper-display-wiring/"/></url><url><loc>https://tutorial.imagrove.com/project-factory-display/03-gxepd2-library-setup/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-display/03-gxepd2-library-setup/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-display/03-gxepd2-library-setup/"/></url><url><loc>https://tutorial.imagrove.com/project-factory-display/04-text-rendering-on-e-ink/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-display/04-text-rendering-on-e-ink/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-display/04-text-rendering-on-e-ink/"/></url><url><loc>https://tutorial.imagrove.com/project-factory-display/05-image-display-on-e-ink/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-display/05-image-display-on-e-ink/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-display/05-image-display-on-e-ink/"/></url><url><loc>https://tutorial.imagrove.com/project-factory-display/06-https-api-data-fetching-node-red/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-display/06-https-api-data-fetching-node-red/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-display/06-https-api-data-fetching-node-red/"/></url><url><loc>https://tutorial.imagrove.com/project-factory-display/07-json-data-parsing/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-display/07-json-data-parsing/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-display/07-json-data-parsing/"/></url><url><loc>https://tutorial.imagrove.com/project-factory-display/08-deep-sleep-mode-configuration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-display/08-deep-sleep-mode-configuration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-display/08-deep-sleep-mode-configuration/"/></url><url><loc>https://tutorial.imagrove.com/project-factory-display/09-lipo-battery-power-management/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-display/09-lipo-battery-power-management/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-display/09-lipo-battery-power-management/"/></url><url><loc>https://tutorial.imagrove.com/project-factory-display/10-power-consumption-optimization/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-display/10-power-consumption-optimization/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-display/10-power-consumption-optimization/"/></url><url><loc>https://tutorial.imagrove.com/project-factory-display/11-technical-capability-assessment/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-display/11-technical-capability-assessment/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-display/11-technical-capability-assessment/"/></url><url><loc>https://tutorial.imagrove.com/project-factory-display/12-customization-possibilities/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-display/12-customization-possibilities/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-display/12-customization-possibilities/"/></url><url><loc>https://tutorial.imagrove.com/project-factory-environment/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-environment/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-environment/"/></url><url><loc>https://tutorial.imagrove.com/project-factory-environment/01-project-architecture-overview/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-environment/01-project-architecture-overview/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-environment/01-project-architecture-overview/"/></url><url><loc>https://tutorial.imagrove.com/project-factory-environment/02-hardware-components-and-wiring/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-environment/02-hardware-components-and-wiring/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-environment/02-hardware-components-and-wiring/"/></url><url><loc>https://tutorial.imagrove.com/project-factory-environment/03-dht-temperature-sensor-integration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-environment/03-dht-temperature-sensor-integration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-environment/03-dht-temperature-sensor-integration/"/></url><url><loc>https://tutorial.imagrove.com/project-factory-environment/04-light-sensor-integration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-environment/04-light-sensor-integration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-environment/04-light-sensor-integration/"/></url><url><loc>https://tutorial.imagrove.com/project-factory-environment/05-sensor-data-reading-logic/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-environment/05-sensor-data-reading-logic/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-environment/05-sensor-data-reading-logic/"/></url><url><loc>https://tutorial.imagrove.com/project-factory-environment/06-mqtt-data-transmission/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-environment/06-mqtt-data-transmission/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-environment/06-mqtt-data-transmission/"/></url><url><loc>https://tutorial.imagrove.com/project-factory-environment/07-node-red-flow-design/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-environment/07-node-red-flow-design/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-environment/07-node-red-flow-design/"/></url><url><loc>https://tutorial.imagrove.com/project-factory-environment/08-data-processing-and-transformation/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-environment/08-data-processing-and-transformation/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-environment/08-data-processing-and-transformation/"/></url><url><loc>https://tutorial.imagrove.com/project-factory-environment/09-influxdb-data-storage/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-environment/09-influxdb-data-storage/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-environment/09-influxdb-data-storage/"/></url><url><loc>https://tutorial.imagrove.com/project-factory-environment/10-grafana-dashboard-creation/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-environment/10-grafana-dashboard-creation/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-environment/10-grafana-dashboard-creation/"/></url><url><loc>https://tutorial.imagrove.com/project-factory-environment/11-real-time-data-monitoring/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-environment/11-real-time-data-monitoring/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-environment/11-real-time-data-monitoring/"/></url><url><loc>https://tutorial.imagrove.com/project-factory-environment/12-technical-capability-assessment/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-environment/12-technical-capability-assessment/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-environment/12-technical-capability-assessment/"/></url><url><loc>https://tutorial.imagrove.com/project-factory-environment/13-implementation-complexity-analysis/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-environment/13-implementation-complexity-analysis/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-environment/13-implementation-complexity-analysis/"/></url><url><loc>https://tutorial.imagrove.com/project-factory-environment/14-customization-possibilities/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-environment/14-customization-possibilities/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-environment/14-customization-possibilities/"/></url><url><loc>https://tutorial.imagrove.com/project-industrial-broadcast/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-industrial-broadcast/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-industrial-broadcast/"/></url><url><loc>https://tutorial.imagrove.com/project-industrial-broadcast/01-i2s-audio-technology-overview/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-industrial-broadcast/01-i2s-audio-technology-overview/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-industrial-broadcast/01-i2s-audio-technology-overview/"/></url><url><loc>https://tutorial.imagrove.com/project-industrial-broadcast/02-i2s-module-wiring/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-industrial-broadcast/02-i2s-module-wiring/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-industrial-broadcast/02-i2s-module-wiring/"/></url><url><loc>https://tutorial.imagrove.com/project-industrial-broadcast/03-audio-library-dependencies/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-industrial-broadcast/03-audio-library-dependencies/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-industrial-broadcast/03-audio-library-dependencies/"/></url><url><loc>https://tutorial.imagrove.com/project-industrial-broadcast/04-esp8266audio-library-setup/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-industrial-broadcast/04-esp8266audio-library-setup/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-industrial-broadcast/04-esp8266audio-library-setup/"/></url><url><loc>https://tutorial.imagrove.com/project-industrial-broadcast/05-audio-stream-connection/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-industrial-broadcast/05-audio-stream-connection/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-industrial-broadcast/05-audio-stream-connection/"/></url><url><loc>https://tutorial.imagrove.com/project-industrial-broadcast/06-source-url-configuration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-industrial-broadcast/06-source-url-configuration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-industrial-broadcast/06-source-url-configuration/"/></url><url><loc>https://tutorial.imagrove.com/project-industrial-broadcast/07-volume-control-implementation/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-industrial-broadcast/07-volume-control-implementation/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-industrial-broadcast/07-volume-control-implementation/"/></url><url><loc>https://tutorial.imagrove.com/project-industrial-broadcast/08-mqtt-remote-control/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-industrial-broadcast/08-mqtt-remote-control/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-industrial-broadcast/08-mqtt-remote-control/"/></url><url><loc>https://tutorial.imagrove.com/project-industrial-broadcast/09-playstop-commands/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-industrial-broadcast/09-playstop-commands/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-industrial-broadcast/09-playstop-commands/"/></url><url><loc>https://tutorial.imagrove.com/project-industrial-broadcast/10-alarm-notification-functionality/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-industrial-broadcast/10-alarm-notification-functionality/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-industrial-broadcast/10-alarm-notification-functionality/"/></url><url><loc>https://tutorial.imagrove.com/project-industrial-broadcast/11-time-based-scheduling/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-industrial-broadcast/11-time-based-scheduling/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-industrial-broadcast/11-time-based-scheduling/"/></url><url><loc>https://tutorial.imagrove.com/project-industrial-broadcast/12-node-red-scheduling-logic/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-industrial-broadcast/12-node-red-scheduling-logic/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-industrial-broadcast/12-node-red-scheduling-logic/"/></url><url><loc>https://tutorial.imagrove.com/project-industrial-broadcast/13-technical-capability-assessment/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-industrial-broadcast/13-technical-capability-assessment/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-industrial-broadcast/13-technical-capability-assessment/"/></url><url><loc>https://tutorial.imagrove.com/project-industrial-broadcast/14-customization-possibilities/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-industrial-broadcast/14-customization-possibilities/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-industrial-broadcast/14-customization-possibilities/"/></url><url><loc>https://tutorial.imagrove.com/project-remote-inspection/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-remote-inspection/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-remote-inspection/"/></url><url><loc>https://tutorial.imagrove.com/project-remote-inspection/01-esp32-cam-hardware-overview/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-remote-inspection/01-esp32-cam-hardware-overview/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-remote-inspection/01-esp32-cam-hardware-overview/"/></url><url><loc>https://tutorial.imagrove.com/project-remote-inspection/02-camera-module-configuration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-remote-inspection/02-camera-module-configuration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-remote-inspection/02-camera-module-configuration/"/></url><url><loc>https://tutorial.imagrove.com/project-remote-inspection/03-camerawebserver-example/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-remote-inspection/03-camerawebserver-example/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-remote-inspection/03-camerawebserver-example/"/></url><url><loc>https://tutorial.imagrove.com/project-remote-inspection/04-photo-capture-via-mqtt/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-remote-inspection/04-photo-capture-via-mqtt/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-remote-inspection/04-photo-capture-via-mqtt/"/></url><url><loc>https://tutorial.imagrove.com/project-remote-inspection/05-flash-led-control/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-remote-inspection/05-flash-led-control/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-remote-inspection/05-flash-led-control/"/></url><url><loc>https://tutorial.imagrove.com/project-remote-inspection/06-base64-image-encoding/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-remote-inspection/06-base64-image-encoding/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-remote-inspection/06-base64-image-encoding/"/></url><url><loc>https://tutorial.imagrove.com/project-remote-inspection/07-mqtt-image-transmission/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-remote-inspection/07-mqtt-image-transmission/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-remote-inspection/07-mqtt-image-transmission/"/></url><url><loc>https://tutorial.imagrove.com/project-remote-inspection/08-node-red-image-processing/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-remote-inspection/08-node-red-image-processing/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-remote-inspection/08-node-red-image-processing/"/></url><url><loc>https://tutorial.imagrove.com/project-remote-inspection/09-pir-motion-sensor-integration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-remote-inspection/09-pir-motion-sensor-integration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-remote-inspection/09-pir-motion-sensor-integration/"/></url><url><loc>https://tutorial.imagrove.com/project-remote-inspection/10-deep-sleep-with-wake-up-pin/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-remote-inspection/10-deep-sleep-with-wake-up-pin/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-remote-inspection/10-deep-sleep-with-wake-up-pin/"/></url><url><loc>https://tutorial.imagrove.com/project-remote-inspection/11-notification-setup/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-remote-inspection/11-notification-setup/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-remote-inspection/11-notification-setup/"/></url><url><loc>https://tutorial.imagrove.com/project-remote-inspection/12-technical-capability-assessment/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-remote-inspection/12-technical-capability-assessment/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-remote-inspection/12-technical-capability-assessment/"/></url><url><loc>https://tutorial.imagrove.com/project-remote-inspection/13-implementation-complexity-analysis/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-remote-inspection/13-implementation-complexity-analysis/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-remote-inspection/13-implementation-complexity-analysis/"/></url><url><loc>https://tutorial.imagrove.com/project-remote-inspection/14-customization-possibilities/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-remote-inspection/14-customization-possibilities/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-remote-inspection/14-customization-possibilities/"/></url><url><loc>https://tutorial.imagrove.com/project-smart-home/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-smart-home/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-smart-home/"/></url><url><loc>https://tutorial.imagrove.com/project-smart-home/01-smart-home-system-overview/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-smart-home/01-smart-home-system-overview/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-smart-home/01-smart-home-system-overview/"/></url><url><loc>https://tutorial.imagrove.com/project-smart-home/02-lvgl-graphics-library-introduction/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-smart-home/02-lvgl-graphics-library-introduction/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-smart-home/02-lvgl-graphics-library-introduction/"/></url><url><loc>https://tutorial.imagrove.com/project-smart-home/03-tftlcd-display-hardware-selection/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-smart-home/03-tftlcd-display-hardware-selection/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-smart-home/03-tftlcd-display-hardware-selection/"/></url><url><loc>https://tutorial.imagrove.com/project-smart-home/04-lvgl-installation-and-esp32-configuration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-smart-home/04-lvgl-installation-and-esp32-configuration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-smart-home/04-lvgl-installation-and-esp32-configuration/"/></url><url><loc>https://tutorial.imagrove.com/project-smart-home/05-lvgl-ui-design-fundamentals/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-smart-home/05-lvgl-ui-design-fundamentals/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-smart-home/05-lvgl-ui-design-fundamentals/"/></url><url><loc>https://tutorial.imagrove.com/project-smart-home/06-touch-screen-integration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-smart-home/06-touch-screen-integration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-smart-home/06-touch-screen-integration/"/></url><url><loc>https://tutorial.imagrove.com/project-smart-home/07-smart-home-sensor-data-collection/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-smart-home/07-smart-home-sensor-data-collection/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-smart-home/07-smart-home-sensor-data-collection/"/></url><url><loc>https://tutorial.imagrove.com/project-smart-home/08-mqtt-communication-for-smart-home/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-smart-home/08-mqtt-communication-for-smart-home/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-smart-home/08-mqtt-communication-for-smart-home/"/></url><url><loc>https://tutorial.imagrove.com/project-smart-home/09-node-red-smart-home-dashboard/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-smart-home/09-node-red-smart-home-dashboard/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-smart-home/09-node-red-smart-home-dashboard/"/></url><url><loc>https://tutorial.imagrove.com/project-smart-home/10-voice-control-integration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-smart-home/10-voice-control-integration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-smart-home/10-voice-control-integration/"/></url><url><loc>https://tutorial.imagrove.com/project-smart-home/11-scene-automation-and-scheduling/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-smart-home/11-scene-automation-and-scheduling/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-smart-home/11-scene-automation-and-scheduling/"/></url><url><loc>https://tutorial.imagrove.com/project-smart-home/12-technical-capability-assessment/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-smart-home/12-technical-capability-assessment/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-smart-home/12-technical-capability-assessment/"/></url><url><loc>https://tutorial.imagrove.com/project-smart-home/13-customization-possibilities/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-smart-home/13-customization-possibilities/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-smart-home/13-customization-possibilities/"/></url><url><loc>https://tutorial.imagrove.com/project-work-order-button/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-work-order-button/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-work-order-button/"/></url><url><loc>https://tutorial.imagrove.com/project-work-order-button/01-esp32-xiao-hardware-overview/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-work-order-button/01-esp32-xiao-hardware-overview/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-work-order-button/01-esp32-xiao-hardware-overview/"/></url><url><loc>https://tutorial.imagrove.com/project-work-order-button/02-battery-management-system/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-work-order-button/02-battery-management-system/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-work-order-button/02-battery-management-system/"/></url><url><loc>https://tutorial.imagrove.com/project-work-order-button/03-lipo-battery-integration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-work-order-button/03-lipo-battery-integration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-work-order-button/03-lipo-battery-integration/"/></url><url><loc>https://tutorial.imagrove.com/project-work-order-button/04-button-circuit-design/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-work-order-button/04-button-circuit-design/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-work-order-button/04-button-circuit-design/"/></url><url><loc>https://tutorial.imagrove.com/project-work-order-button/05-deep-sleep-power-optimization/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-work-order-button/05-deep-sleep-power-optimization/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-work-order-button/05-deep-sleep-power-optimization/"/></url><url><loc>https://tutorial.imagrove.com/project-work-order-button/06-battery-life-calculation/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-work-order-button/06-battery-life-calculation/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-work-order-button/06-battery-life-calculation/"/></url><url><loc>https://tutorial.imagrove.com/project-work-order-button/07-wifi-connection-on-button-press/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-work-order-button/07-wifi-connection-on-button-press/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-work-order-button/07-wifi-connection-on-button-press/"/></url><url><loc>https://tutorial.imagrove.com/project-work-order-button/08-mqtt-message-transmission/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-work-order-button/08-mqtt-message-transmission/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-work-order-button/08-mqtt-message-transmission/"/></url><url><loc>https://tutorial.imagrove.com/project-work-order-button/09-day-battery-life-achievement/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-work-order-button/09-day-battery-life-achievement/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-work-order-button/09-day-battery-life-achievement/"/></url><url><loc>https://tutorial.imagrove.com/project-work-order-button/10-node-red-trigger-flow/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-work-order-button/10-node-red-trigger-flow/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-work-order-button/10-node-red-trigger-flow/"/></url><url><loc>https://tutorial.imagrove.com/project-work-order-button/11-technical-capability-assessment/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-work-order-button/11-technical-capability-assessment/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-work-order-button/11-technical-capability-assessment/"/></url><url><loc>https://tutorial.imagrove.com/project-work-order-button/12-customization-possibilities/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-work-order-button/12-customization-possibilities/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-work-order-button/12-customization-possibilities/"/></url><url><loc>https://tutorial.imagrove.com/service-installation/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/service-installation/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/service-installation/"/></url><url><loc>https://tutorial.imagrove.com/service-installation/01-mqtt-broker-mosquitto-emqx/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/service-installation/01-mqtt-broker-mosquitto-emqx/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/service-installation/01-mqtt-broker-mosquitto-emqx/"/></url><url><loc>https://tutorial.imagrove.com/service-installation/02-automation-engine-node-red/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/service-installation/02-automation-engine-node-red/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/service-installation/02-automation-engine-node-red/"/></url><url><loc>https://tutorial.imagrove.com/service-installation/03-time-series-database-influxdb/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/service-installation/03-time-series-database-influxdb/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/service-installation/03-time-series-database-influxdb/"/></url><url><loc>https://tutorial.imagrove.com/service-installation/04-visualization-platform-grafana/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/service-installation/04-visualization-platform-grafana/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/service-installation/04-visualization-platform-grafana/"/></url><url><loc>https://tutorial.imagrove.com/service-installation/05-relational-database-mariadb/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/service-installation/05-relational-database-mariadb/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/service-installation/05-relational-database-mariadb/"/></url><url><loc>https://tutorial.imagrove.com/service-installation/06-stack-integration-and-testing/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/service-installation/06-stack-integration-and-testing/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/service-installation/06-stack-integration-and-testing/"/></url><url><loc>https://tutorial.imagrove.com/service-installation/07-performance-and-scalability/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/service-installation/07-performance-and-scalability/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/service-installation/07-performance-and-scalability/"/></url><url><loc>https://tutorial.imagrove.com/service-installation/08-licensing-and-cost-analysis/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/service-installation/08-licensing-and-cost-analysis/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/service-installation/08-licensing-and-cost-analysis/"/></url><url><loc>https://tutorial.imagrove.com/zh/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/"/></url><url><loc>https://tutorial.imagrove.com/zh/ble-offline-sensor-network/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/ble-offline-sensor-network/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/ble-offline-sensor-network/"/></url><url><loc>https://tutorial.imagrove.com/zh/ble-offline-sensor-network/01-ble-offline-sensor-network/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/ble-offline-sensor-network/01-ble-offline-sensor-network/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/ble-offline-sensor-network/01-ble-offline-sensor-network/"/></url><url><loc>https://tutorial.imagrove.com/zh/conclusion-next-steps/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/conclusion-next-steps/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/conclusion-next-steps/"/></url><url><loc>https://tutorial.imagrove.com/zh/conclusion-next-steps/01-course-summary/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/conclusion-next-steps/01-course-summary/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/conclusion-next-steps/01-course-summary/"/></url><url><loc>https://tutorial.imagrove.com/zh/conclusion-next-steps/02-technology-stack-review/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/conclusion-next-steps/02-technology-stack-review/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/conclusion-next-steps/02-technology-stack-review/"/></url><url><loc>https://tutorial.imagrove.com/zh/conclusion-next-steps/03-project-architecture-patterns/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/conclusion-next-steps/03-project-architecture-patterns/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/conclusion-next-steps/03-project-architecture-patterns/"/></url><url><loc>https://tutorial.imagrove.com/zh/conclusion-next-steps/04-best-practices-summary/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/conclusion-next-steps/04-best-practices-summary/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/conclusion-next-steps/04-best-practices-summary/"/></url><url><loc>https://tutorial.imagrove.com/zh/conclusion-next-steps/05-common-pitfalls-and-solutions/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/conclusion-next-steps/05-common-pitfalls-and-solutions/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/conclusion-next-steps/05-common-pitfalls-and-solutions/"/></url><url><loc>https://tutorial.imagrove.com/zh/conclusion-next-steps/06/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/conclusion-next-steps/06/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/conclusion-next-steps/06/"/></url><url><loc>https://tutorial.imagrove.com/zh/conclusion-next-steps/07-technical-requirements-documentation/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/conclusion-next-steps/07-technical-requirements-documentation/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/conclusion-next-steps/07-technical-requirements-documentation/"/></url><url><loc>https://tutorial.imagrove.com/zh/conclusion-next-steps/08/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/conclusion-next-steps/08/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/conclusion-next-steps/08/"/></url><url><loc>https://tutorial.imagrove.com/zh/conclusion-next-steps/09-scope-of-work-definition/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/conclusion-next-steps/09-scope-of-work-definition/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/conclusion-next-steps/09-scope-of-work-definition/"/></url><url><loc>https://tutorial.imagrove.com/zh/conclusion-next-steps/10-further-learning-resources/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/conclusion-next-steps/10-further-learning-resources/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/conclusion-next-steps/10-further-learning-resources/"/></url><url><loc>https://tutorial.imagrove.com/zh/docker-environment-setup/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/docker-environment-setup/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/docker-environment-setup/"/></url><url><loc>https://tutorial.imagrove.com/zh/docker-environment-setup/01-docker-fundamentals/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/docker-environment-setup/01-docker-fundamentals/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/docker-environment-setup/01-docker-fundamentals/"/></url><url><loc>https://tutorial.imagrove.com/zh/docker-environment-setup/02-docker-compose-for-iot-stack/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/docker-environment-setup/02-docker-compose-for-iot-stack/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/docker-environment-setup/02-docker-compose-for-iot-stack/"/></url><url><loc>https://tutorial.imagrove.com/zh/docker-environment-setup/03-quick-demo-environment-setup/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/docker-environment-setup/03-quick-demo-environment-setup/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/docker-environment-setup/03-quick-demo-environment-setup/"/></url><url><loc>https://tutorial.imagrove.com/zh/docker-environment-setup/04-container-management-with-portainer/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/docker-environment-setup/04-container-management-with-portainer/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/docker-environment-setup/04-container-management-with-portainer/"/></url><url><loc>https://tutorial.imagrove.com/zh/docker-environment-setup/05-data-persistence-and-backup/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/docker-environment-setup/05-data-persistence-and-backup/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/docker-environment-setup/05-data-persistence-and-backup/"/></url><url><loc>https://tutorial.imagrove.com/zh/docker-environment-setup/06-environment-migration-guide/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/docker-environment-setup/06-environment-migration-guide/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/docker-environment-setup/06-environment-migration-guide/"/></url><url><loc>https://tutorial.imagrove.com/zh/docker-environment-setup/07-ssl-and-security-basics/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/docker-environment-setup/07-ssl-and-security-basics/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/docker-environment-setup/07-ssl-and-security-basics/"/></url><url><loc>https://tutorial.imagrove.com/zh/docker-environment-setup/08-troubleshooting-common-issues/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/docker-environment-setup/08-troubleshooting-common-issues/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/docker-environment-setup/08-troubleshooting-common-issues/"/></url><url><loc>https://tutorial.imagrove.com/zh/enclosure-design/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/enclosure-design/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/enclosure-design/"/></url><url><loc>https://tutorial.imagrove.com/zh/enclosure-design/01-enclosure-design/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/enclosure-design/01-enclosure-design/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/enclosure-design/01-enclosure-design/"/></url><url><loc>https://tutorial.imagrove.com/zh/esp32-advanced/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-advanced/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-advanced/"/></url><url><loc>https://tutorial.imagrove.com/zh/esp32-advanced/01-platformio-ide-setup/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-advanced/01-platformio-ide-setup/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-advanced/01-platformio-ide-setup/"/></url><url><loc>https://tutorial.imagrove.com/zh/esp32-advanced/02-visual-studio-code-integration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-advanced/02-visual-studio-code-integration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-advanced/02-visual-studio-code-integration/"/></url><url><loc>https://tutorial.imagrove.com/zh/esp32-advanced/03-ai-assisted-development-with-trae-and-qoder/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-advanced/03-ai-assisted-development-with-trae-and-qoder/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-advanced/03-ai-assisted-development-with-trae-and-qoder/"/></url><url><loc>https://tutorial.imagrove.com/zh/esp32-advanced/04-scratch-visual-programming-for-esp32/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-advanced/04-scratch-visual-programming-for-esp32/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-advanced/04-scratch-visual-programming-for-esp32/"/></url><url><loc>https://tutorial.imagrove.com/zh/esp32-advanced/05-micropython-programming-on-esp32/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-advanced/05-micropython-programming-on-esp32/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-advanced/05-micropython-programming-on-esp32/"/></url><url><loc>https://tutorial.imagrove.com/zh/esp32-advanced/06-code-portability-between-ides/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-advanced/06-code-portability-between-ides/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-advanced/06-code-portability-between-ides/"/></url><url><loc>https://tutorial.imagrove.com/zh/esp32-advanced/07-arduino-framework-vs-esp-idf-development/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-advanced/07-arduino-framework-vs-esp-idf-development/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-advanced/07-arduino-framework-vs-esp-idf-development/"/></url><url><loc>https://tutorial.imagrove.com/zh/esp32-advanced/08-esp32-for-stem-education-overview/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-advanced/08-esp32-for-stem-education-overview/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-advanced/08-esp32-for-stem-education-overview/"/></url><url><loc>https://tutorial.imagrove.com/zh/esp32-advanced/09-esp32-drone-open-source-project/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-advanced/09-esp32-drone-open-source-project/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-advanced/09-esp32-drone-open-source-project/"/></url><url><loc>https://tutorial.imagrove.com/zh/esp32-development-basics/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-development-basics/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-development-basics/"/></url><url><loc>https://tutorial.imagrove.com/zh/esp32-development-basics/01-esp32-board-selection/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-development-basics/01-esp32-board-selection/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-development-basics/01-esp32-board-selection/"/></url><url><loc>https://tutorial.imagrove.com/zh/esp32-development-basics/02-esp32-devkit-vs-d1-vs-tower/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-development-basics/02-esp32-devkit-vs-d1-vs-tower/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-development-basics/02-esp32-devkit-vs-d1-vs-tower/"/></url><url><loc>https://tutorial.imagrove.com/zh/esp32-development-basics/03-esp32-capability-assessment/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-development-basics/03-esp32-capability-assessment/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-development-basics/03-esp32-capability-assessment/"/></url><url><loc>https://tutorial.imagrove.com/zh/esp32-development-basics/04-arduino-ide-compatibility/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-development-basics/04-arduino-ide-compatibility/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-development-basics/04-arduino-ide-compatibility/"/></url><url><loc>https://tutorial.imagrove.com/zh/esp32-development-basics/05-basic-sketch-architecture/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-development-basics/05-basic-sketch-architecture/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-development-basics/05-basic-sketch-architecture/"/></url><url><loc>https://tutorial.imagrove.com/zh/esp32-development-basics/06-blink-without-delay-pattern/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-development-basics/06-blink-without-delay-pattern/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-development-basics/06-blink-without-delay-pattern/"/></url><url><loc>https://tutorial.imagrove.com/zh/esp32-development-basics/07-wifi-connection-implementation/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/esp32-development-basics/07-wifi-connection-implementation/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/esp32-development-basics/07-wifi-connection-implementation/"/></url><url><loc>https://tutorial.imagrove.com/zh/fly-platform-deployment/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/fly-platform-deployment/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/fly-platform-deployment/"/></url><url><loc>https://tutorial.imagrove.com/zh/fly-platform-deployment/01-fly-platform-app-deployment/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/fly-platform-deployment/01-fly-platform-app-deployment/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/fly-platform-deployment/01-fly-platform-app-deployment/"/></url><url><loc>https://tutorial.imagrove.com/zh/github-project-management/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/github-project-management/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/github-project-management/"/></url><url><loc>https://tutorial.imagrove.com/zh/github-project-management/01-github-project-management-support/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/github-project-management/01-github-project-management-support/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/github-project-management/01-github-project-management-support/"/></url><url><loc>https://tutorial.imagrove.com/zh/introduction/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/introduction/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/introduction/"/></url><url><loc>https://tutorial.imagrove.com/zh/introduction/01-iot-solution-overview/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/introduction/01-iot-solution-overview/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/introduction/01-iot-solution-overview/"/></url><url><loc>https://tutorial.imagrove.com/zh/introduction/02-technology-stack-components/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/introduction/02-technology-stack-components/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/introduction/02-technology-stack-components/"/></url><url><loc>https://tutorial.imagrove.com/zh/introduction/03-customer-scenarios/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/introduction/03-customer-scenarios/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/introduction/03-customer-scenarios/"/></url><url><loc>https://tutorial.imagrove.com/zh/introduction/04-demo-environment-setup-guide/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/introduction/04-demo-environment-setup-guide/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/introduction/04-demo-environment-setup-guide/"/></url><url><loc>https://tutorial.imagrove.com/zh/kicad-hardware-design/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/kicad-hardware-design/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/kicad-hardware-design/"/></url><url><loc>https://tutorial.imagrove.com/zh/kicad-hardware-design/01-kicad-hardware-design/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/kicad-hardware-design/01-kicad-hardware-design/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/kicad-hardware-design/01-kicad-hardware-design/"/></url><url><loc>https://tutorial.imagrove.com/zh/matter-protocol/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/matter-protocol/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/matter-protocol/"/></url><url><loc>https://tutorial.imagrove.com/zh/matter-protocol/01-matter-protocol/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/matter-protocol/01-matter-protocol/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/matter-protocol/01-matter-protocol/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-protocol/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-protocol/01-mqtt-protocol-overview/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/01-mqtt-protocol-overview/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/01-mqtt-protocol-overview/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-protocol/02-publish-subscribe-architecture/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/02-publish-subscribe-architecture/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/02-publish-subscribe-architecture/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-protocol/03-broker-and-client-roles/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/03-broker-and-client-roles/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/03-broker-and-client-roles/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-protocol/04-broker-comparison-mosquitto-vs-emqx/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/04-broker-comparison-mosquitto-vs-emqx/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/04-broker-comparison-mosquitto-vs-emqx/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-protocol/05-topic-structure-and-hierarchy/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/05-topic-structure-and-hierarchy/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/05-topic-structure-and-hierarchy/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-protocol/06-single-level-wildcards/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/06-single-level-wildcards/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/06-single-level-wildcards/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-protocol/07-multi-level-wildcards/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/07-multi-level-wildcards/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/07-multi-level-wildcards/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-protocol/08-quality-of-service-level-0/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/08-quality-of-service-level-0/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/08-quality-of-service-level-0/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-protocol/09-quality-of-service-level-1/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/09-quality-of-service-level-1/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/09-quality-of-service-level-1/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-protocol/10-quality-of-service-level-2/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/10-quality-of-service-level-2/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/10-quality-of-service-level-2/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-protocol/11-qos-comparison-and-selection/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/11-qos-comparison-and-selection/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/11-qos-comparison-and-selection/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-protocol/12-retained-messages/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/12-retained-messages/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/12-retained-messages/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-protocol/13-birth-and-death-messages/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/13-birth-and-death-messages/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/13-birth-and-death-messages/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-protocol/14-last-will-and-testament/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/14-last-will-and-testament/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/14-last-will-and-testament/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-protocol/15-mqtt-topic-best-practices/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/15-mqtt-topic-best-practices/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/15-mqtt-topic-best-practices/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-protocol/16-mqtt-cli-operations/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/16-mqtt-cli-operations/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/16-mqtt-cli-operations/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-protocol/17-mqtt-explorer-tool/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/17-mqtt-explorer-tool/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/17-mqtt-explorer-tool/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-protocol/18-mqtt-client-setup/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/18-mqtt-client-setup/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/18-mqtt-client-setup/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-protocol/19-json-message-construction/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/19-json-message-construction/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/19-json-message-construction/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-protocol/20-mqtt-publish-and-subscribe/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/20-mqtt-publish-and-subscribe/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/20-mqtt-publish-and-subscribe/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-protocol/21-callback-function-handling/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-protocol/21-callback-function-handling/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-protocol/21-callback-function-handling/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-tls-security/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-tls-security/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-tls-security/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-tls-security/01-mqtt-security-challenges/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-tls-security/01-mqtt-security-challenges/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-tls-security/01-mqtt-security-challenges/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-tls-security/02-tlsssl-encryption-overview/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-tls-security/02-tlsssl-encryption-overview/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-tls-security/02-tlsssl-encryption-overview/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-tls-security/03-lets-encrypt-certificate-setup/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-tls-security/03-lets-encrypt-certificate-setup/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-tls-security/03-lets-encrypt-certificate-setup/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-tls-security/04-dyndns-domain-configuration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-tls-security/04-dyndns-domain-configuration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-tls-security/04-dyndns-domain-configuration/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-tls-security/05-mosquitto-tls-configuration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-tls-security/05-mosquitto-tls-configuration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-tls-security/05-mosquitto-tls-configuration/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-tls-security/06-certificate-path-setup/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-tls-security/06-certificate-path-setup/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-tls-security/06-certificate-path-setup/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-tls-security/07-port-8883-configuration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-tls-security/07-port-8883-configuration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-tls-security/07-port-8883-configuration/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-tls-security/08-cli-tls-testing/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-tls-security/08-cli-tls-testing/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-tls-security/08-cli-tls-testing/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-tls-security/09-esp32-certificate-integration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-tls-security/09-esp32-certificate-integration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-tls-security/09-esp32-certificate-integration/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-tls-security/10-wificlientsecure-setup/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-tls-security/10-wificlientsecure-setup/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-tls-security/10-wificlientsecure-setup/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-tls-security/11-certificate-storage-in-esp32/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-tls-security/11-certificate-storage-in-esp32/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-tls-security/11-certificate-storage-in-esp32/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-tls-security/12-mqtt-secure-connection/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-tls-security/12-mqtt-secure-connection/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-tls-security/12-mqtt-secure-connection/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-tls-security/13-wireshark-traffic-analysis/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-tls-security/13-wireshark-traffic-analysis/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-tls-security/13-wireshark-traffic-analysis/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-tls-security/14-encrypted-vs-unencrypted-comparison/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-tls-security/14-encrypted-vs-unencrypted-comparison/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-tls-security/14-encrypted-vs-unencrypted-comparison/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-tls-security/15-security-best-practices/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-tls-security/15-security-best-practices/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-tls-security/15-security-best-practices/"/></url><url><loc>https://tutorial.imagrove.com/zh/mqtt-tls-security/16-alibaba-cloud-iot-security-reference/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/mqtt-tls-security/16-alibaba-cloud-iot-security-reference/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/mqtt-tls-security/16-alibaba-cloud-iot-security-reference/"/></url><url><loc>https://tutorial.imagrove.com/zh/node-red-fundamentals/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/"/></url><url><loc>https://tutorial.imagrove.com/zh/node-red-fundamentals/01-node-red-architecture-overview/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/01-node-red-architecture-overview/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/01-node-red-architecture-overview/"/></url><url><loc>https://tutorial.imagrove.com/zh/node-red-fundamentals/02-flow-design-principles/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/02-flow-design-principles/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/02-flow-design-principles/"/></url><url><loc>https://tutorial.imagrove.com/zh/node-red-fundamentals/03-node-types-and-palette/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/03-node-types-and-palette/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/03-node-types-and-palette/"/></url><url><loc>https://tutorial.imagrove.com/zh/node-red-fundamentals/04-deploy-strategies/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/04-deploy-strategies/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/04-deploy-strategies/"/></url><url><loc>https://tutorial.imagrove.com/zh/node-red-fundamentals/05-inject-and-debug-nodes/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/05-inject-and-debug-nodes/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/05-inject-and-debug-nodes/"/></url><url><loc>https://tutorial.imagrove.com/zh/node-red-fundamentals/06-function-node-programming/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/06-function-node-programming/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/06-function-node-programming/"/></url><url><loc>https://tutorial.imagrove.com/zh/node-red-fundamentals/07-message-payload-manipulation/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/07-message-payload-manipulation/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/07-message-payload-manipulation/"/></url><url><loc>https://tutorial.imagrove.com/zh/node-red-fundamentals/08-multi-output-function-nodes/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/08-multi-output-function-nodes/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/08-multi-output-function-nodes/"/></url><url><loc>https://tutorial.imagrove.com/zh/node-red-fundamentals/09-json-data-processing/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/09-json-data-processing/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/09-json-data-processing/"/></url><url><loc>https://tutorial.imagrove.com/zh/node-red-fundamentals/10-variable-scopes-and-context/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/10-variable-scopes-and-context/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/10-variable-scopes-and-context/"/></url><url><loc>https://tutorial.imagrove.com/zh/node-red-fundamentals/11-flow-and-global-variables/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/11-flow-and-global-variables/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/11-flow-and-global-variables/"/></url><url><loc>https://tutorial.imagrove.com/zh/node-red-fundamentals/12-join-node-for-data-aggregation/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/12-join-node-for-data-aggregation/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/12-join-node-for-data-aggregation/"/></url><url><loc>https://tutorial.imagrove.com/zh/node-red-fundamentals/13-mqtt-broker-configuration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/13-mqtt-broker-configuration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/13-mqtt-broker-configuration/"/></url><url><loc>https://tutorial.imagrove.com/zh/node-red-fundamentals/14-mqtt-inout-nodes/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/14-mqtt-inout-nodes/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/14-mqtt-inout-nodes/"/></url><url><loc>https://tutorial.imagrove.com/zh/node-red-fundamentals/15-influxdb-integration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/15-influxdb-integration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/15-influxdb-integration/"/></url><url><loc>https://tutorial.imagrove.com/zh/node-red-fundamentals/16-grafana-data-visualization/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/16-grafana-data-visualization/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/16-grafana-data-visualization/"/></url><url><loc>https://tutorial.imagrove.com/zh/node-red-fundamentals/17-mariadb-sql-operations/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/node-red-fundamentals/17-mariadb-sql-operations/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/node-red-fundamentals/17-mariadb-sql-operations/"/></url><url><loc>https://tutorial.imagrove.com/zh/ota-firmware-updates/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/ota-firmware-updates/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/ota-firmware-updates/"/></url><url><loc>https://tutorial.imagrove.com/zh/ota-firmware-updates/01-ota-technology-overview/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/ota-firmware-updates/01-ota-technology-overview/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/ota-firmware-updates/01-ota-technology-overview/"/></url><url><loc>https://tutorial.imagrove.com/zh/ota-firmware-updates/02-esp32-ota-mechanisms/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/ota-firmware-updates/02-esp32-ota-mechanisms/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/ota-firmware-updates/02-esp32-ota-mechanisms/"/></url><url><loc>https://tutorial.imagrove.com/zh/ota-firmware-updates/03-partition-scheme-and-management/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/ota-firmware-updates/03-partition-scheme-and-management/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/ota-firmware-updates/03-partition-scheme-and-management/"/></url><url><loc>https://tutorial.imagrove.com/zh/ota-firmware-updates/04-arduino-ota-configuration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/ota-firmware-updates/04-arduino-ota-configuration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/ota-firmware-updates/04-arduino-ota-configuration/"/></url><url><loc>https://tutorial.imagrove.com/zh/ota-firmware-updates/05-http-ota-setup/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/ota-firmware-updates/05-http-ota-setup/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/ota-firmware-updates/05-http-ota-setup/"/></url><url><loc>https://tutorial.imagrove.com/zh/ota-firmware-updates/06-firmware-version-management/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/ota-firmware-updates/06-firmware-version-management/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/ota-firmware-updates/06-firmware-version-management/"/></url><url><loc>https://tutorial.imagrove.com/zh/ota-firmware-updates/07-rollback-and-safety-mechanisms/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/ota-firmware-updates/07-rollback-and-safety-mechanisms/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/ota-firmware-updates/07-rollback-and-safety-mechanisms/"/></url><url><loc>https://tutorial.imagrove.com/zh/ota-firmware-updates/08-technical-capability-assessment/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/ota-firmware-updates/08-technical-capability-assessment/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/ota-firmware-updates/08-technical-capability-assessment/"/></url><url><loc>https://tutorial.imagrove.com/zh/ota-firmware-updates/09-customization-possibilities/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/ota-firmware-updates/09-customization-possibilities/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/ota-firmware-updates/09-customization-possibilities/"/></url><url><loc>https://tutorial.imagrove.com/zh/pcba-manufacturing/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/pcba-manufacturing/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/pcba-manufacturing/"/></url><url><loc>https://tutorial.imagrove.com/zh/pcba-manufacturing/01-pcba-manufacturing-soldering-process/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/pcba-manufacturing/01-pcba-manufacturing-soldering-process/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/pcba-manufacturing/01-pcba-manufacturing-soldering-process/"/></url><url><loc>https://tutorial.imagrove.com/zh/product-manager-methodology/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/product-manager-methodology/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/product-manager-methodology/"/></url><url><loc>https://tutorial.imagrove.com/zh/product-manager-methodology/01-product-manager-methodology/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/product-manager-methodology/01-product-manager-methodology/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/product-manager-methodology/01-product-manager-methodology/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-asset-tracking/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-asset-tracking/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-asset-tracking/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-asset-tracking/01-project-architecture-overview/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-asset-tracking/01-project-architecture-overview/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-asset-tracking/01-project-architecture-overview/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-asset-tracking/02-rfid-reader-hardware-setup/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-asset-tracking/02-rfid-reader-hardware-setup/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-asset-tracking/02-rfid-reader-hardware-setup/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-asset-tracking/03-rc522-module-integration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-asset-tracking/03-rc522-module-integration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-asset-tracking/03-rc522-module-integration/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-asset-tracking/04-rfid-tag-uid-reading/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-asset-tracking/04-rfid-tag-uid-reading/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-asset-tracking/04-rfid-tag-uid-reading/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-asset-tracking/05-timetagger-open-source-software/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-asset-tracking/05-timetagger-open-source-software/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-asset-tracking/05-timetagger-open-source-software/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-asset-tracking/06-rest-api-authentication/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-asset-tracking/06-rest-api-authentication/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-asset-tracking/06-rest-api-authentication/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-asset-tracking/07-http-post-request-implementation/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-asset-tracking/07-http-post-request-implementation/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-asset-tracking/07-http-post-request-implementation/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-asset-tracking/08-check-in-api-integration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-asset-tracking/08-check-in-api-integration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-asset-tracking/08-check-in-api-integration/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-asset-tracking/09-state-management-logic/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-asset-tracking/09-state-management-logic/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-asset-tracking/09-state-management-logic/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-asset-tracking/10-led-status-indicators/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-asset-tracking/10-led-status-indicators/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-asset-tracking/10-led-status-indicators/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-asset-tracking/11-technical-capability-assessment/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-asset-tracking/11-technical-capability-assessment/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-asset-tracking/11-technical-capability-assessment/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-asset-tracking/12-customization-possibilities/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-asset-tracking/12-customization-possibilities/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-asset-tracking/12-customization-possibilities/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-auto-dosing/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-auto-dosing/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-auto-dosing/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-auto-dosing/01-project-architecture-overview/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-auto-dosing/01-project-architecture-overview/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-auto-dosing/01-project-architecture-overview/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-auto-dosing/02-relay-module-wiring/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-auto-dosing/02-relay-module-wiring/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-auto-dosing/02-relay-module-wiring/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-auto-dosing/03-pump-control-logic/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-auto-dosing/03-pump-control-logic/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-auto-dosing/03-pump-control-logic/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-auto-dosing/04-level-sensor-integration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-auto-dosing/04-level-sensor-integration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-auto-dosing/04-level-sensor-integration/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-auto-dosing/05-analog-sensor-reading/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-auto-dosing/05-analog-sensor-reading/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-auto-dosing/05-analog-sensor-reading/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-auto-dosing/06-deep-sleep-hourly-wake-up/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-auto-dosing/06-deep-sleep-hourly-wake-up/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-auto-dosing/06-deep-sleep-hourly-wake-up/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-auto-dosing/07-node-red-scheduling-logic/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-auto-dosing/07-node-red-scheduling-logic/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-auto-dosing/07-node-red-scheduling-logic/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-auto-dosing/08-timing-algorithm-implementation/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-auto-dosing/08-timing-algorithm-implementation/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-auto-dosing/08-timing-algorithm-implementation/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-auto-dosing/09-conditional-control-logic/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-auto-dosing/09-conditional-control-logic/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-auto-dosing/09-conditional-control-logic/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-auto-dosing/10-mqtt-control-signal/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-auto-dosing/10-mqtt-control-signal/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-auto-dosing/10-mqtt-control-signal/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-auto-dosing/11-dashboard-visualization/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-auto-dosing/11-dashboard-visualization/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-auto-dosing/11-dashboard-visualization/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-auto-dosing/12-alert-system/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-auto-dosing/12-alert-system/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-auto-dosing/12-alert-system/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-auto-dosing/13-technical-capability-assessment/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-auto-dosing/13-technical-capability-assessment/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-auto-dosing/13-technical-capability-assessment/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-auto-dosing/14-customization-possibilities/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-auto-dosing/14-customization-possibilities/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-auto-dosing/14-customization-possibilities/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-energy-monitoring/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-energy-monitoring/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-energy-monitoring/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-energy-monitoring/01-smart-relay-technologies-overview/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-energy-monitoring/01-smart-relay-technologies-overview/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-energy-monitoring/01-smart-relay-technologies-overview/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-energy-monitoring/02-shelly-device-architecture/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-energy-monitoring/02-shelly-device-architecture/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-energy-monitoring/02-shelly-device-architecture/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-energy-monitoring/03-shelly-mqtt-configuration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-energy-monitoring/03-shelly-mqtt-configuration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-energy-monitoring/03-shelly-mqtt-configuration/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-energy-monitoring/04-tasmota-firmware-flashing/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-energy-monitoring/04-tasmota-firmware-flashing/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-energy-monitoring/04-tasmota-firmware-flashing/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-energy-monitoring/05-tasmota-mqtt-setup/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-energy-monitoring/05-tasmota-mqtt-setup/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-energy-monitoring/05-tasmota-mqtt-setup/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-energy-monitoring/06-power-consumption-data-collection/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-energy-monitoring/06-power-consumption-data-collection/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-energy-monitoring/06-power-consumption-data-collection/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-energy-monitoring/07-voltage-and-current-monitoring/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-energy-monitoring/07-voltage-and-current-monitoring/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-energy-monitoring/07-voltage-and-current-monitoring/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-energy-monitoring/08-mqtt-topic-structure-for-shelly/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-energy-monitoring/08-mqtt-topic-structure-for-shelly/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-energy-monitoring/08-mqtt-topic-structure-for-shelly/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-energy-monitoring/09-node-red-control-flow-design/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-energy-monitoring/09-node-red-control-flow-design/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-energy-monitoring/09-node-red-control-flow-design/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-energy-monitoring/10-power-threshold-logic/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-energy-monitoring/10-power-threshold-logic/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-energy-monitoring/10-power-threshold-logic/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-energy-monitoring/11-grafana-energy-dashboard/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-energy-monitoring/11-grafana-energy-dashboard/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-energy-monitoring/11-grafana-energy-dashboard/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-energy-monitoring/12-alert-and-notification-system/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-energy-monitoring/12-alert-and-notification-system/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-energy-monitoring/12-alert-and-notification-system/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-energy-monitoring/13-technical-capability-assessment/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-energy-monitoring/13-technical-capability-assessment/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-energy-monitoring/13-technical-capability-assessment/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-energy-monitoring/14-implementation-complexity-analysis/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-energy-monitoring/14-implementation-complexity-analysis/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-energy-monitoring/14-implementation-complexity-analysis/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-energy-monitoring/15-customization-possibilities/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-energy-monitoring/15-customization-possibilities/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-energy-monitoring/15-customization-possibilities/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-factory-display/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-display/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-display/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-factory-display/01-e-ink-display-technology-overview/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-display/01-e-ink-display-technology-overview/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-display/01-e-ink-display-technology-overview/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-factory-display/02-e-paper-display-wiring/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-display/02-e-paper-display-wiring/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-display/02-e-paper-display-wiring/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-factory-display/03-gxepd2-library-setup/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-display/03-gxepd2-library-setup/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-display/03-gxepd2-library-setup/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-factory-display/04-text-rendering-on-e-ink/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-display/04-text-rendering-on-e-ink/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-display/04-text-rendering-on-e-ink/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-factory-display/05-image-display-on-e-ink/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-display/05-image-display-on-e-ink/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-display/05-image-display-on-e-ink/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-factory-display/06-https-api-data-fetching-node-red/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-display/06-https-api-data-fetching-node-red/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-display/06-https-api-data-fetching-node-red/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-factory-display/07-json-data-parsing/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-display/07-json-data-parsing/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-display/07-json-data-parsing/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-factory-display/08-deep-sleep-mode-configuration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-display/08-deep-sleep-mode-configuration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-display/08-deep-sleep-mode-configuration/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-factory-display/09-lipo-battery-power-management/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-display/09-lipo-battery-power-management/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-display/09-lipo-battery-power-management/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-factory-display/10-power-consumption-optimization/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-display/10-power-consumption-optimization/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-display/10-power-consumption-optimization/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-factory-display/11-technical-capability-assessment/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-display/11-technical-capability-assessment/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-display/11-technical-capability-assessment/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-factory-display/12-customization-possibilities/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-display/12-customization-possibilities/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-display/12-customization-possibilities/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-factory-environment/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-environment/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-environment/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-factory-environment/01-project-architecture-overview/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-environment/01-project-architecture-overview/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-environment/01-project-architecture-overview/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-factory-environment/02-hardware-components-and-wiring/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-environment/02-hardware-components-and-wiring/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-environment/02-hardware-components-and-wiring/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-factory-environment/03-dht-temperature-sensor-integration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-environment/03-dht-temperature-sensor-integration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-environment/03-dht-temperature-sensor-integration/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-factory-environment/04-light-sensor-integration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-environment/04-light-sensor-integration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-environment/04-light-sensor-integration/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-factory-environment/05-sensor-data-reading-logic/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-environment/05-sensor-data-reading-logic/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-environment/05-sensor-data-reading-logic/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-factory-environment/06-mqtt-data-transmission/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-environment/06-mqtt-data-transmission/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-environment/06-mqtt-data-transmission/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-factory-environment/07-node-red-flow-design/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-environment/07-node-red-flow-design/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-environment/07-node-red-flow-design/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-factory-environment/08-data-processing-and-transformation/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-environment/08-data-processing-and-transformation/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-environment/08-data-processing-and-transformation/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-factory-environment/09-influxdb-data-storage/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-environment/09-influxdb-data-storage/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-environment/09-influxdb-data-storage/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-factory-environment/10-grafana-dashboard-creation/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-environment/10-grafana-dashboard-creation/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-environment/10-grafana-dashboard-creation/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-factory-environment/11-real-time-data-monitoring/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-environment/11-real-time-data-monitoring/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-environment/11-real-time-data-monitoring/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-factory-environment/12-technical-capability-assessment/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-environment/12-technical-capability-assessment/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-environment/12-technical-capability-assessment/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-factory-environment/13-implementation-complexity-analysis/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-environment/13-implementation-complexity-analysis/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-environment/13-implementation-complexity-analysis/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-factory-environment/14-customization-possibilities/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-factory-environment/14-customization-possibilities/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-factory-environment/14-customization-possibilities/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-industrial-broadcast/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-industrial-broadcast/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-industrial-broadcast/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-industrial-broadcast/01-i2s-audio-technology-overview/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-industrial-broadcast/01-i2s-audio-technology-overview/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-industrial-broadcast/01-i2s-audio-technology-overview/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-industrial-broadcast/02-i2s-module-wiring/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-industrial-broadcast/02-i2s-module-wiring/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-industrial-broadcast/02-i2s-module-wiring/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-industrial-broadcast/03-audio-library-dependencies/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-industrial-broadcast/03-audio-library-dependencies/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-industrial-broadcast/03-audio-library-dependencies/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-industrial-broadcast/04-esp8266audio-library-setup/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-industrial-broadcast/04-esp8266audio-library-setup/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-industrial-broadcast/04-esp8266audio-library-setup/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-industrial-broadcast/05-audio-stream-connection/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-industrial-broadcast/05-audio-stream-connection/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-industrial-broadcast/05-audio-stream-connection/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-industrial-broadcast/06-source-url-configuration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-industrial-broadcast/06-source-url-configuration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-industrial-broadcast/06-source-url-configuration/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-industrial-broadcast/07-volume-control-implementation/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-industrial-broadcast/07-volume-control-implementation/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-industrial-broadcast/07-volume-control-implementation/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-industrial-broadcast/08-mqtt-remote-control/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-industrial-broadcast/08-mqtt-remote-control/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-industrial-broadcast/08-mqtt-remote-control/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-industrial-broadcast/09-playstop-commands/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-industrial-broadcast/09-playstop-commands/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-industrial-broadcast/09-playstop-commands/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-industrial-broadcast/10-alarm-notification-functionality/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-industrial-broadcast/10-alarm-notification-functionality/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-industrial-broadcast/10-alarm-notification-functionality/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-industrial-broadcast/11-time-based-scheduling/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-industrial-broadcast/11-time-based-scheduling/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-industrial-broadcast/11-time-based-scheduling/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-industrial-broadcast/12-node-red-scheduling-logic/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-industrial-broadcast/12-node-red-scheduling-logic/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-industrial-broadcast/12-node-red-scheduling-logic/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-industrial-broadcast/13-technical-capability-assessment/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-industrial-broadcast/13-technical-capability-assessment/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-industrial-broadcast/13-technical-capability-assessment/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-industrial-broadcast/14-customization-possibilities/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-industrial-broadcast/14-customization-possibilities/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-industrial-broadcast/14-customization-possibilities/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-remote-inspection/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-remote-inspection/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-remote-inspection/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-remote-inspection/01-esp32-cam-hardware-overview/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-remote-inspection/01-esp32-cam-hardware-overview/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-remote-inspection/01-esp32-cam-hardware-overview/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-remote-inspection/02-camera-module-configuration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-remote-inspection/02-camera-module-configuration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-remote-inspection/02-camera-module-configuration/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-remote-inspection/03-camerawebserver-example/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-remote-inspection/03-camerawebserver-example/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-remote-inspection/03-camerawebserver-example/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-remote-inspection/04-photo-capture-via-mqtt/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-remote-inspection/04-photo-capture-via-mqtt/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-remote-inspection/04-photo-capture-via-mqtt/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-remote-inspection/05-flash-led-control/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-remote-inspection/05-flash-led-control/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-remote-inspection/05-flash-led-control/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-remote-inspection/06-base64-image-encoding/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-remote-inspection/06-base64-image-encoding/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-remote-inspection/06-base64-image-encoding/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-remote-inspection/07-mqtt-image-transmission/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-remote-inspection/07-mqtt-image-transmission/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-remote-inspection/07-mqtt-image-transmission/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-remote-inspection/08-node-red-image-processing/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-remote-inspection/08-node-red-image-processing/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-remote-inspection/08-node-red-image-processing/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-remote-inspection/09-pir-motion-sensor-integration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-remote-inspection/09-pir-motion-sensor-integration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-remote-inspection/09-pir-motion-sensor-integration/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-remote-inspection/10-deep-sleep-with-wake-up-pin/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-remote-inspection/10-deep-sleep-with-wake-up-pin/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-remote-inspection/10-deep-sleep-with-wake-up-pin/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-remote-inspection/11-notification-setup/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-remote-inspection/11-notification-setup/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-remote-inspection/11-notification-setup/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-remote-inspection/12-technical-capability-assessment/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-remote-inspection/12-technical-capability-assessment/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-remote-inspection/12-technical-capability-assessment/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-remote-inspection/13-implementation-complexity-analysis/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-remote-inspection/13-implementation-complexity-analysis/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-remote-inspection/13-implementation-complexity-analysis/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-remote-inspection/14-customization-possibilities/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-remote-inspection/14-customization-possibilities/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-remote-inspection/14-customization-possibilities/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-smart-home/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-smart-home/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-smart-home/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-smart-home/01-smart-home-system-overview/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-smart-home/01-smart-home-system-overview/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-smart-home/01-smart-home-system-overview/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-smart-home/02-lvgl-graphics-library-introduction/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-smart-home/02-lvgl-graphics-library-introduction/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-smart-home/02-lvgl-graphics-library-introduction/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-smart-home/03-tftlcd-display-hardware-selection/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-smart-home/03-tftlcd-display-hardware-selection/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-smart-home/03-tftlcd-display-hardware-selection/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-smart-home/04-lvgl-installation-and-esp32-configuration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-smart-home/04-lvgl-installation-and-esp32-configuration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-smart-home/04-lvgl-installation-and-esp32-configuration/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-smart-home/05-lvgl-ui-design-fundamentals/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-smart-home/05-lvgl-ui-design-fundamentals/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-smart-home/05-lvgl-ui-design-fundamentals/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-smart-home/06-touch-screen-integration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-smart-home/06-touch-screen-integration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-smart-home/06-touch-screen-integration/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-smart-home/07-smart-home-sensor-data-collection/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-smart-home/07-smart-home-sensor-data-collection/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-smart-home/07-smart-home-sensor-data-collection/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-smart-home/08-mqtt-communication-for-smart-home/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-smart-home/08-mqtt-communication-for-smart-home/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-smart-home/08-mqtt-communication-for-smart-home/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-smart-home/09-node-red-smart-home-dashboard/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-smart-home/09-node-red-smart-home-dashboard/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-smart-home/09-node-red-smart-home-dashboard/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-smart-home/10-voice-control-integration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-smart-home/10-voice-control-integration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-smart-home/10-voice-control-integration/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-smart-home/11-scene-automation-and-scheduling/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-smart-home/11-scene-automation-and-scheduling/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-smart-home/11-scene-automation-and-scheduling/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-smart-home/12-technical-capability-assessment/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-smart-home/12-technical-capability-assessment/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-smart-home/12-technical-capability-assessment/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-smart-home/13-customization-possibilities/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-smart-home/13-customization-possibilities/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-smart-home/13-customization-possibilities/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-work-order-button/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-work-order-button/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-work-order-button/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-work-order-button/01-esp32-xiao-hardware-overview/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-work-order-button/01-esp32-xiao-hardware-overview/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-work-order-button/01-esp32-xiao-hardware-overview/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-work-order-button/02-battery-management-system/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-work-order-button/02-battery-management-system/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-work-order-button/02-battery-management-system/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-work-order-button/03-lipo-battery-integration/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-work-order-button/03-lipo-battery-integration/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-work-order-button/03-lipo-battery-integration/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-work-order-button/04-button-circuit-design/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-work-order-button/04-button-circuit-design/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-work-order-button/04-button-circuit-design/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-work-order-button/05-deep-sleep-power-optimization/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-work-order-button/05-deep-sleep-power-optimization/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-work-order-button/05-deep-sleep-power-optimization/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-work-order-button/06-battery-life-calculation/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-work-order-button/06-battery-life-calculation/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-work-order-button/06-battery-life-calculation/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-work-order-button/07-wifi-connection-on-button-press/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-work-order-button/07-wifi-connection-on-button-press/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-work-order-button/07-wifi-connection-on-button-press/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-work-order-button/08-mqtt-message-transmission/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-work-order-button/08-mqtt-message-transmission/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-work-order-button/08-mqtt-message-transmission/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-work-order-button/09-day-battery-life-achievement/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-work-order-button/09-day-battery-life-achievement/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-work-order-button/09-day-battery-life-achievement/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-work-order-button/10-node-red-trigger-flow/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-work-order-button/10-node-red-trigger-flow/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-work-order-button/10-node-red-trigger-flow/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-work-order-button/11-technical-capability-assessment/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-work-order-button/11-technical-capability-assessment/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-work-order-button/11-technical-capability-assessment/"/></url><url><loc>https://tutorial.imagrove.com/zh/project-work-order-button/12-customization-possibilities/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/project-work-order-button/12-customization-possibilities/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/project-work-order-button/12-customization-possibilities/"/></url><url><loc>https://tutorial.imagrove.com/zh/service-installation/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/service-installation/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/service-installation/"/></url><url><loc>https://tutorial.imagrove.com/zh/service-installation/01-mqtt-broker-mosquitto-emqx/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/service-installation/01-mqtt-broker-mosquitto-emqx/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/service-installation/01-mqtt-broker-mosquitto-emqx/"/></url><url><loc>https://tutorial.imagrove.com/zh/service-installation/02-automation-engine-node-red/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/service-installation/02-automation-engine-node-red/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/service-installation/02-automation-engine-node-red/"/></url><url><loc>https://tutorial.imagrove.com/zh/service-installation/03-time-series-database-influxdb/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/service-installation/03-time-series-database-influxdb/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/service-installation/03-time-series-database-influxdb/"/></url><url><loc>https://tutorial.imagrove.com/zh/service-installation/04-visualization-platform-grafana/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/service-installation/04-visualization-platform-grafana/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/service-installation/04-visualization-platform-grafana/"/></url><url><loc>https://tutorial.imagrove.com/zh/service-installation/05-relational-database-mariadb/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/service-installation/05-relational-database-mariadb/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/service-installation/05-relational-database-mariadb/"/></url><url><loc>https://tutorial.imagrove.com/zh/service-installation/06-stack-integration-and-testing/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/service-installation/06-stack-integration-and-testing/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/service-installation/06-stack-integration-and-testing/"/></url><url><loc>https://tutorial.imagrove.com/zh/service-installation/07-performance-and-scalability/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/service-installation/07-performance-and-scalability/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/service-installation/07-performance-and-scalability/"/></url><url><loc>https://tutorial.imagrove.com/zh/service-installation/08-licensing-and-cost-analysis/</loc><xhtml:link rel="alternate" hreflang="en" href="https://tutorial.imagrove.com/service-installation/08-licensing-and-cost-analysis/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://tutorial.imagrove.com/zh/service-installation/08-licensing-and-cost-analysis/"/></url></urlset>