Мазмұны:
- 1 -қадам: Attiny85 бар шағын ауа райы станциясы: таратқыш
- 2 -қадам: Attiny85 бар шағын ауа райы станциясы: қабылдағыш
- 3 -қадам: Attiny85/45 бар шағын ауа райы станциясы: дисплей
- 4 -қадам: Attiny85/45 бар шағын ауа райы станциясы: мүмкіндіктер/қорытындылар
- 5 -қадам: шағын ауа райы станциясы: антенна
- 6 -қадам: BMP180 қосу
Бейне: Attiny85 мини -метеостанциясы: 6 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:24
Жақында нұсқаулықта Indigod0g екі Arduino көмегімен жақсы жұмыс істейтін шағын ауа райы станциясын сипаттады. Мүмкін, бәрі ылғалдылық пен температура көрсеткіштерін алу үшін 2 Ардуиноны құрбан еткісі келмеуі мүмкін, мен екі Attiny85 құрылғысымен ұқсас функцияны жасауға болатынын түсіндірдім. Менің ойымша, сөйлеу оңай, сондықтан мен ақшамды аузыма салған дұрыс.
Шын мәнінде, егер мен бұрынғы екі нұсқаулықты біріктірсем, мен жаздым:
Arduino немесе Attiny үшін 2 сымды СКД интерфейсі және Attiny85 (Arduino IDE 1.06) арасында деректерді қабылдау және жіберу, онда жұмыстың көп бөлігі дайын. Бағдарламалық жасақтаманы аздап бейімдеу қажет.
Мен I2C СК емес, ауыспалы регистрі бар екі сымды дисплейлік шешімді таңдадым, себебі Attiny -де ауысым регистрі I2C шинасына қарағанда оңай орындалады. Алайда, егер сіз, мысалы, BMP180 немесе BMP085 қысым датчигін оқығыңыз келсе, сізге I2C қажет, сондықтан сіз I2C СКД де қолдана аласыз. TinyWireM - бұл Attiny -дегі I2C үшін жақсы кітапхана (бірақ оған қосымша орын қажет).
БОМ таратқыш: DHT11 Attiny85 10 к резистор 433МГц таратқыш модулі
Қабылдағыш Attiny85 10к резистор 433 МГц қабылдағыш модуль
Дисплей 74LS164 ауысу регистрі 1N4148 диод 2x1k резистор 1x1k айнымалы резистор СКД дисплей 2x16
1 -қадам: Attiny85 бар шағын ауа райы станциясы: таратқыш
Таратқыш - бұл қалпына келтіру желісінде тартылатын резисторы бар Attiny85 -тің негізгі конфигурациясы. «0» цифрлық түйреуішіне беруші модулі бекітілген, ал DHT11 деректер түйрегіші цифрлық істікке 4. Антенна ретінде 17,2 см сымды бекітеді. (әлдеқайда жақсы антенна үшін 5 -қадамды қараңыз). Бағдарламалық жасақтама келесідей:
// Attiny -де жұмыс істейді // RF433 = D0 pin 5
// DHT11 = D4 pin 3 // кітапханалар #қосу // Роб Тилларттан #DHT11 қосу; #define DHT11PIN 4 #dexine TX_PIN 0 // сіздің таратқыш қосылған түйреуіш // айнымалылар өзгереді h = 0; float t = 0; int transmit_t = 0; int transmit_h = 0; int transmit_data = 0; void setup () {pinMode (1, INPUT); man.setupTransmit (TX_PIN, MAN_1200); } void loop () {int chk = DHT11.read11 (DHT11PIN); h = DHT11. ылғалдылық; t = DHT11.температура; // Мен білемін, мен мұнда 3 бүтін сандық айнымалыны қолданамын // мұнда 1 қолдануға болатын //, бірақ бұл жай ғана transmit_h = 100* (int) h ұстануға оңай; transmit_t = (int) t; transmit_data = transmit_h+transmit_t; man.transmit (transmit_data); кешіктіру (500); }
Бағдарлама деректерді жіберу үшін Манчестер кодын пайдаланады. Ол DHT11 оқиды және температура мен ылғалдылықты 2 бөлек қалқымда сақтайды. Манчестер коды қалқымалы емес, бірақ бүтін санды жіберетіндіктен, менде бірнеше нұсқа бар: 1- қалқымалы бөлшектерді екі бүтін санға бөлу және оларды жіберу2- әр флотты бүтін сан ретінде жіберу3- екі флотты бір бүтін сан ретінде жіберу 1 нұсқасымен мен біріктіру керек бүтін сандар қайтадан қабылдағышта қалқып жүреді және мен қандай бүтін сан екенін анықтауым керек, бұл кодты ұзақ уақытқа созады 2 -нұсқада мен әлі де бүтін сан ылғалдылыққа, ал температураға қайсысына сәйкес келетінін анықтауым керек. Мен бір бүтін сан жіберілу кезінде жоғалған жағдайда бірізділікпен бара алмаймын, сондықтан мен бүтін санға бекітілген идентификаторды жіберуім керек еді. 3 -нұсқада мен тек бір бүтін санды жібере аламын. Әлбетте, бұл көрсеткіштерді біршама дәл келтіреді - 1 градус ішінде және температураны нөлден төмен жібере алмайды, бірақ бұл қарапайым код және мұны шешудің жолдары бар. Әзірге бұл тек принцип бойынша, сондықтан мен қалқымалы бөлшектерді бүтін сандарға айналдырамын және ылғалдылықты 100 -ге көбейтемін. Содан кейін мен ылғалдылық 100% ылғалдылыққа қосылмайтынын ескере отырып. Мен алатын максималды нөмір - 9900. Температура 100 градустан жоғары болмайтынын ескере отырып, максималды саны 99 болады, сондықтан мен жіберетін ең жоғары нөмір - 9999 және оны қабылдаушы жағынан ажырату оңай. Мен 3 бүтін сандарды қолданатын есептеулерім шамадан тыс, себебі оны 1 айнымалымен оңай жасауға болады. Мен кодты орындауды жеңілдеткім келді, енді код келесі түрде құрастырылады:
Екілік эскиз өлшемі: 2 833 байт (8, 192 байт максимум), сондықтан мен пайдаланатын dht.h кітапханасы Attiny 45 немесе 85NOTE -ке сәйкес келеді, бұл Роб Тилларттан алынған кітапхана. Бұл кітапхана DHT22 үшін де жарамды. Мен 1.08 нұсқасын қолданамын. Алайда Attiny85 кітапхананың төменгі нұсқалары бар DHT22 оқуда қиындықтарға тап болуы мүмкін. Маған расталды, 1.08 және 1.14 - қарапайым Arduino -де жұмыс істесе де - Attiny85 -те DHT22 оқу қиын. Егер сіз DHT22 Attiny85 -те қолданғыңыз келсе, осы кітапхананың 1.20 нұсқасын қолданыңыз. Мұның бәрі уақытпен байланысты. Кітапхананың 1.20 нұсқасы оқу жылдамдығына ие. (Jeroen пайдаланушылық тәжірибесі үшін рахмет)
2 -қадам: Attiny85 бар шағын ауа райы станциясы: қабылдағыш
Тағы да Attiny85 негізгі конфигурацияда 10 к резистормен жоғары тартылған Reset түйрегімен қолданылады. Қабылдағыш модулі цифрлық 1 істікке бекітілген (чипте 6 түйреуіш). СК 0 және екі сандық түйреуіштерге бекітілген. Антенна ретінде 17,2 см сымды жалғаңыз. Код келесідей:
#қосу
#қосу LiquidCrystal_SR lcd (0, 2, TWO_WIRE); #define RX_PIN 1 // = физикалық түйреуіш 6 жарамсыз күйді орнату () {lcd.begin (16, 2); lcd.home (); man.setupReceive (RX_PIN, MAN_1200); man.beginReceive (); } void loop () {if (man.receiveComplete ()) {uint16_t m = man.getMessage (); man.beginReceive (); lcd.print («Ылғал:»); lcd.print (м/100); lcd.setCursor (0, 1); lcd.print («Temp»); lcd.print (m%100); }}
Код өте қарапайым: берілетін бүтін сан «m» айнымалысында қабылданады және сақталады. Ол ылғалдылықты беру үшін 100 -ге бөлінеді, ал 100 модулі температураны береді. Демек, алынған бүтін сан 33253325/100 = 333325 % 100 болды делік. = 25Бұл код 3380 байтты құрайды, сондықтан оны 45 емес, attiny85 арқылы ғана қолдануға болады.
3 -қадам: Attiny85/45 бар шағын ауа райы станциясы: дисплей
Дисплей үшін екі сымды дисплейдегі нұсқаулыққа сілтеме жасаған дұрыс. Қысқаша айтқанда, жалпы 16x2 дисплейі екі цифрлық түйреуішпен жұмыс істей алатын ауысымды тіркеушіні қолданады. мүмкін, бірақ содан кейін сізге Attiny -де I2C хаттамасын енгізу қажет. Tinywire протоколы мұны істей алады. Кейбір дереккөздер бұл 1 МГц сағатты күтеді деп айтса да, мен оны 8МГц -те қолдануға еш қиындық көрмедім (басқа жобада).
4 -қадам: Attiny85/45 бар шағын ауа райы станциясы: мүмкіндіктер/қорытындылар
Жоғарыда айтылғандай, мен екі аттиний 85 (тіпті бір attiny85+ 1 attiny45) бар шағын ауа райы станциясын жасауға болатынын көрсету үшін нұсқаулық жасадым. Ол DHT11 көмегімен ылғалдылық пен температураны ғана жібереді., 6 тіпті кейбір қулықпен. Деректерді басқа сенсорлардан жіберуге болады. Менің жобамда- ленталық тақтадағы және кәсіби PCB (OSHPark) суреттерінде көрсетілгендей- мен DHT11-ден, LDR-ден және PIR-ден деректерді жіберемін/қабылдаймын. attiny85 қабылдағыш ретінде пайдаланудағы шектеулер - бұл деректерді жарқын стильде көрсету. Есте сақтау қабілеті шектеулі болғандықтан: «Температура, ылғалдылық, жарық деңгейі, тақырып жақындады» сияқты мәтіндер есте сақтау кеңістігін тез толтырады. Дегенмен, температура мен ылғалдылықты жіберу/алу үшін екі Arduino -ны қолдануға ешқандай себеп жоқ. Таратқышты ұйқыға жіберу және оны ояту керек, тек әрбір 10 минут сайын деректерді жібереді және осылайша оны түйменің ұяшығынан береді. Әлбетте, температура мен ылғалдылық туралы мәліметтерді ғана жіберуге болмайды, сонымен қатар шағын таратқыштардың жиыны болуы мүмкін. топырақ ылғалдылығын өлшеңіз немесе анемометр немесе жаңбыр өлшегішті қосыңыз
5 -қадам: шағын ауа райы станциясы: антенна
Антенна кез келген 433 МГц орнатудың маңызды бөлігі болып табылады. Мен стандартты 17,2 см «таяқша» антеннасымен тәжірибе жүргіздім және катушкалы антеннасы бар қысқа флиртке ие болдым. Дизайн Бен Шюелерден алынған және 'Elektor' журналында жарияланған сияқты. Бұл «Ауа салқындатылатын 433 МГц антенна» сипаттамасы бар PDF файлын орындауға оңай. (Сілтеме жоғалды, мұнда тексеріңіз)
6 -қадам: BMP180 қосу
BMP180 сияқты барометрлік қысым датчигін қосқыңыз келе ме? менің басқа нұсқаулықты тексеріңіз.
Ұсынылған:
Мини геймпад: 3 қадам (суреттермен)
Мини геймпад: Сәлем достар, мен бұл кішкентай геймпадты ATTINY85 көмегімен жасадым, мен оны ұзақ уақыт бойы жасағым келді, бірақ уақыт болмады, ақыры аяқтадым және ойнау өте қызықты. Алдымен мен күрделі құрылыс үшін кешірім сұраймын, бірақ мен бірнеше рет көрдім
ATtiny85 Wearable Vibrating Activity Tracking Watch & Programming ATtiny85 Arduino Uno көмегімен: 4 қадам (суреттермен)
ATtiny85 Wearable Vibrating Activity Tracking Watch & Programming ATtiny85 Arduino Uno көмегімен: киюге болатын қозғалысты бақылау сағатын қалай жасауға болады? Бұл тоқырауды анықтаған кезде дірілдеуге арналған киілетін гаджет. Сіз мен сияқты көп уақытыңызды компьютерде өткізесіз бе? Сіз түсінбей бірнеше сағат отырасыз ба? Содан кейін бұл құрылғы f
Мини конвейерлік таспаны желімдейтін машина ретінде жасаңыз: 7 қадам (суреттермен)
Шағын конвейерлік белбеуді желімдейтін машина ретінде жасаңыз: Бұл шағын жобада ұзындығы 1 фут болатын конвейер таспасы, 1 -ден 4 -ке дейін қарағай ағашы және суретші кенеп (белбеу үшін) үшін сары берілісті қозғалтқыш қолданылады. Мен жұмыс жасамас бұрын бірнеше нұсқадан өттім, қарапайым және айқын қате жібердім
PIXELCADE - интеграцияланған пиксельді LED дисплейі бар мини -бартоп аркадасы: 13 қадам (суреттермен)
PIXELCADE - интеграцияланған пиксельді жарықдиодты дисплейі бар мини -бартоп аркадасы: **** бұл жерде интеграцияланған жарықдиодты маркировкасы бар жақсартылған нұсқа **** таңдалған ойынға сәйкес келетін интегралды жарықдиодты дисплейдің бірегей ерекшелігі бар бартада аркадасы. Шкаф бүйіріндегі кейіпкерлердің өнері - бұл стикерлер емес, лазерлік кесу
Мини автоматты айналу үстелінің желдеткішін қалай жасауға болады: 5 қадам (суреттермен)
Кішкене автоматты айналу үстелінің желдеткішін қалай жасауға болады: Сәлеметсіздер ме, балалар, мен бұл нұсқаулықта сізге өздігінен жұмыс жасайтын миниатюралық үстелдің желдеткішін жасауға кеңес беремін. Бұл құрылғы 9в көзінен қуат алады және керемет жел шығарады. Бұл желдеткіш 120 градус бұрышпен тербеледі