Natura este o arta inca necunoscuta omului.- Alexander Pope [302283]

INTRODUCERE

”Natura este o arta inca necunoscuta omului.„- [anonimizat].

De ce Twitter? Deoarece în urma cutremurului din 2011 și a [anonimizat] a [anonimizat] a [anonimizat].

[anonimizat] a [anonimizat], [anonimizat],

[anonimizat] a putea evalua riscurile cu care se confruntă și pentru a decide asupra contramăsurilor aplicabile. [anonimizat], foarte relevantă pentru persoanele care locuiesc în imediata apropiere a centralelor nucleare.

Datorită echipamentului necesar și a [anonimizat]. , [anonimizat], să fie la îndemâna fiecărui cetățean.

Capitolul 1. Noțiuni teoretice privind realizarea unei aplicații de măsurare și transmitere a [anonimizat],artificială, [anonimizat], [anonimizat], [anonimizat].

1.1. Radioactivitatea

Radioactivitatea este proprietatea posedată de anumite elemente de emisie spontană a energiei sub formă de radiație ca rezultat al dezintegrării unui atom instabil. [anonimizat], termenul folosit pentru a descrie rata la care materialul radioactiv emite radiații.

1.1.1 Considerații generale

În 1896, Becquerel face observația că sărurile de uraniu emit o [anonimizat], sticlă etc. și pe urmă înnegrește hârtia fotografică. Această importantă descoperire este un prim pas spre elucidarea ulterioară a proceselor nucleare. [anonimizat] o comportare similară la săruri ale toriului; ei separă radiul din U3O8.

Figura 1.1- Radiațiile Gama (http://www.armyacademy.ro/biblioteca/CARTI/stiinte_teh/mosteanu1/a2.pdf)

[anonimizat], Bragg. [anonimizat], se stabilește și comportarea izotopilor rezultați. Astfel, s-a [anonimizat], [anonimizat], adică emit și ele radiații fie de natură corpusculară (α, β), fie de natură electromagnetică (γ). Totodată Soddy emite legea de deplasare prin care se prevede descendentul rezultat în urma emisiei unei radiații nucleare.

1.1.2 Radioactivitate naturală. Radioactivitate artificială

Procesul de dezintegrare radioactivă a fost relevat prima dată la elementele naturale radioactive. Radioactivitatea naturală a fost definitiv stabilită în toate elementele care au numărul de ordine Z > 83. Acestea aparțin unei serii de elemente radioactive care formează o familie radioactivă.

Radioactivitatea din mediul nostru de viață este compusă din radioactivitatea naturală (provenind din cosmos, din scoarța terestră și din corpul nostru) și expunerea rezultată din activitățile umane, denumită și radioactivitate artificială. Aceasta din urmă este datorată în principal examenelor și tratamentelor medicale, dar și expunerilor profesionale sau incidentelor/accidentelor de natură nucleară.

Cea mai semnificativă mărime dozimetrică pentru sănătate este doza biologică exprimată în milisiverți (mSv). Se estimează că doza medie anuală de expunere, la începutul secolului al XXI-lea este de 3,5 mSv/an de persoană. Ea era de 2,4 mSv de persoană acum o sută de ani. Creșterea este datorată dezvoltării examenelor medicale, pentru că în rest, expunerea naturală a rămas constantă. Riscurile aduse de cei 1,1 mSv suplimentari sunt minime în raport cu beneficiile aduse.

Procedurile medicale reprezintă aproape 96% din expunerea umană la radiații. De exemplu, o radiografie toracică oferă în mod obișnuit o doză de aproximativ 0,01 rem

(10 millirem), iar CT cu un corp întreg dă o doză de 1 rem (1000 mrem), așa cum se poate observa în tabelul anterior

Printre aceste proceduri medicale, radiografiile, mamografia și CT utilizează radiații sau realizează funcții similare cu cele ale radioizotopilor. Cu toate acestea, ele nu implică materiale radioactive și, prin urmare, nu sunt reglementate de Comisia de Reglementare Nucleară din S.U.A. (Nuclear Regulatory Commission – NDC). În schimb, majoritatea acestor proceduri sunt reglementate de agențiile de sănătate de stat. De fapt, printre aceste proceduri, NRC și statele sale de acord doar autorizează și reglementează posesia și utilizarea materialelor radioactive pentru medicina nucleară.

Expunerea naturală provine din radiația emisă de pământ (între 0,45 și 0,54 mSv), radiația cosmică (între 0,30 și 0,36 mSv), radioactivitatea proprie corpului uman (între 0,25 și 0,30 mSv) și mai ales din emanațiile de radon (între 1 și 1,2 mSv), gazul radioactiv descendent al uraniului, emanat de către roci.

Radonul și descendenții săi radioactivi de dezintegrare constituie principala sursă de expunere naturală. Radiația tectonică datorată rocilor este de aproximativ 0,40 mSv, dar poate fi de zece ori mai mare în regiunile granitice precum Munții Pădurea Neagră în Germania, Masivul Central în Franța sau în România, radonul fiind, de asemenea, principala sursă.

Radioactivitatea proprie corpului uman este datorată prezenței izotopilor 40K și 14C în interiorul său, izotopi care sunt la nivelul a 8.000 Bq. Partea datorată radiației cosmice variază proporțional cu altitudinea, ea fiind în jur de 0,40 mSv la nivelul mării și dublă la 1.500 m, crescând cu aproximativ 0,025 mSv la suta de metri.

În concluzie, media anuală variază foarte mult de la o persoană la alta. Un procent de 98 % din această doză este datorată examenelor și tratamentelor medicale și doar 2 % sunt datorate celorlalte surse artificiale. De exemplu în Franța, contrar opiniei curente, căderile radioactive datorate activităților nucleare sunt foarte mici în jur de 0,02 mSv sunt datorați încercărilor nucleare și accidentului de la Cernobâl și mai puțin de 0,01 mSv provin de la instalațiile nucleare. Această cifră scăzută este rezultatul precauțiilor luate pentru izolarea deșeurilor radioactive.

Regulile de radioprotecție limitează , în momentul de față, expunerea de la surse de radioactivitate artificială, la 1,1 mSv/an de persoană în medie. Este vorba de o medie și de un obiectiv care nu are sens decât la scara unei țări. Dacă această reglementare era aplicată la nivel individual, trebuia să se renunțe la radiografii și la diferite scanări.

Trebuie subliniat faptul că o expunere de 3,5 mSv/an reprezintă o cifră foarte scăzută. Radioactivitatea naturală este incompresibilă, dar în anumite părți ale lumii expunerea poate atinge 10 sau chiar 50 mSv/an. Faptul că organismele vii s-au acomodat în aceste condiții, duce la concluzia că dozele de radioactivitate de câțiva milisiverți sunt efectiv scăzute.

1.1.3 Efectele ADM

Arma nucleară este o armă de distrugere în masă ce utilizează acțiunea distructivă a imensei cantități de energie degajată în timpul exploziei nucleare.

Încărcăturile nucleare, în funcție de natura reacțiilor pe care se bazează, sunt de trei categorii:

– arme de tip fisiune – fisiune, bazate pe reacția de fisiune (ruperea nucleelor de uraniu 235 sau plutoniu 239);

– arme termonucleare, bazate pe reacția de fuziune (combinare) a nucleelor de deuteriu sau tritiu (izotopi ai hidrogenului);

– arme nucleare combinate, fisiune – fuziune – fisiune, care se bazează pe succesiunea a trei reacții nucleare: fisiunea U235 sau Pu239, fuziunea deuterurii de litiu și fisiunea învelișului de U238 sub acțiunea neutronilor rapizi rezultați din treapta a doua.

O variantă „curată” este bomba cu neutroni unde efectele distructive majore nu sunt unda de șoc și pondere energetică foarte mică, ci efectul asupra ființelor vii.

Factorii distructivi ai exploziei nucleare clasice sunt:

– unda de șoc;

– emisiunea de lumină;

– radiația penetrantă;

– contaminarea radioactivă;

– impulsul electromagnetic.

Unda de șoc, cu pondere energetică de aproximativ 50 %, reprezintă principalul factor distructiv al exploziei nucleare, fiind capabilă să producă distrugeri materiale uriașe, traumatisme asupra oamenilor sau animalelor.

Emisiunea de lumină are o pondere energetică de aproximativ 35 % și reprezintă o radiație electromagnetică generată de zona luminoasă a exploziei nucleare, producând încălziri, deteriorări, topiri incendieri, carbonizări ale materialelor și ființelor vii.

Radiația penetrantă reprezintă un flux de radiații gama și neutroni emis din zona exploziei nucleare în mediul înconjurător. Acționează asupra țesuturilor vii, producând procese biologice care determină perturbarea funcțiilor vitale ale unor organe interne cu apariția efectelor stohastice și nestohastice.

Contaminarea radioactivă are ca principale surse:

– produsele radioactive ale reacțiilor nucleare;

– substanțele radioactive formate în sol și în diferite obiecte din zona exploziei, ca urmare a captării neutronilor de către nucleele elementelor chimice componente.

Impulsul electromagnetic, factor distructiv ce acționează asupra sistemelor de comunicații, aparaturii electronice etc. reprezintă o serie de câmpuri electrice și magnetice de scurtă durată, generate de fluxul de electroni ai exploziei nucleare și de ionizarea din mediu ca urmare a acțiunii neutronilor și radiațiilor gama.

De remarcat este faptul că armele radiologice reprezintă o variantă a armelor nucleare, caracterizată doar prin acest efect – contaminarea radioactivă. Această contaminare radioactivă este produsă în special de răspândirea accidentală în aer, sol sau în apă a substanțelor radioactive, rezultate din deșeurile de la centralele nucleare, izotopi radioactivi din institutele de cercetare de profil, din locațiile de explorări sau din distrugerile necontrolate la unele instalații industriale care conțin materiale radioactive. Dispozitivele explozive de dispersare a materialelor radioactive, numite și bombe radiologice sau bombe murdare, reprezintă posibilități de executare a atacurilor de tip terorist.

În cazul munițiilor nucleare, contaminarea radioactivă poate să cuprindă suprafețe imense de teren, funcție de puterea exploziei, construcția muniției, felul exploziei. În privința armelor radiologice, la detonația explozivului se produce dispersarea materialului radioactiv, care provoacă o puternică contaminare radioactivă pe suprafețe întinse.

Amploarea distrugerilor și vătămărilor, precum și mărimea suprafețelor de teren afectate (figurile nr. 1.2 și 1.3), depind de tipul și de puterea muniției nucleare, de de felul exploziei (aeriană, la suprafaț a pământului, subterană, submarină), de configurația terenului, de factorii meteorologici.

Fig. 1.2 Explozia nucleară terestră

(http://www.armyacademy.ro/biblioteca/CARTI/stiinte_teh/mosteanu1/a2.pdf)

Fig. 1.3 Emisia de lumină – explozia nucleară

(http://www.armyacademy.ro/biblioteca/CARTI/stiinte_teh/mosteanu1/a2.pdf)

Astfel, explozia termonucleară de mare putere (10 Mt) poate provoca distrugeri totale pe un teritoriu de 300 km2 și distrugeri mari pe 600 km2.În aceleași condiții, explozia de 20 kt creează astfel de efecte pe o suprafață de 4 km2, respectiv 8 km2..

1.1.4 Măsurarea radiațiilor

Există patru unități diferite, dar interdependente pentru măsurarea radioactivității, a expunerii, a dozei absorbite și a echivalentului dozei. Acestea pot fi amintite de R-E-A-D mnemonice, după cum urmează, cu unități obișnuite (de exemplu, britanice, de exemplu Ci) și internaționale (metrice, de exemplu, Bq)

• R-( Radioactivity) -Radioactivitatea se referă la cantitatea de radiații ionizante eliberate de un material. Indiferent dacă emit particule alfa sau beta, raze gama, raze X sau neutroni, o cantitate de material radioactiv este exprimată în termeni de radioactivitate (sau pur și simplu activitatea sa), care reprezintă numărul de atomi care se distrug într-un anumit moment perioadă. Unitățile de măsură pentru radioactivitate sunt curie (Ci) și becquerel (Bq).

• E-(Exposure)-Expunerea descrie cantitatea de radiații care circulă prin aer. Multe monitoare de radiații măsoară expunerea. Unitățile pentru expunere sunt roentgen (R) și coulomb / kilogram (C / kg).

• A-( Absorbed dose )-Doza absorbită descrie cantitatea de radiație absorbită de un obiect sau de o persoană (adică cantitatea de energie pe care sursele radioactive le depozitează în materialele prin care trec). Unitățile pentru doza absorbită sunt doza absorbită de radiații (rad) și gri (Gy).

• E-( Dose equivalent or effectiv dose)-Echivalentul dozei sau doza efectivă) combină cantitatea de radiație absorbită și efectele medicale ale acestui tip de radiații. Pentru radiațiile beta și gamma, echivalentul dozei este același cu doza absorbită. Dimpotrivă, echivalentul dozei este mai mare decât doza absorbită pentru radiația alfa și neutronă, deoarece aceste tipuri de radiații sunt mai dăunătoare organismului uman. Unitățile pentru echivalentul dozei sunt om echivalent cu roentgen (rem) și sievert (Sv), iar echivalentele de doză biologică sunt frecvent măsurate în 1/1000 dintr-un rem (cunoscut ca millirem ormrem).

În scopuri practice, 1 R (expunere) = 1 rad (doză absorbită) = 1 rem sau 1000 mrem

(Echivalentul dozei).

1.2. Arduino

O echipă de dezvoltatori compusă din Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino,David Mellis și Nicholas Zambetti și-au imaginat un proiect, cu numele Arduino și punerea sa în aplicare. Arduino- o platformă open-source, bazată pe un software și hardware care poate să fie accesibil tuturor, în scopul de a crea cu ușurință sisteme electronice, având un vocabular comun, specific domeniului electronicii și tehnologiei informației.

O plăcuță electronică este un suport plan, flexibil sau rigid, în general, compus din substanțe epoxidice sau fibră de sticlă. Are piese electrice dispuse pe unul, două sau mai multe straturi (de suprafață și / sau interne), care permit eliberarea legăturii electrice a componentelor electronice. Fiecare piesa se conectează astfel de o componentă la alta, în scopul de a crea un sistem electronic care funcționează și efectuează operațiunea solicitată.

Fig 1.4 Plăcuța Arduino-UNO(https://www.arduino.cc/)

Toate componentele acestei plăcuțe nu sunt conectate în mod necesar. Cablarea componentelor urmează un plan specific pentru fiecare în parte.

Fig. 1.5 Schema electronică Arduino-UNO (ARDUINO : PREMIERS PAS EN INFORMATIQUE EMBARQUÉE, Eskimon, olyte, 19 février 2016)

Programabile? Am vorbit de o plăcuță electronică programabilă, la începutul acestui capitol. Dar ce este exact asta? Deci, Arduino este o plăcuță electronică care nu se poate face nimic fără a fi spusă ce să facă. De ce? Ei bine, asta se datorează faptului că este programabilă. Acest lucru înseamnă că ea are nevoie un program să funcționeze. Un program este o listă de instrucțiuni care se execută printr-un sistem.

Și software-ul? Pentru a programa placa Arduino, vom utiliza un program! De fapt, acesta va fi un compilator. Deci, ce este mai exact? În informatică, termenul de compilator, se referă la software-ul care este capabil să traducă un limbaj de programare, sau mai degrabă un program care folosește un limbaj adecvat astfel încât aparatul va putea înțelege. Compilatorul va traduce instrucțiunile programului. Acest lucru ar putea fi reprezentat cu ajutorul imagisticii în modul următor:

Fig. 1.6 Rolul compilatorului

Deci, pentru a traduce limbajul de programare în limbaj mașină (cu 0 și 1), avem au nevoie de acest compilator faimos.

Poate vă întrebați de ce am ales Arduino? În primul rând pentru costul scăzut, având în vedere gama de aplicații posibile. Software-ul este oferit gratuit! Compatibilitatea sub toate platformele, și anume Windows, Linux și Mac OS. O comunitate foarte dezvoltată! Mii de forumuri de auto-ajutor, prezentari, proiecte, propuneri de programe și biblioteci. Au un site în limba engleză arduino.cc și altul în franceză, unde poți găsi totul, de la material de referință Arduino, exemple de utilizare, asistență trebuie să înceapă, explicații despre software-ul și hardware-ul, etc. Deci, libertate aproape absolută. Aceasta constituie, în sine, două lucruri: oftware: gratuit și open source, dezvoltat în Java, inclusiv ușurința de utilizare raportate pentru a da click de mouse și echipamente ale căror sisteme sunt în liberă circulație pe internet.

Și, în sfârșit, aplicațiile posibile care nu e o listă de aplicații limitate posibile de realizat cu Arduino:

– controlul aparatelor domestice;

– a da „inteligență“ unui robot;

-a face jocuri de lumini;

– permiterea unui calculator să comunice cu o placă și diferiți senzori

– controlul de la distanță un dispozitiv mobil etc.

Există o infinitate de alte utilizări.

Am reprezentat în următoarea figură cele mai importante componente ale plăcii Arduino.

Fig. 1.7 Componentele plăcii

Microcontrolerul este creierul plăcii noastre. El este cel care va primi programul pe care îl creem, îl va stoca în memoria sa și apoi îl va rula.

Pentru a funcționa, placa are nevoie de o alimentare. Microcontrolerul funcționează la 5V, placa poate fi alimentată cu 5V prin portul USB sau printr-o sursă de alimentare externă (care este între 7V și 12V. Această tensiune trebuie să fie continuă și poate fi, de exemplu,furnizată de o baterie de 9V.

Cele trei „pete albe“ încercuite în albastru sunt, de fapt LED-uri a căror dimensiune este de ordinul milimetrilor. Aceste LED-uri servesc două scopuri: chiar în partea de sus a cadrului: acesta este conectat la un cod PIN de microcontroler și va servi pentru a testa hardware-ul.La conectarea cardului la PC, se aprinde intermitent câteva

secunde.

Ambele LED-uri de jos a ramei: utilizată pentru a vizualiza activitatea pe portul serial (unul pentru transmisie și cealaltă pentru recepție).

1.3. Radiametrul Pocket Geiger

Senzorul  Pocket Geiger este un senzor de radiație foarte sensibil conceput pentru  detectarea undelor Gamma și Beta.

Pocket Geiger nu este un tradițional contor Geiger Müller care cuprinde un tub de gaz sub presiune. Acesta este un detector semiconductor cu siliciu compus dintr-un cristal de siliciu dopat cu impurități la joncțiunlie p-n. O joncțiune p-n este o regiune unde depleția mică este creată între p și n urma eliberării inițiale a electronilor și găuri. Când detectorul este iradiat cu o pereche de „gaură de electroni“, un curent indus de radiația este produsă în zona de epuizare. Contorul Geiger a fost propus pentru a măsura nivelul local de radioactivitate. Pocket Geiger este dezvoltat de Radiation-Watch,o comunitate japoneză care se concentrează asupra proiectării și dezvoltării dispozitivelor de detectare ieftine și ușor de utilizat. Contorul este o inițiativă științifică, care a apărut în urma accidentului de la Fukushima, de la 11 martie 2011. Pocket Geiger are mai multe versiuni de senzori care pot fi conectați la smartphone-uri (Android sau iOS) , calculatoare cu diferite sisteme de operare și plăci programabile. Indiferent de versiunea utilizată, senzorul are un tip de fotodiodă X100-7 pentru detectarea radiațiilor gamma.

Fig 1.8 Pocket Geiger(https://www.google.ro/search?q=pocket+geiger&source)

1.4. Limbajul de programare Processing

Processing corelează conceptele software cu principiile formei vizuale, mișcării și

interacțiunii. Acesta integrează un limbaj de programare, un mediu de dezvoltare și metodologia de predare într-un sistem unificat. Processig a fost creat pentru a preda fundamentele programării computerelor într-un context vizual, pentru a servi drept software Sketchbook și pentru a fi folosit ca instrument de producție. Elevii, artiștii, profesioniștii în design și cercetătorii îl folosesc pentru învățare, prototipuri și producție.

Limbajul de procesare este un limbaj de programare text special conceput pentru a genera și modifica imagini. Prelucrarea se străduiește să obțină un echilibru între claritate și caracteristici avansate. Începătorii își pot scrie propriile programe după doar câteva minute de instruire, dar utilizatorii mai avansați pot angaja și scrie biblioteci cu funcții adiționale. Sistemul facilitează predarea graficelor și interacțiunilor pe calculator tehnicile, inclusiv desen vector, procesare de imagini, modele color, comunicare în rețea și programare orientată pe obiecte. Bibliotecile extind ușor capacitatea lui Processing de a genera sunet, trimite / primi date în diverse domenii formate și pentru a importa / exporta formate de fișiere 2D și 3D.

Software-ul este un mediu unic cu calități unice. Concepte și emoții care nu pot fi exprimate în alte medii pot fi exprimate în acest mediu. Software-ul necesită terminologie proprie și discurs și nu ar trebui să fie evaluat în raport cu mediile anterioare, cum ar fi filmul, fotografia și pictura. Istorie arată că tehnologii precum vopselele cu ulei, aparatele de fotografiat și filmele s-au schimbat, deși nu susținem ideea că noile tehnologii îmbunătățesc arta, Simțim că ele permit diferite forme de comunicare și de exprimare. Software-ul deține o poziție unică în rândul mass-media artistic, datorită capacității sale de a produce forme dinamice, gesturi de proces, definii comportamentul, simularea sistemelor naturale și integrarea altor medii inclusiv sunet, imagine și text.

Ca și în orice mediu, materiale diferite sunt potrivite pentru sarcini diferite. La proiectarea unui scaun, un designer decide să utilizeze oțel, lemn sau alte materiale bazate pe utilizarea intenționată și ideile și gusturile personale. Acest scenariu se transferă la scrierea software-ului. Animatorul abstract și programatorul Larry Cuba descrie experiența lui astfel: "Fiecare dintre filmele mele a fost făcut pe un sistem diferit folosind un alt
limbaj de programare. Un limbaj de programare vă oferă puterea de a exprima unele idei, limitându-vă în același timp abilitățile de exprimare a altora. ​​Există multe limbaje de programare disponibile din care să poți alege, iar unele sunt mai potrivite decât altele În funcție de obiectivele proiectului. Limbajul de procesare utilizează un computer obișnuit, iar sintaxa de programare facilitează extinderea cunoștințelor dobândite de către oameni.

Pictorii pot construi desene elaborate și schițe înainte de a executa lucrarea finală. Arhitecții lucrează în mod tradițional în primul rând în carton și lemn pentru a înțelege mai bine formele lor în spațiu. Muzicienii lucrează adesea cu un pian înainte de a înregistra o compoziție mai complexă. Pentru a schița mediile electronice, este important de a lucra cu materiale electronice. Așa cum fiecare limbaj de programare este diferit, materiale, unele sunt mai bune pentru schițare decât altele, și cei care lucrează în software au nevoie de medii de lucru pwntru ideile lor înainte de a scrie codul final. Prelucrarea este construită pentru a acționa ca un sketchbook software, făcându-l ușor de explorat și reeditat diferite idei într-o perioadă scurtă de timp.

Processing nu reprezintă o deviere radicală de la cultura actuală a programării. Acesta repoziționează programarea într-un mod accesibil persoanelor care sunt interesați de programare, dar care poate fi intimidat de tipul sau neinteresat de cele predate în departamentele de informatică. Computerul a provenit ca un instrument rapid și a evoluat într-un mediu de exprimare.

Ideea de alfabetizare generală a software-ului a fost discutată de la începutul anilor 1970.

În 1974, Ted Nelson a scris despre minicomputerele de la acea vreme în Computer Lib /

Mașini de vis. El a explicat "cu cât știți mai mult despre computere. . . cu atât mai bine imaginația voastră poate fi însoțită de tehnici, poate glisa piesele împreună, poate să descopere formele a ceea ce ați face cu aceste lucruri. " În cartea sa, Nelson discută viitorul potențial al calculatorului ca instrument media și conturează în mod clar ideile pentru hipertext (textul legat, care a stabilit fundația pentru Web) și hipergrame (Desene interactive). Dezvoltările de la Xerox PARC au condus la prototipul Dynabook pentru computerele personale de astăzi. Viziunea Dynabook a inclus mai mult decât hardware un limbaj de programare care a fost scris pentru a permite, de exemplu, copiilor să scrie povestiri și programe de desen, muzicieni pentru a scrie programe de compoziție.

În această viziune nu exista nicio distincție între un utilizator de calculator și un programator. Treizeci de ani după aceste idei optimiste, ne aflăm într-un loc diferit. O revoluție tehnică și culturală a avut loc prin introducerea calculatorului personal și Internetul către o audiență mai largă, dar oamenii folosesc în mod copleșitor instrumentele software create de către programatorii profesioniști, mai degrabă decât să-și facă propriile lor programe.

Această situație este descrisă în mod clar de John Maeda în cartea sa Creative Code: "Pentru a utiliza un instrument pe un computer, trebuie să faceți puțin mai mult decât punct și faceți clic; Pentru a crea un instrument tu trebuie să înțelegi arta a programării pe calculator. "

Mișcarea software-ului open source are un impact major asupra culturii noastre economice prin inițiative precum Linux, dar are o influență mai mică asupra culturii din jurul software-ului pentru arte. Există proiecte mici împrăștiate dar, companii precum Adobe și Microsoft domină producția de software și prin urmare, controlează viitorul instrumentelor software utilizate în domeniul artelor.

Processing se străduiește să aplice spiritul inovării software-ului open source în domeniul artelor. Vor să ofere o alternativă la proprietățile software disponibile și pentru a îmbunătăți abilitățile comunității artistice, stimulând astfel interesul. Vor ca să facă procesul de extindere și adaptare ușor și disponibil pentru cât mai mulți oameni posibil.

Processing probabil nu ar exista fără legăturile sale cu software-ul open source și utilizarea proiectelor existente open source, folosite pentru orientare și pentru componente de software importante. Acest lucru a permis proiectului să se dezvolte într-o perioadă mai scurtă de timp și fără o echipă mare de programatori. Persoanele fizice sunt mai predispuse să își doneze timpul pentru un proiect open source,

Și, prin urmare, software-ul evoluează fără un buget. Acești factori permit software-ului să fie distribuit fără costuri, ceea ce permite accesul persoanelor care nu-și pot permite cele mai mari prețuri pentru un software comercial. Codul sursă de procesare permite oamenilor să învețe construcția sa și prin extinderea acesteia cu propriul cod.

Oamenii sunt încurajați să publice codul pentru programele scrise în Processing,în același mod, în care "sursă de vizionare" în browserele Web a încurajat funcția de proliferare rapidă a abilităților de creare a site-urilor web, accesul la codul de prelucrare al altora.

Membrii comunității să învețe unii de la alții, astfel încât abilitățile comunității crește în ansamblu. Un bun exemplu implică scrierea de software pentru urmărirea obiectelor într-un Video, permițând astfel oamenilor să interacționeze direct cu software-ul prin intermediul unor corpuri, mai degrabă decât prin mouse sau tastatură. Karsten Schmidt, un programator mai experimentat, a folosit acest cod ca bază pentru scrierea unui cod mai general care ar putea urmări mai multe obiecte colorate în același timp. Folosind asta codul de urmărire este îmbunătățit, deoarece infrastructura a permis lui Laura Hernandez Andrade, absolvent

la UCLA, pentru a construi Talking Colors, o instalatie interactiva care se suprapune text emotiv despre culorile pe care oamenii le poartă pe imaginea proiectată.

Partajarea și îmbunătățirea codului permite oamenilor să învețe unul de celălalt și să construiască proiecte care ar fi prea complexe pentru a fi realizate fără asistență.

Processing face posibilă introducerea de concepte software în contextul artelor și, de asemenea, deschide concepte de artă pentru o audiență mai tehnică. Deoarece sintaxa acestuia este derivată din limbaje de programare utilizate pe scară largă, este o bază bună pentru învățare.

Fig 1.9 Interfața Processing

Abilitățile învățate cu Processing permit oamenilor să învețe alte limbaje adecvate pentru contexte diferite, inclusiv crearea de pagini web, crearea de rețele, electronică și grafică pe calculator.

Procesing profită de punctele forte ale comunităților bazate pe Web și acest lucru a permis proiectului să crească în mod neașteptat. Mii de studenți, practicanții de pe toate continentele sunt implicați în utilizarea software-ului. Site-ul web este un centru de comunicare, dar contribuabilii se găsesc la distanță în orașe in jurul lumii. Aplicațiile web tipice, cum ar fi buletinele de discuții, găzduiesc discuțiile între persoanele din locații îndepărtate despre caracteristici, bug-uri și evenimente similare.

Capitolul II. Contribuții privind realizarea unei aplicații pentru măsurarea și transmiterea nivelului radioactivității cu Radiametrul Pocket Geiger pe rețelele de socializare

Pentru realizarea acestei aplicații, pe lângă plăcuța programabilă Arduino UNO, radiametrul Pocket Geiger și limbajul de programare Processing, am mai folosit și Arduino Wifi Shield, Arduino GPS Shield, API (Application Programming Interface) și rețeaua de socializare Twitter.

În continuare vom vorbi despre conectivitatea Arduino. Pentru a avea acces la Internet Arduino, putem utiliza atât Ethernet Shield cât și Wifi Shield. În acest proiect am utilizat Ethernet Shield, care permite realizarea conexiunii la Internet cu ușurință Arduino. Acest shield permite ca Arduino să trimită și să primească date de oriunde din lume cu o conexiune la internet. Acesta se bazează pe protocolul cu același nume. Înainte să trecem la funcționalitatea acestora trecem în revistă ce este o rețea de internet.

Internetul este o rețea de rețele. Acesta este un mediu de transfer de informații într-o singură direcție în sens mai larg. Pentru organizarea acestor schimburi, protocoale specifice sunt utilizate pentru fiecare tip de transfer. Aceste protocoale sunt bine potrivite pentru o anumită sarcină, cel mai cunoscut este cu siguranță HyperText Transfer Protocol HTTP , este folosit pentru a naviga pagini în prin link-uri; FTP, File Transfer Protocol (File Protocol Exchange), care permite transferul numai de fișiere.

Fiecare parte a rețelei, mediul de transfer de informații sau protocolul final utilizat, pot fi găsite în așa-numitul OSI (Open Systems Interconnection). Acest model are șapte straturi pentru definirea rolului fiecăreia dintre componentele majore de rețea:

Fig. 2.1 Modelul OSI (www.wikiedia..com )

Acum vom vedea mai clar în ceea ce constă o rețea, să vedem caracteristicile materiale pe care le vom folosi pentru a conecta placa Arduino. Trebuie să știm ce straturi trebuie respectate, ce protocoale se utilizează.

Toate prelucrările care vor fi gestionate de cip se pot observa în partea de sus a plăcii. Acest IC are referința Wiznet 5100. Aceasta este o componentă care este dedicată Ethernet. Odată configurat, acesta va avea grijă să facă orice fel de comunicare. Acesta trebuie doar să trimită datele la shield prin Interfața seriala SPI (Serial Peripheral Interface) care este o interfață sincronă standard de mare viteză, ce operează în mod full duplex., și Shield se va ocupa de înglobarea în cadre și le transmiterea la adresa dorită. În mod similar, în cazul în care se primesc date se va ocupa de recuperarea și transmiterea la Arduino pentru ca programul să funcționeze.

Această componentă are o memorie tampon de 16 KB. Adică, în cazul unui schimb de date (descărcarea unei pagini Web, de exemplu), datele vor fi stocate în timp ce Arduino le citește și le procesează.

Shield-ul are, de asemenea, mai multe LED-uri conectate :

– PWR: indică faptul că placa este alimentată;

– LINK: indică faptul că placa este conectat la o rețea. Acest LED clipește atunci când transmiterea / primirea de date;

– FULLD: acest LED este aprins în cazul unei conexiuni full-duplex (de transmisie și recepție simultan);

– 100M: (. Componenta de viteză maximă) se aprinde atunci când rețeaua se poate trece la 100 Mb / s, stins în cazul unei rețele de 10 Mb / s;

– RX: se aprinde intermitent atunci când primește date;

– TX: Se aprinde intermitent când trimiterea de date;

– COLL: clipește atunci când sunt detectate coliziuni de date.

Fig. 2.2 Ethernet Shield

(www.arduino.cc )

Arduino GPS Shield – Cei de la Logger Shark SparkFun au echipat Arduino cu un modul GPS, o mufă pentru cartele de memorie μSD și toate celelalte periferice necesare pentru a transforma Arduino într-un logger de urmărire a vitezelor, monitorizare a vitezei și altitudine. Shield-ul se bazează pe un modul GPS GP3906-TLP – un receptor GPS cu 66 de canale care include o arhitectură MediaTek MT3339 și o rată de actualizare de până la 10 Hz. Modulul GPS va transmite actualizări de poziție constantă pe un port serial TTL simplu, care apoi se poate înregistra pe o cartelă μSD și / sau utiliza în alte scopuri.

Fig. 2.3 GPS Shield top- bottom (https://www.sparkfun.com)

Totul pe shield este configurabil: un switch care permite selecția interfeței UART a modulului GPS între porturi hardware sau software, cardul μSD funcționează pe un port SPI hardware, care ar trebui să fie compatibil cu cele mai multe layouturi Arduino și spațiu extra prototipic. Tensiunea principală a dispozitivului GPS Logger Shield este preluată de pe știftul de bază al Arduino 5V. Această tensiune este reglată până la 3.3V, care este furnizată atât modulului GPS, cât și cardului μSD. Aceste două componente ar trebui să consume, aproximativ 30mA în medie, dar ele pot foarte ocazional spike la aproximativ 100mA. Se recomandă, de asemenea, utilizarea unei baterii de 12 mm, care să se potrivească cu suportul bateriei GPS Shield.

Interconectarea componentelor

Pocket Geiger are în componență patru pini: doi sunt pentru alimentare (+V, GND) și doi sunt pentru semnale (SIG, NS). Când senzorul este atins de o radiație, el duce pinul radiației (SIG) la un voltaj de nivel ridicat pentru câteva microsecunde. Cum senzorul fotodiodă este sensibil la vibrații, compania producătoare a inclus și un accelerometru ca sa putem obține o notificare de la el prin pinul de zgomot (NS), precum și respingerea corespunzătoare.

Fig. 2.3 Conectarea cu placa Arduino, împreună cu descrierea pinilor

În plus, există patru pini în harta digitală Geiger Pocket: doi sunt utilizați pentru alimentare (V +, GND) și doi pentru semnalele (SIG, NS), cum se poate observa în Fig 2.3.

Pocket Geiger și placa Arduino Uno, descrise în secțiunile anterioare, formează baza sistemului propus pentru realizarea aplicației noastre.

Deoarece măsurarea radiațiilor nu este considerată completă, fără coordonatele geografice și temporale asociate, GPS Shield – compatibil cu Arduino – a fost adăugat pentru a detecta data, ora și locația. După cum se poate vedea în figura următoare, shield-urile au factor de formă similară cu versiunea originală a plăcii Arduino, făcând astfel mai ușoară legătura între cele trei elemente:

Fig. 2.4 Conectarea fizică la placa Arduino

Codul de programare în Arduino, disponibil gratuit pe site, se poate descărca, pe urmă putând urmări măsurătorile pe Serial Monitor, din cadrul softului Arduino sau într-un mini-soft care poate rula pe sistemul de operare Windows.

Fig. 2.5 Monitor Pocket Geiger pentru Arduino

Unitatea de măsură pentru nivelul radioactivității măsurată de senzor este μSv/h (microSievert/oră). În același tabel se pot observa și alte unități: timpul măsurării, numărări pe minut (counts per minute), precum și eroarea măsurării.

Având la dispoziție limbajul Arduino open-source, preluarea datelor de la senzorul Pocket Geiger a fost realizat după cum urmează:

Primul pas necesar pentru a determina nivelul de radiație necesar să definim valorile pentru următorii parametrii: intensitățile intensităților zgomotului radiațiilor și rata de sincronizare. Atunci când senzorul este atins de către radiația, acesta va împinge știftul radiației (SIG) la un nivel ridicat de tensiune pentru câteva microsecunde. Transformarea microsecunde la câteva secunde, este folosită doar pentru a se evita o depășire. Având în vedere faptul că senzorul fotodiodă este sensibil la vibrații, contor de radiații include, de asemenea, un accelerometru care utilizează PIN-ul de sunet (NS) pentru a indica momentele în care înregistrările trebuie să fie respinse ca fiind „fals pozitive.“ După aceea, vom calcula cpm (numărători pe minut), care este multiplicat USv printr-o constantă α (alfa), în funcție de timp de măsurare (maxim 20 de minute pentru fiecare ciclu). Intensitatea radiației este măsurată în Sv / h, care este cazul, de asemenea, pentru eroarea care este încă în măsură să Sv / h.

Integrarea aplicației cu dispozitive de comunicare serială

După cum ați citit în capitolul anterior, Processing este un limbaj de programare open-source și un mediu de dezvoltare integrată (IDE), construit, în principiu, pentru artă electronică, comunitățile de design vizual cu scopul de a învăța fundamentele programării pe calculator într-un context vizual și să servească ca o fundație pentru mediu de lucru electronic.

În Processing are loc autentificarea, cu chei de acces, personalizate pentru fiecare utilizator în parte și pentru fiecare aplicație în parte (un utilizator poate avea mai multe aplicații), la Twitter, în primă fază, după care, se accesează serviciul de identificare a adresei ip-ului extern împreună cu serviciul de localizare pe baza ip-ului, printr-un API (Application Programming Interface).

În programarea pe calculator, o interfață de programare a aplicațiilor (API) este un set de definiții, protocoale și instrumente de subrutină pentru construirea unui software de aplicație. În termeni generali, este un set de metode clar definite de comunicare între diferitele componente software. Un API bun face mai ușoară dezvoltarea unui program pe calculator prin furnizarea tuturor blocurilor de construcție, care sunt apoi realizate de către programator.

Un API poate fi pentru un sistem bazat pe web, sistem de operare, sistem de baze de date, bibliotecă hardware sau software. O specificație API poate lua mai multe forme, dar adesea include specificații pentru rutine, structuri de date, clase de obiecte, variabile sau apeluri la distanță. POSIX, Microsoft Windows API, Biblioteca de șabloane Standard C ++ și API-urile Java sunt exemple de diferite forme de API-uri.

La fel cum o interfață grafică de utilizator facilitează utilizarea de către utilizatori a programelor, interfețele de programare a aplicațiilor ușurează dezvoltatorii să utilizeze anumite tehnologii în construcția de aplicații. Abstractizând punerea în aplicare și expunând doar obiectele sau acțiunile de care dezvoltatorul are nevoie, un API simplifică programarea. În timp ce o interfață grafică pentru un client de e-mail ar putea oferi utilizatorului un buton care să execute toți pașii pentru preluarea și evidențierea mesajelor noi, un API pentru intrarea / ieșirea fișierelor ar putea oferi dezvoltatorului o funcție care copiază un fișier de la o locație la alta fără să ceară dezvoltatorului să înțeleagă operațiile sistemului de fișiere care au loc în spatele scenei.

Obiectivul principal al comunicării este să transmită informații. Dar cum să transmită informații și apoi ce informații? În cazul nostru va trebui cu siguranță să transmită măsurători de radioactivitate și coordonate.Aceste informații poe alimenta o bază de date, utilizată într-un calcul, sau altceva.

În viața de zi cu zi, există trei tipuri de comunicare, de exemplu, diferențiat trei tipuri de conversații. În fiecare conversație, există doar două difuzoare. Noi nu putem de fapt, nu comunicăm mai mult în cazul nostru! Specialiștii spun că este o comunicare Punct-la-punct.

Primul tip este atunci când o persoană vorbește cu prietenul său, fără a spune nimic din moment ce nu poate răspunde. Este silențios și doar ascultă. acest lucru este comunicare mod unilateral, sau numit punct de vedere tehnic de comunicare simplex.

Al doilea tip ar fi o conversație normală în cazul în care toată lumea este politicos și interlocutori de așteptare pentru celălalt este să vorbesc pentru a vorbi la rândul său. Aceasta este o comunicare half-duplex.

În cele din urmă, există conversație ca „dezbaterea politică“ (acest lucru nu este în mod evident său real numele) în cazul în care fiecare persoană vorbește în același timp cu celelalte. Ei bine, asta a spus, acest tip de comunicare funcționează foarte bine (nu în sens politic, mă refer punct de vedere tehnic!) și este utilizat! Aceasta este o comunicare așa-numita full-duplex.

La nivelul nostru, Arduino este capabil de comunicații de tip full-duplex, deoarece

este capabil să înțeleagă apelantul în timp ce vorbesc cu el în același timp. Trebuie amintit faptul că pentru a comunica, pentru dispozitive datele sunt utilizate sub formă de biți. Acești biți, îmi amintesc, este stările logice (adevărat sau fals), care pot fi grupate pentru a face seturi de biți. De obicei, aceste seturi sunt formate din 8 biți, care apoi formează un octet.

În cele ce urmează o să descriu modul în care se transmite un octet pe calea stabilită prin trimiterea exemplul meu, litera „P“. In mod analog, vă voi arăta comunicarea prin portul serial este un pic ca un apel telefonic:

1. La schimbarea unui apel telefonic, deși, de obicei, ea începe prin a spune „Bună ziua“ sau „Salut.“ Acest mesaj de la început permite deschiderea conversației. Într-adevăr, în cazul în care unul primește un apel și nimeni nu răspunde atunci nu mai este valabil. În standardul RS-232, vom avea o comunicare deschisă cu un bit de start. El este cel care se va angaja în conversație cu apelantul. În RS-232 Standard, este o stare de 0.

2. Apoi, vei începe să vorbești și să dai informațiile dorite. Acest lucru vor fi datele. Elementul principal al conversației (newsletter-ul nostru aici”P”).

3. În cele din urmă, după finalizarea tot ce a avut de spus, terminați conversația un "La revedere" sau "Ceao!" etc. Aceasta încheie conversația. Deci, nu va fi un bit bit de capăt sau de oprire, care va face același lucru pe portul serial. În standardul RS-232 este o stare de 1.

Aplicația progamată în Processing are funcția de a face legătura între toate componentele acestui proiect, anume: citește datele transmise de placa Arduino, procesează valorile primite, ia decizii în funcție de valorile măsurate de radiametrul Pocket Geiger ținând cont și de circumstanțele în care se află tot ansamblul. În caz de detectare a unei anormalități, adică a valorii măsurate, acesta culege toate informațiile necesare, cum ar fi localizarea, data și ora valoarea măsurată, pentru a posta o avertizare pe o rețea de socializare, în cazul nostru Twitter.

Pentru aceste funcționalități s-au folosit mai multe librarii care pot fi grupate în trei categorii mari:

3 librării pentru Twitter

3 librării pentru Arduino

3 librării de bază folosite de Processing.

Comunicarea serială, realizată între senzor și aplicație este modul cel mai simplu de a face legătura intre partea hardware și software.

Fig 2.6 Modul de lucru al comunicării seriale

Ea are câteva avantaje, fata de comunicarea în paralel, începând de la costurile reduse de implementare și pana la transmisia mai rapida a datelor, ceea ce în acest exemplu este foarte important. O conexiune serială necesită mai puține cabluri de interconectare (de exemplu, fire / fibre) și, prin urmare, ocupă mai puțin spațiu. Spațiul suplimentar permite o mai bună izolare a canalului din împrejurimi.

Comunicarea cu placa Arduino în cazul nostru s-a realizat prin librăria ”serial”, care acceptă ca parametri numărul portului serial folosit de Arduino și număr care exprimă rata de transfer între cele două ecosisteme, în cazul nostru 9600. După inițializarea legăturii trebuie să se seteze terminația memoriei intermediare, care în această aplicație a fost caracterul ASCII 10.

Această legătură va permite executarea unei metode prestabilite de fiecare dată când apare o informație nouă de la placa Arduino.

Rețeaua de socializare Twitter

Având în vedere popularitatea rețelelor sociale, una dintre cele mai simple moduri de a partaja măsurile de radiații cu cetățenii este publicarea pe rețelele sociale, cum ar fi Twitter sau Facebook.

Am ales să utilizăm Twitter datorită popularității primite după dezastrul de la Fukushima. Odată cu explozia din ultimii ani a diverselor servicii de socializare pe internet, Twitter a devenit o prezență constantă în viața utilizatorilor de internet din lumea întreagă, determinându-i pe jurnaliștii francezi de la cotidianul Le Monde să alcătuiască un ghid de utilizare a acestuia.

Fig 2.7 Logo Twitter

Cuvântul twitter este un cuvânt englez cu traducerile pălăvrăgeală, agitație, freamăt, și pronunția /ˈtwi.təʀ/, v. AFI. Desemnează atât un sit web fondat în 2006 care permite scrierea și transmiterea de mesaje de maxim 140 caractere (litere) prin Internet, cât și compania care oferă acest serviciu de tip „rețea socială”. Este uneori descris ca fiind "SMS-ul Internetului".

Nu este clar care este numărul utilizatorilor, deoarece compania twitter nu-l face public, dar se estimează că în 2008 au fost circa 4-5 de milioane, iar la mijlocul lui 2009 circa 20-25 de milioane de utilizatori, de acolo încoace nimeni nu mai spune nimic, deși este în plină ascensiune era rețelelor de socializare.

Utilizatorii pot trimite și primi tweet-urile (mesajele de pe situl twitter) prin SMS sau prin aplicații client precum "Tweetie", "Twiterrific", "Twitterfon", "TweeetDeck" sau "feedalizr". Utilizarea prin Internet este gratuită, dar cea prin SMS este uneori contra cost. Sediul companiei este la San Francisco, California, SUA.

Comunicarea este importantă pentru răspunsul de urgență. În urma cutremurului din 2011 și a tsunamiului din Fukushima, Twitter a reprezentat un mediu social important pentru dezintegrarea informațiilor către milioane de oameni din întreaga lume, inclusiv guvernul japonez care împărtășește informațiile de urgență, organizațiile de reintegrare care împărtășesc informații despre adăposturi și cetățenii obișnuiți care au postat știri despre situațiile lor locale.

Temerile legate de radiații au fost de cea mai mare importanță pentru poporul japonez. Cu toate acestea, guvernul japonez și compania Tokyo Electric Power Company (TEPCO), proprietar al fabricii necalificate în Fukushima, au avut dificultăți în a comunica cu aceștia cu privire la riscul asociat. În plus, informațiile disponibile au inclus declarații și revendicări contradictorii și contradictorii. De exemplu, Greenpeace a spus că datele de la propriii săi oameni de știință în mare parte au legătură cu datele oficiale japoneze, în timp ce publicația japoneză de radiodifuziune publică NHK a raportat: "Guvernul japonez a reținut eliberarea datelor care arată că nivelurile de radiații de peste 30 de kilometri Instalația nucleară de la Fukushima a depășit nivelurile sigure. " Răspunsul publicului japonez a fost acela de a începe să ne întrebăm dacă guvernul spune într-adevăr adevărul sau poate acoperi eventualele riscuri care ar putea provoca panică publică.

Fig 2.7 Tweets (https://cacm.acm.org/)

În timp ce guvernul nu a avut niciun control asupra frecvenței cuvintelor sale care au făcut dubiul să crescă, publicul era mai puțin probabil să amplifice informațiile guvernului prin repetarea acestuia. Acesta a reușit să controleze cantitatea și conținutul informațiilor furnizate. În prima perioadă, 1, 47% din mesajele guvernamentale au comunicat calm, în timp ce doar 14% dintre mesajele neguvernamentale returnează comunicarea calmă. În perioada 2, 36% din mesajele guvernamentale au comunicat calm, deși au fost doar 15% din eșantionul neguvernamental.

Frica de o criză a fost larg răspândită în rândul publicului general. Pentru a calma panica potențială, agențiile și sursele guvernamentale pot încerca uneori să rețină sau să amâne emiterea de date negative, în special atunci când sunt implicate propriile reputații și economisirea feței. În timp, guvernul se simte mai puțin nevoit să se liniștească, trecând spre o postură mai alarmată. În timp ce guvernele doresc inițial să evite panica, acestea trebuie să țină în cele din urmă atenția publică și să se concentreze asupra unui eventual pericol.

Rezultatele mai multor cercetări și dezbateri, indică nevoia de reasigurare a mesajelor prin intermediul rețelelor sociale, precum și valoarea lor în comunicarea cu riscuri, deoarece universul micro-blogging are un ton mai alarmat față de media tradițională, acesta este și motivul creerii acestei aplicații, în cazul unui astfel de dezastru, să fie la îndemâna fiecărui cetățean.

Metoda ”tweet” este responsabilă pentru a verifica condițiile necesare postării unui avertisment, asigurând că aceeași postare nu ajunge de mai multe ori pe rețeaua de socializare, având ca și parametru valoare preconfigurată numită frecvență de postare. În cazul în care frecvența nu a fost depășită și valoarea citită de senzor depășește cu mult media valorilor măsurate, se trece la etapa de inițializare a mesajului ce urmează a fi postat. La momentul de față există toate informațiile necesare pentru a transmite o avertizare precisă. Anume: valoarea efectiv măsurată, data și ora și locația exactă. În cazul în care postarea s-a efectuat cu succes se marchează acest moment pentru evitarea postarea repetitivă a aceluiași mesaj. În caz contrar, se va reîncerca postarea după un timp dat.

Cu ajutorul acestei aplicații măsurătorile senzorului, precum și toate datele transmise de GPS Shield, sunt publicate prin Twitter API REST. Acest API are la bază autentificarea folosind metoda OAuth.

OAuth este un standard folosit de aplicații (Twitter) pentru a oferi aplicațiilor client (această aplicație) acces securizat delegat. OAuth funcționează prin protocolul HTTP și autorizează dispozitivele, API-urile, serverele și aplicațiile cu chei de acces.

Există două versiuni ale OAuth: OAuth 1.0a și OAuth2. Aceste specificații sunt complet diferite una de cealaltă și nu pot fi utilizate împreună: nu există o compatibilitate între ele.

OAuth este în esență un protocol care acceptă fluxurile de lucru de autorizare. Acest lucru înseamnă că oferă o modalitate de a asigura că un anumit utilizator are anumite permisiuni de a accesa informații sau de a executa operațiuni.

Protocolul OAuth folosit de Twitter se bazează pe patru chei de acces, generate la momentul în care se creează o nouă aplicație în cadrul interfeței de la Twitter, acestea fiind statice și programate în aplicație.

Autorizarea se realizează printr-un obiect care acceptă ca și parametri cele patru chei, iar apoi este transmis obiectului responsabil pentru postare.

Tweet-uri care conțin măsuri sunt prezentate în Figura 2.8:

Fig 2.8 Exemple de tweet-uri trimise, pe profilul personal

CONCLUZII

Datorita industriei IT, care este într-o continua și puternica dezvoltare, exista o „bătălie” intre aceste companii, care vin cu inovații și dispozitive desprinse de cele mai multe ori din filmele science-fiction, dar de cele mai multe ori cele mai bune și practice idei vin de la oamenii simpli, care cu un buget redus, dar cu o imaginație bogata, reușesc sa implementeze diferite aplicații cu bună utilitate.

Acest exemplu poate fi văzut ca o intrare în lumea obiectelor conectate. Aceasta este o aplicație banală, cost redus, prin care oamenii pot fi informați cu privire la notificările primite la nivelul de radioactivitate în zona în care locuiesc. Toate acestea se realizează prin utilizarea rețelelor sociale care sunt tot mai prezente în viața noastră.

În viitor, abordarea propusă ar putea fi integrat cu platforma web semantic dedicat persoanelor care trăiesc în zone contaminate pe termen lung nuclear. Datele rezultate în urma radiațiilor, precum și măsurile oficiale vor fi stocate, prelucrate, analizate și utilizate pentru a genera niveluri de radiații pe baza de carduri de vizualizare. Alte direcții noi de cercetare includ algoritmi de învățare mașină pentru a înțelege și anticipa modul in care nivelurile de radiații se va modifica în timp, deoarece procesul este influențat de o varietate de factori.

Prin cele prezentate mai sus se poate afirma că Arduino este o alegere perfectă pentru astfel de proiecte, având limbaj de programare open-source si foarte flexibil, fiind de asemenea ușor interconectabil cu alte aplicații prin API-uri.

ANEXE

Codul senzorului Pocket Geiger programat în Arduino

//////////////////////////////////////////////////

// Radiation-Watch.org

// URL http://www.radiation-watch.org/

//////////////////////////////////////////////////

/// Digital I/O PIN Settings ///

int signPin = 2; //Radiation Pulse (Yellow)

int noisePin = 5; //Vibration Noise Pulse (White)

//VCC 5V (Red)

//GND (Blue)

////////////////////////////////

const double alpha=53.032; // cpm = uSv x alpha

int index=0; //Number of loops

char msg[256]=""; //Message buffer for serial output

int signCount=0; //Counter for Radiation Pulse

int noiseCount=0; //Counter for Noise Pulse

int sON=0;//Lock flag for Radiation Pulse

int nON=0;//Lock flag for Noise Puls

double cpm = 0; //Count rate [cpm] of current

double cpmHistory[200]; //History of count rates

int cpmIndex=0;//Position of current count rate on cpmHistory[]

int cpmIndexPrev=0;//Flag to prevent duplicative counting

//Timing Settings for Loop Interval

int prevTime=0;

int currTime=0;

int totalSec=0; //Elapsed time of measurement [sec]

int totalHour=0; //Elapsed time of measurement [hour]

//Time settings for CPM calcuaration

int cpmTimeMSec=0;

int cpmTimeSec=0;

int cpmTimeMin=0;

//String buffers of float values for serial output

char cpmBuff[20];

char uSvBuff[20];

char uSvdBuff[20];

void setup()

{

//Serial setup

//9600bps

Serial.begin(9600);

//PIN setting for Radiation Pulse

pinMode(signPin,INPUT);

digitalWrite(signPin,HIGH);

//PIN setting for Noise Pulse

pinMode(noisePin,INPUT);

digitalWrite(noisePin,HIGH);

//CSV-formatting for serial output (substitute , for _)

Serial.println("hour[h]_sec[s]_count_cpm_uSv/h_uSv/hError");

//Initialize cpmHistory[]

for(int i=0; i<200;i++ )

{

cpmHistory[i]=0;

}

//Get start time of a loop

prevTime = millis();

}

void loop()

{

// Raw data of Radiation Pulse: Not-detected -> High, Detected -> Low

int sign = digitalRead(signPin);

// Raw data of Noise Pulse: Not-detected -> Low, Detected -> High

int noise = digitalRead(noisePin);

//Radiation Pulse normally keeps low for about 100[usec]

if(sign==0 && sON==0)

{//Deactivate Radiation Pulse counting for a while

sON = 1;

signCount++;

}else if(sign==1 && sON==1){

sON = 0;

}

//Noise Pulse normally keeps high for about 100[usec]

if(noise==1 && nON==0)

{//Deactivate Noise Pulse counting for a while

nON = 1;

noiseCount++;

}else if(noise==0 && nON==1){

nON = 0;

}

//Output readings to serial port, after 10000 loops

if(index==10000) //About 160-170 msec in Arduino Nano(ATmega328)

{

//Get current time

currTime = millis();

//No noise detected in 10000 loops

if(noiseCount == 0)

{

//Shift an array for counting log for each 6 sec.

if( totalSec % 6 == 0 && cpmIndexPrev != totalSec)

{

cpmIndexPrev = totalSec;

cpmIndex++;

if(cpmIndex >= 200)

{

cpmIndex = 0;

}

if(cpmHistory[cpmIndex] > 0)

{

cpm -= cpmHistory[cpmIndex];

}

cpmHistory[cpmIndex]=0;

}

//Store count log

cpmHistory[cpmIndex] += signCount;

//Add number of counts

cpm += signCount;

//Get ready time for 10000 loops

cpmTimeMSec += abs(currTime – prevTime);

//Transform from msec. to sec. (to prevent overflow)

if(cpmTimeMSec >= 1000)

{

cpmTimeMSec -= 1000;

//Add measurement time to calcurate cpm readings (max=20min.)

if( cpmTimeSec >= 20*60 )

{

cpmTimeSec = 20*60;

}else{

cpmTimeSec++;

}

//Total measurement time

totalSec++;

//Transform from sec. to hour. (to prevent overflow)

if(totalSec >= 3600)

{

totalSec -= 3600;

totalHour++;

}

}

//Elapsed time of measurement (max=20min.)

double min = cpmTimeSec / 60.0;

if(min!=0)

{

//Calculate cpm, uSv/h and error of uSv/h

dtostrf(cpm / min, -1, 3, cpmBuff);

dtostrf(cpm / min / alpha, -1, 3, uSvBuff);

dtostrf(sqrt(cpm) / min / alpha, -1, 3, uSvdBuff);

}else{

//Devision by zero

dtostrf(0, -1, 3, cpmBuff);

dtostrf(0, -1, 3, uSvBuff);

dtostrf(0, -1, 3, uSvdBuff);

}

//Create message for serial port

/* sprintf(msg, "%d,%d.%03d,%d,%s,%s,%s",

totalHour,totalSec,

cpmTimeMSec,

signCount,

cpmBuff,

uSvBuff,

uSvdBuff

);

*/

//Send message to serial port

sprintf(msg, "%s", uSvBuff);

Serial.println(msg);

}

//Initialization for next 10000 loops

prevTime = currTime;

signCount=0;

noiseCount=0;

index=0;

}

index++;

}

Trimiterea unui tweet

import twitter4j.conf.*;

import twitter4j.auth.*;

import twitter4j.api.*;

import java.util.*;

import processing.serial.*;

import processing.net.*;

import processing.data.*;

import java.net.*;

import java.io.*;

final String IPFIND_KEY = " "; // Find public ip api key

final String OAUTH_CONSUMER_KEY = " "; // Twitter consumer key

final String OAUTH_CONSUMER_SECRET = " "; // Twitter secret key

final String OAUTH_ACCESS_TOKEN = " "; // Twitter access token

final String OAUTH_ACCESS_TOKEN_SECRET = " "; // Twitter secret access token

final int iFrequencyOfPublication = 30; // Min to post at

Serial myPort; // The serial port

String inString; // Input string from serial port

final int lf = 10; // ASCII linefeed

boolean posted = false;

Client oGeoIpClient;

URL;

String sGeoData;

Twitter;

void setup()

{

//size(800,600);

ConfigurationBuilder cb = new ConfigurationBuilder();

cb.setOAuthConsumerKey(OAUTH_CONSUMER_KEY);

cb.setOAuthConsumerSecret(OAUTH_CONSUMER_SECRET);

cb.setOAuthAccessToken(OAUTH_ACCESS_TOKEN);

cb.setOAuthAccessTokenSecret(OAUTH_ACCESS_TOKEN_SECRET);

TwitterFactory tf = new TwitterFactory(cb.build());

twitter = tf.getInstance();

myPort = new Serial(this, Serial.list()[0], 9600);

myPort.bufferUntil(lf);

}

void draw() {

int m = minute();

tweet(m);

}

void serialEvent(Serial p) {

inString = p.readString();

}

String getMyIp() {

String sMyIp = "";

try {

URL oPublicIp = new URL("https://api.ipify.org");

BufferedReader inIp = new BufferedReader(new InputStreamReader(oPublicIp.openStream()));

sMyIp = inIp.readLine(); //you get the public IP as a String

} catch (Exception e) {

System.out.println("Could not fetch public ip");

}

return sMyIp;

}

processing.data.JSONObject getLocation(String sMyIp) {

processing.data.JSONObject oGeoResponse = new processing.data.JSONObject();

try {

String sIpUrl = "https://ipfind.co/?ip=" + sMyIp + "&auth="+IPFIND_KEY;

oGeoResponse = loadJSONObject(sIpUrl); // Get location data based on public ip

} catch (Exception e) {

System.out.println("Could not fetch location");

}

return oGeoResponse;

}

String constructTwitterMessage(processing.data.JSONObject oGeoResponse, String inString) {

float fLatitude = oGeoResponse.getFloat("latitude");

float fLongitude = oGeoResponse.getFloat("longitude");

String sCountry = oGeoResponse.getString("country");

String sCity = oGeoResponse.getString("city");

int iMin = minute();

String sMin = str(iMin);

if (iMin < 10) {

sMin = "0"+sMin; // Trailing 0 for mins < 10

}

String sMessage = "Radioactivity level in " + sCountry

+ ", " + sCity + "(" + str(fLatitude) + ", " + str(fLongitude) + "), at " + year() + "-" + month() + "-" + day()

+ " " + hour() + ":" + sMin + " is : " + trim(inString) + " uSv/h, #PocketGeiger #Arduino #Processing";

return sMessage;

}

Boolean shouldPost(String inString, int m) {

return m%iFrequencyOfPublication==0 && inString!=null && float(trim(inString)) > 0.00;

}

void tweet(int m) {

if (!posted && shouldPost(inString, m)) {

try

{

processing.data.JSONObject oGeoResponse = getLocation(getMyIp());

posted=true;

Status = twitter.updateStatus(constructTwitterMessage(oGeoResponse, inString)); // Construct message to post to twitter

System.out.println("Status updated to [" + status.getText() + "].");

}

catch (Exception te)

{

System.out.println("Error: "+ te.getMessage());

posted = false;

}

}

}

BIBLIOGRAFIE

A. Segault, F. Tajariol, and I. Roxin, “#geiger : Radiation Monitoring Twitter Bots for Nuclear Post-Accident Situations,” in Proceedings of the ISCRAM 2015 Conference, Kristiansand, Norway, 2015

A. Zimcea – Analiza rețelelor sociale, 2012

Cranganu, C., H. Luchian and M. E. Breaban (Eds) – Artificial Intelligent Approaches in Petroleum Geosciences, Springer, 2015

Eskimon O. – Arduino: Premiers pas en informatique embarquée, Zeste de Savoir, Februarie, 2016

I. Roxin, L. Cotfas, H. Dărăștean, A. Stan – An Internet of Things solution for radioactivity environmental monitoring, IE Conference, Cluj-Napoca, 2016.

Jim Green, “Building the Internet of Things,” presented at the IoT World Forum, Chicago, Illinois, USA, 2014.

Larry Cuba, “Calculated Movements,” in Prix Ars Electronica Edition ’87: Meisterwerke der Computerkunst

L.-A. Cotfas, C. Delcea, I. Roxin, and R. Paun – “Twitter Ontology-Driven Sentiment Analysis,” in New Trends in Intelligent Information and Database Systems, D. Barbucha, N. T. Nguyen, and J. Batubara, Eds. Springer International Publishing, 2015

M. Curilă, S. Curilă – Programarea în C și C++, Editura Universității din Oradea, 2008

M. Curilă, S. Curilă – The programming of virtual reality, Editura Universității din Oradea, 2009

Shiffman D. – Learning Processing, Morgan Kaufmann, USA, 2008

Reas C., Fry B. – Processing: a programming handbook for visual designers and artists, The MIT Press, 2007

Savu, D. Moșteanu, Bazele decontaminării chimice, biologice și radioactive, Sibiu, Editura Academiei Forțelor Terestre „Nicolae Bălcescu”, 2010.

WEBOGRAFIE

http://arduino.cc

http://www.armyacademy.ro/biblioteca/CARTI/stiinte_teh/mosteanu1/a2.pdf fig 1.1

http://processing.org/reference

http://dev.twitter.com/documentation

http://blog.blprnt.com/blog/blprnt/updated-quick-tutorial-processing-twitter

https://www.postscapes.com/internet-of-things-protocols/

https://en.wikipedia.org/wiki/Internet_of_things

https://www.scribd.com/presentation/199801961/Internet-of-Things

http://www.mckinsey.com/industries/semiconductors/our-insights/internet-of-things-opportunities-and-challenges-for-semiconductor-companies

https://princesoni1989.gitbooks.io/twitter/content/twitauth.jpg

Similar Posts