Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
prosjektoppsummering
Dette er en batteridrevet værsensor basert på en BME280 temperatur-/trykk-/fuktighetssensor og en ATMega328P MCU. Den går på to 3,6 V litiumtionyl AA -batterier. Den har et ekstremt lavt søvnforbruk på 6 µA. Den sender data halvtime via GPRS (ved hjelp av en SIM800L GSM-modul) til ThingSpeak, kontrollert av en DS3231 sanntidsklokke. Anslått service på ett batterisett er> 6 måneder.
Jeg bruker et ASDA pay-as-you-go-SIM-kort, som gir ekstremt gode forhold for dette prosjektet, ettersom det har en veldig lang utløpstid for kreditt (180 dager) og bare belaster 5p/MB datavolum.
Motivasjon: Utvikling av en økonomisk, autonom, autonom, batteridrevet miljøsensor som ikke kan vedlikeholdes som kan plasseres i naturen for å hente vær eller andre data og overføre via GSM/GPRS-nettverk til en IoT-server.
Fysiske dimensjoner: 109 x 55 x 39 mm (inkl. Flens). Vekt 133 g. IP -klassifisering 54 (estimert).
Materialkostnad: Ca. £ 20 per enhet.
Monteringstid: 2 timer per enhet (håndlodding)
Strømkilde: To litiumtionyl AA-batterier, ikke-oppladbare (3,6V, 2,6Ah).
Nettverksprotokoll: GSM GPRS (2G)
Potensiell bruk: Enhver ekstern plassering med GSM -signaldekning. Skoger, fyr, bøyer, private yachter, campingvogner, campingplasser, fjellhytter, ubebygde bygninger
Pålitelighetstest: En enhet har gjennomgått langtidstesting uten tilsyn siden 30.8.20. Bortsett fra en programvarekrasj, har den sendt data pålitelig hvert 30. minutt.
Trinn 1: Nødvendige deler
- Skreddersydde PCB. Zipper Gerber -filer her (instructables.com ser ut til å blokkere opplasting av ZIP -filer). Jeg anbefaler jlcpcb.com sterkt for produksjon av PCB. For folk som bor i Storbritannia, sender jeg deg en ekstra PCB for et minimalt bidrag til material- og portokostnader - send meg en melding.
- ATMega328P-AU
- Endret DS3231 sanntidsklokke (se avsnitt nedenfor)
- BME280 Breakout board, som dette
- SIM800L GSM GPRS -modul
- Ulike SMD -deler i henhold til detaljert liste.
- Hammond 1591, svart ABS -kabinett, IP54, flens, 85 x 56 x 35 mm, fra RS Components UK
Endring av DS3231
Firemanns motstandsnettverket som er sirklet med rødt, må loddes. Andre mer destruktive metoder er også OK, men unngå å bygge bro mellom putene på den innvendige raden med 4 pads (mot siden av MCU). De fire andre putene er uansett tilkoblet med PCB -spor. Denne endringen er avgjørende for at SQW -pinnen skal fungere som en alarm. Uten å fjerne motstandene, vil det ikke fungere før du kobler en VCC-forsyning til modulen, som beseirer formålet med å ha en svært lav effekt RTC.
Trinn 2: Skjematiske prinsipper
De viktigste prioriteringene for designet var:
- Batteridrift med lavt søvnstrømforbruk
- Kompakt design
Strømforsyning
To 3,6V Saft Lithium thionyl AA batterier. En P-kanal MOSFET for beskyttelse mot omvendt polaritet.
Det er to spenningsregulatorer i kretsen:
- En Texas Instruments TPS562208 2 Amp nedtrappingsregulator for å drive SIM800L på rundt 4,1V. Dette kan byttes fra ATMega og settes i avstengningsmodus det meste av tiden via Aktiver pin 5.
- En MCP1700 3.3V regulator for ATMega og BME280. Dette er en ekstremt effektiv lavdroppsregulator med en hvilestrøm på bare rundt 1 µA. Siden det bare er tolerant opptil 6V inngang, la jeg til to likeretterdioder (D1, D2) i serie for å slippe 7,2V -forsyningen til et akseptabelt nivå rundt 6V. Jeg glemte å legge til den vanlige 10 µF frakoblingskondensatoren på kretskortet for strømforsyningen på ATMega. Derfor har jeg oppgradert den vanlige utgangskondensatoren på MCP1700 fra 1 til 10 µF, og den fungerer fint.
- Batterispenningsovervåking via ADC0 på ATMega (gjennom en spenningsdeler)
Sanntidsklokke
En modifisert DS3231, som vekker ATMega med bestemte intervaller for å starte en syklus med måling og dataoverføring. Selve DS3231 er drevet av en CR2032 litiumcelle.
BME280
Jeg har prøvd å bruke den originale Bosch BME280 -modulen alene, som er nesten umulig å lodde på grunn av den lille størrelsen. Derfor bruker jeg det allment tilgjengelige breakout -brettet. Siden denne har en unødvendig spenningsregulator, som bruker energi, slår jeg den på med en N-kanal MOSFET like før målinger.
SIM800L
Denne modulen er pålitelig, men synes å være ganske temperamentsfull hvis strømforsyningen ikke er bunnsolid. Jeg fant ut at en 4,1V forsyningsspenning fungerer best. Jeg har laget PCB -sporene for VCC og GND til SIM800L ekstra tykk (20 mil).
Skjematiske/PCB -kommentarer
- Nettverksetiketten "1" - oppført som "SINGLEPIN" i delelisten refererer ganske enkelt til en mannlig topptekst.
- De to pinnene ved siden av glidebryteren må bygge bro med en jumper for normal drift, ellers er VCC -linjen åpen her. De er beregnet for gjeldende målinger om nødvendig.
- 100 µF kondensator (C12) for SIM800L -modulen er ikke nødvendig. Det ble lagt til som et forebyggende (desperat) tiltak i tilfelle forventede stabilitetsproblemer
Anbefalte monteringstrinn
- Monter alle strømforsyningskomponenter i nedre venstre del av kretskortet. Enable pin (pin 5) på TPS562208 må være på logisk høy for testing, ellers er modulen i avstengningsmodus og du vil ha 0V utgang. For å trekke Aktiver -pinnen høyt for testing, kan en midlertidig ledning fra pute 9 på ATMega (som på PCB er koblet til PIN 5 på spenningsregulatoren) kobles til et VCC -punkt; det nærmeste punktet ville være den nedre tappen på R3, som ligger på VCC -linjen.
- Test utgang fra TPS562208 mellom bunnpinnene på enten C2, C3 eller C4 og GND. Du bør ha rundt 4.1V.
- Testutgang fra MCP1700, mellom øvre høyre pinne på U6 og GND. Du bør ha 3,3V.
- Lodding ATMega328P; observer pinne 1 -markøren øverst i venstre hjørne. Noe øvelse kreves, men ikke for vanskelig.
- Brenn bootloader på ATMega328 - opplæringsprogrammer for dette andre steder. Du trenger ikke nødvendigvis å bruke pinnehoder for å koble til MOSI, MISO, SCK og RST. I de få sekundene det tar å brenne bootloaderen, kan du bruke Dupont -ledninger og bruke litt vinkling for å oppnå en god kontakt.
- Fest 5x hunnpinneoverskrift for DS3231.
- Lodd SIM800L via mannlige pinhoder
- Lodding BME280
- Last opp kode i Arduino IDE ved hjelp av en USB2TTL -adapter (velg Arduino Uno/Genuino som mål).
Trinn 3: Arduino -kode
Se Arduino kildekoden i filvedlegget.
Trinn 4: Test i den virkelige verden
Jeg boret to små hull på høyre side av saken like dypt til forsiden. Jeg dekket dem fra innsiden med Goretex -lapper for å tillate luftutveksling, men utelukke vann. Jeg la til litt ekstra regnbeskyttelse med lite plasttak. Jeg plasserer deretter hele enheten i saken med komponentene vendt fremover og batteriet vendt mot lokket. Jeg legger litt silisiumfett i saken for ekstra vanninntrengningsbeskyttelse.
Enheten er for tiden "installert" ved siden av en liten elv. Her er live datafeed.