Мазмуну:

Raspberry PI LED аба ырайы станциясы: 8 кадам
Raspberry PI LED аба ырайы станциясы: 8 кадам

Video: Raspberry PI LED аба ырайы станциясы: 8 кадам

Video: Raspberry PI LED аба ырайы станциясы: 8 кадам
Video: Загадка Титаника : Как они могли не заметить айсберг?! Самая подробная история! 2024, Июль
Anonim
Raspberry PI LED аба ырайы станциясы
Raspberry PI LED аба ырайы станциясы

Биз Raspberry PI Weather LED бекетин түздүк. Бул колдонуучуга шаарды жарыктандыруу жана күңүрт кылуу аркылуу канчалык ысык жана суук экенин айтат. Ошондой эле, алар жазган шаарда жамгыр жаап же жаабай турганын айтууга мүмкүнчүлүк бар.

Майкл Эндрюс жана Тио Марелло тарабынан түзүлгөн.

Жабдуулар

Куралдар

  1. Кандооч
  2. Dremel
  3. Көрдүм

Материалдар

  1. Raspberry Pi 3 B+ ~ 40 Dollars ~ 30 Dollars
  2. Аялдан Эркекке секирүүчү зымдар ~ 7 доллар
  3. 3 Көк жана 2 Кызыл LED диод ~ 11 доллар
  4. 100 Ом резисторлор ~ 13 доллар
  5. 4 x 4 x 1/4 Wood Plank ~ 5 доллар
  6. Solder ~ 10 доллар
  7. Жез зым ~ 5 доллар

1 -кадам: Маселени чечүү катары коддоо

Коддоо - бул көйгөйдү чечүү

Ошентип, биздин долбоордо биздин көйгөйүбүз эмнеде? Биздин көйгөй аба -ырайы маалыматын алуу жана андан кийин бул маалыматты колдонуу менен биздин LEDлерибизге алар өчүп же күйүп тургандыгын айтышат. Ошентип, бул биздин көйгөйдү үч тармакка бөлөт.

1. Аба ырайы маалыматтарын алуу

2. Ошол маалыматтарды колдонуу

3. LEDs колдонуу

Бирок, биз бул долбоор үчүн колдонгон тилибиз, Python жана ал иштеп жаткан жабдыктар, Python, бул максаттарга жетүүнүн оңой жолун берет.

Ошентип, биз биринчи көйгөй менен баштайлы, аба ырайы маалыматын алуу.

2 -кадам: Коддоо: Аба ырайы маалыматын алуу

Python өзү аба ырайын ала албайт. Аба ырайы маалыматын алуу үчүн эки куралды, ошондой эле тышкы кызматты импорттошубуз керек. Бул үчүн биз үч куралды колдонобуз.

1. Сурамдар, веб -сайттарды кырууга мүмкүндүк берүүчү питон модулу

2. Json, бизге JSON файл форматын колдонууга мүмкүндүк берген питон модулу

3. OpenWeather, бизге аба -ырайы маалыматын бере ала турган веб -сайт

Ошентип, биз бул модулду python скриптибиздин үстүнө жазуу менен эки модулду алып келебиз.

импорттук сурамдар

json импорттоо

Бул куралдарды колдонуудан мурун, биз Openweatherди колдонушубуз керек. Ал үчүн биз алардын сайтында каттоо эсебин түзүп, API ачкычын алышыбыз керек. Алардын веб -сайтындагы көрсөтмөлөрдү аткарыңыз, ошондо сиз алардын кызматын колдонууга мүмкүндүк бере турган тамгалар менен сандарды алабыз. Кантип?

openweather_api_key = "260a23f27f5324ef2ae763c779c32d7e" #Биздин API ачкычы (реалдуу эмес)

base_call = "https://api.openweathermap.org/data/2.5/weather?q=" #АчыкАба ырайы #Бул жерден биз колдонуучунун шаарын текст басып чыгаруу түрүндө алабыз ("Шаарга тер!") city_name = input () #Бул жерде биз өтүнүчтөргө кошула турган даректи чогулттук Response = talep.get (full_call) WeatherData = Response.json () #JSON файлдары бул синтаксистин жардамы менен кире ала турган ар кандай өзгөрмөлөрдү камтыйт #Бул жерде биз колдонуучунун WeatherID = WeatherData деп аталган шаардын Келвин шаарындагы аба ырайын жана температурасын алабыз. ["аба ырайы"] [0] ["id"] City_TemperatureK = WeatherData ["main"] ["temp"]

