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

Analoge sensoren lezen met Raspberry Pi en Zabbix Supervisor

Analoge sensoren lezen met Raspberry Pi als interface

De Raspberry Pi heeft geen ingebouwde analoge ingangen, wat betekent dat het een beetje lastig is om veel van de beschikbare sensoren te gebruiken. We hebben een A/D-interface nodig die eenvoudig te configureren is in de RPi en de MCP3008 is het antwoord.

De MCP3008 is een 10bit 8-kanaals analoog-naar-digitaal converter (ADC). Het is goedkoop, eenvoudig aan te sluiten en vereist geen extra componenten. Het maakt gebruik van het SPI-busprotocol dat wordt ondersteund door de GPIO-header van de Pi.

In dit artikel wordt uitgelegd hoe u een MCP3008-apparaat gebruikt om 8 analoge ingangen te leveren die u kunt gebruiken met een reeks sensoren. In het onderstaande voorbeeldcircuit gebruik ik een MCP3008 om een ​​lichtsensor uit te lezen en het licht in Zabbix te regelen/bewaken.

De hardware:

  • Raspberry Pi
  • MCP3008 8-kanaals ADC
  • Lichtafhankelijke weerstand (LDR)
  • 10 Kohm-weerstand
  • Broodplank
  • Enkele bedrading

SPI-bus

De MCP3008 leest de analoge waarde en geeft een 10-bits getal dat wordt verzonden door de SPI-bus.
De seriële perifere interface-bus of SPI-bus is een synchrone seriële datalinkstandaard die in full-duplex-modus werkt.

Apparaten communiceren in master/slave-modus waarbij het masterapparaat het dataframe initieert. Meerdere slave-apparaten zijn toegestaan ​​met individuele slave-selectielijnen.

Soms wordt SPI een vierdraads seriële bus genoemd, in tegenstelling tot drie-, twee- en eendraads seriële bussen. SPI wordt vaak SSI (Synchronous Serial Interface) genoemd.

Om hardware-SPI op de RPi in te schakelen, moeten we een wijziging aanbrengen in een van de systeembestanden:

sudo nano /etc/modprobe.d/raspi-blacklist.conf

Voeg een '#'-teken toe voor de regel spi-bcm2708. Gebruik CTRL-X, dan Y, dan Return om het bestand op te slaan en af ​​te sluiten. Start opnieuw op met behulp van het volgende:

sudo opnieuw opstarten

Voer de volgende opdracht uit om te controleren of de wijziging heeft gewerkt:

lsmod

U zou "spi_bcm2708" in de uitvoer moeten zien staan.

Installeer Python SPI Wrapper

In dit project gaan we Python gebruiken en om gegevens van de SPI-bus in Python te lezen, kunnen we een bibliotheek met de naam 'py-spidev' installeren. Om het te installeren moeten we eerst 'python-dev' installeren:

sudo apt-get install python-dev

Om het af te maken kunnen we 'py-spidev' downloaden en klaar voor gebruik compileren:

mkdir py-spidevcd py-spidevwget https://raw.github.com/doceme/py-spidev/master/setup.pywget https://raw.github.com/doceme/py-spidev/master/spidev_module .csudo python setup.py installeren
MCP3008 RPi
VDD 3,3V
VREF 3,3V
AGND GROND
CLK GPIO11 (P1-23)
DOUT GPIO9 (P1-21)
DIN GPIO10 (P1-19)
CS GPIO8 (P1-24)
DGND GROND

De CH0-CH7-pinnen zijn de 8 analoge ingangen.

Lichtafhankelijke weerstand

Ik koos voor een LDR EG &G Vactec, VT43, CdS, 8 Ω tot 300 KΩ . Onder normale verlichting is de weerstand ongeveer 10Kohm, terwijl deze in het donker toeneemt tot meer dan 2Mohm.

Als er veel licht is, heeft de LDR een lage weerstand waardoor de uitgangsspanning naar 0V daalt.

Als het donker is, neemt de LDR-weerstand toe, waardoor de uitgangsspanning stijgt naar 3,3V. In dit project is een LDR gebruikt, maar elk apparaat dat zijn weerstand verandert, afhankelijk van een bepaald fenomeen, kan worden gebruikt en bedraad in het te besturen IC.

De gegevens lezen

De ADC is 10 bit en kan dus een reeks getallen van 0 tot 1023 (2 tot de macht 10) rapporteren. Een uitlezing van 0 betekent dat de ingang 0V is en een uitlezing van 1023 betekent dat de ingang 3,3V is. Ons bereik van 0-3,3 V zou gelijk zijn aan een bereik van 0-10000 Lux.

Voor meer details:Analoge sensoren lezen met Raspberry Pi en Zabbix Supervisor


Productieproces

  1. Meet temperaturen met een 1-draads DS18B20-sensor en Raspberry Pi
  2. Kamertemperaturen bewaken met een Raspberry Pi en Nagios
  3. Temperatuur aflezen met DS18B20 | Raspberry Pi 2
  4. Thuis (kamer) temperatuur- en vochtigheidsmonitor met webgebaseerde grafiek - Raspberry Pi
  5. Temperatuur meten met RASPBERRY PI
  6. Kamertemperaturen bewaken met Moteino's en Raspberry Pi
  7. Temperatuur bewaken met Raspberry Pi
  8. 433MHz Smart Home Controller met Sensorflare en een RaspberryPi
  9. Analoge sensoren uitlezen met één GPIO-pin
  10. Analoge sensoren zonder analoge ingangen op de Raspberry Pi
  11. Maak binnen enkele minuten een branddetector met Samsung SAMIIO, Arduino UNO en Raspberry Pi