Listahan ng kailangan namin:
- Digispark Attiny85
- Oled na display 128x64 I2C
- sensor sensor ng ds18b20
- Resistor 4.7 Kom 0.25 W
- ISP programmer o Arduino Digispark Attiny85 firmware board
- Plato ng plastik na may papel na clip o sheet ng manipis na plastik
- mga wire
- Dupont 2.54 mm "babaeng" konektor
- Mga pindutan ng 2 mga PC.
- Maliit na circuit board o maliit na trim
- paghihinang bakal
- Solder, rosin
- gunting
- kutsilyo ng clerical
- Mainit na baril na pandikit
- Mainit na pandikit
Hakbang 1 Pagpili ng Mga Bahagi.
Bilang pangunahing magsusupil gagamitin namin ang Digispark Attiny85. Mayroong ilang mga uri ng mga ito. Kailangan namin ng isang board na may isang micro USB connector. Ang natitira ay hindi magkasya sa kaso ng relo.
Upang ipakita, kailangan namin ng isang Oled 128x64 I2C display. Dumating sila sa iba't ibang kulay: puti, asul, asul na may dilaw. Iginuhit ko ang iyong pansin! Ang salitang "two-color" sa paglalarawan o pamagat ng screen na ito ay nangangahulugang isang guhit ng isang kulay sa tuktok ng screen at ang pangalawang kulay sa buong natitirang screen, at hindi ang kakayahang magpakita ng dalawang kulay sa screen na ito! Ang lahat ng mga screen ng ganitong uri ay nagpapakita lamang ng isang kulay, o sa tuktok ng isang guhit ng isang kulay sa ibaba - isa pa. Tulad ng, halimbawa, ang aking gagamitin. Ang bar sa itaas ay dilaw; ang natitirang screen ay asul. Maaari kang pumili ng anumang kulay na gusto mo.
Kailangan din namin ang integrated sensor ng sensor DS18B20. Hindi ito pinili ng pagkakataon. Una, ang DS18B20 ay nakikipag-ugnay sa microcontroller sa pamamagitan ng isang linya ng komunikasyon na single-wire gamit ang 1-Wire interface na protocol. Sa aming kaso, mahalaga ito, dahil ang mga konklusyon ng Attiny85 na walang sensor ay kakaunti. Pangalawa, ang sensor na ito ay isang digit, iyon ay, kukuha ng lahat ng mga pagsukat mismo at simpleng nagpapadala ng data ng temperatura nang hindi ginugol ang mga mapagkukunan ng computing ng Attiny85.
Tulad ng para sa natitira, sa palagay ko ay walang mga katanungan, kaya't lumipat tayo sa paggawa ng kaso.
Hakbang 2 Assembly ng pabahay.
Ang kaso ng relo ay gagawa ng manipis na plastik. Nagkaroon ako ng isang plastic tablet na may isang clip ng papel sa aking mga kamay. Mahirap na hawakan ang hugis nito, at sa parehong oras maaari itong i-cut na may ordinaryong gunting at kutsilyo sa opisina. Siya ay bumangon nang perpekto.Kung hindi ito nasa kamay, maaari kang bumili ng isang tablet sa isang tindahan ng supply ng opisina o hanapin ang tamang plastik upang mapalitan ang tablet. Gumagawa kami ng mga marka sa plastik ayon sa pamamaraan:
Gupitin ang lahat ng mga solidong linya. Dotted - bahagyang pinutol gamit ang isang clerical kutsilyo. Ang mga tuldok na linya ay mga linya ng tiklop. Tulad ng naintindihan mo, ito ang karaniwang layout ng kubo. Susunod, kailangan mong ibenta ang mga wires sa screen, mas mahusay na kumuha ng maraming kulay at isulat kung saan hahantong sa kung ano. I-glue ang screen sa mainit na matunaw na malagkit sa gitna, upang ang harapan ay lumabas mula sa likuran. Tulad ng nakikita mo, isinara namin ang mga pagtatalaga sa screen pin. Samakatuwid, kinakailangan na isulat ang mga ito. Bahagya kong ipinasa sa kutsilyo, at sa gayon pinutol ang mas mababang bahagi ng katawan. Walang mali sa na, lahat ay maaaring nakadikit. Ngunit mas mabuti na huwag ulitin ang aking mga pagkakamali.
Ang resulta ay dapat na ganito:
Sa kasong ito ay handa na. Maaari mo pa ring gupitin ang takip sa likod ng parehong plastik, ngunit ito ay opsyonal.
Hakbang 3 Kami ay nagbebenta.
Maliit ang aming kaso, at marami kaming dapat cram doon. Samakatuwid, kumuha kami ng isang piraso ng circuit board na hindi mas malaki kaysa sa 2.8 x 2.8 mm at panghinang sa dalawang pindutan, isang sensor ng ds18b20, isang risistor at maraming mga contact. Ayon sa sumusunod na pamamaraan:
Hindi kinakailangan sa mga wire ng panghinang nang direkta kay Attiny, dahil kinakailangan na idiskonekta ang lahat para sa firmware. Ang resulta ay dapat na tulad nito:
Ang mga pindutan ay kinakailangan upang itakda ang oras. Maaaring makuha ang lakas mula sa USB port ng computer. Pinagsasama ang plus at minus, ayon sa pagkakabanggit:
Kung nais mong gawin nang walang mga wire, kailangan mong makahanap ng isang maliit na baterya ng lithium-ion. Narito ang isa, halimbawa:
Ang baterya na ito ay umaangkop sa loob ng kaso. Kinakailangan lamang na magbigay ng mga konklusyon para sa singil ng baterya.
Hakbang 4 Paghahanda ng programmer.
Ang Digispark Attiny85 ay maaaring ma-program sa pamamagitan ng micro USB connector sa board, gamit ang Arduino IDE bilang programming environment. Ngunit sa parehong oras kailangan mong magsakripisyo ng 2 KB ng memorya para sa bootloader. Ang Attiny 85 ay may kabuuang 8 KB Flash. Ang aking sketch ay hindi akma sa bootloader, kaya kailangan kong mag-program sa pamamagitan ng ISP programmer. Wala akong ganitong programista, ngunit mayroong isang Arduino Uno board, na gagamitin ko bilang isang programmer. Kung mayroon kang isang ISB programmer, maaari mong laktawan ang item na ito. Buksan ang Arduino IDE at punan ang aming sket na tinatawag na ArduinoISP sa aming Arduino Uno. Mahahanap mo ito tulad ng File na ito - Mga Halimbawa - Arduino ISP. Ang sketch ay nagsisimula sa isang pahiwatig sa kung paano ikonekta ang Arduino sa programmable na magsusupil. Sa halip na Arduino Uno, maaaring magkaroon ng iba pang board Arduino.
// 10: pag-reset ng alipin
// 11: MOSI
// 12: MISO
// 13: SCK
Scheme ng koneksyon sa Digispark Attiny85:
Arduino UNO - Digispark Attiny85
D11 - P0
D12 - P1
D13 - P2
D10 - P5
Hakbang 5 Paghahanda ng programming environment.
Upang mai-edit ang firmware at punan ang sketch sa Attiny 85, kailangan mong maghanda hindi lamang ang programmer, kundi pati na rin ang programming environment mismo. Upang gawin ito, i-install ang Arduino IDE mula sa opisyal na website ng Arduino.cc, at i-install din ang addiny ng Attiny para sa mga microcontroller sa pamamagitan ng Boards Manager.
Ilunsad ang Arduino IDE, pagkatapos ng File - Mga Setting - sa Karagdagang Mga Boards Manager URL na patlang, i-paste ang link:
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
i-click ang OK (maaari kang magpasok ng maraming mga link na pinaghiwalay ng isang kuwit sa larangang ito). Susunod na Mga Tool - Board - Boards Manager sa patlang ng filter, ipasok ang Attiny at i-click ang "attiny ni David A. Mellis". I-click ang I-install at maghintay para matapos ang pag-download. Ngayon sa menu ng Mga tool, piliin ang:
Lupon - Attiny 25/45/85
Proseso - Attiny 85
Orasan - panloob 16
at piliin ang serial port kung saan konektado ang ISP programmer o Arduino bilang programmer.
Sinubukan ko ang maraming iba't ibang mga aklatan para sa pagtatrabaho sa screen. Sa aking opinyon ang pinaka-maginhawa at nagtatrabaho sa Attiny85: TinyOzOLED.
Kailangan ng isang sensor ng temperatura ang library ng OneWire.
I-install ang dalawang mga aklatan. Maaari kang mag-install ng mga aklatan ng third-party nang direkta sa kapaligiran ng programming. Nang hindi ma-unpack ang nai-download na mga archive, sa Arduino IDE, piliin ang menu na Sketch - Connect Library. Sa pinakadulo tuktok ng listahan ng drop-down, piliin ang item na Magdagdag ng .Zip. Sa dialog na lilitaw, piliin ang library na nais mong idagdag. Buksan muli ang menu ng Sketch - Ikonekta ang Library. Sa pinakadulo ibaba ng listahan ng drop-down dapat mong makita ang isang bagong library. Ngayon ang aklatan ay maaaring magamit sa mga programa. Huwag kalimutan na i-reboot ang Arduino IDE pagkatapos ng lahat ng ito.Kung hindi ito makakatulong, ilabas lamang ang mga archive sa folder na "mga aklatan" na matatagpuan sa folder na naka-install ang Arduino IDE.
Hakbang 6 I-edit at punan ang sketch.
Gumagana ang sensor ng temperatura gamit ang One Wire protocol at may isang natatanging address para sa bawat aparato - isang 64-bit code. Ang mga mapagkukunan ng Attiny ay hindi sapat upang hanapin ang code na ito sa bawat oras. Samakatuwid, dapat mo munang ikonekta ang sensor sa anumang board ng Arduino, punan ang sketch na matatagpuan sa File - Mga Halimbawa - Dallas temperatura - menu ng OneWireSearch. Susunod, patakbuhin ang Mga tool - Monitor ng Port. Dapat makita ng Arduino ang aming sensor, isulat ang address at kasalukuyang pagbabasa ng temperatura. Kinokopya namin o isulat lamang ang address ng aming sensor. Buksan ang sketch Attiny85_Oled_SPI_Term_2, hanapin ang linya:
byte addr [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63};
Isinulat namin ang address ng iyong sensor sa pagitan ng mga tirante, pinapalitan ang address ng aking sensor. Pagkatapos nito, ikonekta ang Attiny sa programista o Arduino bilang isang programmer (ito ay inilarawan sa Hakbang 4) at punan ang sketch. Ito ay nananatiling idiskonekta ang programista at ikonekta ang lahat ayon sa pamamaraan sa 3 mga hakbang. Ang pagpupulong ay lumiliko tulad nito:
Maliit ang screen, imposibleng maglagay ng parehong oras at temperatura upang makita ito. Samakatuwid, binabago ng orasan ang oras sa isang pagbabasa ng temperatura tuwing 10 segundo.