Бул жерде бизде аба ырайы тууралуу маалыматтарды ала турган код бар. Requests.get түрүндөгү сурамдар веб -сайттын дарегин алат жана бизге ошол веб -сайттан файлды кайра берет. OpenWeather бизге json түрүндө аба ырайы маалыматын берүү үчүн чалуу үчүн даректи берет. Биз сурамдарга кошулган даректи чогултуп, json файлын кайтарып алабыз. Андан кийин биз эки өзгөрмөнү түзөбүз жана аларды колдонуучунун шаарынын температурасына жана аба ырайына дайындайбыз.

Ошентип, азыр бул код менен бизде эки өзгөрмө бар. Бизде аба ырайы ID жана Кельвинде температура бар

3 -кадам: Коддоо: Бул маалыматтарды колдонуу

Эми бизде бул эки өзгөрмө бар, биз аларды LEDS үчүн колдонуу үчүн даярдообуз керек. Бул жагынан алганда, бул үчүн эч кандай модулдарды импорттоонун кажети жок.

Биринчиден, биз келвинди Фаренгейтке айландырабыз.

Биз муну ушул синтаксис менен өзгөрмөнү түзүү аркылуу жасайбыз

City_TemperatureF = (City_TemperatureK - 273)*1.8 + 32

бул Келвинден Фаренгейтке айланат (бул чындыгында K -> C -> Fден айланат)

Кийинки биздин аба ырайы. WeatherID - бул Openweather берген шаардын аба -ырайы жөнүндө маалымат берген ID.

openweathermap.org/weather-conditions Мына булардын тизмеси.

Биз 700 санынын астындагы нерселердин баары жаан -чачын экенин байкадык, ошондуктан жамгыр жаап жатканын текшерүү үчүн код 700дөн төмөн экенин текшердик.

def CheckRain (IdCode): if IdCode <700: return True else else: false

Муну менен, бизде эки өзгөрмөнү Raspberry PI казыктары жана LED диоддору менен колдонуу үчүн даярдалган.

4 -кадам: Коддоо: RPi. GPIO жана LED диоддорун колдонуу

Коддоо: RPi. GPIO жана LED диоддорун колдонуу
Коддоо: RPi. GPIO жана LED диоддорун колдонуу

RaspberryPi биз электрдик компоненттери менен байланышуу үчүн колдоно ала турган эркек казыктардын топтому менен келет, бул учурда LED диоддору; Бул Arduino жана анын системасына окшош. Бирок, Raspberry PI - Arduino сыяктуу микроконтроллерден айырмаланып, жалпы максаттагы компьютер. Ошентип, биз аларды колдонуу үчүн дагы бир аз көбүрөөк иштешибиз керек. Бул Raspberry Pi боюнча казыктарды орнотуудан турат. Биз муну ушул кодду колдонуу менен жасайбыз.

импорттоо RPi. GPIO катары GPIO #Биз модулду импорттойбуз, ошондуктан аны колдоно алабыз

PinsGPIO.setmode (GPIO. BCM) GPIO.setwarnings (False) орнотуу

#Жарык диоддор туташтырылган. Эгер сиз аны курсаңыз, булар башкача болушу мүмкүн, андыктан керек болгондо салыштырып, өзгөртүүнү унутпаңыз

Extreme_Hot_LED_PIN = 26 Hot_LED_PIN = 16

Extreme_Cold_LED_PIN = 5

Cold_LED_PIN = 6

Rain_LED_PIN = 23

#Биз.setup буйругун колдонуп, анын номерин коюп, аны чыгуучу пин катары коюп, ар бир пинден өтөбүз

