<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>IoT Archives | DMC, Inc.</title>
	<atom:link href="https://static.dmcinfo.com/blog/category/application-development/iot/feed/index.xml" rel="self" type="application/rss+xml" />
	<link></link>
	<description></description>
	<lastBuildDate>Fri, 04 Sep 2026 21:22:03 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.2</generator>

<image>
	<url>https://static.dmcinfo.com/wp-content/uploads/2025/04/site-icon-150x150.png</url>
	<title>IoT Archives | DMC, Inc.</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Smarter Asset Tracking with Cloud‑Based IoT Solutions</title>
		<link>https://static.dmcinfo.com/blog/41391/iot-solutions-asset-tracking-on-cloud-platforms/</link>
		
		<dc:creator><![CDATA[Kirsten Zimmerle]]></dc:creator>
		<pubDate>Wed, 25 Feb 2026 13:00:00 +0000</pubDate>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[IoT]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/?p=41391</guid>

					<description><![CDATA[<p>As our clients manage more connected devices than ever before &#8211; sensors, trackers, and more spread across cities, factories, or remote locations – DMC is often asked: How do I track and manage these assets in a centralized way? Cloud platforms have emerged as a powerful foundation for tracking IoT assets in real time. By [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/41391/iot-solutions-asset-tracking-on-cloud-platforms/">Smarter Asset Tracking with Cloud‑Based IoT Solutions</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">As our clients manage more connected devices than ever before &#8211; sensors, trackers, and more spread across cities, factories, or remote locations – DMC is often asked: How do I track and manage these assets in a centralized way?</p>



<p class="wp-block-paragraph">Cloud platforms have emerged as a powerful foundation for tracking IoT assets in real time. By combining IoT connectivity with cloud-based data processing and analytics, businesses can monitor device location, health, and performance throughout the entire asset lifecycle. This approach not only improves operational efficiency but also enhances security, reliability, and decision-making in increasingly connected environments. Here, DMC discusses various approaches for asset tracking in the field.</p>



<h2 id="h-options-for-tracking-assets-in-the-cloud" class="wp-block-heading">Options for Tracking Assets in the Cloud</h2>



<p class="wp-block-paragraph">A variety of tools exist to support an organizational strategy for cloud-based asset management. Since this is a broad solution category, with requirements differing from use case to use case, the best structure for a particular organization can vary. Different platforms present tradeoffs in how they model assets, where they run, and how much responsibility they place on engineering teams.</p>



<h3 id="h-open-source-and-self-managed-iot-platforms" class="wp-block-heading">Open-Source and Self-Managed IoT Platforms</h3>



<p class="wp-block-paragraph">Open-source platforms sit at the foundation layer of IoT. They provide the essential capabilities—device connectivity, telemetry ingestion, rules engines, and dashboards—without prescribing how your asset tracking solution should look or behave.</p>



<p class="wp-block-paragraph">These tools appeal to teams that want full control over their data, infrastructure, and deployment model. If your assets don’t fit neatly into predefined schemas or your workflows are non-standard, these platforms can provide the building blocks to model assets exactly the way your business requires. They’re also attractive for organizations that want to avoid vendor lock-in or support hybrid and multi-cloud deployments.</p>



<p class="wp-block-paragraph">The upside of this flexibility is transparency and extensibility. You can inspect the architecture, customize nearly every layer, and keep licensing costs relatively low at small to medium scale. The trade-off, however, is ownership: scaling, securing, and operating the platform requires in-house expertise or professional support.</p>



<p class="wp-block-paragraph">At their core, open-source platforms act as a foundation on which to build your solution, not a finished service you simply turn on.</p>



<p class="wp-block-paragraph"><strong>Examples: Thingsboard, EdgeX Foundry, KubeEdge, and fully custom implementations</strong>.</p>



<h3 id="h-cloud-provider-iot-platforms" class="wp-block-heading">Cloud Provider IoT Platforms</h3>



<p class="wp-block-paragraph">Large cloud providers offer IoT tooling that supports a different approach, with different trade-offs. Rather than focusing on the asset-focused elements of a solution, the core IoT offerings from these large providers tend to focus on doing a few things extremely well: secure device connectivity, massive-scale messaging, and deep integration with cloud services.</p>



<p class="wp-block-paragraph">Asset tracking on these platforms emerges by composing multiple services together—IoT hubs, databases, analytics tools, visualization layers, and automation pipelines. This model works particularly well for large-scale deployments with unpredictable growth, especially when the organization is already heavily invested in a specific cloud ecosystem.</p>



<p class="wp-block-paragraph">The strengths here are hard to ignore: proven global scalability, mature security and identity management, and seamless access to cloud-native analytics, AI, and automation services. The trade-offs are mostly architectural. Asset management is not turnkey, pricing models can be complex, and teams must make careful design decisions across many interconnected services.</p>



<p class="wp-block-paragraph">In short, building your solution with these tools and infrastructure can provide a lot of power and configurability, but the usefulness of the asset tracking solution is defined by how thoughtfully you assemble the stack on top of it.</p>



<p class="wp-block-paragraph"><strong>Examples: AWS IOT and Azure IoT Hub</strong>.</p>



<h3 id="h-edge-first-and-hybrid-iot-platforms" class="wp-block-heading">Edge-First and Hybrid IoT Platforms</h3>



<p class="wp-block-paragraph">It is also worth noting that there are both open-source and large cloud-provider-based options that focus on the edge elements of these solutions. These platforms shift asset tracking closer to where assets actually operate—factories, vehicles, and remote sites. Rather than relying on sending everything to the cloud, these systems enable local processing, decision-making, and resilience in environments with low-latency or intermittent connectivity.</p>



<p class="wp-block-paragraph">This model is especially valuable for safety-critical systems, bandwidth-constrained scenarios, or assets that must continue operating when disconnected. By reducing cloud dependency, edge platforms align more closely with real-world operating conditions.</p>



<p class="wp-block-paragraph">The trade-off is complexity. Edge deployments require device management strategies, careful orchestration, and are often paired with a cloud platform rather than used standalone.</p>



<p class="wp-block-paragraph">Edge-first platforms ultimately redefine asset tracking as distributed by nature, not purely cloud-centric.</p>



<p class="wp-block-paragraph"><strong>Examples: AWS Greengrass, Azure IoT Edge, and EdgeX Foundry</strong>.</p>



<h3 id="h-industrial-and-enterprise-asset-platforms" class="wp-block-heading">Industrial and Enterprise Asset Platforms</h3>



<p class="wp-block-paragraph">Companies focused on manufacturing, industrial, or enterprise applications offer platforms for managing assets that are tailored towards the idea that assets are not just devices emitting data, but long-lived physical entities with maintenance histories, operational constraints, and regulatory requirements.</p>



<p class="wp-block-paragraph">These platforms are common in manufacturing, utilities, energy, and transportation, where assets are expensive, critical, and expected to operate for decades. They excel at rich asset modeling and digital twins, and they often include built-in workflows for maintenance, reliability, and operations. Tight integration with ERP, EAM, and OT systems makes them especially powerful in asset-heavy enterprises.</p>



<p class="wp-block-paragraph">That depth comes at a cost. Implementations tend to be expensive and time-consuming; the solutions are frequently limited in their application, with minimal or limited flexibility for experimental or non-industrial use cases.</p>



<p class="wp-block-paragraph">Here, asset tracking is framed as part of operational activities, rather than merely a data collection exercise.</p>



<p class="wp-block-paragraph"><strong>Examples: Siemens MindSphere, IBM Maximo, and ThingWorx</strong>.</p>



<h3 id="h-managed-iot-and-asset-tracking" class="wp-block-heading">Managed IoT and Asset Tracking </h3>



<p class="wp-block-paragraph">Finally, a wide range of companies offer SaaS or PaaS products in the asset management space. For the most part, these products focus on one thing above all else: reducing complexity. They aim to deliver end-to-end asset tracking solutions with minimal setup, prebuilt dashboards, and opinionated workflows that cover the most common use cases.</p>



<p class="wp-block-paragraph">These tools are well-suited for teams that want faster time-to-value, small to mid-scale deployments, or lack the resources to manage complex cloud architectures. The experience is typically streamlined, pricing is clearer, and operational overhead is much lower than with self-managed platforms.</p>



<p class="wp-block-paragraph">The pain points with these products show up as deployments grow or requirements become more specialized. Customization options can be limited, advanced analytics may be constrained, and vendor lock-in becomes a real consideration.</p>



<p class="wp-block-paragraph">These platforms prioritize speed and reduced complexity over architectural freedom, which can be limiting depending on the application.</p>



<h2 id="h-custom-development-support-for-iot-asset-tracking" class="wp-block-heading">Custom Development Support for IoT Asset Tracking</h2>



<p class="wp-block-paragraph">There’s no single “best” IoT asset tracking platform—only platforms that align more closely with your organization’s scale, requirements, and data handling priorities. Additionally, regardless of the platform selected, some configuration and customization are required to make sure the solution works for your use case. In these cases, support from a team experienced in implementation can make all the difference in delivering a complete, useful tool for your business.&nbsp;</p>



<h3 id="h-infrastructure-and-system-setup" class="wp-block-heading">Infrastructure and System Setup</h3>



<p class="wp-block-paragraph"><a href="https://static.dmcinfo.com/services/application-development/custom-fleet-management-solutions/">Centralizing asset tracking</a> requires setting up the necessary <a href="https://static.dmcinfo.com/services/application-development/cloud-application-development/">cloud infrastructure</a> for managing telemetry from devices, running analytics, and providing user access to data. Working with a team familiar with the <a href="https://static.dmcinfo.com/services/application-development/devops/">tooling</a> and components required helps you to get up and running sooner, with a solution that balances robustness and cost considerations for your specific use case.</p>



<h3 id="h-dashboard-development-or-configuration" class="wp-block-heading">Dashboard Development or Configuration</h3>



<p class="wp-block-paragraph">Much of the value of cloud-based asset management comes from the ability to monitor device status and to run analytics on incoming telemetry. Visualization is an important component of making this data accessible to users, and working with a team familiar with a wide variety of available options ensures you get a result that matches your needs for user accessibility, brand look and feel, and ability to postprocess the data. This might include <a href="https://static.dmcinfo.com/services/application-development/user-interface-design/">UI/UX support</a>, customization of existing tooling, <a href="https://static.dmcinfo.com/services/digital-workplace-solutions/">integration with other applications</a>, <a href="https://static.dmcinfo.com/services/digital-workplace-solutions/business-intelligence/">BI dashboard developmen</a>t, or <a href="https://static.dmcinfo.com/services/application-development/web-application-development/">custom web portal development</a>.</p>



<h3 id="h-edge-device-customization-connectivity-and-firmware" class="wp-block-heading">Edge Device Customization, Connectivity, and Firmware</h3>



<p class="wp-block-paragraph">Whether you are looking to expand your devices&#8217; connectivity or update the capabilities to better support your centralized tracking and management, working with a proven team can ensure the effort is completed to a high technical standard without sacrificing cost and schedule efficiency. This could include hardware updates or a new design to <a href="https://static.dmcinfo.com/services/embedded-development-and-embedded-programming/embedded-device-connectivity/">improve device connectivity</a> to the cloud, updating data reporting portions of <a href="https://static.dmcinfo.com/services/embedded-development-and-embedded-programming/firmware-programming/">device firmware</a> to best take advantage of the configurability and visibility afforded by centralized asset management, or implementing Over-the-Air (OTA) updates for your device.</p>



<h2 id="h-explore-more-of-our-iot-resources" class="wp-block-heading">Explore more of our IoT resources:</h2>



<ul class="wp-block-list">
<li><a href="https://static.dmcinfo.com/blog/41266/custom-iot-development-services/">Custom IoT Development Services</a></li>



<li><a href="https://static.dmcinfo.com/services/application-development/custom-fleet-management-solutions/">Custom Fleet Management Solutions</a></li>
</ul>



<div class="wp-block-group alignwide has-custom-light-blue-background-color has-background is-layout-flow wp-container-core-group-is-layout-dbd34961 wp-block-group-is-layout-flow" style="border-radius:20px;margin-top:var(--wp--preset--spacing--50);margin-bottom:var(--wp--preset--spacing--50);padding-top:var(--wp--preset--spacing--50);padding-right:0;padding-bottom:var(--wp--preset--spacing--50);padding-left:0">
<div class="wp-block-columns alignwide are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-43efaee5 wp-block-columns-is-layout-flex" style="padding-right:var(--wp--preset--spacing--60);padding-left:var(--wp--preset--spacing--60)">
<div class="wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:85%">
<h3 class="wp-block-heading has-text-align-left" id="h-have-an-upcoming-project-dmc-can-help-you-take-the-next-step"><strong>Unlock real-time visibility with a custom IoT asset tracking solution from DMC.</strong></h3>



<p class="has-text-align-left wp-block-paragraph" id="h-need-help-turning-ideas-into-outcomes-automation-project-to-the-next-level-contact-us-today-to-learn-more-about-our-solutions-and-how-we-can-help-you-achieve-your-goals">Ready to build your Asset Management Solution? Optimize your operations with DMC&#8217;s <a href="https://static.dmcinfo.com/services/embedded-development-and-embedded-programming/iot-solutions/" id="704">IoT</a> and <a href="https://static.dmcinfo.com/services/digital-workplace-solutions/cloud-erp-solutions/" data-type="page" data-id="41005">cloud solutions</a> and learn more about our <a href="https://static.dmcinfo.com/services/application-development/" data-type="page" data-id="434">App Development</a> expertise.</p>
</div>



<div class="wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:15%">
<div class="wp-block-buttons is-horizontal is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-2236275c wp-block-buttons-is-layout-flex">
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-base-contrast-color has-text-color has-link-color wp-element-button" href="https://static.dmcinfo.com/contact/">Contact Us</a></div>
</div>
</div>
</div>
</div>
<p>The post <a href="https://static.dmcinfo.com/blog/41391/iot-solutions-asset-tracking-on-cloud-platforms/">Smarter Asset Tracking with Cloud‑Based IoT Solutions</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Custom IoT Development Services</title>
		<link>https://static.dmcinfo.com/blog/41266/custom-iot-development-services/</link>
		
		<dc:creator><![CDATA[Kirsten Zimmerle]]></dc:creator>
		<pubDate>Mon, 02 Feb 2026 13:00:00 +0000</pubDate>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[IoT]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/?p=41266</guid>

					<description><![CDATA[<p>The Internet of Things (IoT) is a rapidly growing and evolving technical niche. Driven by the convenience and transparency gains associated with linking a physical object to a digital presence, more businesses are exploring IoT integration as part of their systems. Choosing a platform for an IoT solution is an important part of the process, [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/41266/custom-iot-development-services/">Custom IoT Development Services</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">The Internet of Things (IoT) is a rapidly growing and evolving technical niche. Driven by the convenience and transparency gains associated with linking a physical object to a digital presence, more businesses are exploring IoT integration as part of their systems. Choosing a platform for an IoT solution is an important part of the process, with many options and tradeoffs to consider. Here, we will be discussing when a custom IoT solution is a good choice.</p>



<h2 id="h-iot-solutions-overview" class="wp-block-heading">IoT Solutions Overview</h2>



<p class="wp-block-paragraph">IoT solutions are typically comprised of a fleet of field devices, a cloud-hosted hub to which the devices communicate, and a user portal providing visualization and control.&nbsp;</p>



<p class="wp-block-paragraph">The field devices could be a wide variety of &#8220;things&#8221;, including single-purpose sensors, consumer electronics, manufacturing equipment, vehicles, or many more. Each device is provided with a way to identify itself as unique compared to the rest of the fleet and a protocol for communicating with the hub.</p>



<p class="wp-block-paragraph">The hub system works to send and receive messages to the devices, and to process and save data for the portal to consume.</p>



<p class="wp-block-paragraph">The portal provides an interface for a user to view, handle, and react to the data provided by the field devices and may take the form of a web interface, a mobile application, or both.</p>



<p class="wp-block-paragraph">These solutions provide value for their end users through increased data availability and transparency, as well as convenient device management and control. On the reporting side, messaging from the devices can relay status, utilization, and data for aggregate reporting across the system. On the management side, the portal provides an easy way to view information about the devices, download updates to the devices, or control the configuration in the field.</p>



<h2 id="h-custom-vs-of-the-shelf" class="wp-block-heading">Custom VS. Of-the-Shelf</h2>



<p class="wp-block-paragraph">There are existing solutions available for purchase for a number of use cases that benefit from IoT integration; the most familiar of these might be consumer systems like thermostats or security systems. Other places you might see an off-the-shelf IoT solution could be inventory tracking for retail, or “smart building” solutions that monitor energy use and HVAC conditions.</p>



<p class="wp-block-paragraph">The alternative to an off the shelf is a custom-built solution, where the user application, cloud infrastructure, devices, or all three are self-managed. These solutions might provide a way to add additional visibility to an existing process or define a new system with unique reporting and management requirements, and can be applicable across any industry, with examples ranging from <a href="https://static.dmcinfo.com/our-work/iiot-interface-for-agricultural-irrigation-injection-system/">agriculture</a> to <a href="https://static.dmcinfo.com/our-work/package-delivery-kiosk-system/">logistics</a> to <a href="https://static.dmcinfo.com/our-work/turnkey-iot-product-development-for-morning-star-technology/">consumer products</a>.</p>



<p class="wp-block-paragraph">As such, a necessary choice when deciding to incorporate IoT is whether to go with an off-the-shelf solution or to build a custom setup.</p>



<h2 id="h-when-to-build-a-custom-iot-solution" class="wp-block-heading">When to Build a Custom IoT Solution</h2>



<p class="wp-block-paragraph">Custom IoT Solutions provide advantages in flexibility and control over their off-the-shelf counterparts. Here are some cases where those advantages might make building a custom IoT solution the right choice:</p>



<h3 id="h-creating-or-integrating-a-custom-device" class="wp-block-heading">Creating or Integrating a Custom Device</h3>



<p class="wp-block-paragraph">When working with a custom device, the ability to control the messaging capabilities, formatting, and frequency that a custom solution provides can be very useful. Additionally, setting up the cloud side of the system to work directly with the device allows for extended remote capabilities, such as Over the Air (OTA) updates to the devices and direct control of the device or device configuration.</p>



<h3 id="h-specific-management-or-reporting-requirements" class="wp-block-heading">Specific Management or Reporting Requirements</h3>



<p class="wp-block-paragraph">Making specific workflows or reports work with vendor systems can be a challenge. Therefore, custom solutions deliver value in this area by reducing or removing the dependency on external systems; if the solution is built custom, it can be built to match the desired workflows and provide the desired data from the end device without excessive configuration.</p>



<h3 id="h-maintaining-future-flexibility" class="wp-block-heading">Maintaining Future Flexibility</h3>



<p class="wp-block-paragraph">Custom solutions can change as the system does; if components change or new requirements come up, the solution can be updated to match. In addition to uncoupling the solution from a vendor’s roadmap, this can also facilitate the agile development of new systems by allowing solution components to evolve together.</p>



<h3 id="h-infrastructure-and-cost-control" class="wp-block-heading">Infrastructure and Cost Control</h3>



<p class="wp-block-paragraph">Custom solutions provide direct access to and control over the associated cloud resources. This&nbsp;provides complete control over how data is routed, stored, and secured relative to other business data, rather than depending on a third-party cloud tenant. If a business already maintains a cloud tenant, the infrastructure required for an IoT solution can frequently be added in a straightforward way. Direct access to these resources can also provide better visibility and control over recurring hosting costs, rather than this information being obscured by a license.</p>



<h2 id="h-advantages-of-working-with-a-software-engineering-firm-for-custom-iot-solutions" class="wp-block-heading">Advantages of Working with a Software Engineering Firm for Custom IoT Solutions</h2>



<p class="wp-block-paragraph">If building a custom IoT solution looks like the right option for your business, a software engineering firm can help your implementation project run smoothly and be completed successfully. Working with a team of engineers experienced in custom specifications and implementing the necessary components brings a breadth of experience to building the solution that you may not otherwise achieve.</p>



<h3 id="h-technology-expertise" class="wp-block-heading">Technology Expertise</h3>



<p class="wp-block-paragraph">The first advantage a firm like DMC can bring to your project is expertise in the technologies underlying <a href="https://static.dmcinfo.com/services/application-development/iot-solutions/">IoT solutions</a>. This includes experience <a href="https://static.dmcinfo.com/services/embedded-development-and-embedded-programming/">designing and writing firmware</a> for custom devices, implementing <a href="https://static.dmcinfo.com/services/application-development/cloud-application-development/">cloud architectures</a>, and developing custom <a href="https://static.dmcinfo.com/services/application-development/web-application-development/">web</a> or <a href="https://static.dmcinfo.com/services/application-development/mobile-application-development/">mobile</a> applications. This expertise enables the team to build system components efficiently and cost-effectively and implement the communication interfaces between them. Additionally, experience in the platforms used means implementation can avoid common pitfalls.</p>



<h3 id="h-thorough-design-process" class="wp-block-heading">Thorough Design Process</h3>



<p class="wp-block-paragraph">Another advantage of working with a software firm to build out a custom IoT solution is the thorough design process. Since the team frequently works to customer specifications, there is an established process to make sure the solution is designed to best match all of your requirements.</p>



<p class="wp-block-paragraph">First, engineers will work with you to refine your requirements into specifications for user workflows and device communication. Then, the UI/UX team can develop mock-ups of the project interfaces. After review, the team can begin building the components and regularly review them with the client team to ensure alignment.</p>



<h3 id="h-project-management" class="wp-block-heading">Project Management</h3>



<p class="wp-block-paragraph">Finally, working with a software firm also brings the advantage of a dedicated project manager and an established project management process for your implementation. The project manager is familiar with the tasks required to deliver the solution successfully and is equipped with tools to track the schedule, budget, and requirements. A standard cadence of meetings and status updates keeps you involved in the development effort, able to provide feedback, ask questions, and guide the solution over the course of building the solution. Additionally, as the project evolves, the dedicated project manager can quickly reprioritize tasks and generate new specifications as needed.</p>



<h2 id="h-explore-our-work-in-iot" class="wp-block-heading">Explore Our Work in IoT</h2>



<div class="wp-block-group alignwide is-layout-flow wp-block-group-is-layout-flow">
<div class="wp-block-cb-carousel-v2 cb-carousel-block" data-cb-slides-per-view="1" data-cb-slides-per-group="1" data-cb-space-between="15" data-cb-speed="300" data-cb-navigation="true" data-cb-pagination="true" data-cb-loop="true" data-cb-autoplay="true" data-cb-autoplay-speed="3000" data-cb-breakpoints="{&quot;768&quot;:{&quot;slidesPerView&quot;:3,&quot;slidesPerGroup&quot;:1}}"><div class="swiper"><div class="cb-wrapper swiper-wrapper">
<div class="wp-block-cb-slide-v2 cb-slide swiper-slide">
<div class="wp-block-query is-layout-flow wp-block-query-is-layout-flow"><ul class="wp-block-post-template is-layout-flow wp-block-post-template-is-layout-flow"><li class="wp-block-post post-15218 our_work type-our_work status-publish has-post-thumbnail hentry work_category-azure work_category-digital-workplace-solutions work_category-food-and-beverage work_category-internet-of-things-iot">
<figure class="wp-block-post-featured-image"><a href="https://static.dmcinfo.com/our-work/operational-technology-network-security-monitoring/" target="_self" ><img fetchpriority="high" decoding="async" width="1400" height="500" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Operational-Technology-Network-Security-Monitoring.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Operational Technology Network Security Monitoring" style="border-radius:20px;object-fit:cover;" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/05/Operational-Technology-Network-Security-Monitoring.png 1400w, https://static.dmcinfo.com/wp-content/uploads/2025/05/Operational-Technology-Network-Security-Monitoring-300x107.png 300w, https://static.dmcinfo.com/wp-content/uploads/2025/05/Operational-Technology-Network-Security-Monitoring-1024x366.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2025/05/Operational-Technology-Network-Security-Monitoring-768x274.png 768w" sizes="(max-width: 1400px) 100vw, 1400px" /></a></figure>

<h4 class="has-link-color wp-elements-1 wp-block-post-title"><a href="https://static.dmcinfo.com/our-work/operational-technology-network-security-monitoring/" target="_self" >Operational Technology Network Security Monitoring</a></h4>
</li></ul></div>
</div>



<div class="wp-block-cb-slide-v2 cb-slide swiper-slide">
<div class="wp-block-query is-layout-flow wp-block-query-is-layout-flow"><ul class="wp-block-post-template is-layout-flow wp-block-post-template-is-layout-flow"><li class="wp-block-post post-15018 our_work type-our_work status-publish has-post-thumbnail hentry work_category-consumer-goods work_category-embedded-development-programming work_category-internet-of-things-iot work_category-product-development">
<figure class="wp-block-post-featured-image"><a href="https://static.dmcinfo.com/our-work/turnkey-iot-product-development-for-morning-star-technology/" target="_self" ><img decoding="async" width="1400" height="500" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/unnamed-file-123.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Turnkey IoT Product Development for Morning Star Technology" style="border-radius:20px;object-fit:cover;" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/05/unnamed-file-123.png 1400w, https://static.dmcinfo.com/wp-content/uploads/2025/05/unnamed-file-123-300x107.png 300w, https://static.dmcinfo.com/wp-content/uploads/2025/05/unnamed-file-123-1024x366.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2025/05/unnamed-file-123-768x274.png 768w" sizes="(max-width: 1400px) 100vw, 1400px" /></a></figure>

<h4 class="has-link-color wp-elements-2 wp-block-post-title"><a href="https://static.dmcinfo.com/our-work/turnkey-iot-product-development-for-morning-star-technology/" target="_self" >Turnkey IoT Product Development for Morning Star Technology</a></h4>
</li></ul></div>
</div>



<div class="wp-block-cb-slide-v2 cb-slide swiper-slide">
<div class="wp-block-query is-layout-flow wp-block-query-is-layout-flow"><ul class="wp-block-post-template is-layout-flow wp-block-post-template-is-layout-flow"><li class="wp-block-post post-14893 our_work type-our_work status-publish has-post-thumbnail hentry work_category-application-development work_category-battery-pack-test-systems work_category-consumer-goods work_category-internet-of-things-iot work_category-test-measurement-automation work_category-user-interface-design work_category-web-application-development">
<figure class="wp-block-post-featured-image"><a href="https://static.dmcinfo.com/our-work/aws-cloud-hosted-battery-management-system/" target="_self" ><img decoding="async" width="1400" height="500" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/unnamed-file-96.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="AWS Cloud Hosted Battery Management System" style="border-radius:20px;object-fit:cover;" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/05/unnamed-file-96.png 1400w, https://static.dmcinfo.com/wp-content/uploads/2025/05/unnamed-file-96-300x107.png 300w, https://static.dmcinfo.com/wp-content/uploads/2025/05/unnamed-file-96-1024x366.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2025/05/unnamed-file-96-768x274.png 768w" sizes="(max-width: 1400px) 100vw, 1400px" /></a></figure>

<h4 class="has-link-color wp-elements-3 wp-block-post-title"><a href="https://static.dmcinfo.com/our-work/aws-cloud-hosted-battery-management-system/" target="_self" >AWS Cloud Hosted Battery Management System</a></h4>
</li></ul></div>
</div>



<div class="wp-block-cb-slide-v2 cb-slide swiper-slide">
<div class="wp-block-query is-layout-flow wp-block-query-is-layout-flow"><ul class="wp-block-post-template is-layout-flow wp-block-post-template-is-layout-flow"><li class="wp-block-post post-14842 our_work type-our_work status-publish has-post-thumbnail hentry work_category-application-development work_category-azure work_category-digital-workplace-solutions work_category-internet-of-things-iot work_category-web-application-development">
<figure class="wp-block-post-featured-image"><a href="https://static.dmcinfo.com/our-work/iot-application-for-water-leak-detection-and-correction/" target="_self" ><img decoding="async" width="1400" height="500" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/IoT-Application-for-Water-Leak-AWSAM.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="IoT Application for Water Leak Detection and Correction" style="border-radius:20px;object-fit:cover;" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/05/IoT-Application-for-Water-Leak-AWSAM.jpg 1400w, https://static.dmcinfo.com/wp-content/uploads/2025/05/IoT-Application-for-Water-Leak-AWSAM-300x107.jpg 300w, https://static.dmcinfo.com/wp-content/uploads/2025/05/IoT-Application-for-Water-Leak-AWSAM-1024x366.jpg 1024w, https://static.dmcinfo.com/wp-content/uploads/2025/05/IoT-Application-for-Water-Leak-AWSAM-768x274.jpg 768w" sizes="(max-width: 1400px) 100vw, 1400px" /></a></figure>

<h4 class="has-link-color wp-elements-4 wp-block-post-title"><a href="https://static.dmcinfo.com/our-work/iot-application-for-water-leak-detection-and-correction/" target="_self" >IoT Application for Water Leak Detection and Correction</a></h4>
</li></ul></div>
</div>



<div class="wp-block-cb-slide-v2 cb-slide swiper-slide">
<div class="wp-block-query is-layout-flow wp-block-query-is-layout-flow"><ul class="wp-block-post-template is-layout-flow wp-block-post-template-is-layout-flow"><li class="wp-block-post post-14800 our_work type-our_work status-publish has-post-thumbnail hentry work_category-application-development work_category-azure work_category-chemical work_category-digital-workplace-solutions work_category-energy-and-utilities work_category-internet-of-things-iot work_category-manufacturing-automation-and-intelligence work_category-plc-programming work_category-siemens-plc work_category-user-interface-design work_category-web-application-development">
<figure class="wp-block-post-featured-image"><a href="https://static.dmcinfo.com/our-work/iiot-interface-for-agricultural-irrigation-injection-system/" target="_self" ><img decoding="async" width="1400" height="500" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/unnamed-file-86.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="IIoT Interface for Agricultural Irrigation Injection System" style="border-radius:20px;object-fit:cover;" srcset="https://static.dmcinfo.com/wp-content/uploads/2025/05/unnamed-file-86.png 1400w, https://static.dmcinfo.com/wp-content/uploads/2025/05/unnamed-file-86-300x107.png 300w, https://static.dmcinfo.com/wp-content/uploads/2025/05/unnamed-file-86-1024x366.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2025/05/unnamed-file-86-768x274.png 768w" sizes="(max-width: 1400px) 100vw, 1400px" /></a></figure>

<h4 class="has-link-color wp-elements-5 wp-block-post-title"><a href="https://static.dmcinfo.com/our-work/iiot-interface-for-agricultural-irrigation-injection-system/" target="_self" >IIoT Interface for Agricultural Irrigation Injection System</a></h4>
</li></ul></div>
</div>
</div></div><div class="cb-pagination swiper-pagination"></div><div class="cb-button-prev swiper-button-prev"></div><div class="cb-button-next swiper-button-next"></div></div>
</div>



<div class="wp-block-group alignwide has-custom-light-blue-background-color has-background is-layout-flow wp-container-core-group-is-layout-dbd34961 wp-block-group-is-layout-flow" style="border-radius:20px;margin-top:var(--wp--preset--spacing--50);margin-bottom:var(--wp--preset--spacing--50);padding-top:var(--wp--preset--spacing--50);padding-right:0;padding-bottom:var(--wp--preset--spacing--50);padding-left:0">
<div class="wp-block-columns alignwide are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-43efaee5 wp-block-columns-is-layout-flex" style="padding-right:var(--wp--preset--spacing--60);padding-left:var(--wp--preset--spacing--60)">
<div class="wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:85%">
<h3 class="wp-block-heading has-text-align-left" id="h-have-an-upcoming-project-dmc-can-help-you-take-the-next-step"><strong>Looking for a custom IoT solution? DMC&#8217;s experts can help you build and scale it.</strong></h3>



<p class="has-text-align-left wp-block-paragraph" id="h-need-help-turning-ideas-into-outcomes-automation-project-to-the-next-level-contact-us-today-to-learn-more-about-our-solutions-and-how-we-can-help-you-achieve-your-goals">Take your project to the next level with engineering solutions from DMC. Learn more about our <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/" id="420">Automation</a> and <a href="https://static.dmcinfo.com/services/test-and-measurement-automation/" id="428">Test &amp; Measurement</a> solutions for your next <a href="https://static.dmcinfo.com/services/embedded-development-and-embedded-programming/iot-solutions/" data-type="page" data-id="704">IoT project</a>.</p>
</div>



<div class="wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:15%">
<div class="wp-block-buttons is-horizontal is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-2236275c wp-block-buttons-is-layout-flex">
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-base-contrast-color has-text-color has-link-color wp-element-button" href="https://static.dmcinfo.com/contact/">Contact Us</a></div>
</div>
</div>
</div>
</div>



<p class="wp-block-paragraph"></p>
<p>The post <a href="https://static.dmcinfo.com/blog/41266/custom-iot-development-services/">Custom IoT Development Services</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Updating Microsoft Defender for IoT</title>
		<link>https://static.dmcinfo.com/blog/15825/updating-microsoft-defender-for-iot/</link>
		
		<dc:creator><![CDATA[Pavlo Mnykh]]></dc:creator>
		<pubDate>Tue, 26 Nov 2024 17:01:50 +0000</pubDate>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[Digital Workplace Solutions]]></category>
		<category><![CDATA[IoT]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/15825/updating-microsoft-defender-for-iot/</guid>

					<description><![CDATA[<p>Microsoft Defender for IoT is a powerful security tool that can help to protect your IoT/OT environment. Almost every new update improves the detection, brings new features to help protect your systems and fixing issues in previous releases, you need to keep your sensors up to date. Since there are multiple deployment options, including cloud, [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/15825/updating-microsoft-defender-for-iot/">Updating Microsoft Defender for IoT</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Microsoft Defender for IoT is a powerful security tool that can help to protect your IoT/OT environment. Almost every new update improves the detection, brings new features to help protect your systems and fixing issues in previous releases, you need to keep your sensors up to date. Since there are multiple deployment options, including cloud, on-premises, or hybrid networks, your update options might also be different.&nbsp;</p>



<h2 id="h-how-to-update-nbsp-defender-for-iot" class="wp-block-heading">How to Update&nbsp;Defender for IoT</h2>



<p class="wp-block-paragraph">1. Navigate&nbsp;to portal.azure.com and search for Microsoft Defender for IoT.&nbsp;</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/microsoft-defender-iot-welcome.png" alt="Microsoft Defender for IoT welcome screen"/></figure>



<p class="wp-block-paragraph">2. Navigate&nbsp;to “Sites and Sensors.”&nbsp;</p>



<p class="wp-block-paragraph">3. In the “Site and Sensors” list, choose the sensor you want to update.&nbsp;</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/microsoft-defender-iot-sites-sensors.png" alt="Microsoft Defender for IoT sites and sensors list"/></figure>



<p class="wp-block-paragraph">4. You’ll have two options: “Remote update” (push an online upgrade) or “Download upgrade files” (manually upgrade from the local network).&nbsp;</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/microsoft-defender-iot-remote-upgrade.png" alt="Microsoft Defender for IoT upgrade options"/></figure>



<p class="wp-block-paragraph">5. In our example we will update locally to 22.3.10 and push an online update to 24.1.3 after.&nbsp;</p>



<p class="wp-block-paragraph">6.1.1. If you select “Download upgrade files,”&nbsp;you need to choose your sensor version (in our case it’s 22.3.9) and if you have a local manager.&nbsp;</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/microsoft-defender-iot-download-upgrade.png" alt="Microsoft Defender for IoT download upgrade"/></figure>



<p class="wp-block-paragraph">6.1.2. From the “Available versions” list you need to choose&nbsp;what version you want to update. If you need to update to an older version, choose “Show more.”&nbsp;</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/microsoft-defender-iot-available-versions.png" alt="Microsoft Defender for IoT versions"/></figure>



<p class="wp-block-paragraph">6.1.3.&nbsp;Navigate to your Defender for IoT internal IP address and login with CyberX credentials.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/microsoft-defender-iot-sensor-signin.png" alt="Microsoft Defender for Iot sensor sign in"/></figure>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/microsoft-defender-iot-dashboard.png" alt="Microsoft Defender for IoT dashboard"/></figure>



<p class="wp-block-paragraph">6.1.4.&nbsp;Navigate&nbsp;to system settings, software update, upload file. Choose the upgrade file you previously downloaded and click open. When it finishes uploading it will display “Status: Updated successfully (Agent will reboot in 30 seconds).&#8221; Note: it took&nbsp;~5 minutes.</p>



<p class="wp-block-paragraph">6.1.5. When it’s done, you can see that the version of the system changed.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/microsoft-defender-iot-new-version.png" alt="Microsoft Defender for IoT new version"/></figure>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/microsoft-defender-iot-system-settings.png" alt="Microsoft Defender for IoT system settings"/></figure>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/microsoft-defender-iot-downloads.png" alt="Microsoft Defender for IoT downloads"/></figure>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/microsoft-defender-iot-software-update.png" alt="Microsoft Defender for IoT software update"/></figure>



<p class="wp-block-paragraph">6.2.1. Choose “Step one: Send package to sensor.”&nbsp;</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/microsoft-defender-iot-send-package.png" alt="Microsoft Defender for IoT send package"/></figure>



<p class="wp-block-paragraph">6.2.2.&nbsp;Choose the version you want to install (the latest available version will display). If you need an older version, click on “Show more” and choose the version you prefer to install.&nbsp;Then, click on “Send package.”</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/microsoft-defender-iot-install-version_1.png" alt="Microsoft Defender for IoT install version"/></figure>



<p class="wp-block-paragraph">6.2.3&nbsp;You should see the status under “Sensor version” tab.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/microsoft-defender-iot-sensor-version-status.png" alt="Microsoft defender for iot sensor version"/></figure>



<p class="wp-block-paragraph">6.2.4. When it’s done, the status will change to “Ready to update.&#8221;</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/microsoft-defender-iot-ready-to-update.png" alt="microsoft defender for iot ready to update"/></figure>



<p class="wp-block-paragraph">6.2.5.&nbsp;Navigate&nbsp;to the “Remote update” and choose “Step two: Update sensor” and click “Update now”, “Confirm update.”</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/microsoft-defender-iot-confirm-update.png" alt="microsoft defender for iot confirm update"/></figure>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/microsoft-defender-iot-confirm-update-2.png" alt="microsoft defender for iot confirm update"/></figure>



<p class="wp-block-paragraph">6.2.6.&nbsp;The “Sensor version&#8221; will change to “Installing.&#8221;</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/microsoft-defender-iot-installing.png" alt="microsoft defender for iot installing"/></figure>



<div class="wp-block-group alignwide has-custom-light-blue-background-color has-background is-layout-flow wp-container-core-group-is-layout-dbd34961 wp-block-group-is-layout-flow" style="border-radius:20px;margin-top:var(--wp--preset--spacing--50);margin-bottom:var(--wp--preset--spacing--50);padding-top:var(--wp--preset--spacing--50);padding-right:0;padding-bottom:var(--wp--preset--spacing--50);padding-left:0">
<div class="wp-block-columns alignwide are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-43efaee5 wp-block-columns-is-layout-flex" style="padding-right:var(--wp--preset--spacing--60);padding-left:var(--wp--preset--spacing--60)">
<div class="wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:85%">
<h3 class="wp-block-heading has-text-align-left" id="h-have-an-upcoming-project-dmc-can-help-you-take-the-next-step"><strong>Keep IoT and OT Security Sensors Up to Date</strong>.</h3>



<p class="has-text-align-left wp-block-paragraph" id="h-need-help-turning-ideas-into-outcomes-automation-project-to-the-next-level-contact-us-today-to-learn-more-about-our-solutions-and-how-we-can-help-you-achieve-your-goals">See our <a href="https://static.dmcinfo.com/services/digital-workplace-solutions/" data-type="page" data-id="437">Digital Workplace Solutions</a> expertise in Microsoft Defender for <a href="https://static.dmcinfo.com/services/embedded-development-and-embedded-programming/iot-solutions/" data-type="page" data-id="704">IoT</a>, sensor updates, and security management across cloud, on-premises, and hybrid environments.</p>
</div>



<div class="wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:15%">
<div class="wp-block-buttons is-horizontal is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-2236275c wp-block-buttons-is-layout-flex">
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-base-contrast-color has-text-color has-link-color wp-element-button" href="https://static.dmcinfo.com/contact/">Contact Us</a></div>
</div>
</div>
</div>
</div>
<p>The post <a href="https://static.dmcinfo.com/blog/15825/updating-microsoft-defender-for-iot/">Updating Microsoft Defender for IoT</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Integrate Azure IoT Edge, .NET, OpenTelemetry Collector, and Application Insights</title>
		<link>https://static.dmcinfo.com/blog/15913/how-to-integrate-azure-iot-edge-net-opentelemetry-collector-and-application-insights/</link>
		
		<dc:creator><![CDATA[DMC]]></dc:creator>
		<pubDate>Fri, 25 Oct 2024 13:26:46 +0000</pubDate>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[Web Application Development]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/15913/how-to-integrate-azure-iot-edge-net-opentelemetry-collector-and-application-insights/</guid>

					<description><![CDATA[<p>All industries continue using the Internet-of-Things (IoT) to collect, monitor, and analyze data. One popular IoT option is using Azure IoTHub, which this tutorial will focus on.&#160; Connecting IoT Devices to an IoT Edge device allows for data processing to be even faster since an IoT Edge device allows you to analyze data closer to [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/15913/how-to-integrate-azure-iot-edge-net-opentelemetry-collector-and-application-insights/">How to Integrate Azure IoT Edge, .NET, OpenTelemetry Collector, and Application Insights</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">All industries continue using the Internet-of-Things (IoT) to collect, monitor, and analyze data. One popular IoT option is using Azure IoTHub, which this tutorial will focus on.&nbsp;</p>



<p class="wp-block-paragraph">Connecting IoT Devices to an <a href="https://learn.microsoft.com/en-us/azure/iot-edge/about-iot-edge?view=iotedge-1.4" target="_blank">IoT Edge</a> device allows for data processing to be even faster since an IoT Edge device allows you to analyze data closer to your IoT devices. This gives you the advantage of preprocessing data prior to sending it to the cloud. &nbsp;</p>



<p class="wp-block-paragraph">In this article, we will review how we can get data running on an ASP.NET application of a child device to an OpenTelemetry Collector module running on an IoT Edge device up into Application Insights in the Azure cloud. Since the application is running on a separate device than the device running the OpenTelemetry Collector module, this example can be used to send trace and metrics data to Application Insights when an IoT device does not have direct access to the internet but the IoT Edge device does.&nbsp;</p>



<p class="wp-block-paragraph"><a href="https://opentelemetry.io/docs/what-is-opentelemetry/" target="_blank">OpenTelemetry</a> is a framework and toolkit to manage telemetry data. It provides a protocol that specifies how telemetry should be formatted and set. OpenTelemetry is favorable to use since it is vendor and tool-agnostic and can be used with different <a href="https://opentelemetry.io/docs/concepts/observability-primer/#what-is-observability" target="_blank">Observability</a> backends such as <a href="https://www.jaegertracing.io/" target="_blank">Jaegar</a> and <a href="https://prometheus.io/" target="_blank">Prometheus</a>. Additionally, OpenTelemetry provides SDKs to implement clients in different languages, including .NET.&nbsp;</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/OpenTelemetry-framework.png" alt="OpenTelemetry framework"/></figure>



<h2 id="h-prerequisites-nbsp" class="wp-block-heading">Prerequisites&nbsp;</h2>



<ul class="wp-block-list">
<li>Visual Studio 2022 Preview&nbsp;</li>



<li>Docker Desktop&nbsp;</li>



<li>Application Insights resource in Azure&nbsp;
 
 
<ul class="wp-block-list">
<li>Application Insights is not a totally free service, but Azure offers&nbsp;a <a href="https://azure.microsoft.com/en-us/pricing/offers/ms-azr-0044p" target="_blank">free account</a> that comes with $200 in Azure credits.</li>
</ul>
</li>



<li>IoT Edge device to deploy modules&nbsp;
 
 
<ul class="wp-block-list">
<li>The IoT Edge device will be used to deploy the OpenTelemetry Collector module. You can follow <a href="https://learn.microsoft.com/en-us/azure/iot-edge/how-to-visual-studio-develop-module?view=iotedge-1.4&amp;pivots=iotedge-dev-cli" target="_blank">this tutorial</a> to set up your IoT Edge device and example module.&nbsp;</li>
</ul>
</li>
</ul>



<h2 id="h-implement-the-opentelemtry-exporter-in-asp-net-application-nbsp" class="wp-block-heading">Implement the OpenTelemtry Exporter in ASP.NET Application&nbsp;</h2>



<p class="wp-block-paragraph">To get started, I created an ASP.NET Core Web App (Razor Pages) project with .NET 8.0 from the Visual Studio project templates.&nbsp;</p>



<p class="wp-block-paragraph">Next, we will add an <a href="https://opentelemetry.io/docs/languages/net/exporters/" target="_blank">OpenTelemetry exporter</a> to the service registration of our web application. There are a variety of exporters to choose from, but for this tutorial, we will use <a href="https://prometheus.io/" target="_blank">Prometheus</a> to export metrics and <a href="https://opentelemetry.io/docs/specs/otel/protocol/" target="_blank">OpenTelemetry Protocol (OTLP)</a> to export application logs.&nbsp;</p>



<p class="wp-block-paragraph">I chose Prometheus for metrics since it is highly reliable when recording numeric time series data, and it has an easy plug-in to use with C# and ASP.NET. I chose OTLP for logs since it also has an easy plug-in for ASP.NET and Prometheus does not support exporting traces.&nbsp;</p>



<p class="wp-block-paragraph">The Prometheus Exporter relies on the following packages:&nbsp;</p>



<ul class="wp-block-list">
<li><a href="https://www.nuget.org/packages/OpenTelemetry.Exporter.Prometheus.AspNetCore/1.7.0-rc.1" target="_blank">OpenTelemetry.Exporter.Prometheus.AspNetCore&nbsp;</a></li>



<li><a href="https://www.nuget.org/packages/OpenTelemetry.Extensions.Hosting" target="_blank">OpenTelemetry.Extensions.Hosting&nbsp;</a></li>
</ul>



<p class="wp-block-paragraph">The OTLP Exporter relies on the following packages:&nbsp;</p>



<ul class="wp-block-list">
<li><a href="https://www.nuget.org/packages/OpenTelemetry.Exporter.OpenTelemetryProtocol/" target="_blank">OpenTelemetry.Exporter.OpenTelemetryProtocol&nbsp;</a></li>
</ul>



<p class="wp-block-paragraph">Your Program.cs file should look like the following:&nbsp;</p>



<ol class="wp-block-list">
<li>Configure logging to log to the console and to the OpenTelemetry OTLP Exporter. The IP address used for the OTLP Exporter endpoint should be the IP address of the IoT Edge Device. The default <a href="https://opentelemetry.io/docs/specs/otel/protocol/exporter/">HTTP port is 4318 with the relative path of “v1/logs”</a> as described here.&nbsp;</li>
</ol>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Program_cs-step-1.png" alt="PpenTelemetry exporter"/></figure>



<ol start="2" class="wp-block-list">
<li>Configure OpenTelemetry to use the Prometheus Exporter to export metrics. This example configures built-in metrics for “Microsoft.AspNetCore.Hosting” and “Microsoft.AspNet.Diagnostics.”&nbsp;It also configures metrics, for example, custom metric “HatCo.HatStore.”</li>
</ol>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Program_cs-step-2_1.png" alt="Configure OpenTelemetry"/></figure>



<ol start="3" class="wp-block-list">
<li>Configure the web application.&nbsp;</li>
</ol>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Program_cs-step-3.png" alt="Configure web app"/></figure>



<ol start="4" class="wp-block-list">
<li>Configure the web application to use the Prometheus scraping endpoint. Run background, test logic to generate logs and custom metric data for “HatCo.HatStore”. Run the application.&nbsp;</li>
</ol>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Program_cs-step-4.png" alt="Prometheus scraping endpoint"/></figure>



<h2 id="h-add-the-opentelemetry-collector-module-to-your-iot-edge-device-nbsp" class="wp-block-heading">Add the OpenTelemetry Collector Module to your IoT Edge Device&nbsp;</h2>



<p class="wp-block-paragraph">We are going to test running the IoT Edge Modules in the simulator. This will allow the modules to run on your local Docker container registry.&nbsp;</p>



<p class="wp-block-paragraph">Within your IoT Edge VS project, we will edit the “deployment.template.json” file to add the OpenTelemetry Collector module. The “modules” section should look like the following example.&nbsp;</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/modules-selection.png" alt="Add OpenTelemetry Collector module"/></figure>



<p class="wp-block-paragraph">The image name should match the desired image name when we create the OpenTelemetry Collector image in Build the Module. The $APPI_CONNECTION_STRING is an environment variable on your local computer that can be set in a .env file within the VS solution. APPI_CONNECTION_STRING sets up an environment variable within the OpenTelemetry Collector module, and this variable is used in the config.yaml file for configuring the module which I&#8217;ll&nbsp;detail in the next section. &nbsp;</p>



<p class="wp-block-paragraph">Once the deployment file is edited, right-click the Edge project and select “Generate Deployment for IoT Edge.&#8221;</p>



<h2 id="h-create-the-configuration-file-for-opentelemetry-collector" class="wp-block-heading">Create the Configuration File for OpenTelemetry Collector</h2>



<p class="wp-block-paragraph">Before running the OpenTelemetry Collector module on our IoT Edge device, we will want to configure how the OpenTelemetry Collector module will receive data from exporters in our ASP.NET application and configure how the OpenTelemetry Collector should export the data it receives. The <a href="https://opentelemetry.io/docs/collector/configuration/" target="_blank">configuration</a> for the module goes into a .yaml file. Your configuration file should look similar to the example below. You can add this config.yaml file into your IoT Edge solution that was created in the IoT Edge tutorial.&nbsp;</p>



<p class="wp-block-paragraph">In this example, we have configured the OpenTelemetry Collector module to use a Prometheus receiver to scrape metrics. The Prometheus receiver on the OpenTelemetry Collector module has to actively scrape the endpoint where the child device is running the ASP.NET application. We then use Azure Monitor to report those metrics to Application Insights. For the “scrape_configs” section, the “targets” are the endpoints where you would like to scrape metrics from. You can have multiple “scrape_configs”. Note that as configured, Prometheus will scrape only from HTTP endpoints. If your ASP.NET project uses different ports for HTTP and HTTPS, ensure to provide the HTTP port.&nbsp;</p>



<p class="wp-block-paragraph">We have also configured an OTLP receiver to retrieve logs. The default endpoint for the OTLP receiver using the HTTP protocol is<strong> https://static.dmcinfo.com/v1/logs</strong> which is what is configured for the OTLP exporter on the ASP.NET project. “Localhost” here references the Edge device. The logs are also exported to Application Insights via Azure Monitor. <em>Note: the &#8220;localhost&#8221; link is part of the tutorial and can only be accessed locally as part of running the tutorial itself.&nbsp;&nbsp;</em></p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/configure-OTLP-receive-logs.png" alt="Create the Configuration File for OpenTelemetry Collector "/></figure>



<h2 id="h-build-the-module-nbsp" class="wp-block-heading">Build the Module&nbsp;</h2>



<p class="wp-block-paragraph">To build the module in Docker Desktop, we will utilize the public <a href="https://hub.docker.com/r/otel/opentelemetry-collector-contrib" target="_blank">OpenTelemetry Collector module image</a>, and then we will copy our configuration file into it to modify the agent behavior. Create a Dockerfile to pull the OpenTelemetry Collector module image and copy over your configuration file. In the Dockerfile, we expose 4318 so that the ASP.NET application can push logs to our OTLP endpoint. The example Dockerfile below assumes that the Dockerfile and the config.yaml file are in the same directory.&nbsp;</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/build-module-docker-desktop.png" alt="example Dockerfile "/></figure>



<p class="wp-block-paragraph">Within a command prompt, navigate to the directory where your Dockerfile.amd64 file lives. Run the following command to build and push your image to your local Docker container registry.&nbsp;</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#1e1e1e"><span style="background:#c7c7c7;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#1e1e1e">PowerShell</span></span><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>docker build -t localhost:5000/opentelemetrycollector:0.0.1-windows-amd64 -f Dockerfile.amd64 . </textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">docker build -t localhost:</span><span style="color: #B5CEA8">5000</span><span style="color: #D4D4D4">/opentelemetrycollector:</span><span style="color: #B5CEA8">0.0</span><span style="color: #D4D4D4">.</span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">-windows-amd64 </span><span style="color: #D4D4D4">-f</span><span style="color: #D4D4D4"> Dockerfile.amd64 . </span></span></code></pre></div>



<h2 id="h-deploy-the-edge-device-and-collect-logs-and-metrics-nbsp" class="wp-block-heading">Deploy the Edge Device and Collect Logs and Metrics&nbsp;</h2>



<p class="wp-block-paragraph">After generating your deployment file for the Edge device, right-click the Edge project and select “Build and Run IoT Edge Modules in Simulator.”&nbsp;This will run the OpenTelemetry Collector module from your Edge device on your local instance of Docker Desktop. You should see the logs for the OpenTelemetry Collector module trying to scrape your application metrics.&nbsp;</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/deploy-edge-device.png" alt="deploy edge device"/></figure>



<h2 id="h-view-metrics-and-logs-in-application-insights-nbsp" class="wp-block-heading">View Metrics and Logs in Application Insights&nbsp;</h2>



<p class="wp-block-paragraph">Once the Edge device is running, run your ASP.NET project. Navigate to your Application Insights resource in Azure Portal. In the left-hand navigation bar within the Application Insights resource under Monitor, select Logs. Query the logs for “traces” and “customMetrics.”&nbsp;&nbsp;</p>



<p class="wp-block-paragraph">Under traces, you will see your application logs appear.&nbsp;</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/application-logs-appear.png" alt="application logs appear"/></figure>



<p class="wp-block-paragraph">Under “customMetrics”, you will see your application metrics which includes the example metric “hat_sold_Hats_total.&#8221;</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/application-metrics-with-example.png" alt="application metrics with example"/></figure>



<h2 id="h-conclusion-nbsp" class="wp-block-heading">Conclusion&nbsp;</h2>



<p class="wp-block-paragraph">With this tutorial as an example, you now have the ability to collect metrics and logs via an IoT Edge device from multiple applications!&nbsp;</p>



<div class="wp-block-group alignwide has-custom-light-blue-background-color has-background is-layout-flow wp-container-core-group-is-layout-dbd34961 wp-block-group-is-layout-flow" style="border-radius:20px;margin-top:var(--wp--preset--spacing--50);margin-bottom:var(--wp--preset--spacing--50);padding-top:var(--wp--preset--spacing--50);padding-right:0;padding-bottom:var(--wp--preset--spacing--50);padding-left:0">
<div class="wp-block-columns alignwide are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-43efaee5 wp-block-columns-is-layout-flex" style="padding-right:var(--wp--preset--spacing--60);padding-left:var(--wp--preset--spacing--60)">
<div class="wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:85%">
<h3 class="wp-block-heading has-text-align-left" id="h-have-an-upcoming-project-dmc-can-help-you-take-the-next-step"><strong>Extend Application Observability to the IoT Edge</strong>.</h3>



<p class="has-text-align-left wp-block-paragraph" id="h-need-help-turning-ideas-into-outcomes-automation-project-to-the-next-level-contact-us-today-to-learn-more-about-our-solutions-and-how-we-can-help-you-achieve-your-goals">Explore our <a href="https://static.dmcinfo.com/services/application-development/" data-type="page" data-id="434">Application Development</a> expertise in Azure IoT Edge, .NET, OpenTelemetry, and Application Insights for advanced <a href="https://static.dmcinfo.com/services/embedded-development-and-embedded-programming/iot-solutions/" data-type="page" data-id="704">IoT capabilities</a>.</p>
</div>



<div class="wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:15%">
<div class="wp-block-buttons is-horizontal is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-2236275c wp-block-buttons-is-layout-flex">
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-base-contrast-color has-text-color has-link-color wp-element-button" href="https://static.dmcinfo.com/contact/">Contact Us</a></div>
</div>
</div>
</div>
</div>
<p>The post <a href="https://static.dmcinfo.com/blog/15913/how-to-integrate-azure-iot-edge-net-opentelemetry-collector-and-application-insights/">How to Integrate Azure IoT Edge, .NET, OpenTelemetry Collector, and Application Insights</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Exploring ThingsBoard: An IoT Platform for Your Next Project</title>
		<link>https://static.dmcinfo.com/blog/16032/exploring-thingsboard-an-iot-platform-for-your-next-project/</link>
		
		<dc:creator><![CDATA[Brayton Larson]]></dc:creator>
		<pubDate>Tue, 20 Aug 2024 16:23:30 +0000</pubDate>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[IoT]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/16032/exploring-thingsboard-an-iot-platform-for-your-next-project/</guid>

					<description><![CDATA[<p>The Internet of Things (IoT) is transforming industries by enabling smarter, data-driven decisions. To fully harness the power of IoT, you need the right platform—and that’s where ThingsBoard comes in. As a comprehensive IoT platform, ThingsBoard excels in device management, data visualization, and more, making it an ideal choice for various software development projects. At [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/16032/exploring-thingsboard-an-iot-platform-for-your-next-project/">Exploring ThingsBoard: An IoT Platform for Your Next Project</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">The Internet of Things (IoT) is transforming industries by enabling smarter, data-driven decisions. To fully harness the power of IoT, you need the right platform—and that’s where ThingsBoard comes in. As a comprehensive IoT platform, ThingsBoard excels in device management, data visualization, and more, making it an ideal choice for various software development projects.</p>



<p class="wp-block-paragraph">At DMC, we offer a wide range of <a href="https://static.dmcinfo.com/services/application-development">software consulting services</a>, and our experience with ThingsBoard is just one part of our extensive toolkit. Whether you need help with <a href="https://static.dmcinfo.com/services/application-development/iot-solutions">IoT solutions</a>, custom software development, or anything in between, we’ve got you covered. In this post, we’ll explore the capabilities of ThingsBoard and how you can leverage it to build a professional IoT solution.</p>



<h2 id="h-what-is-thingsboard" class="wp-block-heading">What is ThingsBoard?</h2>



<p class="wp-block-paragraph"><a href="https://thingsboard.io/" target="_blank">ThingsBoard</a> is an IoT platform that stands out for its versatility in device management, data visualization, and customer management. These features are all available out of the box and can be set up with minimal overhead. It supports multiple device protocols, including MQTT, CoAP, HTTP, and others, making it compatible with a wide array of hardware and software systems.</p>



<p class="wp-block-paragraph">The platform offers flexible hosting options—whether you prefer cloud-based solutions on Azure or AWS, or a self-hosted environment. This flexibility allows you to scale your IoT projects as needed, making ThingsBoard a strong choice for businesses of all sizes.</p>



<h2 id="h-how-dmc-leverages-thingsboard-for-iot-success" class="wp-block-heading">How DMC Leverages ThingsBoard for IoT Success</h2>



<p class="wp-block-paragraph">At DMC, our software consulting services encompass a wide range of technologies, and ThingsBoard is one of the many tools we use to deliver top-notch IoT solutions.</p>



<h3 id="h-airvac-vacuum-sewer-systems" class="wp-block-heading">AirVac Vacuum Sewer Systems</h3>



<p class="wp-block-paragraph">For<a href="https://www.airvac.com/en/" target="_blank"> AirVac</a>, a subsidiary of Aqseptance Group, we utilized ThingsBoard to develop a custom IoT dashboard for managing vacuum sewer systems. The project involved real-time telemetry data and a detailed vacuum station dashboard, demonstrating ThingsBoard’s robust visualization capabilities.</p>



<p class="wp-block-paragraph">The&nbsp;Device Map Dashboard allows an operator to easily view all their deployed devices and any active alarms or relevant telemetry on them.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/device-map-with-tooltip_1.png" alt=""/></figure>



<p class="wp-block-paragraph">Live telemetry plots with adjustable time ranges are incredibly simple to implement in Thingsboard as shown below.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Live-telemetry.png" alt=""/></figure>



<p class="wp-block-paragraph">More Traditional SCADA style dashboards can be implemented as well as shown below.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/vacuum-station-with-alarms.png" alt=""/></figure>



<h2 id="h-why-choose-thingsboard-for-your-iot-and-software-development-needs" class="wp-block-heading">Why Choose ThingsBoard for Your IoT and Software Development Needs</h2>



<h3 id="h-data-visualization" class="wp-block-heading">Data Visualization</h3>



<p class="wp-block-paragraph">One of the key strengths of ThingsBoard is its powerful data visualization tools. The platform’s built-in widgets and customizable dashboards allow for real-time monitoring and analysis, making it easier to gain actionable insights from your IoT data. <a href="https://demo.thingsboard.io/dashboard/e8e409c0-f2b5-11e6-a6ee-bb0136cc33d0?publicId=963ab470-34c9-11e7-a7ce-bb0136cc33d0" rel="noopener" target="_blank">Check out the live demo</a> to see ThingsBoard in action (see it in Dark Mode by clicking the icon in the top right).</p>



<h3 id="h-asset-and-device-management" class="wp-block-heading">Asset and Device Management</h3>



<p class="wp-block-paragraph">ThingsBoard makes asset management straightforward with its built-in user access controls. Whether managing a handful of devices or thousands, the platform’s scalable architecture ensures that your IoT solution grows alongside your business.&nbsp;</p>



<h3 id="h-alarm-and-notification-handling" class="wp-block-heading">Alarm and Notification Handling</h3>



<p class="wp-block-paragraph">ThingsBoard’s alarm handling features are another highlight. With trigger-based alarms linked to device telemetry, you can integrate notifications via services like Twilio to stay informed about critical events in real-time.</p>



<h2 id="h-partner-with-dmc-for-your-next-software-project" class="wp-block-heading">Partner with DMC for Your Next Software Project</h2>



<p class="wp-block-paragraph">Whether you’re exploring the potential of IoT with ThingsBoard or need a partner for a <a href="https://static.dmcinfo.com/services/application-development">complex software development project</a>, DMC is here to help. Our team of experts is ready to guide you through every step of your project, ensuring that you achieve your goals efficiently and effectively.</p>



<p class="wp-block-paragraph">If you’re searching for a reliable partner to implement an <a href="https://static.dmcinfo.com/services/application-development/iot-solutions">IoT solution</a> or any other software project, look no further. <a href="https://static.dmcinfo.com/contact">Let’s collaborate</a> to bring your vision to life with a platform and a partner that understands the full spectrum of software development needs.</p>



<div class="wp-block-group alignwide has-custom-light-blue-background-color has-background is-layout-flow wp-container-core-group-is-layout-dbd34961 wp-block-group-is-layout-flow" style="border-radius:20px;margin-top:var(--wp--preset--spacing--50);margin-bottom:var(--wp--preset--spacing--50);padding-top:var(--wp--preset--spacing--50);padding-right:0;padding-bottom:var(--wp--preset--spacing--50);padding-left:0">
<div class="wp-block-columns alignwide are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-43efaee5 wp-block-columns-is-layout-flex" style="padding-right:var(--wp--preset--spacing--60);padding-left:var(--wp--preset--spacing--60)">
<div class="wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:85%">
<h3 class="wp-block-heading has-text-align-left" id="h-have-an-upcoming-project-dmc-can-help-you-take-the-next-step"><strong>Turn Connected Device Data into Actionable Insights</strong></h3>



<p class="has-text-align-left wp-block-paragraph" id="h-need-help-turning-ideas-into-outcomes-automation-project-to-the-next-level-contact-us-today-to-learn-more-about-our-solutions-and-how-we-can-help-you-achieve-your-goals">Explore our <a href="https://static.dmcinfo.com/services/application-development/" data-type="page" data-id="434">Application Development</a> and <a href="https://static.dmcinfo.com/services/embedded-development-and-embedded-programming/iot-solutions/" data-type="page" data-id="704">IoT</a> expertise in ThingsBoard for scalable device management, real-time visualization, telemetry, and alarm handling.</p>
</div>



<div class="wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:15%">
<div class="wp-block-buttons is-horizontal is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-2236275c wp-block-buttons-is-layout-flex">
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-base-contrast-color has-text-color has-link-color wp-element-button" href="https://static.dmcinfo.com/contact/">Contact Us</a></div>
</div>
</div>
</div>
</div>
<p>The post <a href="https://static.dmcinfo.com/blog/16032/exploring-thingsboard-an-iot-platform-for-your-next-project/">Exploring ThingsBoard: An IoT Platform for Your Next Project</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>An Introduction to Node-Red: Processing and Sending PLC Data to the Cloud</title>
		<link>https://static.dmcinfo.com/blog/17181/an-introduction-to-node-red-processing-and-sending-plc-data-to-the-cloud/</link>
		
		<dc:creator><![CDATA[Perry Lin]]></dc:creator>
		<pubDate>Thu, 05 Oct 2023 18:26:04 +0000</pubDate>
				<category><![CDATA[IoT]]></category>
		<category><![CDATA[iiot]]></category>
		<category><![CDATA[node]]></category>
		<category><![CDATA[node red]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/17181/an-introduction-to-node-red-processing-and-sending-plc-data-to-the-cloud/</guid>

					<description><![CDATA[<p>In this blog, I&apos;d like to introduce a prominent software in the realm of Industrial IoT applications: Node-Red. In a sentence, Node-Red is a graphical development tool that is quickly becoming the industry standard for IIoT applications. It&apos;s referred to as a &quot;graphical development tool&quot;&#160;because you are essentially writing JavaScript code with nodes instead of [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/17181/an-introduction-to-node-red-processing-and-sending-plc-data-to-the-cloud/">An Introduction to Node-Red: Processing and Sending PLC Data to the Cloud</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">In this blog, I&apos;d like to introduce a prominent software in the realm of Industrial IoT applications: <a href="https://nodered.org/" target="_blank">Node-Red</a>. In a sentence, Node-Red is a graphical development tool that is quickly becoming the industry standard for IIoT applications. It&apos;s referred to as a &quot;graphical development tool&quot;&nbsp;because you are essentially writing JavaScript code with nodes instead of text. Each node is a visual programming element. Its capabilities for PLC data-processing are broad but, fundamentally, the software is very straightforward to use.</p>

<p class="wp-block-paragraph">Before we&nbsp;discuss the functionalities of Node-Red, it&apos;s important to address one question: when would I use Node-Red? Node-Red is most commonly used in the following&nbsp;cases:</p>

<ol class="wp-block-list">
 <li>A&nbsp;client wants to store PLC data in the cloud. This could be logging data in an Azure Hub database and then using that data to generate PowerBI models.</li>
 <li>A client wants to be remotely alerted when something in the PLC logic occurs. Perhaps they want to be notified when a temperature sensor reads a certain value and take action accordingly.</li>
 <li>Both of the above!</li>
</ol>

<p class="wp-block-paragraph">There are edge cases where Node-Red is used to remotely control PLC tags, but this is typically not recommended. In short, any time you have PLC data that you want to process and send to the cloud (whether to store it in a database or notify you directly), Node-Red will do the job.</p>

<p class="wp-block-paragraph">It&apos;s important to note that Node-Red needs some hardware to connect to your PLC. This could be a PC or IoT device that is connected to your network. In my case, I used a Siemens IoT2050 Advanced that&nbsp;came with Node-Red pre-installed.</p>

<figure class="wp-block-image"><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/node-red-layout.png"  /></figure>

<p class="wp-block-paragraph">The overall layout of the Node-Red is relatively simple. On the left, you have your toolbox of &quot;nodes&quot;. Each provides a different functionality, and there is a large library of community-made nodes that you can import using the &quot;manage palette&quot; option in&nbsp;settings.</p>

<p class="wp-block-paragraph">In the center, you have your working area. This is where you will drag in nodes to write your processing logic. Notice the tabs at the top of the working area; each tab is&nbsp;called a &quot;flow&quot;. These are like pages in an Excel sheet or function blocks in a PLC program.&nbsp;Each flow can&nbsp;store tag data in its own memory, like the internal memory of a PLC function block.</p>

<p class="wp-block-paragraph">The various icons on the top-right corner provide you with a variety of details about your project, but the most important one to have open is the debug window. The debug window acts similarly to&nbsp;the console window in any programming environment. This window&nbsp;is where you will see the outputs of your code. You can locate this by navigating to the beetle icon.</p>

<p class="wp-block-paragraph">The last important feature of the Node-Red layout is the big red &quot;Deploy&quot; button. This runs your code. Node-Red behaves similarly to a PLC; once you deploy your logic, it will run continuously until you re-deploy the program with any changes.</p>

<h2 class="wp-block-heading"><span>Debugging: Inject Node &amp; Debug Node</span></h2>

<p class="wp-block-paragraph">Before we can discuss some basic Node-Red logic, we should understand two essential debugging/early development nodes: Inject and Debug.</p>

<figure class="wp-block-image"><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/node-red-inject-debug.png"  /></figure>

<p class="wp-block-paragraph">Node-Red logic is initiated by a message being sent. In practice, this might be a PLC Boolean flipping to &quot;True&quot;. For troubleshooting purposes, it&apos;s useful to be able to inject a message whenever you want to initiate a flow. This is where the inject node becomes crucial for initial logic development.</p>

<p class="wp-block-paragraph">While the inject node is essential for starting a flow, the debug node is essential for observing the output of a flow. It would be impossible to troubleshoot without knowing what your output is. Wiring your node logic into a debug node sends the&nbsp;message payload into the debug window. Any node&apos;s output can be wired into a debug node. This gives you the ability to observe your message payload at&nbsp;every stage of your processing logic.</p>

<h2 class="wp-block-heading"><span style="font-size:larger;">Message Structure</span></h2>

<p class="wp-block-paragraph">There&apos;s one more&nbsp;topic I&apos;d like to discuss before we get into some basic logic examples. I believe it&apos;s important to understand the structure of Node-Red messages. In the previous paragraph, I mentioned that a Node-Red flow could be triggered by a PLC Boolean flipping to TRUE. In Node-Red, the message would consist of two parts. The first is the &quot;topic&quot;. When you configure your PLC tag import&nbsp;node, you&apos;ll assign a label for the PLC tag. Whatever you choose to label your tag will become the message topic.</p>

<p class="wp-block-paragraph">The second part of the message is the &quot;payload&quot;. This is&nbsp;the contents of the message. For a Boolean, this would be&nbsp;TRUE or FALSE. Node-Red message payloads can come in many forms. For more complex payloads, the payload is often a JSON object or JavaScript string. This message structure is important when trying to do message customization.</p>

<p class="wp-block-paragraph">Each Node-Red message is a JavaScript &quot;msg&quot; object. Within&nbsp;various nodes, you&apos;ll frequently see &quot;msg.payload&quot; being referenced and/or altered.&nbsp;This should&nbsp;make some sense intuitively. The important contents of the PLC tag will live exclusively in the &quot;payload&quot; key of the &quot;msg&quot; object. Most data-processing logic will, then, deal exclusively with the message payload. So&nbsp;why do we need this &quot;topic&quot; element? Message topics can be very useful in&nbsp;data filtering contexts, and I will give you a simple example of such contexts in the following section.</p>

<h2 class="wp-block-heading"><span style="font-size:larger;">Data Filtering: Switch Node</span></h2>

<p class="wp-block-paragraph">Now, we can finally get into some basic Node-Red logic.</p>

<figure class="wp-block-image"><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/node-red-data-filtering_1.png"  /></figure>

<p class="wp-block-paragraph">The most basic level of data processing is filtering. In the first rung, I&apos;m injecting the integer 3 to initiate my flow. The yellow node you see is a &quot;switch&quot; node. The switch node allows you to filter data based on&nbsp;conditions. In this case, I&apos;m only allowing the payload to continue through the switch node if its value exceeds 1000. Clearly, 3 would not meet the condition and thus the debug node would output nothing to the debug window.&nbsp;</p>

<figure class="wp-block-image"><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/node-red-switch-node.png"  /></figure>

<p class="wp-block-paragraph">The above image shows the configuration of the switch node. Note how I&apos;m checking the property of &quot;msg.payload&quot; against the condition&nbsp;&quot;&gt;= 1000&quot;&nbsp;&mdash;&nbsp;the second and third rungs of the data filtering logic add in an element of message topic filtering. In those&nbsp;examples, I only want data with topic &quot;RPM&quot; to pass.&nbsp;As such, I have&nbsp;added a&nbsp;switch node in series that is configured to&nbsp;check&nbsp;if &quot;msg.topic&quot; equals &quot;RPM&quot;.</p>

<h2 class="wp-block-heading"><span style="font-size:larger;">Payload Configuration: Change Node</span></h2>

<p class="wp-block-paragraph">While data filtering is the most fundamental data processing function, outputting&nbsp;a naked &quot;TRUE&quot;&nbsp;or&nbsp;&quot;1032&quot;&nbsp;to your&nbsp;database is not usually ideal. Typically, you want to take your PLC data and either combine it with other tags or transform it into a more human-friendly form. For example, instead of a contextless payload of&nbsp;&quot;74,&quot;&nbsp;I might instead prefer the payload to say:&nbsp;&quot;Room Temp (F): 74.&quot;&nbsp;The &quot;change&quot; node helps you do just that.&nbsp;</p>

<figure class="wp-block-image"><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/node-red-payload-configuration.png"  /></figure>

<p class="wp-block-paragraph">In this flow logic, we have some Boolean input giving us a &quot;TRUE&quot;&nbsp;or &quot;FALSE&quot;.&nbsp;We use a switch node to route the flow according to the payload value. If the value is &quot;TRUE,&quot;&nbsp;we send the message through the first output. Otherwise, route the message&nbsp;to the second output. The change node looks very similar to the switch node, but its function is very unique. As the name implies, we are usually changing the payload itself.</p>

<figure class="wp-block-image"><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/node-red-change-node.png"  /></figure>

<p class="wp-block-paragraph">The change node here is configured to change the value of the payload &quot;TRUE&quot;&nbsp;to the string &quot;The motor is on&quot;.&nbsp;While this example shows a&nbsp;simple functionality, the change node is extremely powerful. This node enables you to save payloads to Node-Red memory, construct payload objects, and much more.&nbsp;I will provide an example of saving to Node-Red memory later on in this blog.</p>

<h2 class="wp-block-heading"><span style="font-size:larger;">In Practice: S7-In Node &amp; MQTT-Out Node</span></h2>

<p class="wp-block-paragraph">The inject and debug nodes are useful for troubleshooting, but they do not have any use during actual operation. In practice, we need to use a PLC tag-importing node and some network-out node. In this example, I&apos;ve used&nbsp;the Siemens S7-In node and the MQTT-Out node. These are the entry and exit points of Node-Red. Raw PLC data comes in through the S7-In node, and processed payloads are sent out through the MQTT-Out node.</p>

<figure class="wp-block-image"><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/node-red-in-practice.png"  /></figure>

<p class="wp-block-paragraph">Instead of an inject node in the previous examples, you would use the corresponding&nbsp;PLC-In&nbsp;node for your system. The configuration of this PLC-In node is simple: fill in the IP-address of the PLC in the &quot;Connection&quot; tab and the PLC tag&nbsp;address(es) in the &quot;Variables&quot; tab.</p>

<p class="wp-block-paragraph">When addressing PLC tags, you should reference&nbsp;<a href="https://flows.nodered.org/node/node-red-contrib-s7" target="_blank">this Node-Red documentation</a>. You can configure this node to inject&nbsp;the PLC tag every so often or only when the tag changes value.</p>

<p class="wp-block-paragraph">Additionally, you can configure the node to inject every configured PLC tag or one specific tag. Here, I&apos;ve configured it to only inject the &quot;bDMC&quot; tag that sits in a PLC&nbsp;data block. It is worth noting that for a Siemens PLC, Node-Red can only pull tags from an unoptimized data block.&nbsp;</p>

<p class="wp-block-paragraph">The pink node on the right is the MQTT-Out node. Notice how it&apos;s wired in parallel to the debug node. This way, whatever is sent through the MQTT-Out node will also show up in the debug window. Each network protocol node is slightly different, so I won&apos;t dive into the MQTT node specifically. You shouldn&apos;t run into anything out of the ordinary when configuring these nodes.</p>

<h2 class="wp-block-heading"><span style="font-size:larger;">Storing Data in Node-Red Memory</span></h2>

<p class="wp-block-paragraph">The last thing I want to touch on is the data storing functionality of Node-Red. Without the use of Node-Red&apos;s internal memory, the extent to which you could&nbsp;customize your payloads would be severely diminished.</p>

<p class="wp-block-paragraph">Consider the following example: I have PLC tags that record the temperature and humidity of a certain room. I want to trigger a flow each time my temperature exceeds a certain threshold. Following the ideas so far, we could easily write a flow that sends the temperature payload to some online database, but&nbsp;what if I wanted the humidity to be sent along with the temperature data? Here, we would need to use Node Red&apos;s capability to store data into flow memory.</p>

<figure class="wp-block-image"><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/node-red-data-store.png"  /></figure>

<p class="wp-block-paragraph">This is a basic flow that pulls in every configured PLC tag and stores it in &quot;flow&quot; memory. Node-Red has a &quot;flow&quot; and &quot;global&quot; object in which you can store your tags. These tags are persistent across executions of the program.</p>

<p class="wp-block-paragraph">As the names imply, you can only access data saved within&nbsp;the &quot;flow&quot; object while inside your flow. Data saved within the &quot;global&quot; object can be accessed across all flows. Remember that &quot;flows&quot; are similar to&nbsp;pages in an Excel sheet. In this example, I&apos;m storing every PLC tag within a &quot;myData&quot; object. This object is nested within the &quot;flow&quot; memory. To call&nbsp;the saved tags, I simply address them by appending their topic (whatever you named them) to the flow.myData address.</p>

<figure class="wp-block-image"><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/node-red-change-store.png"  /></figure>

<p class="wp-block-paragraph">This is the configuration of the change node used to store data. Note&nbsp;the &quot;flow.&quot; prefix is selected from the dropdown menu. It&nbsp;is defaulted to &quot;msg.&quot;.</p>

<p class="wp-block-paragraph">Now that you know how to filter data, configure payloads, and store data in Node-Red, you possess the fundamentals for&nbsp;any PLC data-processing needs.&nbsp;</p>

<p class="wp-block-paragraph"><strong>Learn more about our <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/industrial-internet-of-things">Industrial IoT Solutions</a>&nbsp;expertise and <a href="https://static.dmcinfo.com/contact">contact us</a>&nbsp;for your next project!</strong></p>
<p>The post <a href="https://static.dmcinfo.com/blog/17181/an-introduction-to-node-red-processing-and-sending-plc-data-to-the-cloud/">An Introduction to Node-Red: Processing and Sending PLC Data to the Cloud</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Programmatically Generate Global Virtual Channels with LabVIEW</title>
		<link>https://static.dmcinfo.com/blog/17340/how-to-programmatically-generate-global-virtual-channels-with-labview/</link>
		
		<dc:creator><![CDATA[Maddie Drake]]></dc:creator>
		<pubDate>Fri, 04 Aug 2023 11:35:51 +0000</pubDate>
				<category><![CDATA[IoT]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/17340/how-to-programmatically-generate-global-virtual-channels-with-labview/</guid>

					<description><![CDATA[<p>How many times have you had to create numerous global virtual channels for a project? It&#8217;s the tedious task of going into NI MAX and creating a channel one by one based on an IO sheet. In this tutorial, I will show you how to programmatically create and save a global virtual channel in LabVIEW. [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/17340/how-to-programmatically-generate-global-virtual-channels-with-labview/">How to Programmatically Generate Global Virtual Channels with LabVIEW</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">How many times have you had to create numerous global virtual channels for a project? It&rsquo;s the tedious task of going into NI MAX and creating a channel one by one based on an IO sheet.</p>

<p class="wp-block-paragraph">In this tutorial, I will show you how to programmatically create and save a global virtual channel in LabVIEW. I will tie it all together by generating the same signals from an IO sheet in Excel.</p>

<h2 class="wp-block-heading">Background</h2>

<p class="wp-block-paragraph">I wanted to reuse a library DMC developed that controls relays and reads their feedback. I preferred not to modify this library because we were referencing the repo in another DMC project; modifying the library would change it for&nbsp;another team&rsquo;s project. The inputs to this library were global virtual channels connecting to the control and feedback of each relay. I could have manually created global channels for our 100+ relays, but&nbsp;instead, I let LabVIEW do all the work.</p>

<h2 class="wp-block-heading">NI Max Setup</h2>

<p class="wp-block-paragraph">In this example, I added a simulated cDAQ to NI Max. I also added two NI 9403 DIO module and gave it the names below:</p>

<figure class="wp-block-image"><img decoding="async" alt="screenshot of a computer screen " src="https://static.dmcinfo.com/wp-content/uploads/2025/05/image-1-.png"  /></figure>

<h2 class="wp-block-heading">The Code</h2>

<p class="wp-block-paragraph">The below code is what we will use to create 6 global virtual channels. This code will&nbsp;iterate&nbsp;between a relay control (Digital Control) and relay feedback (Digital Feedback).</p>

<figure class="wp-block-image"><img decoding="async" alt="Screenshot of code on a computer " src="https://static.dmcinfo.com/wp-content/uploads/2025/05/image-2-1.png"  /></figure>

<p class="wp-block-paragraph">First, I do modulo two to iterate between the control and feedback enum I made. I then use &ldquo;format into string&rdquo; to create the name of the channel.&nbsp;</p>

<p class="wp-block-paragraph">To prevent errors, clear the task name. I also like to delete the task in case it exists. If the task doesn&rsquo;t exist, an error will be thrown, so make sure to clear errors coming out of that VI.</p>

<ul class="wp-block-list">
 <li value="1"><strong>Factoid</strong>: You can feed a string into a task name and it will typecast automatically for you.</li>
</ul>

<p class="wp-block-paragraph">Create the task by feeding the task coming out of the previous VI into the &ldquo;New Task Name&rdquo; input of &ldquo;DAQmx Create Task&rdquo;.&nbsp;</p>

<ul class="wp-block-list">
 <li value="1"><strong>Factoid</strong>: You can feed a task into a string input as well*, and it will be typecast automatically.</li>
</ul>

<p class="wp-block-paragraph">Create the hardware line you want to connect the channel to. I do this by using format string again. Make sure to use the name of the module you have in NI Max.</p>

<ul class="wp-block-list">
 <li><strong>Factoid</strong>: If you want a list of all available channels, you can drop a &ldquo;DAQmx Physical Channel&rdquo; onto the block diagram and browse for available lines.</li>
</ul>

<figure class="wp-block-image"><img decoding="async" alt="Image of code on a screen " src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Image-3-1.png"  /></figure>

<p class="wp-block-paragraph">Create the DAQmx virtual channel. I use a Digital Output for the controls and Digital Input for feedback.</p>

<p class="wp-block-paragraph">Save the global channel using &quot;DAQmx Save Global Channel.vi&quot;.</p>

<p class="wp-block-paragraph">Below, are the channels that were created in NI Max.</p>

<figure class="wp-block-image"><img decoding="async" alt="screenshot of code on a laptop " src="https://static.dmcinfo.com/wp-content/uploads/2025/05/image-4-1.png"  /></figure>

<h2 class="wp-block-heading">Reading From an IO Sheet</h2>

<p class="wp-block-paragraph">Now that you can programmatically create global virtual channels, you can take it a step further and create channels from information contained in an IO sheet like the one below.</p>

<figure class="wp-block-image"><img decoding="async" alt="screenshot of spreadsheet on a computer " src="https://static.dmcinfo.com/wp-content/uploads/2025/05/image-5-1.png"  /></figure>

<p class="wp-block-paragraph">You can read this information by using &ldquo;Read Delimited Spreadsheet.vi&rdquo; and removing the top row of headers. After that, feed the inputs into the code from before, like so.</p>

<figure class="wp-block-image"><img decoding="async" alt="Screenshot of code on a laptop" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/image-6-1.png"  /></figure>

<p class="wp-block-paragraph">And viola! Four new global virtual channels have been made from your spreadsheet.</p>

<figure class="wp-block-image"><img decoding="async" alt="Screenshot of four global virtual channels " src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Image-7-1.png"  /></figure>

<h2 class="wp-block-heading">Deleting Channels</h2>

<p class="wp-block-paragraph">You can delete the channels programmatically just as easy as you made them by using &ldquo;DAQmx Delete Saved Global Channels.vi&rdquo;.&nbsp;</p>

<figure class="wp-block-image"><img decoding="async" alt="Screenshot of laptop screen " src="https://static.dmcinfo.com/wp-content/uploads/2025/05/image-8-1.png"  /></figure>

<h2 class="wp-block-heading">Why is this useful?</h2>

<p class="wp-block-paragraph">This is useful because you don&rsquo;t have to manually type in global virtual channels to NI Max. This prevents fat fingering a wrong IO channel. This will also save you time depending on how many channels you have. It also prevents errors from happening by pulling straight from the IO list. When collaborating with coworkers on an IO list, you don&rsquo;t have to worry about someone else making a change in the list that doesn&rsquo;t get propagated into the code. The code will pick up on it!</p>

<p class="wp-block-paragraph">Another benefit of note is you can decrease the amount of fluff in an NI Max file. All you will need in your NI Max file are the hardware and module names. If a coworker needs to add a channel, they can add it to the IO sheet, and it will automatically be imported into your code when you pull their code. No more pushing and pulling the NI Max file nor importing and exporting channels causing less committing and merging of NI Max channels between developers.</p>

<p class="wp-block-paragraph">Learn more about DMC&rsquo;s <strong><a href="https://static.dmcinfo.com/services/test-and-measurement-automation/labview-programming" target="_blank">LabVIEW Programming</a></strong> and <strong><a href="https://static.dmcinfo.com/contact" target="_blank">contact us</a></strong> today for your next project!</p>
<p>The post <a href="https://static.dmcinfo.com/blog/17340/how-to-programmatically-generate-global-virtual-channels-with-labview/">How to Programmatically Generate Global Virtual Channels with LabVIEW</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Azure IoT Hub Data Processing and Storage</title>
		<link>https://static.dmcinfo.com/blog/19924/azure-iot-hub-data-processing-and-storage/</link>
		
		<dc:creator><![CDATA[DMC]]></dc:creator>
		<pubDate>Fri, 15 May 2020 12:30:46 +0000</pubDate>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Digital Workplace Solutions]]></category>
		<category><![CDATA[IoT]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/19924/azure-iot-hub-data-processing-and-storage/</guid>

					<description><![CDATA[<p>Overview When dealing with several or millions of IoT devices the amount of data can quickly become overwhelming to your processing logic and storage solution. To begin reducing the complexity of dealing with the data, it&#8217;s helpful to group the data into one of two main categories: hot&#160;or cold. That is to say: does the [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/19924/azure-iot-hub-data-processing-and-storage/">Azure IoT Hub Data Processing and Storage</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">Overview</h2>

<p class="wp-block-paragraph">When dealing with several or millions of IoT devices the amount of data can quickly become overwhelming to your processing logic and storage solution. To begin reducing the complexity of dealing with the data, it&rsquo;s helpful to group the data into one of two main categories: <strong>hot</strong>&nbsp;or <strong>cold</strong>. That is to say: does the data need to be analyzed immediately (hot), or can we look at the data at our own convenience (cold).</p>

<p class="wp-block-paragraph">After the data is ingested and initial processing is complete, it needs to be stored. Is the data similar enough that it can be logged in a database (structured), or does it vary widely and needs more flexible data storage (unstructured). Also, how much data are you expecting to collect:&nbsp;petabytes, or megabytes? Who needs access to the data for analysis, and what if they&rsquo;re located on the other side of the world?&nbsp;The delays in processing gigabytes of data while dealing with the latency of traversing the globe can quickly become frustrating.</p>

<p class="wp-block-paragraph">These are all things that need to be thought through before you begin development.&nbsp;Hopefully, this helps provide some assistance with planning your IoT solution. If you have any additional questions or need help with your <a href="/services/application-development/iot-solutions">IoT solution</a>, <a href="/contact">send us an email</a>.</p>

<figure class="wp-block-image"><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/dataflow-2.png"  /></figure>

<h2 class="wp-block-heading">Data Processing</h2>

<p class="wp-block-paragraph">When your IoT nodes start producing data the server(s) need to be ready to handle that data as efficiently as possible, which means you need to determine if data is &lsquo;hot&rsquo; or &lsquo;cold&rsquo;.</p>

<p class="wp-block-paragraph"><span style="font-size:115%;"><u><strong>Hot Data</strong></u></span></p>

<p class="wp-block-paragraph">An example of &lsquo;hot&rsquo; data might be motor speed. Perhaps the motor can run up to 110% of its nominal speed for up to 5 seconds without issue, but if it exceeds 115% for more than 5 seconds it needs to be disassembled and internal parts replaced. The motor speed information needs to be analyzed and acted upon quickly to avoid downtime and costly repairs.</p>

<p class="wp-block-paragraph"><span style="font-size:115%;"><u><strong>Cold Data</strong></u></span></p>

<p class="wp-block-paragraph">&lsquo;Cold&rsquo; data, on the other hand, might be information like the volume of liquid pumped by the motor over the last 5 minutes. Knowing the exact flow at every given moment might not provide any valuable insights, so cold data can be batched and processed when reasonable.</p>

<p class="wp-block-paragraph">To complicate matters more, hot and cold data is more of a sliding scale, with common nomenclature of &lsquo;hot&rsquo;, &lsquo;warm&rsquo;, &lsquo;cool&rsquo;, and &lsquo;cold&rsquo;. Data may not fall into a single category. Using the motor speed example from above; the motor speed may also need to be processed as cool or cold data because analysis has shown that motor speed tends to increase marginally day over day before motor failure. So, not only is the real-time data important but saving the data for later to identify trends may also be important. This dual processing path is quite common.</p>

<h2 class="wp-block-heading">Structured vs Unstructured</h2>

<p class="wp-block-paragraph">Will all the IoT nodes produce data with the same type of structure or parameters; or is each node unique and there&rsquo;s little to no overlap of the data structure between nodes?</p>

<p class="wp-block-paragraph"><figure class="wp-block-image"><img decoding="async" alt="Azure Data Lake" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/AzureDataLake.png"  /></figure><br />
<span style="font-size:16px"><em>Image credit to <a href="https://azure.microsoft.com/en-us/blog/under-the-hood-performance-scale-security-for-cloud-analytics-with-adls-gen2/" target="_blank">Microsoft</a>.</em></span></p>

<p class="wp-block-paragraph"><span style="font-size:115%;"><u><strong>Blob Storage</strong></u></span></p>

<p class="wp-block-paragraph">To log unique (unstructured) data, <strong>Azure Storage Blob</strong> is likely your best option. It&rsquo;s not as unmanageable as &lsquo;blob&rsquo; makes it sound, that&rsquo;s just referring to the fact that it&rsquo;s meant to hold different types and models of data from videos and text, to pictures and audio recordings. Blob storage is pretty analogous to what you&rsquo;re used to with your desktop or laptop computer with having different folders that contain other folders or files with lots of different file types. It&rsquo;s the default storage option when creating a storage account.</p>

<p class="wp-block-paragraph">Blob storage can be broken down into 3 types: Append, Page, Block.</p>

<ul class="wp-block-list">
 <li><strong>Append: </strong>Data can only be appended to the blob. Think a log file, new log entries are appended to the end and the blob continues to grow.</li>
 <li><strong>Page:</strong> Good for data that needs frequent read/write access with high performance and low latency. General-purpose storage.</li>
 <li><strong>Block:</strong> Block type storage is optimized for large data sets and provides parallel read/write to different blocks. It&apos;s for handling large (Gb&rsquo;s) files over the network.</li>
</ul>

<p class="wp-block-paragraph">Page and Block type Blob storage can handle up to Terabytes of data, but there comes a point where an organization of &lsquo;Big Data&rsquo; starts to become a limiting factor. Your data is worthless if you can&rsquo;t efficiently query it. That&rsquo;s when you need to consider a solution like <strong>Azure Data Lake</strong>. Data Lake provides additional organizational and security tools, as well as some built-in analytics.</p>

<p class="wp-block-paragraph"><span style="font-size:115%;"><u><strong>CosmosDB</strong></u></span></p>

<p class="wp-block-paragraph">If the data is in a more consistent format, you may want to consider <strong>CosmosDB</strong> as the storage solution instead of blob storage. CosmosDB provides several features that may be beneficial for your organization and your data. Similar to SQL databases, CosmosDB provides the option to specify indexes on the data which can significantly improve query performance.</p>

<p class="wp-block-paragraph"><figure class="wp-block-image"><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/azureiotdataflow-2.png"  /></figure><br />
<span style="font-size:16px"><em>Image credit to <a href="https://docs.microsoft.com/en-us/azure/cosmos-db/use-cases" target="_blank">Microsoft</a>.</em></span></p>

<p class="wp-block-paragraph">Also, CosmosDB was built with data sharing and replication in mind. A CosmosDB database can be configured to replicate data to multiple Azure regions around the globe giving employees in both North America and Australia, for example, access to the same data at the same time. It&rsquo;s also possible for both regions to write data back into Cosmos at the same time. This is all in addition to a failover location which can be configured to take over operations in the event of a natural disaster or civil disturbance in the primary location.</p>

<p class="wp-block-paragraph">Learn more about DMC&apos;s <a href="/services/application-development/iot-solutions">IoT solutions</a> and <a href="/services/digital-workplace-solutions/microsoft-consulting-services/microsoft-azure-cloud-solutions-and-services">Azure solutions</a>. <a href="/contact">Contact us</a> for more information.&nbsp;</p>
<p>The post <a href="https://static.dmcinfo.com/blog/19924/azure-iot-hub-data-processing-and-storage/">Azure IoT Hub Data Processing and Storage</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>DMC Joins Siemens’ MindSphere Partner Program as a Gold Partner</title>
		<link>https://static.dmcinfo.com/blog/19927/dmc-joins-siemens-mindsphere-partner-program-as-a-gold-partner/</link>
		
		<dc:creator><![CDATA[DMC]]></dc:creator>
		<pubDate>Thu, 14 May 2020 16:22:45 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Application Development]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Siemens PLC]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/19927/dmc-joins-siemens-mindsphere-partner-program-as-a-gold-partner/</guid>

					<description><![CDATA[<p>Partnership enables DMC to deliver new MindSphere Industrial IoT applications DMC is proud to announce that we have joined the MindSphere Partner Program, Siemens&#8217; partner program for Industrial IoT solution and technology providers. &#8220;I&#8217;m excited to continue DMC&#8217;s history of partnering with Siemens by joining the MindSphere partner community,&#8221; said DMC President and CEO, Frank [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/19927/dmc-joins-siemens-mindsphere-partner-program-as-a-gold-partner/">DMC Joins Siemens’ MindSphere Partner Program as a Gold Partner</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph"><strong><em>Partnership enables DMC to deliver new MindSphere Industrial IoT applications</em></strong></p>

<p class="wp-block-paragraph">DMC is proud to announce that we have joined the MindSphere Partner Program, Siemens&rsquo; partner program for Industrial IoT solution and technology providers.</p>

<p class="wp-block-paragraph">&ldquo;I&rsquo;m excited to continue DMC&rsquo;s history of partnering with Siemens by joining the MindSphere partner community,&rdquo; said DMC President and CEO, Frank Riordan &ldquo;With over two decades of experience in factory automation, we are well-positioned to provide industry-leading IIoT solutions to our clients.&rdquo;</p>

<h2 class="wp-block-heading">About MindSphere</h2>

<p class="wp-block-paragraph">MindSphere&reg;, the cloud-based, open IoT operating system from Siemens, connects products, plants, systems, and machines, enabling businesses to harness the wealth of data generated by the Internet of Things (IoT) with advanced analytics.</p>

<h2 class="wp-block-heading">MindSphere Partnership</h2>

<p class="wp-block-paragraph">DMC recently completed a successful MindSphere project for a manufacturer that had no network connectivity. We were one of first integrators to use WinCC OA Connector to pull data from hundreds of standalone OEM machines and push it to MindSphere. DMC developed a comprehensive data aggregation system that provides valuable insight into operational data, highlighting inefficiencies and improving factory effectiveness.</p>

<p class="wp-block-paragraph">As a MindSphere Gold Partner, DMC has technical staff trained by Siemens through the MindSphere technical curriculum, multiple MindSphere applications developed or being developed, and a joint go-to-market agreement to assist our customers in achieving substantial business value through IoT technology generally and MindSphere specifically.</p>

<p class="wp-block-paragraph">Our partnership with Siemens demonstrates DMC&rsquo;s continued commitment to providing industry-leading solutions for industrial manufacturing. As a result of the partnership, we will be able to augment our current IoT offerings with MindSphere and pass on the benefit of the latest in training and technology to our clients.</p>

<p class="wp-block-paragraph">&ldquo;Siemens welcomes DMC to the MindSphere ecosystem as it extends its long-standing partnership with Siemens,&rdquo; said Rohit Khera, Global Vice President Strategic Alliances, Siemens Digital Industries Software.&nbsp; &ldquo;DMC&rsquo;s deep industry expertise and its focus on providing IIoT solutions that pull and process data from systems with low connectivity, high complexity, and diverse platforms can provide our joint customers with great value in their digital transformation initiatives.&rdquo;</p>

<h2 class="wp-block-heading">DMC and Siemens</h2>

<p class="wp-block-paragraph">DMC has comprehensive experience with a wide range of Siemens technologies and hundreds of successful project implementations for customers around the world. Our expertise includes recognition as a MindSphere partner, a SIMATIC IT Partner, a member of the Siemens MEAC (MOM Expertise Alliance Center) Alliance Partner Network, Siemens Solution Partner certifications in WinCC SCADA, Industrial Communications, and Advanced Factory Automation, and having a very large number of Siemens S7 certified engineers in North America.</p>

<h2 class="wp-block-heading">About DMC</h2>

<p class="wp-block-paragraph">DMC is a project-based engineering and software development firm focused on software development and control systems. We develop and implement solutions for a wide range of industries using a variety of technologies and platforms. Since 1996, DMC has succeeded in helping hundreds of clients increase efficiency and productivity by delivering world-class solutions throughout the globe.</p>

<p class="wp-block-paragraph" align="center">###</p>

<p class="wp-block-paragraph"><strong>Contact </strong><br />
Jessica Mlinaric<br />
<a href="mailto:jessica.mlinaric@localhost">jessica.mlinaric@localhost</a><br />
312.255.8757</p>
<p>The post <a href="https://static.dmcinfo.com/blog/19927/dmc-joins-siemens-mindsphere-partner-program-as-a-gold-partner/">DMC Joins Siemens’ MindSphere Partner Program as a Gold Partner</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>DMC to Host IIoT Webinar</title>
		<link>https://static.dmcinfo.com/blog/20003/dmc-to-host-iiot-webinar/</link>
		
		<dc:creator><![CDATA[DMC]]></dc:creator>
		<pubDate>Tue, 21 Apr 2020 14:43:48 +0000</pubDate>
				<category><![CDATA[Embedded Development & Programming]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/20003/dmc-to-host-iiot-webinar/</guid>

					<description><![CDATA[<p>DMC is excited to share that we are hosting an upcoming webinar on the Industrial Internet of Things (IIoT) led by DMC Project Director Patrick Corcoran. There are two opportunities to attend the webinar on May 8 and May 13, 2020. About the Webinar The IIoT Ready PLC- Your Journey From the Edge to the [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/20003/dmc-to-host-iiot-webinar/">DMC to Host IIoT Webinar</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">DMC is excited to share that we are hosting an upcoming webinar on the <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/industrial-internet-of-things">Industrial Internet of Things</a> (IIoT) led by DMC Project Director Patrick Corcoran. There are two opportunities to attend the webinar on <strong>May 8 and May 13, 2020.</strong></p>



<h2 class="wp-block-heading" id="h-about-the-webinar">About the Webinar</h2>



<p class="wp-block-paragraph"><strong>The IIoT Ready PLC- Your Journey From the Edge to the Cloud</strong><br>
DMC has been helping many clients make IIoT a reality for their business. Join us for an informational session on the IIoT of today, exploring platform options, PLC capabilities, and next steps toward bringing your cloud-connected applications to life.</p>



<h2 class="wp-block-heading" id="h-registration">Registration</h2>



<p class="wp-block-paragraph">There are two opportunities to attend the IIoT webinar:</p>



<p class="wp-block-paragraph"><strong>Friday, May 8</strong><br>
2 &#8211; 3 p.m. CT<br>
<a href="https://forms.office.com/Pages/ResponsePage.aspx?id=Co58jTg_QEmytmYB31pYUV2RzIy9ADJCnn5n6t038UZURVdPMDVYWEFRUDlTUjJLV01VRkUzSzNZRi4u" target="_blank">Register here</a></p>



<p class="wp-block-paragraph"><strong>Wednesday, May 13</strong><br>
2 &#8211; 3 p.m. CT<br>
<a href="https://forms.office.com/Pages/ResponsePage.aspx?id=Co58jTg_QEmytmYB31pYUV2RzIy9ADJCnn5n6t038UZUMzJOQlowWTJMTTFGTThGUUNBNk5MOFNLTy4u" target="_blank">Register here</a></p>



<p class="wp-block-paragraph"><strong>Learn more about DMC&#8217;s <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/industrial-internet-of-things">IIoT expertise</a>.&nbsp;</strong></p>
<p>The post <a href="https://static.dmcinfo.com/blog/20003/dmc-to-host-iiot-webinar/">DMC to Host IIoT Webinar</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
