Goedemiddag, vandaag kwam ik op het idee om een apparaat te maken om te kopiëren elektronisch toetsen zoals Touch-geheugen of ibuttom. Ook wel bekend als 'pillen'. Dergelijke sleutels, hoewel al behoorlijk verouderd, werden vervangen door contactloze Rfid, maar worden nog steeds vaak gebruikt voor intercoms of inbraakalarmen. De basis van ons apparaat zal dienen Arduino Uno. Je kunt elk ander Arduino-compatibel bord gebruiken. Om ons apparaat autonoom te kunnen gebruiken, zonder computer, heb je een voeding nodig van 6 tot 12 volt. Om de status van het apparaat aan te geven, gebruiken we het WG12864B grafische scherm. We hebben ook een koffer nodig, in dit geval is de doos van de Sega-cartridge perfect.
Om dit idee te implementeren heb je nodig:
- Arduino UNO (of Arduino-compatibel bord)
- WG12864B grafisch scherm
- Weerstand 100 Ohm 0,25 W.
- Voeding 6-12 V
- Weerstand 2,2 KOhm 0,25 W
- Weerstand 10 KOhm 0,25 W
- Doos uit de cartridge van de SEGA-console
- elektrische tape
- aansluitdraden
- Knop
- Een klein stukje roestvrij staal
- metalen schaar
- briefpapiermes
- soldeerbout
- Soldeer, hars
- Dubbelzijdige tape
Stap 1 Een beetje over de Ibuttom-toetsen zelf.
Om het duidelijk te maken is iButton slechts een chip die in een ronde roestvrijstalen kast is gepropt. Diameter kast 16,3 mm. De roestvrijstalen kast is bestand tegen schokken, vuil en vocht. De behuizingsstandaard wordt de iButton MicroCan genoemd. Verkrijgbaar in twee standaard diktes: 3,1 mm (versie F3) en 5,9 mm (versie F5). De microschakeling ontvangt stroom van de datalijn van het masterapparaat. De diameter van de hoes is voor alle versies hetzelfde. Daarom is dezelfde leesbeker geschikt voor iedereen. Blokschema van onze sleutels:
Sleutels zijn herschrijfbaar en niet. Om een duplicaat te maken, moet je respectievelijk herschrijven. Er zijn 3 versies van tags: RW1990, TM08v2 en TM-08 VZT F. Ze verschillen in de microschakeling binnenin. De meest voorkomende RW1990. Ze kunnen worden gekocht bij AliExpress of een brandalarmwinkel.
Stap 2 Scherm.
We gebruiken een liquid crystal display, een resolutie van 128 bij 64 pixels. De meeste werken op ks0107 / ks0108-chips, dus er mag geen compatibiliteitsprobleem zijn. Al deze schermen zijn onder te verdelen in 4 typen. Verschillende verbinding:
Het is het beste om WG12864B3 V2.0 te nemen, het is gemakkelijk te vinden in zowel Chinese als Russische winkels. Er kunnen verschillende soorten achtergrondverlichting zijn, maar dit heeft geen enkele invloed op de functionaliteit.Er zijn ook twee aansluitmogelijkheden: parallel en serieel. Bij het kiezen van een parallel type hebben we 13 gratis Arduino-pinnen nodig. Kies sequentieel. Er zijn hier slechts 3 conclusies bij betrokken. En vergeet voeding niet:
WG12864B - Arduino UNO
1 (GND) - GND
2 (VCC) - + 5V
4 (RS) - 10
5 (R / W) - 11
6 (E) - 13
15 (PSB) - GND
19 (BLA) - via een weerstand van 100 Ohm - + 5V
20 (BLK) - GND
De helderheid van het scherm wordt geregeld door een potentiometer op het bord met het scherm. Als dat zo is, is de mogelijkheid om de helderheid aan te passen afwezig, maar dit gebeurt zelden:
Een weerstand van 100 ohm wordt gebruikt om de spanning voor schermverlichting te verlagen. We plaatsen het in het gedeelte van de draad dat de achtergrondverlichting voedt:
Stap 3 Behuizing en leesbeker.
Om ervoor te zorgen dat we geen "dzhigurdy" hebben en alles er normaal uitziet, zullen we beginnen met het vervaardigen van de behuizing. Elke plastic doos die op de Arduino Uno past en het scherm is perfect. De beste oplossing is een patroondoos.
Knip de lusdoos door en verwijder de film:
We pakken een administratief mes op en beginnen de sleuven uit te snijden. Knip eerst de grootste uit de bovenkant van de doos, maat 37x69. Het is nodig voor het scherm.
Lijm dubbelzijdig plakband in de doos:
Nu zijn we verbaasd over een leesbare beker. U kunt de afgewerkte versie kopen en gebruiken. Dit is de makkelijkste optie. Ik zal je laten zien hoe je deze beker zelf kunt maken. We snijden twee rechthoeken uit een roestvrij staal: 20x20 mm en 20x8 mm:
We maken een kleine sleuf onderaan het scherm en voegen daar een grotere rechthoek in:
En buig de randen:
En aan de andere kant doen we ook om de negatieve contactplaat te bevestigen:
Als pluspunt maken we ook een gleuf en steken er een positief contact in:
Van binnen zien de contacten er als volgt uit:
Op de eerder geplakte tape bevestigen we het scherm:
Buiten zou het zo moeten zijn:
In de doos, onder het scherm, plaatsen we de Arduino:
Vergeet niet om slots te maken voor de USB- en stroomaansluitingen:
Voer de knop uit om te wisselen tussen lezen en schrijven:
Stap 4 Los het voedingsprobleem op.
Om ons apparaat te laten werken, zullen we het van stroom voorzien. Hiervoor hebben we een voeding nodig. De spanning moet tussen 6 volt en 12 zijn. De stekker aan het uiteinde moet in de Arduino-aansluiting passen:
Je kunt het doen zonder een voeding. U kunt het apparaat van stroom voorzien vanaf een USB-computer. Als je wilt, kun je een compartiment voor 4 AAA-batterijen nemen en deze erin stoppen. Vervolgens moet de pin-uitgang worden aangesloten op de Vin van het Arduino-bord.
Stap 5 Alles samenvoegen.
De leeskom is aangesloten volgens het schema:
We verbinden het positieve contact van de kom met pin 7 en trekken deze door de 2.2K-weerstand naar VCC. We verbinden de knop met pin 6 en trekken een 10K-weerstand naar GND.
Stap 6 Softwaregedeelte.
Download en installeer Arduino IDE met
Om met Touch-geheugen te werken, wordt de One Wire-bibliotheek gebruikt. Het moet ook worden gedownload en geïnstalleerd in de Arduino IDE:
Start het scherm met de U8glib-bibliotheek:
Zonder bibliotheken mislukt het samenstellen van een schets en het uploaden naar Arduino. We handelen op de volgende manieren: pak de gedownloade archieven uit en verplaats deze bestanden naar een map met de naam "bibliotheken". Het is te vinden door de programmeeromgeving te installeren.
Download het archief met de schets:
Pak het archief uit, open de schets in Arduino Ide en vul het in Arduino.
Stap 7 Het proces van het kopiëren van sleutels.
Wanneer u ons apparaat inschakelt, wordt op het scherm "Lezen" en de universele sleutel weergegeven. Deze sleutel staat in de schets. Ik heb hem op internet gevonden. Persoonlijk heb ik niet gecontroleerd hoe universeel het is. Als dit gebeurt, is ons apparaat klaar voor gebruik:
We passen de te kopiëren sleutel toe. Deze sleutel moet op het scherm worden weergegeven. Ik nam bijvoorbeeld een van degenen die ik heb:
Druk nu op de knop, het opschrift op het scherm zou moeten veranderen in "Schrijven". De sleutel wordt ook weergegeven, die wordt opgenomen:
We plaatsen een tablet waarop we een blanco schrijven en wachten tot de inscriptie op het scherm weer verandert in "Lezen". Als dit gebeurde, was de opname succesvol. Bevestig de blanco opnieuw om het te controleren, het apparaat moet het lezen en de sleutel weergeven.
Als u een universele sleutel wilt schrijven, moet u helemaal aan het begin op de knop drukken, wanneer de inscriptie wordt gewijzigd in "Schrijven", voegt u een blanco toe.
Het apparaat verzendt ook informatie over de sleutels en de lees- en kopieerprocessen via de seriële poort.U kunt de Arduino Ide-terminal of een ander terminalprogramma openen en het kopieerproces daarin volgen.
De in de schets opgenomen universele sleutel kan worden gewijzigd. Open hiervoor de schets en bewerk de regel:
byte ReadID [8] = {0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2F};
Maar zo eenvoudig is het niet. De laatste byte is de belangrijkste checksum of Cyclic Redundancy Check (CRC). In dit geval is het 2F. Zonder dit bedrag accepteren lezers de sleutel niet. CRC wordt berekend door een speciaal algoritme. U kunt dit algoritme zelf vinden en berekenen, maar gebruik alstublieft ons apparaat. De eerste byte is familiecode, deze moet altijd 01 zijn. Vervolgens schrijft hij de bytes in de string die we willen schrijven als een universele sleutel. Vul de schets in. We schrijven deze sleutel op de schijf en proberen hem terug te lezen, terwijl we het terminalvenster openen. In de terminal zien we onze sleutel aan het einde van de CRC. Dit is de gewenste checksum. Bewerk nu de schets opnieuw. Schrijf in plaats van de laatste byte in dezelfde regel de byte die tijdens het lezen na de CRC is ontvangen. Vul opnieuw de schets in en schrijf een nieuwe sleutel op de schijf. Open het terminalvenster en probeer onze sleutel te lezen. De laatste byte van de sleutel moet overeenkomen met de byte die na de CRC is geschreven.