GPIO.setup (Rain_LED_PIN, GPIO. OUT) GPIO.setup (Extreme_Cold_LED_PIN, GPIO. OUT) GPIO.setup (Cold_LED_PIN, GPIO. OUT) GPIO.setup (Hot_LED_PIN, GPIO. OUT) GPIO.setup (Extreme_Hot)

Бирок, бул код бизге жетектелген эки абалды колдонууга уруксат берет, башкача айтканда, күйгүзүү жана өчүрүү. Бирок, биз жарыкты өчүрүү үчүн керек. Бул үчүн биз Pulse Width Modulation колдонобуз.

Pulse Width Modulation колдонуу

Pulse Width Modulation бизге санарип пиндин жардамы менен аналогдук сигналды чыгарууга мүмкүндүк берет. Негизи, ал сигналдын булагын жогорку ылдамдыкта күйгүзөт жана өчүрөт, ал орточо белгилүү бир чыңалууга чыгат. RPi. GPIO кээ бир кошумча коддор менен болсо да, муну колдонууга мүмкүнчүлүк берет.

#Биз каналдын номерин алган GPIO. PWM буйругун колдонуу менен төрт пин объектини түзөбүз

#Экинчи сан - бул секундасына канча жолу жаңыртылгандыгы

ExtremeHotLED = GPIO. PWM (Extreme_Hot_LED_PIN, 100) HotLED = GPIO. PWM (Hot_LED_PIN, 100)

ExtremeColdLED = GPIO. PWM (Extreme_Cold_LED_PIN, 100)

ColdLED = GPIO. PWM (Cold_LED_PIN, 100)

Кийинки кадам үчүн, биз бул казыктарды кантип жаңыртууну билишибиз керек.

Биз буйрукту колдонуу менен казыктарды жаңыртып турабыз

ExtremeColdLED.start (x) ColdLED.start (x)

ExtremeHotLED.start (x)

HotLED.start (x)

x бул учурда анын канчалык импульсун аныктоочу милдет цикли болмок. Бул 0-100гө чейин, ошондуктан биз кийинки фактыбызды негиздешибиз керек.

5 -кадам: Коддоо: LED жарыктыгын алуу

Коддоо: LED жарыктыгын алуу
Коддоо: LED жарыктыгын алуу

Бизде төрт башка лед бар болгондуктан, биз аларды кантип жарыктандырууну каалайбыз. суук же ысык бул колдонуучунун шаарында. Биз жетектөөчүлөр үчүн төрт этапка ээ болууну чечтик.

#Функциялар

def getmiddleleftledintensity (TemperatureinF): #Сол Теңдеме: y = -(50/20) x + 175 #Оң Теңдеме: y = (50/20) x -75 кайтаруу -(50/20)*ТемператураF + 175

def getmiddlerightledintensity (TemperatureinF):

#Сол Теңдеме: y = - (50/20) x + 175 #Оң Теңдеме: y = (50/20) x - 75 кайтаруу (50/20)*ТемператураF - 75

def getextremeleftledintensity (TemperatureinF):

#LeftEquation: y = - (100/30) x + 200 #RightEquation: y = (100/30) x - (400/3)

кайтуу -(100/30)*ТемператураF + 200

def getextremerightledintensity (TemperatureinF):

# LeftEquation: y = - (100/30) x + 200 # RightEquation: y = (100/30) x - (400/3)

кайтуу (100/30)*TemperatureinF - (400/3)

#LED чырактарын коюу

def GetLEDBrightness (темп):

эгер темп <= 0: extremecoldled = 100 coldled = 100 hotled = 0 extremehotled = 0

басып чыгаруу ("Абдан муздак жол:" + str (экстремалдуу))

басып чыгаруу ("Cold led:" + str (coldled)) print ("Extreme hot led" + str (aşırıehotled)) print ("Hot led:" + str (hotled))

ExtremeColdLED.start (экстремалдуу)

ColdLED.start (муздак)

ExtremeHotLED.start (экстремоттук)

HotLED.start (hotled) elif temp> = 100: extremecoldled = 0 coldled = 0 hotled = 100 extremehotled = 100

басып чыгаруу ("Абдан муздак жол:" + str (экстремалдуу))

