python/Lecture
[arduino][python] DS18B20 Digital Sensor Bluetooth 통신
jinozpersona
2023. 11. 21. 17:40
Arduino UNO R4 Wifi : DS18B20 및 Bluetooth 연결도
DS18B20 연결도 참고 : https://jinozblog.tistory.com/208
HM10 연결(Arduino Code RXD/TXD 선언 시 하드웨어 연결과 반대로 define)
VCC : 5V
GND : GND
RXD : Arduino D4
TXD : Arduino D5
[Arduino IDE 사용] / [Visual Studio Code사용]
Arduino IDE or VS code 초기 셋팅 및 설정 참고
https://jinozblog.tistory.com/207
[arduino] LM35 / TMP36 Sensor 연결도 : arduino IDE or VScode 설정 및 모니터링
Arduino UNO R3 : LM35 Sensor 연결도(TMP36 동일) 및 전달함수식 LM35 Analog Output이므로 A0 ~ A5에 연결 : 필자는 A0에 연결 range : 온도 / 출력(전송)전압, -55ºC ~ 150ºC : -550mV ~ 1500mV LM35 Transfer Function Arduino AO resol
jinozblog.tistory.com
[Arduino Code]
DS18B20 Sensor, HM-10 Bluetooth 연결
#include <SoftwareSerial.h>
#include <OneWire.h>
#include <DallasTemperature.h>
// HM10 RXD D4, TXD D5
#define BT_RXD 5
#define BT_TXD 4
SoftwareSerial BTSerial(BT_RXD, BT_TXD);
#define ONE_WIRE_BUS 13
OneWire Wire(ONE_WIRE_BUS);
DallasTemperature sensor(&Wire);
char value[8];
void setup() {
Serial.begin(9600);
BTSerial.begin(9600);
Serial.println("HM10 Bluetooth Start");
}
void loop() {
sensor.requestTemperatures();
dtostrf(sensor.getTempCByIndex(0) , 5, 2, value);
Serial.println(value);
BTSerial.print(value);
delay(1000);
}
Arduino Serial Monitoring
[python Code]
MacBook Pro 13(2019년)
모델 식별자: MacBookPro15,2
macOS Sonoma
HM-10 Bluetooth 연결 안됨
HC-06 Bluetooth 연결 안됨
iphone App. LightBlue 확인 가능
MacBook Air 2014
macOS Bigsur 가능
DS18B20 Sensor, HM-10 Bluetooth 연결
import os
import platform
import serial
import serial.tools.list_ports as serial_port
import time
port_lists = serial_port.comports()
if platform.platform()[0:5] == 'macOS':
port_type_ser = '/dev/cu.usbmodem'
port_type_ble = '/dev/cu.persona_'
for port_list in port_lists:
if port_list.device[0:16] == port_type_ser:
port_ser = port_list.device
elif port_list.device[0:16] == port_type_ble:
port_ble = port_list.device
else:
port_type_ser = '/dev/ttyACM'
port_type_ble = '/dev/rfcomm'
for port_list in port_lists:
if port_list.device[0:11] == port_type_ser:
port_ser = port_list.device
elif port_list.device[0:11] == port_type_ble:
port_ble = port_list.device
if port_ser == None or port_ble == None:
os.system("sudo chmod a+rw {}".format(port_ser))
os.system("sudo chmod a+rw {}".format(port_ble))
else:
pass
baud_rate = 9600
ard_ser = serial.Serial(port_ser, baud_rate)
ard_ble = serial.Serial(port_ble, baud_rate)
while(1):
if ard_ser.readable():
print("[serial]:{}".format(ard_ser.readline().decode()))
elif ard_ble.readable():
print("[bluetooth]:{}".format(ard_ble.readline().decode()))
# time.sleep(1)
반응형