Inhoudsopgave:

Tinyduino LoRa-gebaseerde huisdiertracker - Ajarnpa
Tinyduino LoRa-gebaseerde huisdiertracker - Ajarnpa

Video: Tinyduino LoRa-gebaseerde huisdiertracker - Ajarnpa

Video: Tinyduino LoRa-gebaseerde huisdiertracker - Ajarnpa
Video: TinyDuino – теперь можно создать свои «умные часы» 2024, November
Anonim
Tinyduino LoRa-gebaseerde huisdiertracker
Tinyduino LoRa-gebaseerde huisdiertracker

Wie wil er geen huisdieren?? Die harige vrienden kunnen je vullen met liefde en geluk. Maar de pijn om ze te missen is verwoestend. Onze familie had een kat genaamd Thor (de foto hierboven) en hij was een avontuurlijke zwerver. Vele malen kwam hij terug na wekelijkse reizen vaak met blessures en dus probeerden we hem er niet uit te laten. Maar wat niet, hij ging weer naar buiten maar kwam niet terug:(We konden geen spoor vinden, zelfs niet na weken zoeken. Mijn familie werd terughoudend om meer katten te hebben omdat het erg traumatisch was om hem te verliezen. Dus besloot ik een kijkje te nemen op huisdiertrackers. Maar de meeste commerciële trackers hebben een abonnement nodig of zijn zwaar voor een kat. Er zijn enkele goede trackers op basis van radiorichting, maar ik wilde een nauwkeurige locatie weten omdat ik het grootste deel van de dag niet thuis zal zijn. Dus besloot ik een tracker te maken met Tinyduino en een LoRa-module die de locatie naar het basisstation bij mij thuis stuurt en de locatie bijwerkt naar een app.

PS vergeef me alstublieft voor afbeeldingen van lage kwaliteit.

Stap 1: Vereiste componenten

  1. TinyDuino-processorkaart
  2. Tinyshield-gps
  3. ESP8266 WiFi-ontwikkelbord
  4. Hope RF RFM98(W) (433 MHz) x 2
  5. Tinyshield Proto-bord
  6. USB Tinyshield
  7. Lithium-polymeerbatterij - 3.7 V (ik gebruikte 500mAh om het gewicht te verminderen)
  8. Soldeerbout
  9. Jumperdraden (vrouw naar vrouw)

Stap 2: De zender

De zender
De zender
De zender
De zender

We moeten de LoRa-transceiver verbinden met de tinyduino. Hiervoor moeten we draden van de RFM98-module naar het tinyshield-protoboard solderen. Ik zou de RadioHead-bibliotheek gebruiken voor communicatie en de verbinding wordt gedaan volgens de documentatie.

Protoboard RFM98

GND -------------- GND

D2 -------------- DIO0

D10 -------------- NSS (CS chip selecteren in)

D13 -------------- SCK (SPI-klok in)

D11 -------------- MOSI (SPI-gegevens in)

D12 -------------- MISO (SPI-gegevens uit)

3.3V pin van RFM98 is verbonden met de batterij +ve.

OPMERKING: Volgens de datasheet is de maximale spanning die op de RFM98 kan worden toegepast 3,9 V. Controleer wel de accuspanning voordat u deze aansluit

Ik gebruikte een spiraalvormige antenne voor RFM98 omdat het de grootte van de tracker zou verkleinen.

Begin met de tinyduino-processor onderaan de stapel, gevolgd door tinyshield GPS en dan het protoboard bovenaan. De soldeerkoppen onder het protoboard kunnen een beetje vervelend worden; in mijn geval raakte het het gps-schild eronder, dus isoleerde ik de onderkant van het protoboard met isolatietape. Dat is het, we zijn klaar met het bouwen van de zender!!!

De zender kan dan op de batterij worden aangesloten en aan de halsband van het huisdier worden bevestigd.

Stap 3: Het basisstation

Het basisstation
Het basisstation
Het basisstation
Het basisstation

ESP8266 WiFi-ontwikkelbord is een perfecte keuze als u uw project met internet wilt verbinden. De RFM98 transceiver is verbonden met de ESP8266 en ontvangt de locatie-updates van de tracker.

ESP8266 RFM98

3.3V ---------- 3.3V

GND ---------- GND

D2 ---------- DIO0

D8 ---------- NSS (CS-chip selecteren in)

D5 ---------- SCK (SPI-klok in)

D7 ---------- MOSI (SPI-gegevens in)

D6 ---------- MISO (SPI-gegevens uit)

De voeding naar het basisstation is gemaakt met behulp van een 5V DC muuradapter. Ik had wat oude muuradapters liggen, dus ik scheurde de connector eraf en verbond deze met de VIN- en GND-pinnen van de ESP8266. Ook de antenne was gemaakt van een koperdraad met een lengte van ~17,3 cm (kwartgolfantenne).

Stap 4: De app

De app
De app
De app
De app
De app
De app
De app
De app

Ik gebruikte Blynk (van hier) als app. Dit is een van de gemakkelijkste opties omdat het zeer goed gedocumenteerd is en widgets gewoon kunnen worden gesleept.

1. Maak een Blynk-account aan en maak een nieuw project met ESP8266 als apparaat.

2. Sleep widgets vanuit het widgetmenu.

3. Nu moet u virtuele pinnen instellen voor elk van deze widgets.

4. Gebruik dezelfde pinnen als hierboven in de broncode van het basisstation.

Vergeet niet om uw projectautorisatiesleutel in de Arduino-code te gebruiken.

Stap 5: De code

Dit project maakt gebruik van Arduino IDE.

De code is vrij eenvoudig. De zender zou elke 10 seconden een signaal sturen en dan wachten op een bevestiging. Als er een "actieve" bevestiging wordt ontvangen, zou hij de GPS inschakelen en wachten op een locatie-update van GPS. Gedurende deze tijd zal het nog steeds de verbinding met het basisstation controleren en als de verbinding verloren gaat tussen de GPS-updates, probeert het een paar keer opnieuw en als er nog steeds geen verbinding is, wordt de GPS uitgeschakeld en zal de tracker terugvallen naar de normale routine (dwz elke 10 seconden een signaal verzenden). Anders worden de GPS-gegevens naar het basisstation verzonden. In plaats daarvan, als een "stop"-bevestiging wordt ontvangen (zowel tussendoor als aan het begin), stopt de zender de GPS en valt dan terug naar de normale routine.

Het basisstation luistert naar elk signaal en als er een signaal wordt ontvangen, controleert het of de "vind"-knop in de app is ingeschakeld. Als het "aan" is, worden de locatiewaarden opgehaald. Als het "uit" is, stuurt het basisstation een "stop"-bevestiging naar de zender. Je kunt ervoor kiezen om alleen naar het signaal te luisteren als de knop "vinden" is ingeschakeld, maar ik heb het toegevoegd als beveiligingsfunctie om te weten of de verbinding tussendoor is verbroken en de gebruiker te waarschuwen (zoiets als geofence).

Stap 6: Behuizingen

Behuizingen
Behuizingen
Behuizingen
Behuizingen
Behuizingen
Behuizingen

Volger:

3D-printen is de beste keuze, maar ik plakte het liever op de kraag. Het is een puinhoop, en ik weet echt niet of katten zo'n puinhoop op hun nek zouden willen nemen.

Basisstation:

Een plastic container was meer dan genoeg voor het basisstation. Als je hem buiten wilt monteren, moet je misschien overwegen om waterdichte containers te maken.

UPDATE:

Ik dacht erover om een behuizing voor de tracker te maken, maar omdat ik geen 3D-printer had, werden kleine containers in behuizingen veranderd:) De elektronica werd in de ene container bewaard en de batterij in een andere.