басып чыгаруу ("Cold led:" + str (coldled)) print ("Extreme hot led" + str (aşırıehotled)) print ("Hot led:" + str (hotled))

ExtremeColdLED.start (экстремалдуу)

ColdLED.start (муздак)

ExtremeHotLED.start (экстремоттук)

HotLED.start (hotled) elif 0 <temp <= 30: extremecoldled = getextremeleftledintensity (temp) - 100 coldled = 100 hotled = 0 extremehotled = 0

басып чыгаруу ("Абдан муздак жол:" + str (экстремалдуу))

басып чыгаруу ("Cold led:" + str (coldled)) print ("Extreme hot led" + str (aşırıehotled)) print ("Hot led:" + str (hotled))

ExtremeColdLED.start (экстремалдуу)

ColdLED.start (муздак)

ExtremeHotLED.start (экстремоттук)

HotLED.start (hotled) elif 100> temp> = 70: extremecoldled = 0 coldled = 0 hotled = 100 extremehotled = getextremerightledintensity (temp) - 100

басып чыгаруу ("Абдан муздак жол:" + str (экстремалдуу))

басып чыгаруу ("Cold led:" + str (coldled)) print ("Extreme hot led" + str (aşırıehotled)) print ("Hot led:" + str (hotled))

ExtremeColdLED.start (экстремалдуу)

ColdLED.start (муздак)

ExtremeHotLED.start (экстремоттук)

HotLED.start (hotled) elif 30 <temp <50: extremecoldled = 0 coldled = getmiddleleftledintensity (temp) hotled = 100 - coldled extremehotled = 0

басып чыгаруу ("Абдан муздак жол:" + str (экстремалдуу))

басып чыгаруу ("Cold led:" + str (coldled)) print ("Extreme hot led" + str (aşırıehotled)) print ("Hot led:" + str (hotled))

ExtremeColdLED.start (экстремалдуу)

ColdLED.start (муздак)

ExtremeHotLED.start (экстремоттук)

HotLED.start (hotled) elif 50 <temp <70: hotled = getmiddlerightledintensity (temp) extremehotled = 0

муздак = 100 - ысык

экстремалдык = 0

басып чыгаруу ("Абдан муздак жол:" + str (экстремалдуу))

басып чыгаруу ("Cold led:" + str (coldled)) print ("Extreme hot led" + str (aşırıehotled)) print ("Hot led:" + str (hotled))

ExtremeColdLED.start (экстремалдуу)

ColdLED.start (муздак)

ExtremeHotLED.start (экстремоттук)

HotLED.start (hotled) elif temp == 50: extremecoldled = 0 coldled = 50 hotled = 50 extremehotled = 0

басып чыгаруу ("Абдан муздак жол:" + str (экстремалдуу))

басып чыгаруу ("Cold led:" + str (coldled)) print ("Extreme hot led" + str (aşırıehotled)) print ("Hot led:" + str (hotled))

ExtremeColdLED.start (экстремалдуу)

ColdLED.start (муздак)

ExtremeHotLED.start (экстремоттук)

HotLED.start (ысык)

Жарайт, коддун бул бөлүмү чынында эле узун. Ошондой эле түшүндүрүү абдан кыйын. Негизи, жогорудагы код Фаренгейттеги температураны карап, анын диапазондордун топтомунда экендигин аныктайт. Диапазондорго жараша, ал ар бир жетектөөчүгө жана анын жарыктыгына номер берет, андан кийин start () командасын чакырып, жарыкты орнотот. Бул тез түшүндүрмө. Эгер бул жетиштүү болсо, мен сизге кийинки кадамга өтүүнү сунуштайм, бирок эгер сиз узун жана түйшүктүү түшүндүрмөнү көргүңүз келсе, окууңузду улантыңыз.

Биз программалаганда, биз температурадан маанини алуунун эң оңой жолун математикалык функция түрүндө чечтик. Ошентип, биз GeoGebraдагы графикти түзүп, биздин температурабыз менен жарыктыктын ортосундагы байланышты чагылдырдык; 100дөн жогору кетишинин себеби, кошумча экинчи ледге кирмек. Ошентсе да, биз бул пункттардын бардыгын бир функцияга салыштыруу үчүн бир функцияны алуу маселесине кирдик. Биз параболаны колдоно алабыз деп ойлодук, бирок эгерде бир нече билдирүүлөрдү колдонууну чечтик. Негизи, бул коддун баары бөлүкчө функция.

