Image of eBits Academy network illustration

Ankomstbesked via WiFi

  • February 17, 2022
  • |
  • Robert Bogdan

Projektet bygger et lille WiFi-tag, som kan give telefonen besked, når det forbinder til et konfigureret hjemme- eller skolenetværk. Det demonstrerer netværksbaseret tilstedeværelse, ikke bevis for, at et barn er kommet sikkert frem. Netværksudfald, tjenestefejl eller afladt batteri kan forsinke eller forhindre beskeder; brug det ikke som erstatning for sikkerhedsopsyn.

Du skal bruge følgende komponenter til projektet. De findes alle hos eBits.

 Antal  Komponent Link
1 1800mAh LiPo-batteri med beskyttelseskredsløb Link — aktuelt udvalg; kontrollér kompatibilitet
1 ESP32 LOLIN32 V1 Link
Eller
1 Kit til ankomstbesked  Link — aktuelt udvalg; kontrollér kompatibilitet

 

GitHub: https://github.com/r0bigun/Key-Tag

 Indholdsfortegnelse

  • Signal-appen
  • Botopsætning
  • Opsætning på ESP32
  • Forstå besked-API’et til Signal
  • Send besked til Signal med ESP32
  • Batteri
  • ESP32-modul (spændingsdeler)
  • Samling
  • Fejlfinding
  • Batterilevetid
  • Demonstrationsvideo
  • Signal-appen

    Signal tilbyder beskeder, grupper, klistermærker, fotos, filer og taleopkald med ende-til-ende-kryptering mellem deltagerne. Projektet bruger tredjeparten CallMeBot, ikke et officielt Signal-bot-API. Udbyderen modtager beskedteksten og telefonnummeret i HTTPS-forespørgslen. Kontrollér aktuel dokumentation, tilgængelighed og privatlivsvilkår før opsætning; historiske oprettelsestrin gælder muligvis ikke længere. ESP32 overvåger WiFi-forbindelsen og sender på den baggrund en ankomstbesked afhængigt af, hvilket netværk det er tilsluttet.

    Botopsætning

    Download først Signal-appen fra Google Play eller App Store. Spring trinnet over, hvis du allerede bruger Signal.

    Botten i dette projekt kaldes CallMeBot. Trinnene til at tilføje botten er:

    1. Brug kun en kontakt, som udbyderen aktuelt angiver på CallMeBot. Brug ikke historiske numre fra skærmbilleder. Du kan navngive den bekræftede kontakt Ebits Bot. 
    2. Følg udbyderens aktuelle oprettelsesprocedure. Den gamle kommando ”I allow callmebot to send me messages” vises kun som historisk kontekst og gælder muligvis ikke længere.            

    Hvis udbyderen stadig understøtter integrationen, skal du hente din egen API-nøgle gennem den aktuelle registrering og holde den privat. Brug pladsholdere i delt kode. 

    Efter understøttet oprettelse skal integrationen testes med egne oplysninger; tjenestens tilgængelighed er ikke garanteret.

    Opsætning på ESP32

    For at programmere ESP32 i Arduino IDE skal vi først installere ESP32-kortunderstøttelsen. Det forudsætter, at du har Arduino IDE installeret på computeren. Ellers findes denne guide: Opsætning af ESP32 til Arduino og Platform IOFølg guiden til og med trin 4, og download derefter denne driver så computeren kan genkende ESP-modulet.

    Sådan installeres USB-driveren:

    1. Klik på downloadikonet i højre hjørne
    2. Pak filen ud
    3. Kør den udpakkede installer, der passer til dit 32- eller 64-bit-operativsystem
    4. Når CH340 er tilsluttet, vises en COM-port i Arduino IDE under Tools > Serial Port. Portnummeret kan variere med systemet.

    Installér ESP32-kortpakken, ikke et sketchbibliotek, før du vælger det konkrete kort. Vælg Tools -> Board -> Boards Manager… -> søg efter ”esp32” -> tryk Install.

    Tilslut ESP32 til computeren før valg af kort. Vælg præcis det kort, der passer til hardwaren. Billedet viser WEMOS LOLIN32 Lite; LOLIN32 V1 og Lite er forskellige kort, så kontrollér benforbindelser, USB-UART-chip og lader før valg.

    Kopiér koden fra GitHub og indsæt den i Arduino IDE.

    Forstå besked-API’et til Signal

    Nedenfor ses API-formatet til at sende en tekstbesked til Signal.

    https://api.callmebot.com/signal/send.php?phone=[phone_number]&apikey=[apiKey ]&text=[message]

    [phone_number]: Dit telefonnummer med landekode, eksempelvis +4512345678

    [apiKey]: Din API-nøgle fra trin to i botopsætningen.

    [message]: Beskedteksten. URL-kod forespørgselsparametre; mellemrum kan skrives som +, mens et bogstaveligt + i landekoden skal kodes som %2B.

    Eksempel:

    https://api.callmebot.com/signal/send.php?phone=YOUR_PHONE&apikey=YOUR_API_KEY&text=Hello+from+eBits

    Hvis den aktuelle tjeneste understøtter det, sender en forespørgsel til URL’en med dine egne URL-kodede værdier ”Hello from eBits” til Signal. Del aldrig en URL med din rigtige API-nøgle.

    Send besked til Signal

    Koden sender en besked til Signal, når tagget forbinder til et konfigureret hjemme- eller skolenetværk. Du modtager derfor en besked fra ”Ebits bot” om hændelsen og ESP32-batteriets niveau.

    Før vi bygger og kompilerer, skal oplysninger indtastes i koden så ESP32 kan forbinde til internettet og Signal-botten. Indtast dine egne oplysninger, men behold "".

    Tilføj derefter det mobilnummer, du bruger i Signal, inklusive landekode, i phone og din API-nøgle i apikey (samme nøgle som fra botten).

    Gør det samme i ”void School()”.

    Upload til sidst koden.

     

    Hvis alle oplysninger er ændret korrekt, bør tagget først forbinde til hjemmets WiFi og gå i deep sleep. Det vågner derefter hvert 5. minut for at kontrollere WiFi-forbindelsen.

    Når forbindelsen mistes, eksempelvis på vej til skole, forsøger tagget at forbinde til tilgængeligt WiFi, her skolen, indtil det lykkes, og sender derefter en besked om hændelsen. Beskeden i Signal afhænger af det tilsluttede netværk.

    Batteri

    Til strømforsyning af ESP32 bruges denne type batteri — aktuelt udvalg; kontrollér kompatibilitet, som har fordelen af lille størrelse og stor kapacitet. Brug det præcist passende batteristik eller en egnet adapter med kontrolleret polaritet. Skær ikke i et inkompatibelt stik, og tving det ikke på plads. Kontrollér, at kortets ladespænding og -strøm passer til cellen. 

           

    Bemærk: Lade-LED’ens funktion afhænger af kortversionen; læs dokumentationen i stedet for kun at stole på farven.

    ESP32-modul (spændingsdeler)

    Eksemplet bruger WEMOS ESP32 Lite. Mål hele kortets strøm i dvale og drift; regulator, LED’er og firmware bestemmer den faktiske batterilevetid.

    En ekstra funktion er, at batteriniveauet kan sendes i beskeden til telefonen ved at bruge teorien om spændingsdeling og lodde 2 modstande på kortet. Er det ikke smart?

    Nedenfor ses det lille kredsløb, som skal loddes og tilsluttes ESP-kortet som vist:

    Samling

    Efter opsætningen kan batteriet tilsluttes med den polaritet, der er markeret på kortet: sort er minus, og rød er plus. Billederne nedenfor viser en lille 3D-printet kasse, der ikke fylder meget i barnets taske.

    Kassen kan downloades og printes, og dimensionerne kan ændres via parametrene i Fusion 360.

    Batterilevetid

    Enhedens batteri kan holde cirka 1–2 dage afhængigt af afstanden mellem hjem og skole. Undervejs bruger ESP mere strøm end normalt, fordi det forsøger at forbinde til tilgængeligt WiFi.

    Fejlfinding

    Hvis registreringen fejler eller melder, at botten er fuld, skal du læse udbyderens aktuelle dokumentation. Stol ikke automatisk på erstatningsnumre i en uopfordret besked.

    Hvis du mister en API-nøgle, skal du følge udbyderens aktuelle procedure for gendannelse eller udskiftning. Stol ikke på historiske kommandoer til at gendanne den.

    Demonstrationsvideo

    Efterlad en kommentar

    Bemærk venligst, at kommentarer skal godkendes, før de offentliggøres.