<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
	<id>https://smwiki.info/index.php?action=history&amp;feed=atom&amp;title=%EB%9D%BC%EC%A6%88%EB%B2%A0%EB%A6%AC%ED%8C%8C%EC%9D%B4%3A%EC%8B%9C%EB%A6%AC%EC%96%BC_%ED%86%B5%EC%8B%A0</id>
	<title>라즈베리파이:시리얼 통신 - 편집 역사</title>
	<link rel="self" type="application/atom+xml" href="https://smwiki.info/index.php?action=history&amp;feed=atom&amp;title=%EB%9D%BC%EC%A6%88%EB%B2%A0%EB%A6%AC%ED%8C%8C%EC%9D%B4%3A%EC%8B%9C%EB%A6%AC%EC%96%BC_%ED%86%B5%EC%8B%A0"/>
	<link rel="alternate" type="text/html" href="https://smwiki.info/index.php?title=%EB%9D%BC%EC%A6%88%EB%B2%A0%EB%A6%AC%ED%8C%8C%EC%9D%B4:%EC%8B%9C%EB%A6%AC%EC%96%BC_%ED%86%B5%EC%8B%A0&amp;action=history"/>
	<updated>2026-05-02T04:06:29Z</updated>
	<subtitle>이 문서의 편집 역사</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://smwiki.info/index.php?title=%EB%9D%BC%EC%A6%88%EB%B2%A0%EB%A6%AC%ED%8C%8C%EC%9D%B4:%EC%8B%9C%EB%A6%AC%EC%96%BC_%ED%86%B5%EC%8B%A0&amp;diff=7898&amp;oldid=prev</id>
		<title>Sam: 새 문서: {{라즈베리파이}}  == 개요 == 보통 블루투스 통신모듈을 통해 스마트폰, 노트북을 이용하여 통신한다.  === 기본 설정 === {| class=&quot;wikitable&quot; !과...</title>
		<link rel="alternate" type="text/html" href="https://smwiki.info/index.php?title=%EB%9D%BC%EC%A6%88%EB%B2%A0%EB%A6%AC%ED%8C%8C%EC%9D%B4:%EC%8B%9C%EB%A6%AC%EC%96%BC_%ED%86%B5%EC%8B%A0&amp;diff=7898&amp;oldid=prev"/>
		<updated>2022-11-02T23:26:57Z</updated>

		<summary type="html">&lt;p&gt;새 문서: {{라즈베리파이}}  == 개요 == 보통 블루투스 통신모듈을 통해 스마트폰, 노트북을 이용하여 통신한다.  === 기본 설정 === {| class=&amp;quot;wikitable&amp;quot; !과...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 문서&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{라즈베리파이}}&lt;br /&gt;
&lt;br /&gt;
== 개요 ==&lt;br /&gt;
보통 블루투스 통신모듈을 통해 스마트폰, 노트북을 이용하여 통신한다.&lt;br /&gt;
&lt;br /&gt;
=== 기본 설정 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!과정&lt;br /&gt;
!설명&lt;br /&gt;
!방법&lt;br /&gt;
|-&lt;br /&gt;
|설정&lt;br /&gt;
|라즈베리파이의 설정을 변경한다.&lt;br /&gt;
|라즈베리파이 설정 &amp;gt; 인터페이스 &amp;gt; Serial Port를 Enable로 설정&lt;br /&gt;
|-&lt;br /&gt;
|상식&lt;br /&gt;
|라즈베리파이에선 TXD(15), RXD(14) 핀이 시리얼 통신용으로 할당되어 있다.&lt;br /&gt;
|아래의 명령을 통하여 장치의 이름을 찾을 수 있다.&lt;br /&gt;
ls -l /dev/serial0&lt;br /&gt;
&lt;br /&gt;
그럼 ttyS0와 같은 이름을 얻는데, /dev/ttsS0 를 통해 접근 가능하다.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 기본 사용 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!과정&lt;br /&gt;
!설명&lt;br /&gt;
!방법&lt;br /&gt;
|-&lt;br /&gt;
|데이터 입출력&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import serial&lt;br /&gt;
&lt;br /&gt;
connected_serial = serial.Serial(&amp;#039;/dev/ttyS0&amp;#039;, baudrate=9600, timeout=1.0)  # timeout은 초단위&lt;br /&gt;
connected_serial.close()  # 다 쓰고 나면 닫아주자.&lt;br /&gt;
&lt;br /&gt;
data = connected_serial.read()  # 데이터를 읽는다. 값이 들어오지 않는다면 timeout시간 후 빈 데이터를 반환한다.&lt;br /&gt;
data = data.decode()  # 들어온 데이터는 bytes로 들어오기 때문에 디코딩 해주어야 한다.&lt;br /&gt;
data = connected_serial.readline()  # 데이터를 읽는다. 종료문자 \r\n이 들어오면. 위 코드는 문자열이 오면 한 글자씩 받는다.&lt;br /&gt;
connected_serial.write(&amp;quot;보넬 데이터&amp;quot;.encode())  # 인코드 해서 데이터를 날려야 한다.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|데이터 검색&lt;br /&gt;
|문자열 안에 특정 키워드가 있는지.&lt;br /&gt;
|&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
data.find(&amp;#039;문자&amp;#039;)  # 문자가 있는 위치를 반환하는데, 없으면 -1을 반환한다.&lt;br /&gt;
# 주로 다음과 같은 형태로 활용한다.&lt;br /&gt;
if data.find(&amp;#039;문자&amp;#039;) &amp;gt;= 0:&lt;br /&gt;
    pass&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&amp;lt;br /&amp;gt;&lt;br /&gt;
==SPI 통신==&lt;br /&gt;
Serial Peripheral Interface. 시리얼 통신을 사용하려면 다음과 같은 과정이 필요하다.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!과정&lt;br /&gt;
!설명&lt;br /&gt;
!방법&lt;br /&gt;
|-&lt;br /&gt;
|설정&lt;br /&gt;
|라즈베리파이의 설정을 변경한다.&lt;br /&gt;
|라즈베리파이 설정 &amp;gt; 인터페이스 &amp;gt; SPI, I2C를 Enable로 설정(사용하고자 하는 SPI만 설정하면 될듯.)&lt;br /&gt;
|-&lt;br /&gt;
|리부팅&lt;br /&gt;
|설정을 반영하기 위해.&lt;br /&gt;
|sudo reboot&lt;br /&gt;
|-&lt;br /&gt;
|SPI라이브러리 설치&lt;br /&gt;
|설치하고자 하는 위치에서 실행한다.&lt;br /&gt;
|git clone [./&amp;lt;span class=&amp;quot;external free&amp;quot; rel=&amp;quot;mw:ExtLink&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;Git://github.com/doceme/py-spidev&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;external free&amp;quot; rel=&amp;quot;mw:ExtLink&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;git://github.com/doceme/py-spidev&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;]&lt;br /&gt;
|-&lt;br /&gt;
|파이썬에서의 활용&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import spidev&lt;br /&gt;
&lt;br /&gt;
spi = spidev.SpiDev()  # 인스턴스 생성.&lt;br /&gt;
spi.open(0,0)  # 통신 시작.&lt;br /&gt;
spi.max_speed_hz = 100000  # 통신속도 설정.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
==I^2C 통신==&lt;br /&gt;
Inter-Integrated Circuit. 동기식 시리얼 통신. SPI통신에선 슬레이브 기기가 추가될 때마다 통신라인이 필요한 것에 비해, IIC에선 간단하게 많은 기기를 설치할 수 있다. 대신 느리다. 때문에 저속 장치들 사이의 통신에 사용된다.&lt;br /&gt;
&lt;br /&gt;
모든 기기들을 SCL과 SDA핀에 병렬연결해주면 된다.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!과정&lt;br /&gt;
!설명&lt;br /&gt;
!방법&lt;br /&gt;
|-&lt;br /&gt;
|설정&lt;br /&gt;
|라즈베리파이의 설정을 변경한다.&lt;br /&gt;
|라즈베리파이 설정 &amp;gt; 인터페이스 &amp;gt; SPI, I2C를 Enable로 설정&lt;br /&gt;
|-&lt;br /&gt;
|리부팅&lt;br /&gt;
|설정을 반영하기 위해.&lt;br /&gt;
|sudo reboot&lt;br /&gt;
|-&lt;br /&gt;
|확인&lt;br /&gt;
|/dev/i2c-1 과 같은 답변을 얻었다면 설정이 제대로 된 것.&lt;br /&gt;
|ls /dev/i2c*&lt;br /&gt;
|-&lt;br /&gt;
|툴 설치&lt;br /&gt;
|기기를 SCL과 SDA에 연결한 후에&lt;br /&gt;
&amp;lt;code&amp;gt;i2cdetect -y 1&amp;lt;/code&amp;gt;을 명령하면 연결된 주소가 나온다.&lt;br /&gt;
|sudo apt-get install -y i2c-tools&lt;br /&gt;
|-&lt;br /&gt;
|파이썬에서의 활용&lt;br /&gt;
|보통 기기를 활용하는 라이브러리를 사용할 때 자동으로 지정하여 읽는데..&lt;br /&gt;
라이브러리별로 지정하는 방법이 다르다.&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
</feed>