Raspberry Pi 2 DIY LED LAN-Gerät Zähler

10 Schritt:Schritt 1: Welche Hardware braucht der Mensch? Schritt 2: Schaltpläne / Anschlüsse Schritt 3: ein Stück perfboard Schneiden Sie und starten Löten Schritt 4: Installieren 328 Bootloader Schritt 5: Laden und installieren Sie Firmware für Arduino IDE, um zu kompilieren Schritt 6: Nehmen Sie Änderungen am Code und Serial7SegmentDisplay blinken sie Schritt 7: Schließen Sie Anzeige auf RPi und testen. Schritt 8: Installieren Sie nmap, Skript editieren und ausführen mit cron Schritt 9: Starten Sie LAN-Geräte zählen Schritt 10: Optional: Solder in den SCL / SDA Leitungen

Raspberry Pi 2 DIY LED LAN-Gerät Zähler

Raspberry Pi 2 DIY LED LAN-Gerät Zähler

Raspberry Pi 2 DIY LED LAN-Gerät Zähler

Wissen Sie, wie viele Geräte in Ihrem lokalen Netzwerk? Das ist, was wir fragen, wo in unserem Hackerspace HackBergen.

Ja, es gibt verfügbaren Programme und Apps auf Ihr Netzwerk zu scannen, aber wir können auch mit dem Raspberry Pi (RPI) scannen und zeigen das Ergebnis auf eine Reihe von 7-Segmentanzeigen.
Diese sehen cool, retro, sind billig und können aus der Ferne gesehen werden für Sie eine allgemeine Vorstellung davon, wie viele Geräte sind derzeit in Ihrem lokalen Netzwerk in diesen IoT mal zu haben.
Dieser Build verwendet 3 Module der 7-Segment-LED-Displays gemeinsame Anode, die von einem Atmega328 gesteuert werden. Wir verwenden 3, weil normale Heim LANs sind C Netze mit maximal 256 Geräten und I 3 dieser schönen 7-Segmentanzeigen rumliegen hatte. :)
Die (AVR ATmega) 328 ist mit dem Arduino Bootloader auf einem Arduino Uno 28pin AVR geladen und dann mit der Arduino IDE 1.0.1 durch die Raspberry Pi an Bord serielle Schnittstelle programmiert. Die Software ist die Firmware, die Sparkfun verwendet auf ihrer seriellen Rucksack , aber wir müssen uns ein paar Zeilen zu ändern, da sie über einen 32 Pin SMD 328 anstatt der normalen 28pin DIP-Version von der UNO zu verwenden.
Durch die Verwendung eines 328 für diese haben wir nicht mehr als der seriellen Schnittstelle 2 Pins benötigen, um die Anzeige zu steuern, und alle Multiplexen und Pufferung wird von der 328 keine Notwendigkeit für ein Programm, um das Multiplexen der 7-Segment-Displays zu tun getan und problematisch mit unregelmäßigen Zeit. Wir können auch die in I2C-Bus gebaut, es zu kontrollieren, wenn wir wollen.
Über die serielle Schnittstelle macht es sehr einfach, um 7-seg Zeichen auf dem Display angezeigt werden und blieb dort, bis wir es wieder zu aktualisieren. Dies ist ideal für Rohrleitungen Informationen von Skripts und wir ein Programm ständig als Daemon läuft nicht brauchen.
Natürlich könnten Sie kaufen ein einziges 4-stellige Anzeige von SparkFun fertige und verbinden Sie es mit Ihrem Linux-Box oder Ihre RPi, verlieren alle DIY Spaß. Das ist völlig bis zu Ihnen. :)

Schritt 1: Welche Hardware braucht der Mensch?

  1. Raspberry Pi 2 DIY LED LAN-Gerät Zähler

    Raspberry Pi 2 DIY LED LAN-Gerät Zähler

    Lötkolben mit de-Löten Gadgets Multimeter mit Durchgangsprüfer Draht Perfboard Lupe oder Lupe, um das Löten Sharp überprüfen oder X-Skalpell Arduino Uno 3 Stück gemeinsamer Anode 7-Segmentanzeige Atmega AVR 328 DIP 28pin IC-Sockel Diese sind optional, aber Marken es einfacher, Drähte hinter den ICs Widerstände zu schleichen. Ich habe eine 8 DIP 180ohm Netzwerk für die Segmente wie ich finde diese praktisch für Dinge wie diese. 220 Ohm für den Antrieb der Basis der Transistoren NPN-Transistoren sind. Wir nutzten die 2N2222. Raspberry Pi B, B + oder 2. Flachbandkabel - 40 Stifte oder 26. Wir konnten 10pin verwenden aber, dass die RPI-Header ruinieren. Kopfverbinder Steckbretter. Optional, da kann man nur reflash den Bootloader auf der UNO, aber wir konnten benutzen Sie den UNO zur Programmierung der 328 auf ein Steckbrett. Es wird nur einmal durchgeführt.