Жогорудагы функциялар сызыктардын тиешелүү теңдемеси. Графикте температура кайда экенин аныктагандан кийин, биз аны ошол функция аркылуу иштетебиз, жарыктыгын алабыз жана аны ледтерге өткөрүп беребиз.

6 -кадам: Коддоо: Акыркы кадамдар

Акырында, биз бул сөздү аягына кошобуз.

аракет кыл:

while (True): GetLEDBrightness (City_TemperatureF) GetRainLED (WeatherID) time.sleep (10) KeyboardInterruptден башка: quit ()

Try and except операторлору клавиатуранын кыска жолун колдонуу менен коддон чыгууга мүмкүндүк берет; же болбосо, кодду кайра баштоо үчүн Raspberry Pi жабылышы керек. Андан кийин бизде түбөлүккө иштей турган убактылуу цикл бар. Биз леддерди жаңыртып, ошондой эле жамгырдын LEDин жаңыртып турабыз. Биз он секунд тыныгуу жасайбыз; OpenWeather мүнөтүнө 60 гана чалууларды аткарууга мүмкүндүк берет жана 10 секунд жаңыртууларга бай.

Муну менен биздин код бүтүп калды. Төмөндө даяр код.

RaspberryPIWeatherStation.py

импорттук сурамдар
importRPi. GPIOasGPIO
importjson
импорттук убакыт
#Openweather idCodes 700дөн азыраак баары жаан -чачын
defCheckRain (IdCode):
ifIdCode <700:
returnTrue
башка:
returnFalse
defgetmiddleleftledintensity (TemperatureinF):
#Сол теңдеме: y =-(50/20) x + 175
#Оң теңдеме: y = (50/20) x - 75
кайтуу- (50/20)*ТемператураF+175
defgetmiddlerightledintensity (TemperatureinF):
#Сол теңдеме: y =-(50/20) x + 175
#Оң теңдеме: y = (50/20) x - 75
кайтуу (50/20)*ТемператураF-75
defgetextremeleftledintensity (TemperatureinF):
#SolEquation: y = -(100/30) x + 200
#RightEquation: y = (100/30) x - (400/3)
кайтуу- (100/30)*ТемператураF+200
defgetextremerightledintintency (TemperatureinF):
# LeftEquation: y = -(100/30) x + 200
# RightEquation: y = (100/30) x - (400/3)
кайтуу (100/30)*TemperatureinF- (400/3)
#GPIO орнотуу
GPIO.setmode (GPIO. BCM)
GPIO.setwarnings (False)
#Пиндер
Extreme_Hot_LED_PIN = 26
Hot_LED_PIN = 16
Extreme_Cold_LED_PIN = 5
Cold_LED_PIN = 6
Rain_LED_PIN = 23
#Пин орнотуу
GPIO.setup (Rain_LED_PIN, GPIO. OUT)
GPIO.setup (Extreme_Cold_LED_PIN, GPIO. OUT)
GPIO.setup (Cold_LED_PIN, GPIO. OUT)
GPIO.setup (Hot_LED_PIN, GPIO. OUT)
GPIO.setup (Extreme_Hot_LED_PIN, GPIO. OUT)
ExtremeHotLED = GPIO. PWM (Extreme_Hot_LED_PIN, 100)
HotLED = GPIO. PWM (Hot_LED_PIN, 100)
ExtremeColdLED = GPIO. PWM (Extreme_Cold_LED_PIN, 100)
ColdLED = GPIO. PWM (Cold_LED_PIN, 100)
defGetLEDBrightness (темп):
iftemp <= 0:
экстремалдык = 100
муздак = 100
ысык = 0
экстремоттук = 0
басып чыгаруу ("Абдан муздак жол:"+str (экстремалдуу))
басып чыгаруу ("Cold led:"+str (coldled))
басып чыгаруу ("Өтө ысык лед"+str (экстремалдуу)))
басып чыгаруу ("Hot led:"+str (hotled))
ExtremeColdLED.start (экстремалдуу)
ColdLED.start (муздак)
ExtremeHotLED.start (экстремоттук)
HotLED.start (ысык)
eliftemp> = 100:
экстремалдык = 0
муздак = 0
ысык = 100
экстремоттук = 100
басып чыгаруу ("Абдан муздак жол:"+str (экстремалдуу))
басып чыгаруу ("Cold led:"+str (coldled))
басып чыгаруу ("Өтө ысык лед"+str (экстремалдуу)))
басып чыгаруу ("Hot led:"+str (hotled))
ExtremeColdLED.start (экстремалдуу)
ColdLED.start (муздак)
ExtremeHotLED.start (экстремоттук)
HotLED.start (ысык)
elif0 <темп <= 30:
Extrecoldled = getextremeleftledintensity (temp) -100
муздак = 100
ысык = 0
экстремоттук = 0
басып чыгаруу ("Абдан муздак жол:"+str (экстремалдуу))
басып чыгаруу ("Cold led:"+str (coldled))
басып чыгаруу ("Өтө ысык лед"+str (экстремалдуу)))
басып чыгаруу ("Hot led:"+str (hotled))
ExtremeColdLED.start (экстремалдуу)
ColdLED.start (муздак)
ExtremeHotLED.start (экстремоттук)
HotLED.start (ысык)
elif100> темп> = 70:
экстремалдык = 0
муздак = 0
ысык = 100
extremehotled = getextremerightledintensity (темп) -100
басып чыгаруу ("Абдан муздак жол:"+str (экстремалдуу))
басып чыгаруу ("Cold led:"+str (coldled))
басып чыгаруу ("Өтө ысык лед"+str (экстремалдуу)))
басып чыгаруу ("Hot led:"+str (hotled))
ExtremeColdLED.start (экстремалдуу)
ColdLED.start (муздак)
ExtremeHotLED.start (экстремоттук)
HotLED.start (ысык)
elif30 <темп <50:
экстремалдык = 0
муздак = getmiddleleftledintensity (темп)
ысык = 100-муздак
экстремоттук = 0
басып чыгаруу ("Абдан муздак жол:"+str (экстремалдуу))
басып чыгаруу ("Cold led:"+str (coldled))
басып чыгаруу ("Өтө ысык лед"+str (экстремалдуу)))
басып чыгаруу ("Hot led:"+str (hotled))
ExtremeColdLED.start (экстремалдуу)
ColdLED.start (муздак)
ExtremeHotLED.start (экстремоттук)
HotLED.start (ысык)
elif50 <temp <70:
ысык = getmiddlerightledintensity (темп)
экстремоттук = 0
муздак = 100 ысык
экстремалдык = 0
басып чыгаруу ("Абдан муздак жол:"+str (экстремалдуу))
басып чыгаруу ("Cold led:"+str (coldled))
басып чыгаруу ("Өтө ысык лед"+str (экстремалдуу)))
басып чыгаруу ("Hot led:"+str (hotled))
ExtremeColdLED.start (экстремалдуу)
ColdLED.start (муздак)
ExtremeHotLED.start (экстремоттук)
HotLED.start (ысык)
eliftemp == 50:
экстремалдык = 0
муздак = 50
ысык = 50
экстремоттук = 0
басып чыгаруу ("Абдан муздак жол:"+str (экстремалдуу))
басып чыгаруу ("Cold led:"+str (coldled))
басып чыгаруу ("Өтө ысык LED"+str (экстремалдуу)))
басып чыгаруу ("Hot led:"+str (hotled))
ExtremeColdLED.start (экстремалдуу)
ColdLED.start (муздак)
ExtremeHotLED.start (экстремоттук)
HotLED.start (ысык)
defGetRainLED (idCode):
ifCheckRain (idCode):
GPIO.output (Rain_LED_PIN, GPIO. HIGH)
башка:
GPIO.output (Rain_LED_PIN, GPIO. LOW)
#Api маалыматы: Repalce API ачкычын oepnweather api ачкычы менен
openweather_api_key = "460a23f27ff324ef9ae743c7e9c32d7e"
base_call = "https://api.openweathermap.org/data/2.5/weather?q="
басып чыгаруу ("Шаарга териңиз!")
city_name = киргизүү ()
full_call = base_call+city_name+"& appid ="+openweather_api_key
#Аба ырайы маалыматын алуу
Жооп = request.get (full_call)
WeatherData = Response.json ()
WeatherID = WeatherData ["аба ырайы"] [0] ["id"]
City_TemperatureK = WeatherData ["main"] ["temp"]
City_TemperatureF = (City_TemperatureK-273)*1.8+32#Фаренгейтке айландыруу
#LED/GPIO Stuff
басып чыгаруу ("K:"+str (City_TemperatureK))
басып чыгаруу ("F:"+str (City_TemperatureF))
басып чыгаруу (WeatherID)
аракет кыл:
while (True):
GetLEDBrightness (City_TemperatureF)
GetRainLED (WeatherID)
time.sleep (10)
exceptKeyboardInterrupt:
чыгуу ()

