ๅๅใฏๆถฒๆถใใฃในใใฌใคใๆถ็ฏใงใใใใฎใซไบคๆใใพใใใ
ๆฌกใฏใญใใณใ่ฟฝใๆฑใใฆใฟใใใจๆใใพใใ
ไปๆง
- ้จๅฑใฎ็ งๆใๆถใใ
- Arduino ใซๆฅ็ถใใใ็ งๅบฆใปใณใตใผใซใใ้จๅฑใฎ็ งๅบฆใๆค็ฅ๏ผ50 ไปฅไธใซใชใ๏ผ
- Python ใใทใชใขใซ้ไฟกใใ้จๅฑใฎ็ งๅบฆใๅๅพ๏ผ50 ไปฅไธใๅๅพ๏ผ
- ้จๅฑใๆใ็ถๆ ใซ๏ผ็ งๅบฆ 50 ไปฅไธใซ๏ผๅคๅใใใๆถฒๆถใใฃในใใฌใคใฎๆถ็ฏใณใใณใใๅฎ่ก
- ้จๅฑใฎ็ งๆใ็นใใ
- ้จๅฑใๆใใ็ถๆ ใซ๏ผ็ งๅบฆ 50 ไปฅไธใซ๏ผๅคๅใใใ็น็ฏใณใใณใใๅฎ่ก
่ๆฏ
- ใณใใณใใใใกใใกๆใคใฎใ้ขๅ
- ใใจใใฃใฆ้จๅฑใซไบบใใใชใ๏ผ็ งๆใๆถใใ๏ผ็ถๆ ใง LCD ็นใใฃใฑใชใใฏใใฃใใใชใ
- ใญใใณ้่ฆ
ใใผใใฆใงใข่จญ่จ
ใใคใณใณ๏ผArduino Micro
็
งๅบฆใปใณใตใผ๏ผNJL7302L-F3 1ๅ
ๆตๆ๏ผ10kฮฉ 1ๅ
ๅ่ทฏใฏใใใปใฉ้ฃใใใใฎใงใฏใชใใงใใ
ๅ
ฅๅใฏ 5V ใงใๅบๅใ A3 ใจๆตๆ 10kฮฉ -> GND ใซใชใฃใฆใใใ ใใงใใ
๏ผๅ่ทฏๅณใงใฏๆตๆใ 220ฮฉ ใซใชใฃใฆใพใใใใใใใ็ตตใ่ฆใคใใใใชใใฃใใฎใง่ชญใฟๆฟใใฆใใ ใใ๏ผ
ๅ่๏ผใกใณใงใใใฎ2ใง้ใใงใฟใ
ใฝใใใฆใงใข่จญ่จ
ใพใใฏ Arduino ใงๅฎ่กใใใใญใฐใฉใ ใฎใฝใผในใณใผใใงใใ
A3๏ผใขใใญใฐ3็ชใใผใ๏ผใ่ชญใฟๅใฃใฆใ1็งใใใซใทใชใขใซ้ไฟกใธๆธใๅบใใ ใใฎใทใณใใซใชใใฎใงใใ
void setup() {
//start serial connection
Serial.begin(9600);
//configure pin A3 as an input and enable the internal resistor
pinMode(A3, INPUT);
}
void loop() {
//read the photocell value into a variable
int sensorVal = analogRead(A3);
//print out the value of the photocell
Serial.println(sensorVal);
//delay 1000 ms
delay(1000);
}
ใคใณใฟใผใใงใผใน่จญ่จ
UI ็ป้ข่กจ็คบใจใใใฏใฉใคใๅถๅพกใฏ Python ใ่กใใพใใ
ใพใใฏ Tkinter ใง็ป้ขใไฝใใพใใใใใใฃใณใฐ๏ผpadx, pady๏ผใๅใฃใใจใใใใฐใฌใผใซใชใฃใฆใพใใ
โปๆฐๅคใชใฉใฎ่กจ็คบใฏใใใผใงใใ
ใกใชใฟใซใฝใผในใณใผใใฎไธ้จใฏใใใชๆใใ
self.label1=Label(self, text="ๆฅ็ถๅ
", bg="white", font=("Sans", 16, "normal"))
self.label1.grid(row=0, column=0, sticky="news", padx=5, pady=2)
self.label2=Label(self, text="/dev/ttyACM0", bg="#E4E4FF", font=("Sans", 16, "normal"))
self.label2.grid(row=0, column=1, sticky="news", padx=5, pady=2)
ๅ
้จใใใฃใณใฐ๏ผipadx, ipady๏ผใซใใฆใฏใฉใใใ
็ตๆใฏใใกใใ
ใใใใใใใใใใชใใใ ใ
็ฉบ้ใจใใใใ็ฝ่ๆฏใงไฝ็ฝใๆใใใใใ ใใชใใ ใ
ใชใใจใใชใใชใใใฎใใจ่ชฟในใฆใใใจใ
็ฝ่ๆฏใฎใใฌใผใ ใ่ฆชใซ็ฝฎใใๅญใจใใฆใฉใใซใๆๅฑใใใใ่ฏใใจใฎๆ
ๅ ฑใ
self.label1=Label(self, text="ๆฅ็ถๅ
", bg="white", font=("Sans", 16, "normal"))
self.label1.grid(row=0, column=0, sticky="news", ipadx=5, ipady=2)
self.frame2=Frame(self, bg="white")
self.frame2.grid(row=0, column=1, sticky="news")
self.frame2.columnconfigure(0, weight=1)
self.label2=Label(self.frame2, text="", bg="#E4E4FF", font=("Sans", 16, "normal"))
self.label2.grid(row=0, column=0, sticky="news", padx=5, pady=2)
ไปๅบฆใฏใใพใ่กใใพใใใ
ใใใๆฐ้ใฏๅคฉๆใ ใใใงใใชใ
ใใใใใใใ ใใฎใใใซๅๆฅๆฝฐใใฆใพใใใใญใๅ ฑใใใชใใฃใใ
ไปไธใ
ใปใณใตใผใใใคใน๏ผArduino๏ผใๆขใใฆใๆฅ็ถใงใใใฐๆฅ็ถใใฆใๆฅ็ถๅ
ใใจใ้ไฟก้ๅบฆใใ่กจ็คบใใพใใ
ไพๅคๆใฏไฝใใใพใใใ1็งๅพใซๅๅฆ็ใใฆๆฅ็ถใงใใใใใใง่ฏใใจๅคๆญใงใใใใใงใใ
# ่กจ็คบใๆดๆฐ
def update(self):
# ใปใณใตใผใใใคในใๆขใ
self.ser_name=sensor_setting.dev_search()
try:
# ้ไฟกๆบๅไธญใใคใใปใณใตใผใใใคในใ OS ใซ่ช่ญใใใฆใใๅ ดๅ
if not self.ser_init and self.ser_name != "":
# ใทใชใขใซ้ไฟกใฎๅๆๅ
self.ser=serial.Serial(self.ser_name, sensor_setting.bps, timeout=sensor_setting.timeout)
# ้ไฟกๆบๅๅฎไบ
self.ser_init=True
# ๆฅ็ถๅ
ใ่กจ็คบ
self.label2.configure(text=self.ser_name)
# ๆฅ็ถ้ๅบฆใ่กจ็คบ
self.label4.configure(text="{0}bps".format(sensor_setting.bps))
# ไพๅคๆใฏไฝใใใชใ
except:
pass
ๆฅ็ถใงใใใใทใชใขใซ้ไฟกใ้ๅงใใฆใ็
งๅบฆใๅๅพใใพใใ
้จๅฑใๆใใชใฃใใใใใฏใฉใคใๆถ็ฏใๆใใใชใฃใใ็น็ฏใใใใใซ้ฃๅใใพใใ
ไพๅค็บ็ๆใฏๆฌกใฎ1็งๅพใซใชใใฉใคใใพใใ
try:
# ใทใชใขใซ้ไฟกใ้ๅง
if self.ser.is_open == False:
self.ser.open()
# 1่กๅไฟก๏ผb'็
งๅบฆยฅrยฅn' ใฎๅฝขๅผใงๅไฟก๏ผ
serval=self.ser.readline()
if len(serval) >= 0:
# ๆน่กใณใผใใๅ้ค๏ผb'็
งๅบฆ'๏ผ
serval=serval.strip()
# ใใคใใชๅฝขๅผใใๆๅญๅใซๅคๆ๏ผ็
งๅบฆ๏ผ
serval=serval.decode("utf-8")
# ็
งๅบฆใๆดๆฐ
self.label12.configure(text=serval)
# ใใใฏใฉใคใ็น็ฏไธญใซ้จๅฑใๆใใชใฃใใ
if int(serval) < 50 and self.backlight_state == 1:
# ใใใฏใฉใคใๆถ็ฏ
os.system('sudo sh -c "echo 0 > /sys/class/backlight/soc\:backlight/brightness"')
self.backlight_state=0
# ใใใฏใฉใคใๆถ็ฏไธญใซ้จๅฑใๆใใใชใฃใใ
elif int(serval) >= 50 and self.backlight_state == 0:
# ใใใฏใฉใคใ็น็ฏ
os.system('sudo sh -c "echo 1 > /sys/class/backlight/soc\:backlight/brightness"')
self.backlight_state=1
# ไพๅคๆ
except:
# ใปใณใตใผ่กจ็คบใใฏใชใข
self.label6.configure(text="")
self.label8.configure(text="")
self.label10.configure(text="")
self.label12.configure(text="")
# 1็งๅพใซๅ่กจ็คบ
self.master.after(1000, self.update)
ใฆใฃใณใใฆใ้ใใๅใซใใใใฏใฉใคใใ็น็ฏใใพใใ
ใใใฏใฉใคใๅถๅพกใไธญๆญใใใฎใงใ็น็ฏใใฆใใใๆนใไฝใใใฃใใจใใฏไพฟๅฉใใชใจๆใใพใใใ
# ้ใใใใฟใณใคใใณใ
def on_closing():
if messagebox.askyesno("Quit", "็ตไบใใพใใ๏ผ"):
# ใใใฏใฉใคใ็น็ฏ
os.system('sudo sh -c "echo 1 > /sys/class/backlight/soc\:backlight/brightness"')
# ใขใใชใฑใผใทใงใณ็ตไบ
root.destroy()
ใพใจใ
Python ใฝใผในใณใผใใฏ้ทใใชใฎใงใ
ใ่ๅณใใใพใใใ GitHub ใใๅ็
งใใ ใใใ
https://github.com/km7902/mySensor
ใชใใจใใ้จๅฑใฎ็
งๆใจ้ฃๅใใฆใใใฏใฉใคใ ON/OFF ใใงใใใใใซใชใใพใใใ
ๆถ่ฒป้ปๅใฏใใกใใคใใใงใใใใๅฐ็ใซๅชใใใทในใใ ใซใชใใพใใใ
ๆฌกใฏๆธฉๅบฆใปๆนฟๅบฆใปๆฐๅงใๅๅพใใฆใใผใฟใใผในใซ่จ้ฒใ็ถใใใจใใ
ไป็ตใฟใใงใใใใใใชใจๆใฃใฆใใพใใ
Comments
Let's comment your feelings that are more than good