Universitatea Tehnica Iasi - Fac. Automatica si Calculatoare
Sisteme cu Microprocesoare

Experiment Nr.4

  • L4.1 Denumire

  • Embedded Linux Machine - Sensor send mail
    ( Ziua numarului Pi - 14 martie )



  • L4.2 Prezentare generala, scop

  • Lucrarea de laborator isi propune sa abordeze modalitatile de realizare a elemntelor de tip Internet of Things (IOT) conectate prin protocol SMTP .
    Sensorul de temperatura DS1820 conectat la Rpi, utilizarea protocolului 1 Wire , Python, reprezinta ingredientele propuse pentru a fi utilizate.
    La sfrsitul laboratorului se vor detine informatii relevante despre posibilitatile de configurare Linux Kernel pentru sensori care pot fi interogati prin Internet sau care pot activa servicii de mail . Este util de explorat MIT Python course.



  • L4.3 Resurse


  • Hardware: Platforme Raspberry Pi 0-4, sensori DS1820, osciloscop,router cu conexiune la Internet



  • L4.4 Programe exemplu


  • Program tratare intreruperi externe in Python

    Program lectura temperatura de la senzorul DS1820
    Program trimitere mail clasic
    Program sensor send mail
    -------- Secventa video


  • L4.5 Mod de desfasurare/urmarire laborator

  • Python - intreruperi GPIO
    Programele Python accepta intreruperi externe generate prin intermediul GPIO configurate ca port de intrare astfel:

    > GPIO.setup(40,GPIO.IN, pull_up_down=GPIO.PUD_UP)
    sau
    >GPIO.setup(40,GPIO.IN, pull_up_down=GPIO.PUD_DOWN)

    Uzual un eveniment extern poate determina intererupera programului curent si saltul la executia unui handler daca au fost executate urmatoarele secvente:

    GPIO.add_event_detect(40,GPIO.FALLING, callback=fa_ceva, bouncetime=250)

    Programul ,de regula numit handler, este definit ca o functie astefl:

    def fa_ceva(channel):
    .........print("se executa handler")
    .........instr1
    .........instr2


    DS1820
    Utilizand Raspi-config se activeaza interfata 1 wire astfel:


    In fisierul /boot/config.txt
    se poate adauga linia:

    dtoverlay=w1-gpio

    astfel:

    Prezenta acestuia se poate vizualiza astfel:
    > ls /sys/bus/w1/devices/
    care va returna :


    Incarcarea driverului pentru sensorul 1 wire se realizeaza astfel:

    > sudo modprobe w1-gpio
    > sudo modprobe w1-therm

    Configurarea modulelor kernel pentru sensorul de temperatura mai poate fi realizata si prin adugarea in fisierul /etc/module a urmatoarelor linii:
    w1-gpio
    w1-therm
    In directorul /sys/bus/w1/devices/ se creaza un director cu codul sensorului.Aici se afla fisierul w1_slave ce este actualizat cu datele despre temperatura astfel:


    Continutul fiserului w1_slave este:


    Instalarea modulului Python pentru ds1820 se face astfel:

    > sudo apt-get install python-w1thermsensor
    Versiunile recente pot fi localizate cu comanda:
    >sudo pip install w1thermsensor
    Utilitarul pip poate fi instalat in mod clasic cu
    >sudo apt-get install pip.

    Sensorul DS1820 se conecteaza la pin 7 al conectorului de extensie al Rpi conform figurii de mai jos.


    Serverul de mail
    Python dispune de un set de clase din care pot fi realizate instante care permit vehicularea mesajelor cu protocol SMTP. Pentru a asigura un nivel ridicat de securitate este necesar sa avem un cont de mail sender setat cu posibilitatea accesarii prin 2 nivele de parole conform specificatiilor de mai jos:



    In urma acivarii acestei optiuni se va genera o a 2-a parola pentru accesarea clientului care va trimite mail. Programele care vor accesa acest client vor utiliza aceasta noua parola care , de regula, are lungime de 16 caractere sigurand un nivel sporit de securitate.



  • L4.6 Probleme propuse

  • 1. Conectati 2 sensori de temperatura si realizati o secventa program pentru lectura datelor;
    2. Inlocuiti sensorul de temperatura cu sensorul de umiditate DHT11;
    3. Modificati programul prototip pentru a trimite mail functie de 2 temperaturi;
    4. Dezvoltati o metoda de trimitere mail cu temperatura din lab. la data de 23 martie 2021.;
    5. Realizati un program care va trimite un mail cu temperatura procesorului la apasarea unui buton .



  • L3.7 Experimentul poate fi extins pentru:


  • - Realizarea retelelor de sensori capabili sa comunice in Internet;
    - Realizarea echipamentelor de alarmare si protectie ;
    - Realizarea sistemlor pentru monitorizare ambient;
    - Realizarea caselor inteligente;
    - Activarea actuatoarelor de la distanta utilizand mesaje trimise prin SMTP.


  • L4.8 Informatii colaterale


  • © Fac. Automatica si Calculatoare Iasi