Talaan ng mga Nilalaman:
- Hakbang 1: Mini Weather Station Na May Attiny85: ang Transmitter
- Hakbang 2: Mini Weather Station Na May Attiny85: ang Receiver
- Hakbang 3: Mini Weather Station Na May Attiny85 / 45: ang Display
- Hakbang 4: Mini Weather Station Na May Attiny85 / 45: Mga Posibilidad / Konklusyon
- Hakbang 5: Mini Weather Station: ang Antenna
- Hakbang 6: Pagdaragdag ng isang BMP180
Video: Mini Weather Station Na May Attiny85: 6 Mga Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:12
Sa isang kasalukuyang itinuro na Indigod0g ay inilarawan ang isang mini istasyon ng panahon na gumagana nang maayos, gamit ang dalawang Arduino. Marahil hindi lahat ay nais na isakripisyo ang 2 Arduinos upang makakuha ng mga pagbabasa ng kahalumigmigan at temperatura at nagkomento ako na dapat posible na gumawa ng isang katulad na pagpapaandar sa dalawang Attiny85's. Madali yata ang pag-uusap, kaya mas mabuti kong ilagay ang aking pera sa kung saan ang aking bibig.
Sa katunayan, kung pagsamahin ko ang dalawang naunang mga instruktor na isinulat ko:
2-Wire LCD interface para sa Arduino o Attiny andReceiving at pagpapadala ng data sa pagitan ng Attiny85 (Arduino IDE 1.06) pagkatapos ang karamihan sa trabaho ay tapos na. Kailangan lamang iakma ang software ng kaunti.
Pinili ko para sa isang dalawang wire lcd solution na may shift register, sa halip na isang I2C LCD dahil sa Attiny ay mas madaling ipatupad ang shift register kaysa sa I2C bus. Gayunpaman … kung nais mong halimbawa basahin ang isang sensor ng presyon ng BMP180 o BMP085, kailangan mo rin ng I2C para sa gayon ay maaari mo ring gamitin ang isang I2C LCD. Ang TinyWireM ay isang magandang silid-aklatan para sa I2C sa isang Attiny (ngunit nangangailangan ito ng labis na puwang).
BOM Ang transmiter: DHT11 Attiny85 10 k resistor 433MHz transmitter module
Ang tatanggap Attiny85 10k risistor 433 MHz module ng tatanggap
Ang display 74LS164 shift register 1N4148 diode 2x1k resistor 1x1k variable resistor isang LCD display 2x16
Hakbang 1: Mini Weather Station Na May Attiny85: ang Transmitter
Ang transmitter ay isang napaka-pangunahing pagsasaayos ng Attiny85 na may isang pull up risistor sa linya ng pag-reset. Ang isang module ng transmitter ay naka-attach sa digital pin '0' at ang data data DHT11 ay nakakabit sa digital pin 4. Mag-attach ng isang wire na 17.2 cm bilang antena (para sa isang mas mahusay na antena tingnan ang hakbang 5). Ang software ay ang mga sumusunod:
// gagana sa Attiny // RF433 = D0 pin 5
// DHT11 = D4 pin 3 // libraries #include // From Rob Tillaart #include dht DHT11; #define DHT11PIN 4 #define TX_PIN 0 // pin kung saan nakakonekta ang iyong transmitter // variable na lumutang h = 0; lumutang 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.humidity; t = DHT11.temperature; // Alam ko, gumagamit ako ng 3 variable ng integer dito // kung saan maaaring gumagamit ako ng 1 // ngunit para lang mas madaling sundin ang transmit_h = 100 * (int) h; transmit_t = (int) t; transmit_data = transmit_h + transmit_t; man.transmit (transmit_data); pagkaantala (500); }
Gumagamit ang software ng Manchester code upang maipadala ang data. Binabasa nito ang DHT11 at iniimbak ang temperatura at halumigmig sa 2 magkakahiwalay na float. Tulad ng code ng Manchester na hindi nagpapadala ng mga float, ngunit isang integer, mayroon akong maraming mga pagpipilian: 1- hatiin ang mga float sa dalawang integer bawat isa at ipadala ang mga iyon- ipadala ang bawat float bilang isang integer3- ipadala ang dalawang float bilang isang integer Sa pagpipiliang 1 kailangan kong pagsamahin ang mga integer sa floats muli sa tatanggap at kailangan kong kilalanin kung alin ang integer kung ano, ginagawa ang code na mahangin sa pamamagitan ng pagpipiliang 2 Kailangan ko pa ring kilalanin kung alin ang integer para sa halumigmig at alin para sa temperatura. Hindi ako maaaring pumunta sa pamamagitan ng pagkakasunud-sunod nang nag-iisa kung sakaling ang isang integer ay nawala sa paghahatid, kaya kailangan kong magpadala ng isang identifier na nakakabit sa integer. Sa pagpipiliang 3, maaari akong magpadala ng isang integer lamang. Malinaw na ginagawang medyo hindi gaanong tumpak ang mga pagbasa - sa loob ng 1 degree- at ang isa ay hindi maaaring magpadala ng mas mababa sa zero temperatura, ngunit ito ay isang simpleng code lamang at may mga paraan sa paligid nito. Sa ngayon ito ay tungkol lamang sa prinsipyo. Kaya kung ano ang ginagawa ko ay ginagawa kong integer ang mga float at pinarami ko ang halumigmig na may 100. Pagkatapos ay idinagdag ko ang temperatura sa pinaraming halumigmig. Ibinigay ang katotohanan na ang halumigmig ay hindi magiging 100% ang max number na makukuha ko ay 9900. Dahil sa katotohanang ang temperatura ay hindi rin lalampas sa 100 degree, ang max na numero ay magiging 99, samakatuwid ang pinakamataas na bilang na ipapadala ko ay 9999 at madali itong paghiwalayin sa panig ng tatanggap. ang aking pagkalkula kung saan gumagamit ako ng 3 integers ay labis na labis dahil madali itong magagawa sa 1 variable. Nais kong gawing mas madaling sundin ang code. Ang code ay pinagsasama-sama bilang:
Laki ng sketch ng binary: 2, 836 bytes (ng isang maximum na 8, 192 byte) upang magkasya sa isang Attiny 45 o 85NOTE ang dht.h library na ginagamit ko ay ang mula kay Rob Tillaart. Ang aklatan na iyon ay angkop din para sa isang DHT22. Gumagamit ako ng bersyon 1.08. Gayunpaman ang Attiny85 ay maaaring magkaroon ng mga problema sa pagbabasa ng isang DHT22 na may mas mababang mga bersyon ng library. Nakumpirma sa akin na ang 1.08 at 1.14-bagaman nagtatrabaho sa isang regular na Arduino- nagkakaproblema sa pagbabasa ng isang DHT22 sa Attiny85. Kung nais mong gumamit ng isang DHT22 sa Attiny85, gamitin ang 1.20 bersyon ng library na ito. Ang lahat ng ito ay ginagawa sa tiyempo. Ang 1.20 bersyon ng library ay may isang mas mabilis na nabasa. (Salamat sa karanasan ng gumagamit na Jeroen)
Hakbang 2: Mini Weather Station Na May Attiny85: ang Receiver
Muli ang Attiny85 ay ginagamit sa isang pangunahing pagsasaayos na may Reset pin na nakuha na mataas na may isang 10 k risistor. Ang module ng Receiver ay nakakabit sa digital pin 1 (pin 6 sa chip). Ang LCD ay naka-attach sa mga digital na pin 0 at dalawa. Maglakip ng isang kawad na 17.2 cm bilang antena. Ang code ay ang mga sumusunod:
# isama
# isama ang LiquidCrystal_SR lcd (0, 2, TWO_WIRE); #define RX_PIN 1 // = physical pin 6 void setup () {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 ("Humid:"); lcd.print (m / 100); lcd.setCursor (0, 1); lcd.print ("Temp"); lcd.print (m% 100); }}
Ang code ay medyo simple: ang ipinadala na integer ay natanggap at nakaimbak sa variable na 'm'. Hinahati ito ng 100 upang ibigay ang halumigmig at ang modulo na 100 ay nagbibigay ng temperatura. Kaya't ipagpalagay na ang natanggap na integer ay 33253325/100 = 333325% 100 = 25 Ang code na ito ay pinagsasama bilang 3380 bytes at samakatuwid ay maaari lamang magamit sa isang attiny85, hindi sa isang 45
Hakbang 3: Mini Weather Station Na May Attiny85 / 45: ang Display
Para sa pagpapakita ito ay pinakamahusay na mag-refer ako sa aking itinuturo sa isang dalawang wire display. Sa madaling salita, ang isang karaniwang 16x2 display ay gumagamit ng isang shiftregister upang maaari itong gumana gamit ang dalawang mga digital na pin. Kasamaan kung gusto mong gumamit ng isang handa na I2C na ipakita, iyon ay posible rin, ngunit kailangan mong magpatupad ng isang I2C na protokol sa Attiny. Magagawa iyon ng Tinywire protocol. Kahit na sinabi ng ilang mga mapagkukunan na inaasahan nito ang isang 1 Mhz na orasan, wala akong anumang problema (sa ibang proyekto) na gamitin ito sa 8MhzAnyway Hindi lang ako nag-abala dito at gumamit ng isang shift register.
Hakbang 4: Mini Weather Station Na May Attiny85 / 45: Mga Posibilidad / Konklusyon
Tulad ng sinabi, ginawa ko itong itinuro upang ipakita na ang isa ay maaaring gumawa ng isang mini istasyon ng panahon na may dalawang attiny85's (kahit na may isang attiny85 + 1 attiny45). Nagpapadala lamang ito ng kahalumigmigan at temperatura, gamit ang isang DHT11. Gayunpaman, ang Attiny ay may 5 mga digital na pin upang magamit, 6 kahit na may ilang panloloko. Samakatuwid posible na magpadala ng data mula sa maraming mga sensor. Sa aking proyekto- tulad ng nakikita sa mga larawan sa stripboard at sa isang propesyonal na PCB (OSHPark) - Nagpadala / tumatanggap ako ng data mula sa isang DHT11, mula sa isang LDR at mula sa isang PIR, lahat ay gumagamit ng ang dalawang limitasyon sa paggamit ng isang attiny85 bilang tatanggap bagaman ay ang pagtatanghal ng data sa isang marangyang istilo. Bilang ang memorya ay limitado: Ang mga teksto tulad ng 'Temperatura, Humidity, antas ng ilaw, paparating na paksa' ay punan ang mahalagang puwang ng memorya nang napakabilis. Gayunpaman, walang dahilan upang magamit ang dalawang Arduino lamang upang magpadala / makatanggap ng temperatura at halumigmig. Dagdag pa, posible upang matulog ang transmitter at gisingin lamang ito upang magpadala ng data na sinasabi tuwing 10 minuto at sa gayon ay pakainin ito mula sa isang cell ng pindutan. Malinaw, hindi lamang ang data ng temperatura o kahalumigmigan ang maaaring maipadala ngunit ang isa ay maaaring magkaroon ng isang hanay ng mga maliliit na transmiter na nagpapadala pagbabasa din ng kahalumigmigan sa lupa, o magdagdag ng isang anemometer, o isang metro ng ulan
Hakbang 5: Mini Weather Station: ang Antenna
Ang antena ay isang mahalagang bahagi ng anumang na-set up na 433Mhz. Nag-eksperimento ako sa pamantayang 17.2 cm 'rod' antena at nagkaroon ng isang maikling pang-aakit ng isang coil antena, Ang tila pinakamahusay na gumagana ay isang coil load antena na madaling gawin. Ang disenyo ay mula kay Ben Schueler at tila na-publish sa magazine na 'Elektor'. Ang isang PDF na may paglalarawan ng 'Air cooled 433 MHz Antenna' na madaling sundin. (Nawala ang link, suriin dito)
Hakbang 6: Pagdaragdag ng isang BMP180
Nais na magdagdag ng sensor ng presyon ng barometric tulad ng BMP180? suriin ang iba kong itinuturo doon.
Inirerekumendang:
NaTaLia Weather Station: Arduino Solar Powered Weather Station Tapos na sa Tamang Daan: 8 Hakbang (na may Mga Larawan)
NaTaLia Weather Station: Arduino Solar Powered Weather Station Tapos na ang Tamang Daan: Matapos ang 1 taon ng matagumpay na operasyon sa 2 magkakaibang mga lokasyon binabahagi ko ang aking mga plano sa proyekto ng istasyon ng solar Powered na solar at ipinapaliwanag kung paano ito nabago sa isang system na maaaring mabuhay nang matagal panahon mula sa solar power. Kung susundin mo
DIY Weather Station at WiFi Sensor Station: 7 Hakbang (na may Mga Larawan)
DIY Weather Station & WiFi Sensor Station: Sa proyektong ito ipapakita ko sa iyo kung paano lumikha ng isang istasyon ng panahon kasama ang isang istasyon ng sensor ng WiFi. Sinusukat ng istasyon ng sensor ang lokal na data ng temperatura at kahalumigmigan at ipinapadala ito, sa pamamagitan ng WiFi, sa istasyon ng panahon. Ipinapakita ng istasyon ng panahon ang
Natatanging Deskpiece ng Station ng Weather Weather: 5 Hakbang (na may Mga Larawan)
Natatanging Deskpiece ng Weather Weather Station: Hey Guys! Para sa proyekto sa buwan na ito ay gumawa ako ng isang istasyon ng panahon sa anyo ng isang Desk Plant o maaari mo itong tawagan bilang isang Desk Showpiece. Ang istasyon ng panahon na ito ay kumukuha ng data sa ESP8266 mula sa isang Website na pinangalanang openwethermap.org at binabago ang mga kulay ng RGB sa
Kumpletuhin ang DIY Raspberry Pi Weather Station Na May Software: 7 Hakbang (na may Mga Larawan)
Kumpletuhin ang DIY Raspberry Pi Weather Station Gamit ang Software: Bumalik sa huling bahagi ng Pebrero nakita ko ang post na ito sa site na Raspberry Pi. http://www.raspberrypi.org/school-weather-station-..Nilikha nila ang Raspberry Pi Weather Stations para sa Mga Paaralan. Gustung-gusto ko ang isa! Ngunit sa oras na iyon (at naniniwala pa rin ako tulad ng pagsulat
Acurite 5 in 1 Weather Station Paggamit ng isang Raspberry Pi at Weewx (iba pang Mga Panahon ng Panahon ay Tugma): 5 Mga Hakbang (na may Mga Larawan)
Acurite 5 in 1 Weather Station Paggamit ng isang Raspberry Pi at Weewx (iba pang Mga Weather Stations ay Tugma): Nang binili ko ang Acurite 5 sa 1 istasyon ng panahon nais kong masuri ang lagay ng panahon sa aking bahay habang wala ako. Nang makauwi ako at naayos ko ito napagtanto ko na dapat kong magkaroon ng display na konektado sa isang computer o bumili ng kanilang smart hub,