06. Verkabelung - pan0ne/CO2-Ampel GitHub Wiki
Verkabelung
Stromversorgung
Der MCU wird mit 5v/GND vom Batterieboard über PIN Vin/GND versorgt. Ebenso muss auch der CO2 Sensor mit 5V versorgt werden. Dafür werden ein paar Y Kabel gebaut um die Stromversorgung unter den USB Anschluspins anzuzapfen und an MCU und CO2-Sensor zu verteilen. Die Neopixel (geringe Anzahl an Pixel < 8 vorrausgesetzt) und der BME680 werden mit 3V verbunden. Der MCU stellt dafür genug Schnittstellen zur Verfügung.
Schnittstellen
Der BME680 benutzt die I²C Schnittstelle. Bezeichnung auf dem MCU oft direkt mit SDA/SCL. Auf dem BME680 variert die Bezeichnung. SDA = SDI / SCK = SCI Für den MH-Z19b CO2 Sensor wird in diesem Projekt die UART Schnittstelle über RX/TX benutzt. Wichtig ist, dass die Leitungen gekreuzt werden müssen. RX -> TX / TX -> RX
Eine kurze Erläuterung zu den Schnittstellen befindet sich am Ende dieser Seite.
Kabelfarben:
- 5V / GND = rot/schwarz
- 3.3V / GND = weiß/schwarz
- i2c sda = blau
- i2c sck = grün
- Seriell RX Sensor zu TX PIN MCU = orange
- Seriell TX Sensor zu RX PIN MCU = gelb
- Neopixel = lila
Wiring/Verkabelung:
BME680 | Heltec | ESP8266 |
---|---|---|
3,3V | 3,3V | 3,3V |
GND | GND | GND |
SDA | 22 | D2 |
SCL | 21 | D1 |
MH-Z19B | Heltec | ESP8266 |
---|---|---|
5V | 5V | Vin |
GND | GND | GND |
TX | RX PIN | D6 |
RX | TX PIN | D7 |
Neopixel WS2812 | Heltec | ESP8266 |
---|---|---|
GND | GND | GND |
Din | 25 | D4 |
3,3V | 3,3V | 3,3V |
Anschlussdiagramm
Schema für ESP8266 (Amica NodeMCU v2)
Was ist eigentlich:
MCU Als Mikrocontroller (auch µController, µC, MCU oder Einchipmikrorechner) werden Halbleiterchips bezeichnet, die einen Prozessor und zugleich auch Peripheriefunktionen enthalten. In vielen Fällen befindet sich auch der Arbeits- und Programmspeicher teilweise oder komplett auf demselben Chip. Ein Mikrocontroller ist ein Ein-Chip-Computersystem. Für manche Mikrocontroller wird auch der Begriff System-on-a-Chip oder SoC verwendet. Mikrocontroller werden oft in den Programmiersprachen C oder C++, Lua (etwa NodeMCU) oder MicroPython programmiert.
GPIO = General Purpose Input/Output Ein GPIO (für engl. General Purpose Input/Output, wörtlich Allzweckeingabe/-ausgabe) ist ein allgemeiner digitaler Kontaktstift an einem integrierten Schaltkreis (IC), dessen Verhalten, unabhängig, ob als Eingabe- oder Ausgabekontakt, durch logische Programmierung frei bestimmbar ist. GPIO-Kontakten ist kein Zweck vorgegeben, sie sind daher standardmäßig unbelegt. (Quelle: Wikipedia)
Der I2C Bus I2C (Inter-Integrated Circuit) ist ein On-Board-Kommunikationsprotokoll, das ideal für kurze Distanzen und geringe Bandbreite ist. Es hat eine Master-Slave-Architektur, in der alle Slaves über zwei Leitungen mit dem Master verbunden sind: die serielle Datenleitung (SDA) und die serielle Taktleitung (SCL). I2C wird typischerweise zum Anschluss von Peripheriegeräten mit niedrigerer Geschwindigkeit, wie Sensoren an Prozessoren und Mikrocontrollern über kurze Strecken, innerhalb einer integrierten Schaltung verwendet. Das I2C-Protokoll definiert, wie Daten gesendet werden. Zu Beginn gibt der Master eine Startbedingung aus, gefolgt von der Adresse des Slave-Geräts, mit dem er kommuniziert. Sobald der entsprechende Slave seine Adresse identifiziert hat, sucht er nach dem fortschreitenden Lese / Schreib-Flag, das vom Master ausgegeben wurde. Dieses Flag teilt dem Slave mit, ob er Daten empfangen oder Daten senden kann. Sobald der Slave den Master bestätigt hat, wird die Kommunikation fortgesetzt. Ein Merkmal von I2C ist das eingebaute Prüfsystem: Jedes Datenbyte wird vom Empfänger entweder mit ACK oder NAK bestätigt, um dem Sender zu signalisieren, ob die Daten empfangen wurden oder nicht. Sobald der Master die Kommunikation mit dem adressierten Slave beendet hat, gibt er eine Stoppbedingung aus, um das Ende der Übertragung zu signalisieren. Nach der Stopp-Bedingung kann die Kommunikation mit anderen Slave-Geräten beginnen.
Der SPI-Bus Das Serial Peripheral Interface (SPI) ist ein weiteres serielles Kommunikationsprotokoll, das in eingebetteten Systemen häufig verwendet wird. Wie I2C, hat es auch eine Master-Slave-Architektur, aber es ist ein 4+ Wire-Bus. SPI benötigt eine Taktleitung (SCK), zwei Datenleitungen zur bidirektionalen Übertragung von Daten, die als MOSI- und MISO-Leitungen bekannt sind. Zusätzlich muss für jeden Slave am Bus eine Slave-Select-Leitung (SS) vorhanden sein. Anstatt ein Adressierungssystem wie I2C zu verwenden, werden mehrere Slaves vom Master über die Slave-Auswahlleitungen gesteuert. Dies ist ein sehr einfaches Protokoll mit nahezu keinem Overhead, was es ideal für Streaming-Anwendungen macht - Daten können mit sehr hohen Raten verschoben werden, da die Vollduplex-Charakteristik SPI zu einem sehr effizienten Protokoll macht. (Quelle: https://evision-webshop.de/Total-Phase-Knowledge-Base/Promira/I2C-vs-SPI-Protokoll-Analysatoren-Unterschiede-und-Aehnlichkeiten)
1-Wire bzw. One-Wire oder Eindraht-Bus beschreibt eine serielle Schnittstelle der Firma Dallas Semiconductor Corp. (heute Maxim Integrated), die mit einer Datenader (DQ) auskommt, die sowohl als Stromversorgung als auch als Sende- und Empfangsleitung genutzt wird. Der Begriff 1-Wire ist irreführend, weil zudem noch eine Masse-Verbindung (GND) erforderlich ist. Diese Masseverbindung wird bei Knopf-förmigen Anordnungen über eine gegenseitige Isolation der Gehäusehälften erreicht. Tatsächlich werden immer zwei physische Leiterverbindungen benutzt (GND, DQ). Verfügbar sind integrierte Bausteine zur Temperaturmessung, Akkuüberwachung, Echtzeituhr, kleine Speicher etc. Die Technik wurde zur Kommunikation zwischen den Komponenten eines Gerätes entwickelt, z. B. zur Erfassung des Akkuzustandes in einem mobilen Datenerfassungsgerät (MDE). (Quelle: Wikipedia)
UART - Universal Asynchronous Receiver Transmitter Der Universal Asynchronous Receiver Transmitter bezeichnet eine elektronische Schaltung, die digitale serielle Schnittstellen realisiert. Sie dient dazu, Daten über eine Datenleitung zu senden oder zu empfangen und bildet heutzutage den Standard der seriellen Schnittstellen an PCs und Mikrocontrollern. Ebenso ist er im industriellen Bereich mit verschiedenen Interfaces sehr verbreitet. Der UART kann ein dabei ein eigenständiges Bauteil oder lediglich ein Funktionsblock eines höher integrierten Bauteils sein. Die serielle Kommunikation an den Pins TX / RX verwendet TTL-Logikpegel (5 V oder 3,3 V je nach Board). Verbinde diese Pins nicht direkt mit einer seriellen RS232-Schnittstelle. Sie arbeiten mit +/- 12 V und können dein Arduino-Board beschädigen.