Мазмуну:

Жарык интенсивдүүлүгүн пландоо Arduino жана Python Arduino Master китепканасын колдонуу: 5 кадам
Жарык интенсивдүүлүгүн пландоо Arduino жана Python Arduino Master китепканасын колдонуу: 5 кадам

Video: Жарык интенсивдүүлүгүн пландоо Arduino жана Python Arduino Master китепканасын колдонуу: 5 кадам

Video: Жарык интенсивдүүлүгүн пландоо Arduino жана Python Arduino Master китепканасын колдонуу: 5 кадам
Video: 🍓❄️Cómo Cuidar las Plantas de Frutillas/Fresas en Invierno ? 2024, Ноябрь
Anonim
Жарык интенсивдүүлүгүн пландоо Arduino жана Pythonдун Arduino Master китепканасын колдонуу
Жарык интенсивдүүлүгүн пландоо Arduino жана Pythonдун Arduino Master китепканасын колдонуу

Arduino үнөмдүү, бирок өтө эффективдүү жана функционалдуу инструмент болгондуктан, аны Embedded Cде программалоо долбоорлорду түйшүктүү кылат! Pythonдун Arduino_Master модулу муну жөнөкөйлөтөт жана бизге эсептөөлөрдү жүргүзүүгө, таштандылардын баалуулугун алып салууга жана маалыматтарды визуалдык чагылдыруу үчүн график түзүүгө мүмкүнчүлүк берет.

Эгерде сиз бул модуль жөнүндө азырынча билбесеңиз, анда аны орнотуу буйругу менен орнотуңуз Arduino_Master

Бул модулду кантип колдонууну билбесеңиз, кабатыр болбоңуз, бул шилтемеге барыңыз => Arduino_Master

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

Жабдуулар

Бул долбоор үчүн сизге төмөнкүлөр керек болот:

  1. An Arduino
  2. Жарыкка көз каранды резистор (LDR) жана
  3. Python 3 компьютериңизге орнотулган.

1 -кадам: Сиздин микросхемаңызды куруу:

Сиздин айлананы куруу
Сиздин айлананы куруу

Биз киргизүү маалыматын алуу үчүн Arduino пин A1 колдонобуз. Батарейканын ордуна Arduino 5V жана GND казыктарын колдонсоңуз болот. Байланышты төмөнкүдөй кылыңыз:

  1. LDRдин бир четин 5V батареясынын оң терминалына же Arduino 5V пинине туташтырыңыз.
  2. LDRдин башка учун A1 пинине жана батареянын терс терминалына же Arduino GND пинине туташтырыңыз.
  3. Бардык резистор GNDге келбешине ынануу үчүн, Ардуинонун A1 терминалында сезүү үчүн жетиштүү күчтүү сигналды албай каласыз. (Мен 10к Ом резистор колдонуп жатам).

2 -кадам: Ардуинону программалоо:

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

Код:

// LDR_1 өзгөрмөсү Arduino A1 пинин белгилөө үчүн колдонулат.

int LDR_1 = A1;

// A1ден алынган маалыматтар LDR_Value_1де сакталат.

float LDR_Value_1;

Стринг киргизүү;

жараксыз орнотуу ()

{pinMode (LDR_1, INPUT); // LDR_1 INPUT пини катары коюлган. Serial.begin (9600); // Байланыш радиациясы 9600гө коюлган.}

боштук цикл ()

{if (Serial.available ()> 0) // эгер сериялык монитордо кандайдыр бир киргизүү бар болсо, анда улантыңыз. {киргизүү = Serial.readString (); // Киргизүүнү сап катары окуу. if (input == "DATA") {LDR_Value_1 = analogRead (LDR_1) * (5.0 / 1023.0); // (5/1023) - бул Вольтто маанини алуу үчүн конверсиялык фактор. Serial.println (LDR_Value_1); // Эгерде киргизүү "DATA" га барабар болсо, анда LDR_1ден кирүүнү окуп, аны Сериялык мониторго басып чыгарыңыз. } else int i = 0; // эгер киргизүү "DATA" га барабар болбосо, эч нерсе кылбаңыз! }

}

3 -кадам: Python программасын Arduino маалыматын графикке түшүрүү үчүн:

Ар бир LDR өзүнүн каршылык маанисине ээ болот жана эч качан электрондук компоненттер иштөөдө такыр окшош эмес экенин эстен чыгарбашыбыз керек. Ошентип, адегенде биз жарыктын ар кандай интенсивдүүлүгүндөгү чыңалууну табышыбыз керек.

Төмөнкү программаны python IDEге жүктөп, аны иштетиңиз:

Муну ар кандай жарык интенсивдүүлүгү үчүн жасаңыз жана графикти колдонуп, мисалы, эгерде интенсивдүүлүгү 1ден аз болсо, бөлмө өтө караңгы. 1ден 2ге чейинки интенсивдүүлүк үчүн бөлмө кыйла караңгы. 2ден ашык интенсивдүүлүк үчүн жарык күйгүзүлөт.

# Arduino_Master модулун импорттоо

Arduino_Master импортунан *

# маалыматтарды чогултуу

data = filter (ardata (8, squeeze = False, dynamic = True, msg = "DATA", сызыктар = 30), gözlənilir_type = 'num', чек = [0, 5])

# чеги 5ке коюлган, анткени биз 5В батареяны колдонуп жатабыз.

# Баалуулуктарды пландаштыруу

Графика (маалыматтар, stl = 'dark_background', label = 'Жарык интенсивдүүлүгү')

4 -кадам: Бөлмөдөгү жарыктын интенсивдүүлүгүн текшерүү үчүн акыркы программа

Сиз алган маалыматтардан бир жыйынтыкка келгенден кийин, төмөнкү программаны жүктөп бериңиз жана тыянакка ылайык лимиттерди өзгөртүүнү унутпаңыз.

# Arduino_Master модулун импорттоо

from Arduino_Master import # маалыматтарды чогултуу = фильтр (ardata (8, squeeze = False, dynamic = True, msg = "DATA", линиялар = 50), gözlənilir_type = 'num', limit = [0, 5]) # классификациялоочу маалыматтар корутундунун негизинде маалымат = i үчүн диапазондо (len (маалымат)): интенсивдүүлүк = маалымат эгерде интенсивдүүлүк 1 жана интенсивдүүлүк = 2: info.append ('Light ON') # Графикти плоттоо. compGraph (маалыматтар, маалымат, stl = 'dark_background', label1 = 'Жарык интенсивдүүлүгү', label2 = 'Мамлекет')

5 -кадам: Жыйынтык:

Жыйынтык
Жыйынтык

Программа бир же эки мүнөткө созулат, анткени сиз Arduinoдон 50 заматта баалуулуктарды окуп жатасыз.

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

Эскертүү: Эгерде жогорудагы сүрөттөгү толук график көрүнбөсө, анда киришүү бөлүмүнүн үстүндөгү графага кайрылыңыз.

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