<?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>TCPプロトコル | 即戦力モノづくり!エンジニアへの道標</title>
	<atom:link href="https://depfields.com/tag/tcp%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB/feed/" rel="self" type="application/rss+xml" />
	<link>https://depfields.com</link>
	<description>組み込み（マイコン）スキルを楽しんで学びながら身につけて短期間で効率よく自由自在に扱えるようになりたいと思いませんか？</description>
	<lastBuildDate>Mon, 11 Apr 2022 05:52:52 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.3</generator>

<image>
	<url>https://depfields.com/wp-content/uploads/2020/07/cropped-favicon-1-32x32.png</url>
	<title>TCPプロトコル | 即戦力モノづくり!エンジニアへの道標</title>
	<link>https://depfields.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>ESP32を使ったSTM32のTCP通信(WiFi)受信編</title>
		<link>https://depfields.com/esp32-tcp-rx-apl/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=esp32-tcp-rx-apl</link>
		
		<dc:creator><![CDATA[めかのとろ]]></dc:creator>
		<pubDate>Sat, 12 Sep 2020 04:13:17 +0000</pubDate>
				<category><![CDATA[IoTアプリ]]></category>
		<category><![CDATA[ESP32]]></category>
		<category><![CDATA[WiFi]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[TCPプロトコル]]></category>
		<guid isPermaLink="false">https://depfields.com/?p=5877</guid>

					<description><![CDATA[<p>無線モジュールESP32を使って Nucleo(STM32) を無線 (WiFi) 化し、TCPサーバーを構成します。 クライアント側 であるPCやスマホのターミナルアプリからマイコン側に文字列のコマンドコードを送ってリ [&#8230;]</p>
<p>The post <a href="https://depfields.com/esp32-tcp-rx-apl/">ESP32を使ったSTM32のTCP通信(WiFi)受信編</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="veu_autoEyeCatchBox"><img fetchpriority="high" width="640" height="452" src="https://depfields.com/wp-content/uploads/2020/09/wlan-2500161_640.jpg" class="attachment-large size-large wp-post-image" alt="" decoding="async" srcset="https://depfields.com/wp-content/uploads/2020/09/wlan-2500161_640.jpg 640w, https://depfields.com/wp-content/uploads/2020/09/wlan-2500161_640-300x212.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /></div>
<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"> <strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">無線モジュールESP32</span></strong>を使って <strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">Nucleo(STM32) を無線 (WiFi)</span> </strong>化し、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">TCPサーバー</span></strong>を構成します<strong>。</strong> クライアント側 であるPCやスマホのターミナルアプリからマイコン側に文字列の<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">コマンドコード</span></strong>を送って<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">リモートコントロールするアプリ</span></strong>を紹介します。 無線モジュールESP32については「<strong><a href="https://depfields.com/esp32-wifi/" target="_blank" aria-label=" (opens in a new tab)" rel="noreferrer noopener">ESP32でNucleo(STM32)を簡単にWiFi対応に</a></strong>」で詳細を解説しています。  </p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>TCPサーバーを構成してPC、スマホなどクライアントのターミナルアプリで接続するところまでは 「<strong><a href="https://depfields.com/esp32-tcp-tx-apl/" target="_blank" aria-label=" (opens in a new tab)" rel="noreferrer noopener">ESP32を使ったSTM32のTCP通信(WiFi)送信編</a></strong>」と 共通です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>クライアント側からの<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">コマンドコードによりマイコンをコントロール</span></strong>するには<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">文字コードの受信処理</span></strong>および<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">コードに応じて処理させたい内容</span></strong>を追加すればよいのです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ESP32 とターミナルアプリを接続して <strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">”depfields”の9文字を入力してEnterキ</span>ー</strong>を押すと、改行コードを含めて11文字を送信したことになります。 ターミナルを<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ローカルエコーに設定</span></strong>していると入力した文字が現れます。  </p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p> TCPサーバー側ではクライアント側からの文字を受信すると"+<strong>IPD,0,11:depfields</strong>"と表示されます。＋IPDは受信データであることを示し、コネクションIDが0に文字列と改行コードを含んだ合計11文字を受信したことを意味しています 。応答文字列には改行コードCR+LFが含まれています。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/09/data_recieve.jpg" alt="" class="wp-image-5910" width="840" height="304" srcset="https://depfields.com/wp-content/uploads/2020/09/data_recieve.jpg 780w, https://depfields.com/wp-content/uploads/2020/09/data_recieve-300x109.jpg 300w, https://depfields.com/wp-content/uploads/2020/09/data_recieve-768x278.jpg 768w" sizes="(max-width: 840px) 100vw, 840px" /><figcaption>文字列受信</figcaption></figure>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>





<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p> 上述のPCのターミナルソフトからの操作を <strong>Nucleo(STM32) </strong>に置き換えた<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ESP32とマイコン間での通信</span></strong>をする場合のアプリを紹介します。あらかじめ、登録しておいたコード"ABC"と受信コードが一致・不一致で処理を分けるアプリです。 受信コードを含む文字列は終端が分かるように入力コードには"＠"を最後に含めています。 </p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/09/rcv-data-flow.jpg" alt="" class="wp-image-5915" width="468" height="305"/><figcaption>データ受信の流れ</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>PCやスマホなどのTCP通信ターミナルでESP32でWiFi化したNucleo(STM32)のTCPサーバー側に接続した状態で<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>"ABC@</strong>"</span>を入力します。ESP32では文字列を受信すると”+IPD,0,6:ABC@" をUART通信で文字列の応答として返すのでSTM32側でコード部分"ABC"を取り出せばよいのです。&nbsp; </p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/09/rcv-process.jpg" alt="" class="wp-image-5912" width="689" height="656" srcset="https://depfields.com/wp-content/uploads/2020/09/rcv-process.jpg 689w, https://depfields.com/wp-content/uploads/2020/09/rcv-process-300x286.jpg 300w" sizes="(max-width: 689px) 100vw, 689px" /><figcaption>受信処理</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>受信コードが取得できればあとはシリアル通信と同様にアプリ側で処理したい内容を作成すればよいわけです。<br>例えば、コードを"ON"や"OFF"などに登録しておき、これらと一致した場合にそれぞれ処理を分ければソフトウェアスイッチとしてリモートコントロールできるようになります。<br>&nbsp; </p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/09/data-receive-process.jpg" alt="" class="wp-image-5917" width="441" height="376" srcset="https://depfields.com/wp-content/uploads/2020/09/data-receive-process.jpg 441w, https://depfields.com/wp-content/uploads/2020/09/data-receive-process-300x256.jpg 300w" sizes="(max-width: 441px) 100vw, 441px" /><figcaption>データ受信処理</figcaption></figure>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p>ESP32との文字列受信は一度分かってしまえば簡単なようですが、多少クセはあります。これらを理解していると柔軟に対処できるようになりますので色々発展させてみてください。一部記載しておきます。<br>■　ATコマンドを送る度に<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">ある程度の待ち時間が必要</span></strong>なこと<br>■　<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">応答文字列のまえに改行コードCR+LFが含まれる</span></strong>こと（このために終端文字にCRを指定できない）<br>■　ATコマンドを送ると必ず<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">なんらかの応答がある</span></strong>こと<br>受信に割り込みを使用する場合にATコマンドを使用するとESP32からの応答が割り込みとして反応してしまうため注意が必要です。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<div class='w3eden'><!-- WPDM Link Template: Default Template -->

<div class="link-template-default card mb-2">
    <div class="card-body">
        <div class="media">
            <div class="mr-3 img-48"><img class="wpdm_icon" alt="アイコン"   src="https://depfields.com/wp-content/plugins/download-manager/assets/file-type-icons/box_download.png" /></div>
            <div class="media-body">
                <h3 class="package-title"><a href='https://depfields.com/download/esp32-tcp-rx/'>ESP32　TCP通信（WiFi受信編）</a></h3>
                <div class="text-muted text-small"><i class="fas fa-copy"></i> 1 ファイル <i class="fas fa-hdd ml-3"></i> 6.68 KB</div>
            </div>
            <div class="ml-3">
                <a href='#unlock' class='wpdm-download-link wpdm-download-locked btn btn-primary ' data-package='5947'>ダウンロード</a>
            </div>
        </div>
    </div>
</div>

</div>



<div class="linkcard"><div class="lkc-external-wrap"><a class="lkc-link no_icon" href="https://en.depfields.com/esp32-tcp-rx-apl/" target="_blank" rel="external noopener"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=en.depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">Most Powerful Bible to Become an Embedded Engineer</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/pz-linkcard/cache/b956e44f4fd7a80d170d27190165c29e0872079e44ea46ea473208c293481bbf.jpeg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">TCP communication(WiFi) receive of STM32 with ESP32 | Most Powerful Bible to ...</div></div><div class="lkc-url">https://en.depfields.com/esp32-tcp-rx-apl/</div><div class="lkc-excerpt">Nucleo(STM32) is converted to wireless(WiFi) using the ESP32 wireless module and configured as a TCP server. I will introduce an application that remotely controls MCU by sending a string of command codes from a terminal emulator on a PC o</div></div><div class="clear"></div></div></a></div></div><p>The post <a href="https://depfields.com/esp32-tcp-rx-apl/">ESP32を使ったSTM32のTCP通信(WiFi)受信編</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ESP32を使ったSTM32のTCP通信(WiFi)送信編</title>
		<link>https://depfields.com/esp32-tcp-tx-apl/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=esp32-tcp-tx-apl</link>
		
		<dc:creator><![CDATA[めかのとろ]]></dc:creator>
		<pubDate>Thu, 03 Sep 2020 06:47:50 +0000</pubDate>
				<category><![CDATA[IoTアプリ]]></category>
		<category><![CDATA[ESP32]]></category>
		<category><![CDATA[WiFi]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[TCPプロトコル]]></category>
		<guid isPermaLink="false">https://depfields.com/?p=5815</guid>

					<description><![CDATA[<p>無線モジュールESP32を使って Nucleo(STM32) を無線 (WiFi) 化し、TCPサーバーとしてPCやスマホのターミナルへ文字列を送るアプリを紹介します。 無線モジュールESP32については「ESP32でN [&#8230;]</p>
<p>The post <a href="https://depfields.com/esp32-tcp-tx-apl/">ESP32を使ったSTM32のTCP通信(WiFi)送信編</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="veu_autoEyeCatchBox"><img width="640" height="400" src="https://depfields.com/wp-content/uploads/2020/09/wlan-3152662_640.jpg" class="attachment-large size-large wp-post-image" alt="" decoding="async" srcset="https://depfields.com/wp-content/uploads/2020/09/wlan-3152662_640.jpg 640w, https://depfields.com/wp-content/uploads/2020/09/wlan-3152662_640-300x188.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /></div>
<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">無線モジュールESP32</span></strong>を使って <strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">Nucleo(STM32) を無線 (WiFi) </span></strong>化し、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">TCPサーバーとして</span></strong>PCやスマホのターミナルへ文字列を送るアプリを紹介します。 無線モジュールESP32については「<strong><a href="https://depfields.com/esp32-wifi/" target="_blank" aria-label=" (opens in a new tab)" rel="noreferrer noopener">ESP32でNucleo(STM32)を簡単にWiFi対応に</a></strong>」で詳細を解説しています。 </p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ここで紹介するアプリは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ESP32でWiFi化しTCPサーバーを構成したNucleo(STM32)</span></strong> からクライアント側のPCやスマホのターミナルへ文字列を送る基本的なものですが、ここでしっかり理解して使いこなせるようになると、いろいろ応用できるようになります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">Nucleo(STM32)</span></strong>と<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ESP32</span></strong>は シリアル通信ではよく使われる <strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ATコマンド</span></strong>を <strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">UART通信 でやり取り</span></strong>してデータの送受信を行います。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/09/ESP32-with-nucleo.jpg" alt="" class="wp-image-5845" width="375" height="312"/><figcaption>ESP32とNucleo(STM32)配線</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">無線モジュールESP32のモード</span></strong>は一般的な<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">STA(ステーション)モード</span></strong>に設定して家庭や職場のWiFiルーターからIPアドレスを割り当てられるものにします。他のモードではESP32自体を親機にするAP(アクセスポイント)モードもありますので実施してみてください。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>この例では親機でDHCPサーバーであるWiFiルーターアドレスが"192.168.3.1"でESP32に割り当てられたIPアドレスは"192.168.3.19"である環境を前提にしており、各々の環境では異なりますのでご注意ください。 </p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/09/ESP32-with-MPU.jpg" alt="" class="wp-image-5829" width="457" height="287" srcset="https://depfields.com/wp-content/uploads/2020/09/ESP32-with-MPU.jpg 456w, https://depfields.com/wp-content/uploads/2020/09/ESP32-with-MPU-300x188.jpg 300w" sizes="(max-width: 457px) 100vw, 457px" /><figcaption> STAモードでのネットワーク環境 </figcaption></figure>





<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p> では早速プログラムを見ていきましょう。FreeRTOSを使った構成としています。メインプログラムの流れは起動直後に各ペリフェラルの設定を行ってから、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">WiFiの設定</span></strong>をします。その後、処理内容ごとに2つのタスクにわけ、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">デモプログラム用データ作成のタスクprvTask_data</span></strong>と<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">データモニター用タスクprvTask_monitor</span></strong>としています。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/09/main-tcp-server-tx.jpg" alt="" class="wp-image-5835" width="606" height="430" srcset="https://depfields.com/wp-content/uploads/2020/09/main-tcp-server-tx.jpg 674w, https://depfields.com/wp-content/uploads/2020/09/main-tcp-server-tx-300x213.jpg 300w" sizes="(max-width: 606px) 100vw, 606px" /><figcaption>メインプログラム構成</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>WiFi設定はwifi_setting関数にまとめ、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ポート番号50000のTCPサーバーを生成</span></strong>しています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">デモ用データ作成はタスクprvTask_dataで行い</span></strong>、20msごとにデータ(data)を加算していく処理にしています。dataは符号なし8ビットで255を超えると0に戻ることを繰り返しています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p> <strong>データモニター用タスクprvTask_monitor</strong> は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">３桁の数字</span></strong>を送るために、改行コード２文字分を含んだ５文字の送信要求コマンド<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">"AT+CIPSEND=0,5\r\n"</span></strong>を送信して<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">適度の待ち時間を挿入</span></strong>します。数値データを３桁の数字に変換し(digit_conv関数)、文字列としてUSART送信しています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>送信要求コマンド<strong>"AT+CIPSEND=0,5\r\n"</strong>後に挿入する<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">待ち時間</span></strong>はUART通信のボーレートによっても変わります。試してみたところ9600bps時には25ms以上、115200bps時には3ms以上に設定すれば正常に機能しました。参考プログラムは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">9600bps</span></strong>でのものです。</p>
</div></div></div>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p>ESP32のUART通信の設定はコマンド<strong>AT+UART_DEF=9600,8,1,0,0</strong>で変更できます。詳しくは「<a href="https://depfields.com/esp32-wifi/" target="_blank" rel="noopener noreferrer"><strong>ESP32でNucleo(STM32)を簡単にWiFi対応に</strong></a>」に記載しています。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>WiFi化した文字列送信の基本構成は以上です。ひとたびTCPサーバーを構成してしまうと、あとは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">シリアル通信の感覚で送信が実現できてしまいますので簡単</span></strong>です。TCPサーバーを実現するための通信プロトコルはESP32のファームウェアに内蔵されていてはじめに設定用コードで指定するだけです。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/09/wifi-setting-tx.jpg" alt="" class="wp-image-5856" width="553" height="525"/><figcaption>WiFi設定および各タスク</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>Nucleo(STM32)のTCPサーバー側から送信された数字をクライアント側でモニターするにはターミナルアプリを使用します。ここでは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">PCのターミナルソフト</span></strong>として<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">TeraTermを使用</span></strong>しています。IPアドレスとポートを指定すると接続できるはずです。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/08/tcp-server-access.jpg" alt="" class="wp-image-5583" width="479" height="311" srcset="https://depfields.com/wp-content/uploads/2020/08/tcp-server-access.jpg 479w, https://depfields.com/wp-content/uploads/2020/08/tcp-server-access-300x195.jpg 300w" sizes="(max-width: 479px) 100vw, 479px" /><figcaption>クライアント側のターミナルを起動する</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>Nucleo(STM32)側から送られた数字は0.5秒間隔で更新されています。数字が0から255までの1サイクルが約5秒であれば成功です。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/09/data-monitor.jpg" alt="" class="wp-image-5869" width="568" height="480" srcset="https://depfields.com/wp-content/uploads/2020/09/data-monitor.jpg 568w, https://depfields.com/wp-content/uploads/2020/09/data-monitor-300x254.jpg 300w" sizes="(max-width: 568px) 100vw, 568px" /><figcaption>データモニター</figcaption></figure>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<p></p>



<div class='w3eden'><!-- WPDM Link Template: Default Template -->

<div class="link-template-default card mb-2">
    <div class="card-body">
        <div class="media">
            <div class="mr-3 img-48"><img class="wpdm_icon" alt="アイコン"   src="https://depfields.com/wp-content/plugins/download-manager/assets/file-type-icons/box_download.png" /></div>
            <div class="media-body">
                <h3 class="package-title"><a href='https://depfields.com/download/esp32-tcp-tx/'>ESP32　TCP通信（WiFi送信編）</a></h3>
                <div class="text-muted text-small"><i class="fas fa-copy"></i> 1 ファイル <i class="fas fa-hdd ml-3"></i> 5.77 KB</div>
            </div>
            <div class="ml-3">
                <a href='#unlock' class='wpdm-download-link wpdm-download-locked btn btn-primary ' data-package='5860'>ダウンロード</a>
            </div>
        </div>
    </div>
</div>

</div>



<div class="linkcard"><div class="lkc-external-wrap"><a class="lkc-link no_icon" href="https://en.depfields.com/esp32-tcp-tx-apl/" target="_blank" rel="external noopener"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=en.depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">Most Powerful Bible to Become an Embedded Engineer</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/pz-linkcard/cache/626b5fe989b34aea0b86422c8bb51b35d53ad8e8a7a03b33d6fe2bf4a8cee5b6.jpeg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">TCP communication (WiFi) send of STM32 with ESP32 | Most Powerful Bible to Be...</div></div><div class="lkc-url">https://en.depfields.com/esp32-tcp-tx-apl/</div><div class="lkc-excerpt">This section introduces an application that uses the ESP32 wireless module to make Nucleo (STM32) wireless (WiFi) and send strings to a terminal on a PC or smartphone as a TCP server. The wireless module ESP32 is explained in detail in &quot;ES</div></div><div class="clear"></div></div></a></div></div><p>The post <a href="https://depfields.com/esp32-tcp-tx-apl/">ESP32を使ったSTM32のTCP通信(WiFi)送信編</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
