Schritt 14: Master und Slave (I²C)
Es gibt drei Gründe, warum ich den Controller als Master und Slave eingerichtet haben:
- Erstellen einen "Schlafmodus", so dass Energie gespart wird.
- Um sicherzustellen, dass die Daten von Wind und Regen durch den langsameren Kommunikation mit dem GPRS-Modul nicht unterbrochen werden. Einrichten der GPRS scheint ungefähr 20 Sekunden dauern.
- Zuverlässigkeit: Manchmal stürzt der Mega 2560.
Der wichtigste Grundsatz für diese Kommunikation verwendet wird genannt I²C, (Inter-Integrated Circuit), ausgeprägte ich-squared-C, das hier ist gut dokumentiert:
https://www.Arduino.CC/en/Tutorial/MasterWriter
In meinem Code verbringt der 328 P 10 Minuten in 5-Sekunden-Intervallen am Ende davon, dass Daten über I²C an das Arduino Mega 2560 Board für Nachlieferung zum Internet via GPRS etc. sendet Daten zu sammeln. Der Code hierfür ist ganz einfach, solange die Ganzzahlen jeweils weniger als 255 sind. Das bedeutet absolut keine Nachkommastellen und wir können einen Wert z. B. 270 für die Windrichtung senden. All dies ist ein Problem, da wir die Wind-Winkel z.B. in einfachen Zahlen ändern. 4 == 180 Grad.
Hier ist ein Code-Ausschnitt für die Draht-Übertragung:
Hier ist ein Codeauszug für den Empfang der Daten über die Mega 2560: