Reverse-engineering: USB gecontroleerd huisautomatisering houwer (15 / 19 stap)

Stap 15: Software


Voordat de chip wordt verwijderd uit het breadboard, het moet sommige software.

De software is geschreven in C en op basis van een voorbeeld-project van objectieve ontwikkelingen V-USB lib. Dit is een groot stuk van software, en het is gratis en open source voor persoonlijk/niet-commercieel gebruik.

http://www.obdev.at/Products/vusb/index.html

Ik ga niet in detail gaan over hoe de software werkt. De reverse-engineering is de nadruk van dit Instructable. Hier is de korte versie:

U moet twee programma's om dit werk te maken. Een programma op uw computer en firmware voor de microcontroller.

Microcontroller:

De werkelijke RF-uitzendingen wordt gedaan door een interrupt routine. Ik gebruik een timer onderbreken, want dit de gemakkelijkste manier is om precieze timing. De timer-interrupt leest uit een globale buffer waar de vertragingstijden zijn opgeslagen. Ik opslaan niet de aan/uit-status van de RF-zender sinds in- en uitschakelen altijd plaatsvervangers. Ik begin met een puls af, dan in- en uitschakelen pulsen worden afgewisseld.

De buffer bevat 42 waarden. Er zijn 21 bits toegezonden, en elk heeft een lage periode en een hoge periode. Deze configuratie is niet erg efficiënt RAM, maar de ATmega8 heeft overvloed. Ik zal de handel van RAM voor de leesbaarheid van de code in plaats van ongebruikte ram!

De buffer wordt gevuld door de functie send_rf_frame (netwerk, lading). Het vult de juiste tijdsinstellingen in de rf buffer matrix, begint met de startbit, gevolgd door de 12 bits netwerk-id en de 8 bits van lading + controlesom. Wanneer de buffer gevuld, is wordt de variabele buffer positie teruggesteld aan 0, zodat de interrupt routine te werken vanaf bit 0 in de buffer begint zal.

Wanneer gegevens worden verzonden naar de microcontroller via USB, wordt de functie usbFunctionSetup() wordt genoemd. Dit is een functie die u maakt en waar u uw binnenkomende USB code zetten.

Afhankelijk van het type van de aanvraag verzonden vanaf de PC, kan je verschillende dingen binnen deze functie. Ik heb twee aanvraagtypen geconfigureerd, set_network_id en send_command.

Het set_network_id-verzoek alleen neemt de 12 bit netwerk-id verzonden vanaf de computer en slaat deze op in een globale integer-waarde.

Het send_command-verzoek roept send_rf_frame() en geeft de ontvangen opdracht byte aan het. Na dat neemt de interrupt routine.

Binnen de main() lus:
usbPoll(); moet elke paar milliseconden worden genoemd (10 of 50, niet zeker) voor de USB te laten functioneren.
Nadat dat wordt gedaan, is de analoge comparator ingeschakeld. Als de lading pomp spanning te laag is, wordt de lading pomp wordt gestart. Als er op de gewenste spanning, is de lading pomp sluit af.

Tot slot is een status-LED ingesteld op ON als de vlag rf_busy actief is.

Computer:

Aan de computer-kant bewerkt ik ook het voorbeeld geboden door doelstelling ontwikkeling. Voegde ik wat code als u wilt parseren argumenten vanaf de opdrachtregel. Ik schreef ook een functie om de nettolading byte. Duurt het argumenten zoals lamp, aan/uit, uitzending.

Libusb de computersoftware gebruikt om te communiceren met de microcontroller.

Ik heb ook een klein php script om te bellen naar de commandline computerprogramma wanneer knoppen op een webpagina wordt gedrukt. Open de webpagina op uw Android/iPhone en de verlichting! : D

Gerelateerde Artikelen

USB hack door Reverse Engineering

USB hack door Reverse Engineering

USB is een zeer complex protocol, veel ingewikkelder dan de seriële of parallelle, SPI en zelfs I2C. USB gebruikt slechts twee draden, maar ze worden niet gebruikt als 'ontvangen' en '' als serie verzenden. Integendeel, gegevens bidirectionele en dif
Reverse-engineering toepassen RF afstandsbediening Controller voor IoT!

Reverse-engineering toepassen RF afstandsbediening Controller voor IoT!

In dit instructable, leert u hoe om te keren ingenieur radiofrequentie (RF) afstandsbedieningen en implementeren in een zeer goedkope WiFi toegelaten computer, het knooppunt MCU. Met deze techniek kunt u IoT inschakelen oudere toestellen en doelappar
Reverse-Engineering = Uzzors2k = uitgesproken Android App. Amarino spul ook.

