Мазмұны:
- Жабдықтар
- 1 -қадам: Мәселені шешу ретінде кодтау
- 2 -қадам: кодтау: ауа райы туралы мәліметтерді алу
- 3 -қадам: кодтау: сол деректерді пайдалану
- 4 -қадам: кодтау: RPi.GPIO және жарықдиодты диодтарды қолдану
- 5 -қадам: кодтау: жарықдиодты жарықтылықты алу
- 6 -қадам: кодтау: соңғы қадамдар
- 7 -қадам: Құрылыс және сымдарды қосу
- 8 -қадам: Демонстрация және қорытынды
Бейне: Raspberry PI жарық диодты метеостанциясы: 8 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:23
Біз Raspberry PI ауа райы жарықдиодты станциясын құрдық. Ол қаланы жарықтандыру мен күңгірттеу арқылы қаланың қаншалықты ыстық және суық екенін айтады. Сондай -ақ, олар терген қалада жаңбыр жауғанын немесе болмайтынын айтуға мүмкіндік береді.
Майкл Эндрюс пен Тио Марелло жасаған.
Жабдықтар
Құралдар
- Пісіру темірі
- Дремель
- Көрдім
Материалдар
- Raspberry Pi 3 B+ ~ 40 доллар ~ 30 доллар
- Әйелден еркекке секіру сымдары ~ 7 доллар
- 3 көк және 2 қызыл жарықдиодты диод ~ 11 доллар
- 100 Ом резисторы ~ 13 доллар
- 4 x 4 x 1/4 Ағаш тақтай ~ 5 доллар
- Дәнекер ~ 10 доллар
- Мыс сым ~ 5 доллар
1 -қадам: Мәселені шешу ретінде кодтау
Кодтау - бұл мәселені шешу
Сонымен, біздің жобада біздің проблемамыз неде? Біздің проблема - ауа райы туралы мәліметтерді алу, содан кейін сол светодиодтардың сөндірулі немесе қосулы екенін айту үшін оларды қолдану. Демек, бұл біздің проблеманы үш салаға бөледі.
1. Ауа райы туралы мәліметтерді алу
2. Сол деректерді қолдану
3. Жарықдиодты шамдарды қолдану
Алайда, біз бұл жобада қолданған тіл, Python және ол жұмыс істейтін жабдық Python бізге осы мақсаттарға жетудің оңай жолын береді.
Сонымен, біз бірінші мәселені ауа райы туралы мәліметтерді ала отырып бастаймыз.
2 -қадам: кодтау: ауа райы туралы мәліметтерді алу
Python ауа райы туралы ақпаратты ала алмайды. Біз ауа -райы туралы ақпаратты алу үшін екі құралды, сондай -ақ сыртқы қызметті импорттауымыз керек. Ол үшін біз үш құралды қолданамыз.
1. Сұраныстар, веб -сайттарды қарауға мүмкіндік беретін питон модулі
2. Json, JSON файл пішімін пайдалануға мүмкіндік беретін python модулі
3. OpenWeather, бізге ауа райы туралы мәлімет бере алатын веб -сайт
Сонымен, біз бұл кодты питон сценарийінің жоғарғы жағына жазу арқылы екі модульді алып келеміз.
импорттық сұраныстар
json импорттау
Бұл құралдарды қолданбас бұрын, Openweather бағдарламасын қолдану керек. Ол үшін біз олардың сайтында тіркелгі жасап, API кілтін алуымыз керек. Веб -сайттағы нұсқауларды орындаңыз, сонда сіз олардың қызметтерін пайдалануға мүмкіндік беретін әріптер мен сандарды аласыз. Қалай?
openweather_api_key = «260a23f27f5324ef2ae763c779c32d7e» #Біздің API кілті (нақты емес)
base_call = «https://api.openweathermap.org/data/2.5/weather?q=» #Ашық ауа райы қоңырауы #Мұнда біз пайдаланушының қаласын мәтіндік басып шығару түрінде аламыз («Қалада теріңіз!») city_name = енгізу () #Мұнда біз сұраныстарға қосылатын мекен -жайды жинадық, ауа райы туралы мәліметтерді алу үшін get_call = base_call+city_name+«& appid =»+openweather_api_key #Ақырында біз request.get мекен -жайына қоңырау шалып, оны json файлына түрлендіреміз. Response = talep.get (full_call) WeatherData = Response.json () #JSON файлдарында әр түрлі айнымалылар бар, оларға осы синтаксисті қолдана отырып қол жеткізуге болады #Мұнда біз ауа райы идентификаторы мен қаланың Кельвиндегі температурасын аламыз, пайдаланушы WeatherID = WeatherData [«ауа райы»] [0] [«id»] City_TemperatureK = WeatherData [«main»] [«temp»]
Мұнда бізде ауа райы туралы ақпаратты алатын код бар. Request.get түріндегі сұраулар веб -сайттың адресін алады және бізге сол веб -сайттағы файлды қайтарады. OpenWeather бізге ауа райы туралы ақпаратты json түрінде беру үшін бізге қоңырау шалатын мекенжайды береді. Біз сұраныстарға қосылатын адресті жинаймыз және json файлын қайтарамыз. Содан кейін біз екі айнымалы құрамыз және оларды пайдаланушы қаласының температурасы мен ауа райына тағайындаймыз.
Енді, осы код арқылы бізде екі айнымалысы бар. Бізде ауа райы көрсеткіші мен Кельвинде температура бар
3 -қадам: кодтау: сол деректерді пайдалану
Енді бізде бұл екі айнымалысы бар болғандықтан, біз оларды жарықдиодты шамдар үшін пайдалануға дайындауымыз керек. Бұл үшін бізге ешқандай модуль импорттаудың қажеті жоқ.
Біріншіден, біз келвинді Фаренгейтке айналдырамыз.
Біз мұны осы синтаксиспен айнымалы жасау арқылы жасаймыз
City_TemperatureF = (City_TemperatureK - 273)*1.8 + 32
ол Кельвиннен Фаренгейтке айналады (ол шын мәнінде K -> C -> F түрлендіреді)
Келесі - біздің ауа райы. WeatherID - бұл Openweather ұсынатын идентификатор, ол қаланың ауа райы жағдайын көрсетеді.
openweathermap.org/weather-conditions Міне, олардың тізімі.
Біз 700 санынан төмендегілердің бәрі жауын -шашын екенін байқадық, сондықтан жаңбыр жауғанын білу үшін код 700 -ден төмен екенін тексердік.
def CheckRain (IdCode): if IdCode <700: return True else else: False қайтару
Осының арқасында бізде Raspberry PI түйреуіштері мен жарықдиодты диодтармен пайдалануға дайын екі айнымалысы бар.
4 -қадам: кодтау: RPi. GPIO және жарықдиодты диодтарды қолдану
RaspberryPi ерлер түйреуіштерінің жиынтығымен келеді, оларды біз көптеген электрлік компоненттермен байланысу үшін қолдануға болады, бұл жағдайда диодты диодтар; Бұл Arduino мен оның жүйесіне ұқсас. Алайда, Raspberry PI - бұл жалпы мақсаттағы компьютер, Arduino сияқты микроконтроллерден айырмашылығы. Сондықтан біз оларды пайдалану үшін біраз жұмыс істеуіміз керек. Бұл Raspberry Pi -ге түйреуіштерді орнатудан тұрады. Біз мұны осы кодты қолдану арқылы жасаймыз.
GPO ретінде RPi. GPIO импорттау #Біз модульді импорттай аламыз, сонда біз оны пайдалана аламыз
PinsGPIO.setmode (GPIO. BCM) GPIO.setwarnings (жалған) орнатыңыз
#Жарық диодтары қосылады. Егер сіз оны құрастырсаңыз, олар басқаша болуы мүмкін, сондықтан қажет болған кезде салыстырып, өзгертіңіз
Extreme_Hot_LED_PIN = 26 Hot_LED_PIN = 16
Extreme_Cold_LED_PIN = 5
Cold_LED_PIN = 6
Жаңбыр_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)
Алайда, бұл код тек екі күйді басқаруға мүмкіндік береді, яғни қосулы және өшірулі. Дегенмен, шамдарды өшіру үшін бізге қажет. Ол үшін біз импульстік ен модуляциясын қолданамыз.
Импульстік ен модуляциясын қолдану
Импульстік ен модуляциясы цифрлық түйреуіш арқылы аналогтық сигнал шығаруға мүмкіндік береді. Негізінде ол сигнал көзін белгілі бір кернеуге дейін орташа жылдамдықпен қосады және өшіреді. 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 -қадам: кодтау: жарықдиодты жарықтылықты алу
Бізде төрт түрлі светодиод бар болғандықтан, біз оларды жарықтандыруға қалай қараймыз. суық немесе ыстық бұл пайдаланушының қаласында. Біз жетекшілер үшін төрт кезеңді өткізуді шештік.
#Функциялар
def getmiddleleftledintensity (TemperatureinF): #Сол жақ теңдеу: y = -(50/20) x + 175 #Оң теңдеу: y = (50/20) x -75 қайтару -(50/20)*ТемператураF + 175
defmiddlerightledintensity (температураF):
#Сол жақ теңдеу: y = - (50/20) x + 175 #Оң жақ теңдеу: y = (50/20) x - 75 қайтару (50/20)*ТемператураF - 75
Def getextremeleftledintensity (ТемператураF):
#LeftEquation: y = - (100/30) x + 200 #RightEquation: y = (100/30) x - (400/3)
қайтару -(100/30)*F + 200 температурасы
defextremerightledintensity (ТемператураF):
# LeftEquation: y = - (100/30) x + 200 # RightEquation: y = (100/30) x - (400/3)
қайтару (100/30)*ТемператураF - (400/3)
#Жарықдиодты шамдарды орнату
def GetLEDBrightness (температура):
егер температура <= 0: экстремальды = 100 суықта = 100 ыстықта = 0 экстремалды = 0
басып шығару («Өте суық светодиод:» + str (экстремалды түрде))
басып шығару («Cold led:» + str (coldled)) print («Extreme hot led» + str (экстремотельное)) басып шығару («Hot led:» + str (hotled))
ExtremeColdLED.start (экстремалды түрде)
ColdLED.start (салқындатылған)
ExtremeHotLED.start (экстремалды)
HotLED.start (қызған)
басып шығару («Өте суық светодиод:» + str (экстремалды түрде))
басып шығару («Cold led:» + str (coldled)) print («Extreme hot led» + str (экстремотельное)) басып шығару («Hot led:» + str (hotled))
ExtremeColdLED.start (экстремалды түрде)
ColdLED.start (салқындатылған)
ExtremeHotLED.start (экстремалды)
HotLED.start (қызған) elif 0 <temp <= 30: extremecoldled = getextremeleftledintensity (temp) - 100 coldled = 100 hotled = 0 extremehotled = 0
басып шығару («Өте суық светодиод:» + str (экстремалды түрде))
басып шығару («Cold led:» + str (coldled)) print («Extreme hot led» + str (экстремотельное)) басып шығару («Hot led:» + str (hotled))
ExtremeColdLED.start (экстремалды түрде)
ColdLED.start (салқындатылған)
ExtremeHotLED.start (экстремалды)
HotLED.start (қыздырылған) elif 100> temp> = 70: extremecoldled = 0 coldled = 0 hotled = 100 extremehotled = getextremerightledintensity (temp) - 100
басып шығару («Өте суық светодиод:» + str (экстремалды түрде))
басып шығару («Cold led:» + str (coldled)) print («Extreme hot led» + str (экстремотельное)) басып шығару («Hot led:» + str (hotled))
ExtremeColdLED.start (экстремалды түрде)
ColdLED.start (салқындатылған)
ExtremeHotLED.start (экстремалды)
HotLED.start (қызған) elif 30 <temp <50: extremecoldled = 0 coldled = getmiddleleftledintensity (temp) hotled = 100 - coldled экстремотельно = 0
басып шығару («Өте суық светодиод:» + str (экстремалды түрде))
басып шығару («Cold led:» + str (coldled)) print («Extreme hot led» + str (экстремотельное)) басып шығару («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 (экстремотельное)) басып шығару («Hot led:» + str (hotled))
ExtremeColdLED.start (экстремалды түрде)
ColdLED.start (салқындатылған)
ExtremeHotLED.start (экстремалды)
HotLED.start (қызған) elif temp == 50: extremecoldled = 0 coldled = 50 hotled = 50 экстремотельно = 0
басып шығару («Өте суық светодиод:» + str (экстремалды түрде))
басып шығару («Cold led:» + str (coldled)) print («Extreme hot led» + str (экстремотельное)) басып шығару («Hot led:» + str (hotled))
ExtremeColdLED.start (экстремалды түрде)
ColdLED.start (салқындатылған)
ExtremeHotLED.start (экстремалды)
HotLED.start (қызған)
Жақсы, кодтың бұл бөлімі шынымен де ұзақ. Түсіндіру өте қиын. Негізінде, жоғарыдағы код Фаренгейт температурасына қарайды және оның ауқымдар жиынтығында екенін анықтайды. Диапазондарға байланысты ол әр жарық диодты және оның жарықтығын береді, содан кейін start () пәрменін шақыру арқылы жарықтықты орнатады. Бұл тез түсіндіру. Егер бұл жеткілікті болса, мен сізге келесі қадамға өтуді ұсынамын, бірақ егер сіз ұзақ және шаршататын түсініктемені көргіңіз келсе, оқуды жалғастырыңыз.
Бағдарламалау кезінде біз температурадан мәнді алудың ең оңай жолын математикалық функция түрінде шештік. Сонымен, біз GeoGebra -да біздің температура мен жарықтың жарықтығы арасындағы байланысты көрсететін график құрдық; 100 -ден жоғары болудың себебі, қосымша екінші сымға түседі. Алайда, біз осы нүктелердің барлығын бір функцияға салыстыру үшін бір функция алу мәселесіне тап болдық. Біз параболаны қолдана аламыз деп ойладық, бірақ егер if операторларының қатарын қолдануға шешім қабылдадық. Шын мәнінде, бұл бүкіл код біртұтас функция.
Жоғарғы жағындағы функциялар сызықтардың сәйкес теңдеуі болып табылады. Графикте температураның қай жерде екенін анықтағаннан кейін біз оны осы функция арқылы іске қосамыз, жарықтығын аламыз және оны жарық диодтарына береміз.
6 -қадам: кодтау: соңғы қадамдар
Соңында біз бұл мәлімдемені соңына қосамыз.
тырысу:
while (True): GetLEDBrightness (City_TemperatureF) GetRainLED (WeatherID) time.sleep (10) KeyboardInterrupt қоспағанда: quit ()
Try and except операторлары пернелер тіркесімін қолдану арқылы кодтан шығуға мүмкіндік береді; әйтпесе, біз кодты қайта бастау үшін Raspberry Pi -ді өшіруіміз керек еді. Содан кейін бізде мәңгілікке созылатын уақытша цикл бар. Біз жарықдиодты жаңартамыз, сонымен қатар жаңбыр светодиодын жаңартамыз. Біз он секунд үзіліс жасаймыз; OpenWeather минутына 60 қоңырау шалуға мүмкіндік береді, ал 10 секунд - бұл жаңартулар.
Сонымен, біздің код аяқталды. Төменде дайын код бар.
RaspberryPIWeatherStation.py
импорттық сұраулар |
importRPi. GPIOasGPIO |
importjson |
импорт уақыты |
#Openweather idCodes 700 -ден аз - бұл жауын -шашын |
defCheckRain (IdCode): |
ifIdCode <700: |
returnTrue |
басқа: |
қайтаруЖалған |
defgetmiddleleftled тығыздығы (TemperatureinF): |
#Сол жақ теңдеу: y =-(50/20) x + 175 |
#Оң теңдеу: y = (50/20) x - 75 |
қайтару (50/20)*ТемператураF+175 |
defgetmiddlerledledintensity (ТемператураF): |
#Сол жақ теңдеу: y =-(50/20) x + 175 |
#Оң теңдеу: y = (50/20) x - 75 |
қайтару (50/20)*F-75 температурасы |
defgetextremeleftledintensity (ТемператураF): |
#Солға теңдеу: y = -(100/30) x + 200 |
#RightEquation: y = (100/30) x - (400/3) |
қайтару (100/30)*ТемператураF+200 |
defgetextremerightledintensity (ТемператураF): |
# LeftEquation: y = -(100/30) x + 200 |
# Оңға теңдеу: y = (100/30) x - (400/3) |
қайтару (100/30)*ТемператураF- (400/3) |
#GPIO орнату |
GPIO.setmode (GPIO. BCM) |
GPIO.setwarnings (жалған) |
#Түйреуіштер |
Extreme_Hot_LED_PIN = 26 |
Hot_LED_PIN = 16 |
Extreme_Cold_LED_PIN = 5 |
Cold_LED_PIN = 6 |
Жаңбыр_LED_PIN = 23 |
#Түйреуішті орнату |
GPIO. орнату (Rain_LED_PIN, GPIO. OUT) |
GPIO. орнату (Extreme_Cold_LED_PIN, GPIO. OUT) |
GPIO.setup (Cold_LED_PIN, GPIO. OUT) |
GPIO.setup (Hot_LED_PIN, GPIO. OUT) |
GPIO. орнату (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 (экстремалды түрде)) |
басып шығару («Суық жарық:»+str (салқындатылған)) |
басып шығару («Extreme hot led»+str (экстремалды))) |
басып шығару («Hot led:»+str (hotled)) |
ExtremeColdLED.start (экстремалды түрде) |
ColdLED.start (салқындатылған) |
ExtremeHotLED.start (экстремалды) |
HotLED.start (қызған) |
eliftemp> = 100: |
экстремалдылық = 0 |
суық = 0 |
ыстық = 100 |
экстремалды = 100 |
басып шығару («Өте суық светодиод:»+str (экстремалды түрде)) |
басып шығару («Суық жарық:»+str (салқындатылған)) |
басып шығару («Extreme hot led»+str (экстремалды))) |
басып шығару («Hot led:»+str (hotled)) |
ExtremeColdLED.start (экстремалды түрде) |
ColdLED.start (салқындатылған) |
ExtremeHotLED.start (экстремалды) |
HotLED.start (қызған) |
elif0 <temp <= 30: |
Extrecoldled = getextremeleftledintensity (temp) -100 |
суық = 100 |
ыстық = 0 |
экстремальды = 0 |
басып шығару («Өте суық светодиод:»+str (экстремалды түрде)) |
басып шығару («Суық жарық:»+str (салқындатылған)) |
басып шығару («Extreme hot led»+str (экстремалды))) |
басып шығару («Hot led:»+str (hotled)) |
ExtremeColdLED.start (экстремалды түрде) |
ColdLED.start (салқындатылған) |
ExtremeHotLED.start (экстремалды) |
HotLED.start (қызған) |
elif100> temp> = 70: |
экстремалды = 0 |
суық = 0 |
ыстық = 100 |
Extremotot = getextremerightledintensity (temp) -100 |
басып шығару («Өте суық светодиод:»+str (экстремалды түрде)) |
басып шығару («Суық жарық:»+str (салқындатылған)) |
басып шығару («Extreme hot led»+str (экстремалды))) |
басып шығару («Hot led:»+str (hotled)) |
ExtremeColdLED.start (экстремалды түрде) |
ColdLED.start (салқындатылған) |
ExtremeHotLED.start (экстремалды) |
HotLED.start (қызған) |
elif30 <температура <50: |
экстремалды = 0 |
суық = getmiddleleftledintensity (temp) |
қыздырылған = 100-суық |
экстремальды = 0 |
басып шығару («Өте суық светодиод:»+str (экстремалды түрде)) |
басып шығару («Суық жарық:»+str (салқындатылған)) |
басып шығару («Extreme hot led»+str (экстремалды))) |
басып шығару («Hot led:»+str (hotled)) |
ExtremeColdLED.start (экстремалды түрде) |
ColdLED.start (салқындатылған) |
ExtremeHotLED.start (экстремалды) |
HotLED.start (қызған) |
elif50 <temp <70: |
hotled = getmiddlerightledintensity (temp) |
экстремальды = 0 |
суық = 100 қыздырылған |
экстремалдылық = 0 |
басып шығару («Өте суық светодиод:»+str (экстремалды түрде)) |
басып шығару («Суық жарық:»+str (салқындатылған)) |
басып шығару («Extreme hot led»+str (экстремалды))) |
басып шығару («Hot led:»+str (hotled)) |
ExtremeColdLED.start (экстремалды түрде) |
ColdLED.start (салқындатылған) |
ExtremeHotLED.start (экстремалды) |
HotLED.start (қызған) |
eliftemp == 50: |
экстремалдылық = 0 |
суық = 50 |
ыстық = 50 |
экстремальды = 0 |
басып шығару («Өте суық светодиод:»+str (экстремалды түрде)) |
басып шығару («Суық жарық:»+str (салқындатылған)) |
басып шығару («Extreme hot led»+str (экстремалды))) |
басып шығару («Hot led:»+str (hotled)) |
ExtremeColdLED.start (экстремалды түрде) |
ColdLED.start (салқындатылған) |
ExtremeHotLED.start (экстремалды) |
HotLED.start (қызған) |
defGetRainLED (idCode): |
ifCheckRain (idCode): |
GPIO. шығысы (Rain_LED_PIN, GPIO. HIGH) |
басқа: |
GPIO. шығысы (Rain_LED_PIN, GPIO. LOW) |
#Api туралы ақпарат: 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»] |
Қала_ТемпературасыF = (Қала_ТемпературасыK-273)*1.8+32#Фаренгейтке түрлендіру |
#LED/GPIO заттары |
басып шығару («K:»+str (City_TemperatureK)) |
басып шығару («F:»+str (City_TemperatureF)) |
басып шығару (WeatherID) |
тырысу: |
while (True): |
GetLEDBrightness (City_TemperatureF) |
GetRainLED (WeatherID) |
уақыт.ұйықтау (10) |
KeyKeyboardInterrupt қоспағанда: |
шығу () |
GitHub ❤ арқылы орналастырылған rawRaspberryPIWeatherStation.py файлын қарау
7 -қадам: Құрылыс және сымдарды қосу
Уау! Осы кодтаудан кейін біз ғимаратқа жетеміз, бұл айтарлықтай жеңілдейді. Коронаның үйде болуына байланысты біз мектепте күткен көптеген құралдарға жете алмадық. Сонымен, бұл бөлім біз ойлағаннан біршама қарапайым. Ерекшеліктердің өзі де икемді. Алдымен біз ағаш тақтайға төртбұрыш салдық. Нақты өлшем өте маңызды емес, себебі ол тек жарықдиодты және электрониканы қосатын платформа ретінде қызмет етеді.
Содан кейін біз ағаш бөлігіміздің 1/8 бөлігінен бес тесік жасадық.
Содан кейін біз электрониканың платформасы ретінде пайдалану үшін тақтадан төртбұрышты кесіп тастадық.
(Бұл біз бастаған кезде болды; біз үлкенірек араны таптық!)
Содан кейін біз светодиодтың анод пен катод түйреуіштерін итереміз; шамдар үстіңгі жағында орналасуы керек, олардың шамдары шығып тұрады; қай аяқтың ұзын және қысқа екенін қадағалаңыз. Содан кейін біз сымдарды бірге дәнекерлеуді бастадық. Алдымен біз резисторларды светодиодтың анодты аяғына (ұзын аяғы) дәнекерлейміз.
Содан кейін біз светодиодтардың катодты аяқтарын жерге қосатын бір мыс сымға дәнекерлейміз. Ол осылай көрінуі керек.
Біз мұны жасағаннан кейін, біз әр резистордың және мыс жерге қосылған сымның ұшына әйел-еркек кабельдерінің еркек ұштарын дәнекерлейміз. Біз мұны жасағаннан кейін сымдарды таңқурай PI GPIO түйреуіштеріне қосуды бастай аламыз. Міне, диаграмма! Есіңізде болсын, түйреуіштер бұрын кодта көрсетілген.
Мұның бәрі қосылғаннан кейін, енді Python файлын таңқурай Pi -ге жүктеп, терминалды ашу жеткілікті. «python3 RaspberryPIWeatherStation.py» іске қосыңыз, содан кейін көрсетілгендей жасаңыз.
8 -қадам: Демонстрация және қорытынды
Толық оқығаныңыз үшін рахмет! Мен төмендегі питон сценарийін тіркеймін! Егер біз қосатын нәрселер болса, бұл болар еді …
1. Әр түрлі енгізу түрлерін қолдау (қалалар, географиялық нүктелер және т.б.)
2. Ауа райы туралы қосымша ақпарат алу үшін қолдау
3. Ақпаратты көрсету үшін кішкене экранды қосыңыз
Бізге өз ойларыңызды білдіріңіздер! Бұл салу үшін қызықты жоба болды. Біз python көмегімен сұраныстар мен интернет құжаттарын алу туралы көп нәрсені білдік, сонымен қатар дәнекерлеуді қолдану туралы көп нәрсені білдік.
Ұсынылған:
Жарық диодты текшені қалай жасауға болады - Жарық диодты текше 4x4x4: 3 қадам
Жарық диодты текшені қалай жасауға болады | 4x4x4 жарықдиодты текше: LED текшесін жарықдиодты экран деп санауға болады, онда қарапайым 5 мм жарық диодты сандық пиксель рөлін атқарады. Жарық диодты текше көру қабілеттілігі (POV) деп аталатын оптикалық құбылыс тұжырымдамасын қолдану арқылы суреттер мен өрнектер жасауға мүмкіндік береді. Сонымен
Жарық диодты жарық диодты жылдамдықты басқарудың және баламалы жыпылықтаудың үш әдісі: 3 қадам
Жарық диодты жарық диодты айналдыру жылдамдығының реттелуінің және баламалы жыпылықтаудың үш әдісі: Флэшерлік схема - бұл конденсатор әсер ететін светодиодты қосатын және өшіретін схема, мұнда мен сізге осы схеманы жасаудың үш түрлі әдісін көрсетемін. : 1. Транзисторлар 2. 555 Таймер IC3. Quartz CircuitLDR -ді сонымен қатар
Жарық диодты жолағы мен жарық диодты схемасы бар супер эффектілер: 11 қадам
Жарық диодты жолағы мен жарық диодты схемасы бар супер эффектілер: Сәлем досым, мен бүгін жарық диодты және жарықдиодты жарық диодтары бар супер эффект шамдарының тізбегін жасаймын
Қарапайым жарық диодты схемасы (жарық диодты қалай қолдануға болады): 4 қадам
Қарапайым жарық диодты схемасы (жарықдиодты қалай қолдануға болады): Бұл нұсқаулық жарықдиодты қалай қолдануға және 3В, 6В, 9В & 12В. Жарық диоды электрониканың маңызды компоненті болып табылады, ол бірнеше индустрияда қолданылады
Түнгі жарық диодты түнгі жарық диодты шамы: 5 қадам
Түнгі жарық диодты түнгі жарық шамы / шамы: Біріншіден, бұл Sunbanks -тің шағын бос жарықдиодты шамының әсерінен болғанын айтуым керек. Жарықтандырғышты үстелден алшақ ұстау үшін, біро қолданудың орнына, мен базадан жарық түсіретін айқын перспективаны қолдандым. Бұл шағын жоба - бұл прототип