Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Maak een klassieke twee-richtings pager met Arduino – DIY Retro Paging-apparaat

Onderdelen en benodigdheden

  • Hologram Global IoT SIM-kaart
  • Arduino UNO
  • Arduino GSM Shield V2
  • Adafruit LCD Shield Kit met 16x2 Karakterdisplay - Alleen 2 pinnen! - BLAUW EN WIT
  • Hammond Project Doos 4.7 x 2.6 x 1.4 Transparant Blauw

Apps en online diensten

  • Hologram Data Router

Over dit project

Inleiding

Ik wilde de glorie van de late jaren '90 en vroege 2000 narecreëren en mijn eigen twee-richtings pager maken, net zoals Jay-Z toen gebruikte! Maar ik ontdekte dat dit idee nuttiger is dan ik dacht: het kan door kinderen gebruikt worden in plaats van een echte mobiele telefoon, of als een "SOS"-knop voor iemand die alleen buiten werkt of sport (als het wat kleiner was). De afgelopen weken staat het apparaat continu aan in mijn woonkamer, waar mijn vrouw en ik grappige berichtjes voor elkaar achterlaten.

Samenvatting: Dit project verstuurt en ontvangt tekst (SMS) berichten via een Arduino met cellulair modem, ingebouwd in een kleine behuizing met LCD-display en eenvoudige bedieningsknoppen.

Let op: De code bevat de mogelijkheid om het systeem via de seriële interface te bedienen, zodat je het project ook kunt bouwen en gebruiken zonder LCD-shield!

Hardware-keuze

Ik had een Arduino GSM Shield die ik wilde gebruiken, samen met een SIM-kaart van Hologram. De combinatie met een Arduino UNO lag voor de hand. Adafruit maakt een LCD-display shield met ingebouwde knoppen die via de I2C-bus communiceert en slechts twee pinnen op de Arduino gebruikt voor display en vijf knoppen, wat veel ruimte laat voor toekomstige uitbreidingen.

Het LCD heeft een mooie blauwe achtergrondkleur, dus een transparant blauwe behuizing leek mooi. Door de drie printplaten op elkaar te stapelen ontstonden zeer schone verbindingen en was er elektrisch geen probleem omdat de twee shields verschillende pinnen gebruiken.

  • LCD-shield: Analoge pinnen 4 en 5 voor de I2C-bus (plus +5V en ground, maar alleen de ground naast de Vin-pin, niet die naast de 5V-pin)
  • GSM-shield: pinnen 2 en 3 voor software serial, en pin 7 als power reset (plus voeding en ground, hoewel ik er nooit documentatie over vond)

Alle andere pinnen zijn nog vrij voor uitbreiding! Andere apparaten kunnen nog steeds aan de I2C-bus worden toegevoegd.

Tijdens de ontwikkeling draaide het systeem prima op alleen USB-voeding van mijn laptop voor het verzenden en ontvangen van SMS, hoewel ik vermoed dat het meer stroom nodig heeft voor betrouwbare GPRS-verbindingen.

Cellulaire communicatie

Hologram biedt een cellulair datadienst die werkt met elk apparaat dat een SIM-kaart accepteert. Na registratie van mijn SIM-kaart kon ik met één extra klik een telefoonnummer in mijn keuze gebiedscode toewijzen. Een ander voordeel voor gebruik als kindercommunicator is de lage kosten: $0,40 per maand actief houden, en ik kan het op elk moment pauzeren. Ontvangen van SMS is gratis, versturen kost $0,19 per bericht. In de toekomst kan dit nog verder dalen door een dataverbinding naar Hologram's cloud te gebruiken waar berichten automatisch naar een gratis SMS-dienst worden gerouteerd. $0,60 voor één megabyte data levert een heel boel kleine tekstberichten op.

Om wat voor reden ook, zelfs toen de GSM-shield uiteindelijk goed werkte, liep de GSMScanner en GSMModem getIMEI() functies niet correct voor initiële setup en troubleshooting. Best misleidend! SMS en GPRS-data functies werkten wel goed. Als iemand weet waarom de modem nog steeds geen IMEI-nummer kan vertellen, hoor ik het graag.

Code en interface

Adafruit heeft uitstekende instructies voor de LCD-shield en Arduino heeft een goede handleiding voor de GSM-shield met de belangrijkste functies. Mijn code is gebaseerd op die twee, plus mijn eigen gebruikersinterface.

Ik had nog nooit een gebruikersinterface geprogrammeerd die niet bestond uit letters intypen op een commandoregel met toetsenbord, dus ik wilde het simpel houden. Ik besloot een selectie van kant-en-klaar berichten te maken waar doorheen gescrolld kan worden met de pijltjestoetsen – eigenlijk makkelijker dan ik dacht!

Door de drie printplaten op elkaar te stapelen met een werkende SIM-kaart (zelfs uit je eigen telefoon!) en de onderstaande code te flashen, krijg je een SMS-apparaat dat werkt als volgt:

  • Aanzetten, opstarten, en het vertelt je wanneer het netwerk verbonden is
  • Linkerknop: Ga naar het "hoofdscherm"
  • Rechterknop: Bevestig een inkomend bericht, zodat het volgende bericht binnen kan komen. Dimt ook het scherm als er geen bericht is.
  • Omhoog/omlaag knoppen: Scroll door de selectie van vooraf geprogrammeerde berichten om te versturen. Je kunt er zoveel in de code zetten als je wilt; ik begon met vier.
  • Select-knop: Verstuur het geselecteerde bericht