Schritt 2: Schaltpläne / Anschlüsse

  1. Raspberry Pi 2 DIY LED LAN-Gerät Zähler

    Was ist mit dem 328 auf unser Build verbunden:
      10K-Widerstand + 3.3V / Switch GND RPi TXD Pin 8 RPi RXD Pin 10 LED dp -> Pin 8 DIP-Widerstand LED-seg 3 Transistorbasiswiderstand NC + 3.3V GND NC NC LED g -> Pin 7 DIP-Widerstand LED-c -> pin 3 DIP-Widerstand LED-f -> Pin 6 DIP-Widerstand LED ein -> Pin 1 DIP-Widerstand LED-e -> Pin 5 DIP Widerstand NC NC NC NC + 3,3V + 3.3V GND LED-b -> Pin 2 DIP-Widerstand LED-d -> Pin 4 DIP-Widerstand LED seg 1 Transistorbasiswiderstand LED seg 2 Transistorbasiswiderstand RPi SCL Pin 5 (optional) RPi SDA Pin 3 (optional)

    : Original Schematics dies basiert auf Original-32 pin AVR Pläne

Schritt 3: ein Stück perfboard Schneiden Sie und starten Löten

  1. Raspberry Pi 2 DIY LED LAN-Gerät Zähler

    Raspberry Pi 2 DIY LED LAN-Gerät Zähler

    Raspberry Pi 2 DIY LED LAN-Gerät Zähler

    Raspberry Pi 2 DIY LED LAN-Gerät Zähler

    Raspberry Pi 2 DIY LED LAN-Gerät Zähler

    Entscheiden Sie sich für eine Größe, die Sie, indem Sie Ihre Komponenten auf dem perfboard möchten und schneiden Sie es mit einem Messer oder einer Säge.
    Ich habe ein Kunststoffschneider Olfa Ich liebe wirklich für Dinge wie diese, sondern eine normale scharfen Messer funktioniert gut.

Schritt 4: Installieren 328 Bootloader


  1. Es gibt eine Menge großartiger Führer, wie Sie Ihre Atmega 328 für einfachen Gebrauch ohne externen Quarz 8Mhz Verwendung zu programmieren:
    http://www.arduino.cc/en/Tutorial/ArduinoToBreadboard
    Installieren Arduino IDE auf dem RPi so können wir Bootloader mit der UNO zu brennen:
    sudo apt-get install arduino (Dies installiert Arduino 1.0.1)
    Installieren 8Mhz Steckbrett arduino ref: http: //www.arduino.cc/en/Tutorial/ArduinoToBreadb ...
    cd wget http: //www.arduino.cc/en/Tutorial/ArduinoToBreadb ... mkdir -p Skizzenbuch / Skizzenbuch Hardware cd / Hardware unzip /home/pi/Breadboard1-0-x.zip arduino-Check für und wählen Tools- > Brett-> ATmega328 auf ein Steckbrett (8 MHz interne Uhr) Stellen Link zu für Arduino, um nach dem Neustart entdecken Serialport
    sudo nano /etc/init.d/link_serial #! / bin / bash ln -s / dev / ttyAMA0 / dev / ttyS1 sudo chmod 755 /etc/init.d/link_serial sudo update-rc.d link_serial Standard sudo Service link_serial Start Check serielle Schnittstelle Link, um zu sehen, wenn es vorhanden ist
    ls -l / dev / ttyS1 laufen Arduino IDE wählen Sie Extras-> Brett-> ATmega328 auf ein Steckbrett (8 MHz interne Uhr) Wählen Sie Extras-> serielle Schnittstelle -> / dev / ttyS1 Wählen Sie Extras-> Burn Bootloader zu erinnern, um das Zurücksetzen zu drücken Taste auf Ihrem neuen Vorstand bei der Zusammenstellung, kurz bevor laden Sie bekommen "Fertig Upload", wenn Sie auf OK oder "Problem-Upload an Bord", wenn Sie zu lange warten. Probieren Sie wieder, bis Sie es erhalten.

Schritt 5: Laden und installieren Sie Firmware für Arduino IDE, um zu kompilieren


  1. Wir Download der Firmware auf Rpi mit git, aber verwenden Sie Ihren persönlichen Favoriten:
    Sparkfun Firmware
    Diese Software beruht auf der 7-Segment-Software, dass wir auch müssen herunterladen:
    https://github.com/sparkfun/sevseg
    Ich habe nicht das Skizzenbuch / Hardware-Verzeichnis mit sevseg arbeiten, so dass ich entpackt sie in
    / Usr / share / arduino / Bibliotheken als root.