Reverse-Engineering = Uzzors2k = uitgesproken Android App. Amarino spul ook.

Dit instructable meestal mensen die proberen te rijden/james bond (morgen nooit sterft natuurlijk) rc auto's zal helpen.  Als je gewoon proberen te zetten lichten, of controle van uw garage met bluetooth van een android telefoon, er zijn vele andere,
De spion oor Hack en leren om Reverse-engineering toepassen op een Circuit

De spion oor Hack en leren om Reverse-engineering toepassen op een Circuit

dit instructable introduceert het eerbiedwaardige spion oor in details en mijn weg naar het omgekeerde ingenieur een circuit.Waarom wordt dit apparaat verdient zijn eigen instructable?:-U kunt kopen een spion oor voor een dollar!-Het kan geluiden ver
Reverse-Engineering

Reverse-Engineering

veel van de leden hier op Instructables vragen over gegevensbladen of pin-outs van een apparaat of de weergave in de antwoorden, helaas u cant altijd krijgen een gegevensblad en schema's, in deze gevallen heb je slechts één keuze hierop reverse-engin
Reverse-Engineering Live

Reverse-Engineering Live

Ik begon in elektronica vóór de komst van het internet en meest solide staat onderdelen, dus krijgen gegevensbladen en schema's niet makkelijk voor mij was. Vandaag met fabrikanten maken van aangepaste ICs en LCD-schermen voor alles van telefoons tot
Reverse Engineering een kleine versterker

Reverse Engineering een kleine versterker

Mijn andere Instructables op reverse-engineering is op onderdelen die je niet gegevensbladen en pinouts voor. Ik reverse-engineering die een paar circuit boards een week, kleintjes als deze neem me over een dag om te keren ingenieur en strip voor hun
Reverse-Engineering: RGB LED-lamp met IR afstandsbediening

Reverse-Engineering: RGB LED-lamp met IR afstandsbediening

We 20 van deze RGB LED-lampen gekocht voor een feestje op het werk, maar ik was een beetje teleurgesteld met de kleur vervagen functies die zij verstrekt. Dus besloten heb ik om een apart, omgekeerde ingenieur het IR-protocol, en zien of het had meer
Een werkende sleutel van schroot maken door reverse-engineering van een sluis

Een werkende sleutel van schroot maken door reverse-engineering van een sluis

heb je verloren alle sleutels voor uw lock en moeten maken van een nieuwe sleutel van kras?  Heeft de slotenmaker gebrek een lege sleutel die van uw slot Spiebaan passen zal? Pak een metalen bestand, sommige blad schroot, en lees verder voor een ruwe
Reverse Engineering een schrikdraad lader

Reverse Engineering een schrikdraad lader

Reverse-engineering iets kunnen een grote vorm van zowel entertainment en onderwijs.  Ik heb vaak inkoopartikelen net voor de bevrediging van de demontage van hen om te bepalen hoe zij functioneren en hoe ze zijn ontworpen.  Langs de weg, kunt u verb
PCB Reverse Engineering met behulp van GIMP

PCB Reverse Engineering met behulp van GIMP

er zijn slechts enkele artikelen of gidsen die laat zien hoe u kunt reverse engineering een PCB met behulp van een jpg of png-afbeelding die u hebt of u neemt voor een PCB. Ik probeerde vermeld op deze site, maar ik heb niet succes.Het doel van rever
Reverse-engineering toepassen hulpmiddel van de Schoonmaakbeurt voor optimale computerprestaties

Reverse-engineering toepassen hulpmiddel van de Schoonmaakbeurt voor optimale computerprestaties

Als u om het even wat als me bent, zou u willen hebben en het nemen van controle over alles op uw computer. U ust kunnen bepalen hoeveel opslag wordt gebruikt voor programma's blah blah blah.Hoewel toepassingen mogelijk nuttig om dingen gedaan te kri
Hoe reverse-engineering van pcb

Hoe reverse-engineering van pcb

PCB reverse-engineering, ook bekend als PCB klonen of PCB kopiëren, reverse engineering technologie op de PCB die werd ontworpen en vervaardigd door anderen wordt gebruikt, is het gebruik van PCB gerelateerde software om te kopiëren van andermans pri
Goedkope Arduino gecontroleerd licht Sockets - Reverse Engineering RF

Goedkope Arduino gecontroleerd licht Sockets - Reverse Engineering RF

Slimme lightbulbs kosten uw eerstgeborene kind. Dat is een schande, want slimme verlichting enorme potentieel voor huis automatisering, energiebesparing, en allerlei leuke projecten.Al was het maar was er een manier om controle van uw verlichting zon