rawRaspberryPIWeatherStation.py менен ❤ GitHub тарабынан хостингди көрүү

7 -кадам: Куруу жана зым тартуу

Ой! Бардык коддоодон кийин, биз имаратка келебиз, бул кыйла оңой. Корона үйдө болууга буйрук бергендиктен, биз мектепте күткөн көптөгөн шаймандарга жете алган жокпуз. Ошентип, бул бөлүк биз ойлогондон бир аз жөнөкөй. Өзгөчөлүктөрү да ийкемдүү. Алгач жыгач устунга тик бурчтук тарттык. Конкреттүү өлчөмдүн анча деле мааниси жок, анткени ал ледтерди жана электрониканы коюу үчүн платформа катары кызмат кылат.

Андан кийин биз жыгач кесимибиздин 1/8 бөлүгүндө беш бургуладык.

Андан кийин биз электроникабыз үчүн платформа катары колдонуу үчүн тактайдан тик бурчтукту кесип салдык.

(Бул биз баштаганда болду; биз чоңураак арааны таптык!)

Андан кийин биз анод менен катоддун казыктарын тешиктерге түртөбүз; леддер үстү жагында жатышы керек, лампалары чыгып турат; кайсы бут узун жана кыска экенин көзөмөлдөп туруңуз. Андан кийин зымдарды ширете баштадык. Биринчиден, биз резисторлорду LEDдин анод бутуна (узун шыйрак) ширетебиз.