Schritt 6: Nehmen Sie Änderungen am Code und Serial7SegmentDisplay blinken sie


  1. Als unser Build wird mit dem 28-Pin-Version des Atmega AVR 328, müssen wir ein paar Zeilen in der Quelle zu ändern:
    Öffnen Sie Arduino IDE und laden Sie die
    Serial7SegmentDisplay / firmware / Serien \ 7-Segment \ Display / Serial_7_Segment_Display_Firmware / System_Functions.ino
    Bearbeiten Sie dann 2 Dateien ..
    Serial_7_Segment_Display_Firmware.cpp
      #define DISPLAY_TYPE S7S

    System_Functions.cpp unter DISPLAY_TYPE == S7S
      int Sege = 9; int segDP = 2; int digitColon = 22; int digitApostrophe = 23;

    Das ist es. Wir haben im Grunde tat dies nur, um die Stifte statt tauschen wechselnden pins_arduino.h
    Jetzt laden Sie das Programm auf den 328. Sie müssen die Taste etwa wie die Zusammenstellung Enden und das Hochladen beginnt zu schieben.
    Probieren Sie wieder ein paar Mal, bis Sie es richtig machen .. :)
    : Sie können die Dateien, die wir geändert für den Einsatz auf der RPi zu diesem Projekt finden Sie hier HackBergen RPi7-seg-Dateien.

Schritt 7: Schließen Sie Anzeige auf RPi und testen.

    1. Power down RPi Connect Bandkabel zwischen RPi und Anzeigetafel Schalten Sie den RPi ohne SD-Karte, nur um zu sehen, dass die Anzeigetafel funktioniert Die nächsten Schritte getan werden kann, wenn Sie den AVR 328 mit dem Serial7SegmentDisplay Firmware geladen haben:
      Die Firmware zeigt 1 2 3 auf den Modulen, bevor irgend etwas an der Serialport gesendet.

      Wenn dies auftaucht, wissen Sie, alles in Ordnung ist und dass Sie alles richtig angeschlossen haben.
      Wenn die Anzeigetafel funktioniert, booten Sie mit SD-Karte und melden Sie sich als normalerweise. Es könnte seltsame Zeichen auf sie als das RPI Stiefel angezeigt werden, ist dies normal. Manuellen Test, um auf dem Display angezeigt werden 123
      echo "V123"> / dev / ttyS1 v = klare Anzeige und Reset-Cursor, der Befehle funktionieren: Serial7SegmentDisplay spezielle Befehle printf ist schön für die Formatierung printf "v% 3d" 123> / dev / ttyS1

Schritt 8: Installieren Sie nmap, Skript editieren und ausführen mit cron

  1. sudo apt-get install nmap herunterladen nmapdisplay.sh von hackbergen github in / home / pi (oder wo Sie es haben wollen)
    Installieren Sie als root ein:
    sudo crontab -e PATH = / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin # mh dom mon dow Befehl * / 10 * * * * / home /pi/nmapdisplay.sh> / dev / null 2> & 1

Schritt 9: Starten Sie LAN-Geräte zählen

  1. Raspberry Pi 2 DIY LED LAN-Gerät Zähler

    Wenn alles in Ordnung ist, sollten Sie jetzt die Anzahl der gefundenen Geräte auf Ihre Phantasie Display!
    Und das RPI kaum anders als das Scannen Sie Ihren Netzwerk alle 10 Minuten Ressourcen verwendet, so könnte es leicht laufen ein Media Center zusätzlich.
    Diese Anzeige könnte für eine Menge Dinge mit mehr Ziffern je nachdem, was Sie benötigen, verwendet werden.
    Wenn Sie mehr als 4 Stellen benötigen, können die unbenutzten Stifte verwenden und ändern Sie die Firmware-und 7-Segment-Bibliothek, damit umzugehen ..

Schritt 10: Optional: Solder in den SCL / SDA Leitungen


  1. Mein ursprünglicher Plan war es, die Anzeige mit dem I2C-Bus zu steuern, so dass ich verbunden die SCL / SDA Leitungen auch.
    Es besteht keine Notwendigkeit dafür mit nur einem Display, wobei die Möglichkeit gibt es, wenn man in der I2C-Kernel mit Raspi-config aktivieren. Das / dev / i2c Gerät wurde mit Raspi-config nicht richtig installiert, also musste ich einige Dinge manuell zu ändern:
    sudo nano / etc / modules und fügen
    i2c-bcm2708
    i2c-dev
    sudo nano /boot/config.txt und fügen
    dtparam = i2c1 = on
    sudo apt-get install i2c-tools
    Danach und Neustart (wenn das Display-Modul angeschlossen ist) Sie laufen konnte
    i2cdetect -y 1
    Und auf dem Display erscheint als 71 wie folgt aus:
    pi @ raspberrypi ~ $ i2cdetect -y 1
    0 1 2 3 4 5 6 7 8 9 abcdef
    00 - - - - - - - - - - - - -
    10 - - - - - - - - - - - - - - - -
    20 - - - - - - - - - - - - - - - -
    30: - - - - - - - - - - - - - - - -
    40: - - - - - - - - - - - - - - - -
    50: - - - - - - - - - - - - - - - -
    60: - - - - - - - - - - - - - - - -
    70 - 71 - - - - - -