C-Berry Touch mit Temperatur Sensor und RTC sowei Taste für reboot/halt

  • Im Projekt_m7 wurde das C-Berry Touch als Steuereinheit für eine Uhr mit Radio, Player und Wecker Modul beschrieben.
    http://www.forum-raspberrypi.d…rry-touch-mit-c-ansteuern


    Im Projekt_m8 kommen diese Erweiterungen hinzu.
    Eine Temperatur Anzeige im Display realisiert mit 2*DS18B20
    Eine RTC mit DS1307 sowie eine Taste um ein reboot bzw. halt des RasPi einzuleiten.
    Zwei LEDs zeigen den Betriebszustand des RasPi an.


    Diese Erweiterungen werden im folgenden kurz beschrieben.
    1. Mit dem DS 1307 wird die Uhrzeit unabhängig von NTP bei einen Ausfall des Netzwerk.
    2. Es wurden 2 Temperatur Sensoren DS18B20 eingebaut damit wird die Innen und Außen Temperatur im Display angezeigt.
    3. Die Tasten Funktion (reboot/halt) dafür werden die folgenden drei Scripte benutzt.

    ta_rt.sh


         ta_gn.sh
         ta_shutdown


    Beim Einschalten des RasPi leuchten beide LED die grüne als Betriebsanzeige und die rote als Reboot bzw. Halt Anzeige.
    Der RasPi läuft im Auto Modus ohne Passwort Abfrage bis zum Login des user pi.
    Kurz vor dem Login wird mit Hilfe des Eintrags in der /etc/rc.local das script ta_rt.sh gestartet und die rote LED ausgeschalten.
    Die grüne LED als Betriebsanzeige leuchtet ab jetzt kann mit putty auf den RasPi zugegriffen werden.


    Wenn die Taste am X3 Pin 9 GPIO14 für 1 bis 3 Sekunden gedrückt wird, geht die grüne LED aus und die rote LED für 3 mal 1 Sek. an bzw. 3 mal 0.5 Sek. aus dann erfolgt ein reboot des RasPi.


    Wenn die Taste am X3 Pin 9 GPIO14 für 5 bis 9 Sekunden gedrückt wird, geht die grüne LED aus und die rote LED für 3 mal 3 Sek. an bzw. 3 mal 0.5 Sek. aus dann erfolgt ein halt des RasPi.


    Nach dem reboot leuchten beide LED bis kurz vor dem Login dann geht die rote LED wieder aus.
    Nach dem halt leuchten wieder beide LED und der RasPi kann ausgeschalten werden.


    4. Der Schaltplan von Projekt_m8 ist in der Datei m8_Schaltplan.pdf zu sehen.


    5. Der X3 Connector des C-Berry Touch Display muss zuerst bestückt und gelötet werden.


    6. Konfiguration der drei Erweiterungen:


    6.1 Mit sudo /boot/raspi-config wird das Konfigurations Menü geöffnet hier wird der Autostart des users pi aktiviert.


    6.2 In die Datei /etc/rc.local werden folgende Zeilen eingetragen. Damit startet das Programm dann sofort ohne jede Eingabe.
    sudo nano /etc/rc.local

    Code
    1. # X3 Connector Pin 10 gleich GPIO15 wird in den Low-Zustand versetzt die rote LED ist aus.
    2.    /usr/local/bin/ta_rt.sh 15 0
    3.    # X3 Connector Pin  9 gleich GPIO14 wird als Eingang geschalten.  
    4.    /usr/local/bin/ta_gn.sh 14     
    5.    # durch ta_gn.sh wird ta_shutdown im Hintergrund gestartet hier wird dann reboot oder halt ausgewertet.
    6.    # Start von Programm m8 mit Uhr, Radio, Player und Wecker sowie RTC, Temperatur Anzeige und Taste für reboot/halt
    7.    cd /home/pi/projekt_m8/
    8.    sudo ./m8 &


                    
    6.3 In die Datei /boot/config.txt werden die folgenden Zeilen eingetragen.
    sudo nano /boot/config.txt

    Code
    1. # Uncomment some or all of these to enable the optional hardware interfaces
    2.     dtparam=i2c_arm=on                              # Der i2c Bus für den DS1307
    3.     dtoverlay=i2c-rtc,ds1307=on                 # Das Modul für den DS1307 am i2c Bus
    4.     #dtparam=i2s=on
    5.     dtparam=spi=on                                        # Wird vom C-Berry Touch benutzt.
    6.     # 1wire bus
    7.     dtoverlay=w1-gpio                                    # Der 1-wire Bus für die DS18B20
    8.     # Enable audio (loads snd_bcm2835)
    9.     dtparam=audio=on                                   # Damit das Radio und Player Modul funktioniert.


    6.4 Erforderliche Programme installieren wobei bc nur für Test der Temperatur Sensoren mit bash scripten benötigt wird.
    sudo apt install i2c-tools
    sudo apt install bc

    6.5 Um ein reboot/halt per Taste zu erreichen, diese Dateien nach /usr/local/bin/ verschieben und ausführbar machen.
    cd /home/pi/projekt_m8/
    sudo mv ta* /usr/local/bin/
    cd /usr/local/bin/
    chmod u+x ta_gn.sh
    chmod u+x ta_rt.sh
    chmod u+x ta_shutdown

    Test 1:
    Der DS1307 muss auf 68 mit UU zu sehen sein, weil das Kernel-Modul für den DS1307 bereits aktiv ist.
    sudo i2cdetect -y 1
    timedatectl status
    sudo hwclock -r && date

    Test 2:
    Zum Testen der Sensoren ohne Display kann das Programm m88 benutzt werden.
    gcc -Wall -std=gnu99 m88.c -o m88

    ./m88




    Weitere Details und Infos zum Projekt_m8 sind wieder wie unter Projekt_m7 beschrieben zu finden.
    Bei Interesse stelle ich das gesamte Projekt_m8 in das Forum.

  • Könntest du diese Textwüste bitte noch formatieren? Codeblocks, Absätze usw wirken wunder.

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.