Андан кийин, биз светодиоддордун катодунун буттарын бир жез зымга кошобуз, аны биз жер катары колдонобуз. Бул мындай көрүнүшү керек.

Муну кылгандан кийин, биз аял-эркек секирүүчү кабелдердин эркек учтарын ар бир резистордун учтарына жана жез жерге зымга кошобуз. Муну кылгандан кийин, зымдарды малина PI GPIO казыктарына туташтыра баштайбыз. Мына диаграмма! Бирок, көңүл буруңуз, казыктар мурда тийген коддо.

Мунун баары туташкандан кийин, эми эмне кылыш керек, Python файлын малина Piге жүктөп, терминалды ачуу. "python3 RaspberryPIWeatherStation.py" иштетип, анан көрсөткөндөй кылыңыз.

8 -кадам: Демонстрация жана Жыйынтык

Толук окуу үчүн рахмат! Мен төмөндөгү питон скриптин тиркейм! Эгерде биз кошо турган нерселер болсо, балким…

1. Ар кандай киргизүү түрлөрүн колдоо (шаарлар, географиялык пункттар ж. Б.)

2. Көбүрөөк аба ырайы маалыматын колдоо

3. Маалыматты көрсөтүү үчүн кичине экранды кошуңуз

Бизге оюңузду билдириңиз! Бул куруу үчүн кызыктуу долбоор болгон. Биз python аркылуу сурамдар жана интернет документтерин алуу жөнүндө көп нерселерди билдик, ошондой эле ширетүүнү колдонуу жөнүндө көп нерселерди үйрөндүк.

Сунушталууда: