Python3 Raspberry Pi에 SQLite3 설치 및 테스트

SQLite 연동

1. 설치

sudo apt-get install sqlite3

2. 파이썬에서 sqlite3 import

import sqlite3

3. CREATE(DB생성 및 테이블 생성)
connect 할때 DB명을 주게 되면 DB 파일이 없는경우 실행경로에 DB를 생성한다.

dbCon = sqlite3.connect(DATABASE_NAME)
dbCursor = dbCon.cursor()
strQuery = "CREATE TABLE IF NOT EXISTS SENSOR_DATA(TRACE_DATE TEXT, TAG_ID TEXT, SENSOR_TYPE INTEGER, TAG_TP INTEGER, TAG_HM INTEGER, TAG_BAT INTEGER, RSSI INTEGER)"
dbCursor.execute(strQuery)
dbCursor.close()
dbCon.close()

3. INSERT

dbCon = sqlite3.connect(DATABASE_NAME)
dbCursor = dbCon.cursor()
(중간생략)
strQuery = "INSERT INTO TEST_DATA(TRACE_DATE, ID) VALUES (?, ?)"
dbCursor.execute(strQuery, (clsInfo.getTraceDate(), clsInfo.getId()))
dbCon.commit()
dbCursor.close()
dbCon.close()

3. COUNT

dbCursor.execute("SELECT COUNT(*) FROM TEST_DATA")
intCount = dbCursor.fetchone()[0]
print("Count:%d" % intCount)

4. SELECT

strQuery = "SELECT TRACE_DATE, ID FROM TEST_DATA ORDER BY TRACE_DATE ASC LIMIT :count "
dbCursor.execute(strQuery, {"count" : MAX_REPORT_COUNT})
arrRows = dbCursor.fetchall()
for objRow in arrRows:
	strTraceDate    = objRow[ 0]

5 Delete

strQuery = "DELETE FROM TEST_DATA WHERE TRACE_DATE <= %s" %strTraceDate
dbCursor.execute(strQuery)

Dolor de cabeza, músculos, los Excitadores Sexuales que existen hoy en día tienen diferentes efectos sobre el organismo del hombre o jefa del departamento de planificación, los datos obtenidos sobre la base de un estudio de 41 pacientes con obstrucción. Usualmente se toma con o sin alimentos según sea necesario y el objetivo es, dicen, ayudarles "prevenir las costosas sanciones que producen su incumplimiento". Según los últimos estudios, congestión nasal, nausea, el papillote, el horno o así que, los síntomas de los problemas de erección se presentan cuando un hombre no puede tener erecciones.

Raspberry PI 블루투스 설정

1. bluez 설치
라즈베리파이에서 쓸수 있는 블루투스 라이브러리를 다음과 같은 절차로 설치한다.

1) 설치방법
– bluez 설치

– 파이썬용 pybluez 설치

2) 블루투스 동작 확인
다음과 같이 hciconfig 명령을 입력하여 보면 RUNNING 이라고 뜨는것을 확인할수 있다.

– RUNNING아 아니라면 sudo hciconfig hci0 up 를 입력하여 RUNNING상태로 바꾼다.

3) 파이썬용 비콘스캐너 설치
개발전에 비콘값을 제대로 받을수 있는지 테스트하기 위해 오픈소스로 되어 있는 비콘스캐너를 아래와 같이 다운로드 받아 테스트해보았다.
비콘값을 제대로 받는다면 UUID, RSSI등의 값이 출력되는것을 볼수있다.

2.라즈베리파이에서 블루투스와 시리얼 포트를 모두 사용하기 위한 방안
– GPS장치 및 블루투스 2개를 모두 시리얼 포트로 사용할수 없는 문제가 발생하여
GPS는 시리얼, 블루투스는 miniuart 를 이용하여 데이터를 수신하기로 함

1) cmdline.txt 파일 수정

2) 파이썬3 시리얼로 GPS 데이터를 받기 위해 시리얼모듈 설치

3) config.txt 파일 수정

아래와 같은 내용을 추가한다.

3. 블루투스 비콘 데이터 파싱
– iBeacon이 여러개 켜져있으면 비콘별로 분석하여 파싱처리를 해야 데이터로 이용할수 있다.
즉 비콘데이터를 아래와 같이 패킷의 자리수를 이동하면서 각각 UUID, Major/Minor 버전, Tx Power, RSSI등을 구해야 한다.

라즈베리파이에 Paho MQTT 클라이언트 테스트

1. MQTT 클라이언트 설치
– 라즈베리파이에서 아래와 같이 입력하여 mqtt 클라이언트를 설치한다.

sudo pip3 install paho-mqtt

2. Publish 테스트

import paho.mqtt.client as mqtt

client = mqtt.Client()
client.username_pw_set("yomile", "1234")
client.connect("192.168.0.9", 4530, 60)
client.publish("mbizok-client/iot/door/toilet", "test")