1. Vehicle.py
import json
from random import randint
from datetime import datetime
class Vehicle:
def __init__(self):
self.vin = "1HGBH41JXMN109186"
self.date = datetime.now().strftime("%Y/%m/%d, %H:%M:%S")
self.vehiclespeed = randint(0,160)
self.fuelstatus = randint(0,100)
.
.
.
.
self.airbags = {"driverairbag": "active", "passengerairbag": "active", "sideairbags": "active"}
self.doors = {
"frontright": {
"locked": True,
"opened": False
},
.
.
.
},
"rearleft": {
"locked": True,
"opened": False
},
"trunk": {
"locked": True,
"opened": False
}
}
self.lights = {
"headlight": False,
"taillight": False,
"foglight": False,
"signallight": False,
"hazardlight": False,
"parking": False,
"braking": False
}
def to_json(self):
vehicle_dict = {
"vin": self.vin,
"date": self.date,
"vehiclespeed": self.vehiclespeed,
"fuelstatus": self.fuelstatus,
.
.
.
.
"airbags": self.airbags,
"doors": self.doors,
"lights": self.lights
}
vehicle_json = json.dumps(vehicle_dict)
return vehicle_json
2. IOManager.py
from gpiozero import LED
from time import sleep
import RPi.GPIO as GPIO
class IOManager:
def __init__(self):
self.led = LED(17)
self.led.off()
self.trigger_pin = 23
self.buzzer_int = 440
GPIO.setmode(GPIO.BCM)
GPIO.setup(self.trigger_pin, GPIO.OUT)
self.pin_buzzer = GPIO.PWM(self.trigger_pin, self.buzzer_int)
return
def toggle_led(self,on):
self.led.on() if on else self.led.off()
return
def buzzer_sound(self):
try:
self.pin_buzzer.ChangeFrequency(340)
self.pin_buzzer.start(1)
sleep(0.4)
self.pin_buzzer.ChangeFrequency(898)
self.pin_buzzer.start(1)
sleep(0.7)
self.pin_buzzer.ChangeFrequency(687)
self.pin_buzzer.start(1)
sleep(0.3)
finally:
self.pin_buzzer.stop()
return
3. 실행파일.py
from vehicle import Vehicle
from iomanager import IOManager
from time import sleep
def main():
my_vehicle = Vehicle()
io_manager = IOManager()
io_manager.buzzer_sound()
while True:
io_manager.toggle_led(True)
sleep(1)
io_manager.toggle_led(False)
sleep(1)
return
if __name__ == "__main__":
main()
(너무나 재밌다ㅋㅋ)
'CS > Embedded' 카테고리의 다른 글
[Connected Car & AWS] Raspberry-pi 4 환경 설정 - 라이브러리, 브레드 보드 (0) | 2024.04.12 |
---|---|
[Connected Car & AWS] Raspberry-pi 4 환경 설정 - OS & VNC (0) | 2024.04.08 |
[Connected Car & AWS] 독립 연구 시작 (0) | 2024.04.08 |