Dat is het! Inkomende berichten worden automatisch getoond, ongeacht welk menu actief is, en zetten de achtergrondverlichting aan als die uit was.

De volgende logische stap zou een menu met bestemmingsnummers voor uitgaande berichten zijn, of automatisch reageren op het laatste ontvangen bericht (met de remoteNumber() functie).

Eindbouw

Voor de openingen in de projectdoos gebruikte ik een boormachine voor gewone gaten en een Dremel multifunctioneel zaagblad (#561) met leidraad (#565) voor de grotere uitzagingen. Een hulpmiddel van extra planken en klemmen voor de Dremel had nette lijnen gegeven, maar ik ben tevreden met mijn vrije handwerk. Het zaagblad wilde meer dwalen dan verwacht!

De enige echte draden in het project zijn voor de voeding om een 9V-batterij en schakelaar toe te voegen – zonder batterij kan het gevoed worden via USB of een stopcontact en ben je klaar!

Een 9V-batterij en klip passen netjes naast de Arduino en onder de GSM-shield (die ongeveer even groot is als een Arduino Mega). Ik soldeerde draden aan enkele header-pinnen om de voedingsaansluiting makkelijk te maken.

Gelukkig had de GSM-shield extra lange en buigbare pootjes op de pinnen. Ik kon ze iets naar binnen buigen zodat ze de sockets op de Arduino misten, waardoor die verbindingen vrij bleven voor mijn voedingsheader. Ik vermoed dat de pinnen daarom zo lang zijn! De LCD-shield erbovenop heeft korte, stevige pinnen zonder female verbindingen aan de voorkant, dus pinnen wegbuigen is de enige manier die ik vond om andere dingen dan de shields in deze opstelling aan te sluiten.

Het afknippen van de USB-poort soldeerpunten en een paar andere aan de onderkant van de Arduino laten het plat liggen in de behuizing op dubbelzijdig schuimtape. De printplaten stapelen zich op tot net boven de bovenkant van de behuizing – perfect!

Conclusie

Ik ga door met knutselen aan dit systeem en laat mijn 4-jarige nichtje er even mee spelen. Ik vind het prima werken als messenger, maar ik was verrast dat ik het nog leuker vind als mini-informatiebord in mijn huis om berichten weer te geven. Ik ben tevreden over de esthetiek, wat daarbij helpt.

Vervolgwerk zou een tweede menu voor ontvanger-selectie kunnen zijn, automatisch dimmen van het display voor stroomzuiniging, lichten/buzzers/pager-motoren voor notificaties, of elke andere gewenste interface-gedrag.

Het systeem zou ook fundamenteel gewijzigd kunnen worden om notificaties van een dienst als IFTTT weer te geven, zoals als een pakket bezorgd is of iemands laatste tweets. Wat bouw jij? Hoe zou je het systeem verbeteren?

Veel plezier!

-Mike

Je kunt meer over mij en mijn projecten lezen op mijn blog, inclusief meer over dit project.

(Dit project was mogelijk gemaakt als onderdeel van Hologram's Hacker-In-Residence programma. Voor meer informatie, contacteer Sheena, Hologram's content coordinator, op sheena@hologram.io)

Code

De complete systeemcode voor Arduino is beschikbaar in de originele projectpagina. De code omvat:

  • GSM-communicatie via Hologram-netwerk
  • LCD-schildbediening met I2C
  • Menu-systeem voor vooraf gedefinieerde berichten
  • SMS verzenden/ontvangen met automatische weergave
  • Seriële monitor interface als alternatief voor LCD
  • Periodieke controle op nieuwe berichten (elke 1,5 seconde)

Belangrijke bibliotheken: GSM.h, Wire.h, Adafruit_RGBLCDShield.h, Adafruit_MCP23017.h.

Schema

De montage is eigenlijk veel simpeler dan het schema doet vermoeden – de meeste verbindingen ontstaan simpelweg door de twee shields op de Arduino te stapelen! Alles daarbuiten is optioneel voor batterijvoeding.

Productieproces

  1. K30 CO2-sensor: Real-time binnenluchtkwaliteitmonitoring met Arduino
  2. Communicatie voor doofblinden vergemakkelijken met 1Sheeld en Arduino
  3. Slimme spaarpot bouwen: Muntenacceptor besturen met Arduino Nano
  4. Een LED bedienen via Bluetooth met Arduino – Eenvoudige DIY Handleiding
  5. Een DFRobot Capacitieve Vingerafdruksensor integreren met Arduino of ESP8266
  6. Interactief Nextion HMI-weerstation met Arduino Mega en sensoren
  7. Arduino-gebaseerde 6-DoF Robotarm Gestoeerd met Wii Nunchuk
  8. Accurate zonnestralingsmeting met Arduino UNO en Ethernet Shield
  9. Compact Arduino Radarsysteem met HC-SR04 Ultrasonische Sensor & 1.8" Display
  10. Maak Muzikale Tonen met Arduino: Stapsgewijze Handleiding
  11. Hoesten detecteren met TinyML op Arduino Nano voor vroege griepeisdetectie