Ik gebruikte blokken als behuizing voor elektronica. Gelukkig was er een dop die er goed op paste. Voor de batterij werd een Tic-Tac container gebruikt. Om de batterij vast te zetten werd de container ingekort zodat de batterij perfect paste. Paperclips werden gebruikt om de containers op de kraag te bevestigen.

Stap 7: Testen en concluderen

Op wie zouden we het testen?? Nee, het is niet dat ik nu geen katten heb. Nou, ik heb er twee;)

Maar ze zijn te klein om de halsband te dragen en ik besloot het zelf uit te testen. Dus ik liep door mijn huis met de tracker. Het basisstation werd op een hoogte van 1m gehouden en de meeste tijd was er zware begroeiing en gebouwen tussen de tracker en het basisstation. Ik voelde me zo verdrietig dat ik plotseling geen ruimte meer had (hoewel op sommige plaatsen het signaal zwak is). Maar in zo'n terrein is het bereiken van een bereik van ~100m zonder veel gegevensverlies veel merkbaar.

De bereiktest die ik heb gedaan is hier.

De GPS lijkt enigszins normaal te werken onder zware begroeiing, maar af en toe lijkt de locatie af te drijven. Ik kijk er dus ook naar uit om een wifi-module toe te voegen (omdat er zoveel routers in huizen in de buurt zijn) om sneller een grove locatie te krijgen (door signaalsterktes van veel routers te meten en triangulatie).

Ik weet dat het werkelijke bereik vrij veel meer zou moeten zijn, maar vanwege het huidige lockdown-scenario kan ik niet veel het huis uit. In de toekomst zou ik het zeker tot het uiterste testen en de resultaten bijwerken:)

Tot dan, gelukkig spinnen…..

Aanbevolen: