Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Temperatuurmeting voor laboratorium- en wetenschappelijke projecten

Inleiding

Elk laboratorium (thuis, kantoor, school) heeft temperatuurmetingen nodig. Het meten van temperatuur voor wetenschappelijke experimenten is moeilijk - er kunnen allerlei materialen, vloeistoffen en chemicaliën bij betrokken zijn of er moet een groot temperatuurbereik worden afgedekt. De sensor die hiervoor wordt gebruikt (een thermokoppel) is niet eenvoudig te koppelen, en de sensorversterker is niet triviaal omdat hij een extreem kleine spanning moet kunnen meten.

Voor flexibiliteit in de wetenschappelijke experimenten waarvoor het kan worden gebruikt, is een hoge nauwkeurigheid nodig, samen met een snelle respons en een goede updatesnelheid. Het spreekt voor zich dat gegevens in een handige vorm moeten worden vastgelegd en gemakkelijk te gebruiken moeten zijn.

Voor het gemak zijn er kant-en-klare producten voor temperatuurmeting en logging, soms zijn ze niet gemakkelijk te gebruiken vanwege overbelasting van de soft-knop en een beperkt display. Bovendien moet voor groot laboratorium- of klaslokaal informatie worden vastgelegd en gemakkelijk door mensen kunnen worden opgehaald - en misschien de huidige status op een groot scherm bekijken. Het spreekt ook voor zich dat sommige experimenten lang kunnen duren, dus de mogelijkheid om uw experiment tijdens de lunch met een mobiele telefoon te controleren, is ook handig. Een laatste vereiste was dat dit eenvoudig te bouwen moest zijn, zelfs voor mensen die nieuw zijn in elektronica en software.

Dit project laat zien hoe je een thermokoppelbord aansluit op een Raspberry Pi (RPI) en het gebruikt voor temperatuurmeting en logging met geweldige prestaties en ultralage kosten. Dit project is eenvoudig - solderen is niet nodig, tenzij je dat wilt. Dit is ook een geweldig project om de 'DIL (dual-in-line) header'-connector op de RPI te gaan gebruiken als je dat nog niet hebt gedaan.

Ontwerpoverzicht

Veel op thermokoppels gebaseerde hobbyprojecten gebruiken de MAX31855 geïntegreerde schakeling en kant-en-klare 'thermokoppelversterker'-kaarten zijn verkrijgbaar voor aansluiting op de RPI van verschillende leveranciers. Dit project gebruikt echter de veel hogere resolutie ADS1118 van Texas Instruments. Het wordt geleverd in een opbouwpakket, maar gelukkig is er een kant-en-klaar ADS1118-ontwikkelbord beschikbaar dat alle circuits bevat, inclusief een LCD-scherm en thermokoppel - het is een extreem goede prijs-kwaliteitverhouding. Als je geen zin hebt om te solderen, dan is het mogelijk om dit bord aan te sluiten op de Raspberry Pi (of een ander computerbord - het gebruikt een op standaarden gebaseerde communicatiemethode genaamd Serial Peripheral Interface of SPI) met behulp van acht jumperdraden (man-naar- vrouwelijke kabels zijn nodig). Als alternatief, als u een soldeeroefening niet erg vindt, kan een klein adapterbord worden geconstrueerd. Dit was de aanpak die hier werd gevolgd. Samenvattend kun je op de onderstaande foto alle bits zien die voor dit project zijn gebruikt, inclusief het gemonteerde adapterbord.

Het hele project kan worden bestuurd via een webbrowser of vanaf de opdrachtregel.

Om de adapterkaart te bouwen, is de eenvoudigste manier om een ​​printplaat te gebruiken; met behulp van EAGLE-software heb ik een ontwerp gemaakt waarvan de bestanden aan dit bericht zijn toegevoegd, klaar om naar een PCB-fabrikant te sturen (het kost ongeveer $ 30 voor tien borden).

Als alternatief kan een prototypebord worden gebruikt; Ik kreeg wat perf-board (het type met geïsoleerde pads, geen stripboard) en sneed het op maat. Er werd een gat van 3 mm geboord voor het bevestigen van een steunpilaar (zeskantafstandhouder met schroefdraad). De platen bevinden zich naast elkaar, niet op elkaar, om temperatuurveranderingen en geluidsproblemen tot een minimum te beperken, die beide een effect zouden hebben op de thermokoppelaflezing.

Ik wilde de mogelijkheid hebben om het ADS1118-bord op de pad-zijde van het perf-board aan te sluiten, dus er is hier een kleine complicatie. De oplossing was om gebogen SIL-headers te gebruiken. 10-way SIL-headers zijn nodig (de foto toont 8-way, wat ik bij de hand had) - of gebruik oppervlaktemontage-headers die vergelijkbaar zijn, maar met de gebogen uiteinden aan weerszijden. Als u een printplaat gebruikt en geen perf-board, dan zijn rechte SIL-headers nodig.

Om ze uitgelijnd te krijgen, steekt u ze in het ADS1118-bord en plaatst u het over het perf-board en plakt u een paar pinnen vast met soldeer. Vervolgens kan het ADS-bord heel voorzichtig worden losgekoppeld en kunnen de SIL-headers vervolgens goed worden gesoldeerd. Merk op dat het in dit stadium vrij moeilijk is om de stekker uit het stopcontact te halen zonder de pads van het bord te scheuren. Houd het gebogen deel van de SIL-headers tegen het bord terwijl u het ADS1118-bord loskoppelt.

Om de SIL-headers zeer veilig te maken, soldeert u vervolgens elke pin aan zoveel mogelijk pads (elk kan worden gesoldeerd aan drie pads).

Raadpleeg de onderstaande foto met pinnummering en de volgende tabel om de aansluitingen te identificeren:

+ open sourceview uitvouwen
  1. * Verbindingen:
  2. * TI board       RPI B+
  3. * ————   ——————
  4. * P1_1  VCC      1     3,3 V
  5. * P1_7  CLK      23    CLK
  6. * P1_8  ADS_CS   26    SPI_CE1
  7. * P2_8  LCD_CS   24    SPI_CE0
  8. * P2_9  LCD_RS   11    GPIO_17_GEN0
  9. * P2_1  GND      9     GND
  10. * P2_6  SIMO     19    MOSI
  11. * P2_7  SOMI     21    MISO

Na het testen van de software en de boardfunctionaliteit, is het mogelijk om wat epoxyharslijm (bijv. Araldite) te gebruiken om de SIL-headers nog veiliger te maken. Er werd een minimale hoeveelheid gebruikt, zodat het in de toekomst mogelijk was om de pinnen nog zo goed als te solderen als dat nodig zou zijn.

Met de eerder genoemde PCB-aanpak, wanneer de PCB arriveert, kunnen de header-pinnen en de houder worden gesoldeerd, en het is een gemakkelijke taak (duurt vijf minuten), dus de PCB is de voorkeursmethode, vooral als u er veel van moet maken (ik van plan om er meerdere te maken). Ik heb DIL-headerpinnen gebruikt in plaats van SIL, maar beide werken met de PCB-lay-out die aan dit bericht is gekoppeld.

Software

Het diagram hier toont het volledige oplossingsoverzicht. Het grootste deel van de code bevindt zich in drie bestanden. De code die aansluit op het ADS1118-bord wordt eerst besproken, omdat het mogelijk is om deze code desgewenst standalone uit te voeren. Het wordt in paars weergegeven in het diagram.

Om de software te maken, moet u eerst een logo maken:

+ open sourceview uitvouwen
  1. /********************************************* ********************************************** ***
  2. * therm.c
  3. * RPI <-> 430BOOST-ADS1118 Thermokoppel/LCD Board
  4. *
  5. *         __                                __     ____   _____
  6. *   ____ | | ____   _____   ____   _____/  |_  /_   | /  | |
  7. * _/ __ \| | _/ __ \ /     \_/ __ \ /    \   __\  | |/   | |_
  8. * \  ___/| |_\  ___/| J Y  \  ____/| | \  | | /    ^   /
  9. *  \___  >____/\___  >__|_| /\___  >___| /__| |___\____   |
  10. *      \/          \/      \/     \/     \/                 |__|
  11. *

De volgende stap is om gebruik te maken van de rijkdom aan code die TI gewoonlijk biedt. In dit geval had TI al ADS1118-code van hoge kwaliteit, bedoeld voor de MSP430 Launchpad, die opnieuw kon worden gebruikt. Het is enigszins aangepast om bruikbaar te zijn op de RPI, met behulp van input/output (I/O) code van Gert van Loo en Dom.

Temperatuurmeting lijkt misschien een gemakkelijke taak (lees een ADC-waarde en zet deze om in temperatuur), maar thermokoppels vereisen 'cold junction-compensatie', wat in het geval van de ADS1118 betekent dat ook een interne temperatuursensor wordt uitgelezen. De code is tussen het lezen van de interne sensor en het externe thermokoppel. Een ander belangrijk punt is dat de output van een thermokoppel niet lineair is in vergelijking met de temperatuur; Fabrikanten van thermokoppels publiceren gegevens die kunnen worden gebruikt om een ​​nauwkeurigere conversie van de ADC-waarde naar de werkelijke temperatuur te krijgen. De TI-code bevat deze mogelijkheden al voor het meegeleverde thermokoppel.

De code is aangepast om logging-mogelijkheden toe te voegen. Aangezien het bord moet worden gevoed door de luidruchtige 3,3 V-voeding van de RPI en zich in de buurt van de RPI bevindt, moeten enkele stappen worden genomen om ervoor te zorgen dat de meting wordt opgeruimd. Het geïmplementeerde algoritme leest elke seconde de interne temperatuursensor één keer en het externe thermokoppel tien keer in een korte burst (in totaal een paar honderd milliseconden), zodat de metingen kunnen worden gemiddeld en uiteindelijk worden uitgevoerd met een resolutie van 0,1 graad C. Het eindresultaat was erg goed; bekijk hier enkele voorbeelduitvoer.

Het LCD-scherm heeft twee regels van 16 tekens, dus werd besloten om de onderste regel te gebruiken om de tijd en de huidige thermokoppeltemperatuur weer te geven. De bovenste regel is gebruikersafhankelijk; het kan ergens op worden ingesteld, zodat mensen meteen weten waar het experiment over gaat. Er kan bijvoorbeeld 'Test #1' of 'Niet aanraken' op staan.

Het gebruik van de code is eenvoudig.

Controleer eerst of sommige functies zijn ingeschakeld op de RPI. Als de RPI vers wordt gebruikt, zorg er dan na de installatie van het besturingssysteem voor dat de 'Geavanceerde ’ menu-optie is geselecteerd en schakel vervolgens drie dingen in:SSH , SPI en I2C - we gebruiken deze niet allemaal voor dit project, maar het zijn op standaarden gebaseerde interfaces die altijd moeten worden ingeschakeld, tenzij u de RPI nooit van een monitor wilt loskoppelen of geen gebruik wilt maken van de 40-polige DIL-connector op de RPI. Als dit niet is gedaan na de installatie van het besturingssysteem, typt u raspi-config in een tekstvenster (ook bekend als een opdrachtshell) op de RPI en selecteer vervolgens 'Geavanceerd ’ in het menu dat verschijnt.

Ervan uitgaande dat de drie bovengenoemde functies zijn ingeschakeld, maakt u een map voor uw werk buiten uw thuismap (bijv. maak een map met de naam ontwikkeling en dan een submap genaamd therm ) en kopieer de broncode (bijgevoegd bij dit bericht) in die submap.

Om het codetype te compileren:

+ open sourceview uitvouwen
  1. gcc -o therm therm.c -lrt

De code is nu klaar om te worden uitgevoerd. Er zijn een paar manieren om dit project te gebruiken. Een manier is om gewoon opdrachten in de opdrachtshell te typen. Een andere manier is om een ​​webbrowser te gebruiken. Deze twee methoden worden hierna besproken.

Opdrachtinterface

De code kan worden uitgevoerd met 'sudo ’ of als superuser (root) gebruiker.

Voor de laatste, om root-gebruiker te worden, typt u eerst sudo passwd root één keer en maak een superuser-wachtwoord (d.w.z. root-gebruiker). Nu, wanneer je superuser wilt worden, typ je gewoon 'su ' en voer dat wachtwoord in. Typ 'exit . om op elk moment de superuser-privileges te beëindigen ‘. Sommige mensen geven de voorkeur aan sudo, anderen vinden het een onnodige handboei.

Voor meer details:temperatuurmeting voor laboratorium- en wetenschappelijke projecten


Productieproces

  1. ADI:impedantie &potentiostaat AFE voor biologische en chemische detectie
  2. Toegangscontrole met QR, RFID en temperatuurverificatie
  3. Python- en Raspberry Pi-temperatuursensor
  4. Eenvoudige temperatuur en vochtigheid op Raspberry Pi
  5. DIY:temperatuurbewaking en -regeling voor HomeBrew
  6. Raspberry Pi temperatuur- en lichtsensor
  7. Test- en meetapparatuur (T&M) die u nodig heeft voor een thuislaboratorium
  8. Temperatuur- en vochtigheidsdatalogger
  9. Temperatuurmeting automatisch en spraakinformatie
  10. SMART temperatuurbewaking voor scholen
  11. Gerecycleerde materialen vinden voor technische projecten op scholen en universiteiten