Përmbajtje:
- Hapi 1: Mini Stacioni i Motit Me Attiny85: Transmetuesi
- Hapi 2: Mini Stacioni i Motit Me Attiny85: Marrësi
- Hapi 3: Mini Stacioni i Motit Me Attiny85/45: Ekrani
- Hapi 4: Mini Stacioni i Motit Me Attiny85/45: Mundësitë/Përfundimet
- Hapi 5: Mini Stacioni i Motit: Antena
- Hapi 6: Shtimi i një BMP180
Video: Mini Stacioni i motit me Attiny85: 6 hapa (me fotografi)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:17
Në një Indigod0g të fundit të udhëzuar, të përshkruar një mini stacion moti që punon mjaft mirë, duke përdorur dy Arduinos. Ndoshta jo të gjithë duan të sakrifikojnë 2 Arduinos për të marrë lagështinë dhe leximet e temperaturës dhe unë komentova se duhet të jetë e mundur të bëhet një funksion i ngjashëm me dy Attiny85. Unë mendoj se biseda është e lehtë, kështu që më mirë vendos paratë e mia atje ku jam goja.
Në fakt, nëse kombinoj dy udhëzime të mëparshme kam shkruar:
Ndërfaqe LCD 2-Wire për Arduino ose Attiny dheMerrja dhe dërgimi i të dhënave midis Attiny85 (Arduino IDE 1.06) atëherë shumica e punës është bërë tashmë. Thjesht duhet të përshtatni pak softuerin.
Zgjodha për një zgjidhje LCD me dy tela me një regjistër ndërrimi, sesa një LCD I2C sepse në Attiny regjistri i ndërrimit është më i lehtë për t'u zbatuar sesa autobusi I2C. Sidoqoftë … nëse doni të lexoni për shembull një sensor presioni BMP180 ose BMP085, keni nevojë për I2C për këtë gjithsesi kështu që ju gjithashtu mund të përdorni një LCD I2C atëherë. TinyWireM është një bibliotekë e mirë për I2C në një Attiny (por kërkon hapësirë shtesë).
BOM Transmetuesi: DHT11 Attiny85 10 k rezistencë 433MHz modul transmetues
Marrësi Attiny85 10k rezistencë 433 MHz modul i marrësit
Ekrani 74LS164 regjistri i ndërrimit 1N4148 dioda 2x1k rezistencë 1x1k rezistencë e ndryshueshme një ekran LCD 2x16
Hapi 1: Mini Stacioni i Motit Me Attiny85: Transmetuesi
Transmetuesi është një konfigurim shumë themelor i Attiny85 me një rezistencë tërheqëse në vijën e rivendosjes. Një modul transmetues është bashkangjitur në pinin dixhital '0' dhe kunja e të dhënave DHT11 i bashkëngjitet pinit dixhital 4. Bashkangjitni një tel 17.2 cm si antenë (për një antenë shumë më të mirë shihni hapin 5). Softueri është si më poshtë:
// do të punojë në Attiny // RF433 = D0 pin 5
// DHT11 = D4 pin 3 // bibliotekat #përfshi // Nga Rob Tillaart #përfshi dht DHT11; #define DHT11PIN 4 #define TX_PIN 0 // pin ku është lidhur transmetuesi juaj // variablat notojnë h = 0; noton 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. lagështia; t = DHT11.temperatura; // Unë e di, unë jam duke përdorur 3 variabla të plotë këtu // ku mund të përdorja 1 // por kjo është vetëm kështu që është më e lehtë të ndiqni transmit_h = 100* (int) h; transmetoj_t = (int) t; transmeto_data = transmetoj_h+transmetoj_t; njeri.transmetoj (transmetoj_data); vonesë (500); }
Softueri përdor kodin e Mançesterit për të dërguar të dhënat. Lexon DHT11 dhe ruan temperaturën dhe lagështinë në 2 nota të veçantë. Meqenëse kodi i Mançesterit nuk dërgon lundrues, por një numër të plotë, unë kam disa opsione: 1- ndani lundruesit në dy numra të plotë secili dhe dërgoni ato2- dërgoni çdo notë si një numër të plotë3- dërgoni dy lundruesit si një numër i plotë Me opsionin 1 më duhet të kombinoj numrat e plotë në noton përsëri në marrës dhe unë duhet të identifikoj se cili numër i plotë është çfarë, duke e bërë kodin të dredhur gjatë. Me opsionin 2 më duhet akoma të identifikoj se cili numër i plotë është për lagështinë dhe cili për temperaturën. Nuk mund të shkoj vetëm me sekuencë në rast se një numër i plotë humbet në transmetim, kështu që do të më duhej të dërgoja një identifikues të bashkangjitur në numrin e plotë. Me opsionin 3, unë mund të dërgoj vetëm një numër të plotë. Natyrisht kjo i bën leximet pak më pak të sakta - brenda 1 gradë - dhe nuk mund të dërgoni temperatura nën zero, por është vetëm një kod i thjeshtë dhe ka mënyra për ta bërë këtë. Tani për tani bëhet fjalë vetëm për parimin. Pra, ajo që bëj është që i shndërroj notat në numra të plotë dhe e shumëzoj lagështinë me 100. Pastaj i shtoj temperaturën lagështisë së shumëzuar. Duke pasur parasysh faktin se lagështia nuk do të jetë kurrë 100% numri maksimal që do të marr është 9900. Duke pasur parasysh faktin se temperatura gjithashtu nuk do të jetë mbi 100 gradë, numri maksimal do të jetë 99, prandaj numri më i lartë që do të dërgoj është 9999 dhe që është e lehtë të ndahet në anën e marrësit. llogaritja ime në të cilën përdor 3 numra të plotë është e tepërt pasi mund të bëhet lehtë me 1 ndryshore. Unë thjesht doja ta bëja kodin më të lehtë për tu ndjekur. Kodi tani përpilohet si:
Madhësia e skicës binare: 2, 836 bajt (me një maksimum prej 8, 192 bajt) në mënyrë që të përshtatet në një Attiny 45 ose 85KUAJ biblioteka dht.h që përdor është ajo e Rob Tillaart. Ajo bibliotekë është gjithashtu e përshtatshme për një DHT22. Unë jam duke përdorur versionin 1.08. Sidoqoftë, Attiny85 mund të ketë probleme me leximin e një DHT22 me versionet më të ulëta të bibliotekës. Më është konfirmuar se 1.08 dhe 1.14 - edhe pse punojnë në një Arduino të rregullt - kanë probleme të lexojnë një DHT22 në Attiny85. Nëse dëshironi të përdorni një DHT22 në Attiny85, përdorni versionin 1.20 të kësaj biblioteke. Gjithçka ka të bëjë me kohën. Versioni 1.20 i bibliotekës ka një lexim më të shpejtë. (Faleminderit për atë përvojë përdoruesi Jeroen)
Hapi 2: Mini Stacioni i Motit Me Attiny85: Marrësi
Përsëri Attiny85 përdoret në një konfigurim bazë me kunjin Reset të tërhequr lart me një rezistencë 10 k. Moduli Marrës është bashkangjitur në pinin dixhital 1 (kunja 6 në çip). LCD -ja është ngjitur në kunjat dixhitale 0 dhe dy. Bashkangjitni një tel prej 17.2 cm si antenë. Kodi është si më poshtë:
#përfshi
#përfshi LiquidCrystal_SR LCD (0, 2, TWO_WIRE); #define RX_PIN 1 // = pin fizik 6 void setup () {lcd.begin (16, 2); LCD. shtëpi (); man.setupReceive (RX_PIN, MAN_1200); man.beginReceive (); } void loop () {if (man.receiveComplete ()) {uint16_t m = man.getMessage (); man.beginReceive (); lcd.print ("I lagësht:"); lcd.print (m/100); lcd.setCursor (0, 1); lcd.print ("Temp"); lcd.print (m%100); }}
Kodi është mjaft i thjeshtë: Numri i plotë i transmetuar merret dhe ruhet në variablin 'm'. Ai ndahet me 100 për të dhënë lagështinë dhe moduli 100 jep temperaturën. Pra, supozoni se numri i plotë i marrë ishte 33253325/100 = 333325 % 100 = 25Ky kod përpilohet si 3380 byte dhe prandaj mund të përdoret vetëm me një attiny85, jo me një 45
Hapi 3: Mini Stacioni i Motit Me Attiny85/45: Ekrani
Për ekranin është më mirë që unë t'i referohem udhëzimeve të mia në një ekran me dy tela. Me pak fjalë, një ekran i zakonshëm 16x2 përdor një regjistër shift në mënyrë që të mund të funksionojë me dy kunja dixhitale. Natyrisht, nëse preferoni të përdorni një ekran të gatshëm I2C, domethënë është gjithashtu e mundur, por atëherë ju duhet të zbatoni një protokoll I2C në Attiny. Protokolli Tinywire mund ta bëjë këtë. Megjithëse disa burime thonë se ajo pret një orë 1 Mhz, unë nuk kam pasur ndonjë problem (në një projekt tjetër) për ta përdorur atë në 8Mhz. Gjithsesi, thjesht nuk u shqetësova këtu dhe përdor një regjistër ndërrimi.
Hapi 4: Mini Stacioni i Motit Me Attiny85/45: Mundësitë/Përfundimet
Siç u tha, e bëra këtë të udhëzueshme për të treguar se dikush mund të bëjë një mini stacion moti me dy attiny85 (madje edhe me një attiny85+ 1 attiny45). Ai dërgon vetëm lagështi dhe temperaturë, duke përdorur një DHT11. Megjithatë, Attiny ka 5 kunja dixhitale për t'u përdorur, 6 edhe me ndonjë hile. Prandaj, është e mundur të dërgoni të dhëna nga më shumë sensorë. Në projektin tim- siç shihet në fotot në stripboard dhe në një PCB profesionale (OSHPark)- dërgoj/marr të dhëna nga një DHT11, nga një LDR dhe nga një PIR, të gjitha duke përdorur dy attiny85'sKufizimi në përdorimin e një attiny85 si marrës edhe pse është paraqitja e të dhënave në një stil bie shumë në sy. Meqenëse kujtesa është e kufizuar: Tekstet si 'Temperatura, Lagështia, niveli i dritës, subjekti që afrohet' do të mbushin hapësirën e vlefshme të kujtesës shumë shpejt. Sidoqoftë, nuk ka arsye për të përdorur dy Arduino vetëm për të dërguar/marrë temperaturë dhe lagështi. Përveç kësaj, është e mundur që transmetuesi të flejë dhe të zgjohet vetëm për të dërguar të dhëna, thuajini çdo 10 minuta dhe kështu ushqejeni atë nga një qelizë butoni. Natyrisht, jo vetëm të dhënat e temperaturës ose lagështisë mund të dërgohen, por dikush mund të ketë një sërë transmetuesish të vegjël që dërgojnë leximet e lagështisë së tokës gjithashtu, ose shtoni një anemometër, ose një metër shiu
Hapi 5: Mini Stacioni i Motit: Antena
Antena është një pjesë e rëndësishme e çdo 433Mhz të ngritur. Unë kam eksperimentuar me antenën standarde 17,2 cm 'shufra' dhe kam bërë një flirt të shkurtër me një antenë spirale, ajo që dukej se funksiononte më së miri është një antenë e mbushur me spirale që është e lehtë për t'u bërë. Dizajni është nga Ben Schueler dhe me sa duket është botuar në revistën 'Elektor'. Një PDF me përshkrimin e kësaj 'Antene të ftohur me ajër 433 MHz' është e lehtë për t'u ndjekur. (Lidhja u zhduk, kontrolloni këtu)
Hapi 6: Shtimi i një BMP180
Dëshironi të shtoni një sensor presioni barometrik si BMP180? kontrolloni udhëzimet e mia të tjera për këtë.
Recommended:
Stacioni i motit profesional duke përdorur ESP8266 dhe ESP32 DIY: 9 hapa (me fotografi)
Stacioni i Motit Profesional Duke Përdorur ESP8266 dhe ESP32 DIY: LineaMeteoStazione është një stacion i plotë moti i cili mund të ndërlidhet me sensorë profesionistë nga Sensirion si dhe disa komponentë të Davis Instrument (Rain Gauge, Anemometer) Projekti ka për qëllim si stacion moti DIY por thjesht kërkon
Shporta e varur super stacioni i motit: 11 hapa (me fotografi)
Shporta e Varur Super Stacioni i Motit: Përshëndetje të gjithëve! Në këtë postim në blogun T3chFlicks, ne do t'ju tregojmë se si kemi bërë një shportë të zgjuar të varur. Bimët janë një shtesë e freskët dhe e shëndetshme për çdo shtëpi, por shpejt mund të bëhen të lodhshme - veçanërisht nëse nuk ju kujtohet t'i ujisni vetëm kur jeni
Stacioni i motit NaTaLia: Stacioni i motit Arduino me energji diellore Bëhet në rrugën e duhur: 8 hapa (me fotografi)
Stacioni i motit NaTaLia: Stacioni i motit me energji diellore Arduino Bëhet në rrugën e duhur: Pas 1 viti funksionimi të suksesshëm në 2 vende të ndryshme, unë po ndaj planet e mia të projektit të stacionit të motit me energji diellore dhe po shpjegoj se si evoluoi në një sistem i cili me të vërtetë mund të mbijetojë për një kohë të gjatë periudha nga energjia diellore. Nëse ndiqni
Stacioni i motit DIY & Stacioni i sensorit WiFi: 7 hapa (me fotografi)
DIY Weather Station & WiFi Sensor Station: Në këtë projekt do t'ju tregoj se si të krijoni një stacion moti së bashku me një stacion sensor WiFi. Stacioni i sensorit mat të dhënat e temperaturës dhe lagështisë lokale dhe i dërgon ato, përmes WiFi, në stacionin e motit. Stacioni i motit më pas shfaq t
Stacioni i motit Acurite 5 në 1 duke përdorur një Raspberry Pi dhe Weewx (Stacionet e tjera të motit janë të pajtueshme): 5 hapa (me fotografi)
Stacioni i motit Acurite 5 në 1 Duke përdorur një Raspberry Pi dhe Weewx (Stacionet e tjera të motit janë të pajtueshme): Kur kisha blerë stacionin e motit Acurite 5 në 1 doja të isha në gjendje të kontrolloja motin në shtëpinë time ndërsa isha larg. Kur mbërrita në shtëpi dhe e vendosa, kuptova se ose duhej ta kisha ekranin të lidhur me një kompjuter ose të blija shpërndarësin e tyre të zgjuar,