====== Funkkommunikationslösungen mit Arduino ====== {{ :wiki:arduino:si4463.png?180|HC-12 433 MHz drahtloses serielles Kommunikationsmodul}} ===== HC-12 433 MHz drahtloses serielles Kommunikationsmodul ===== {{anchor: hc12}} Der HC-12 ist ein serielles Übertragungsmodul, das im ISM-Bereich von 433,4 bis 473,0 MHz arbeitet und idealerweise eine Reichweite von 1 km bietet. Ein "SI4463" IC ist in das Modul integriert. Die Module HC-11 und HC-12 sind nicht miteinander kompatibel, sie können nur mit demselben Paartyp arbeiten. ==== HC-12 Spezifikationen ==== **Stromversorgung:** 3,2 V .. 5,5 V (bei einer permanenten Versorgungsspannung von mehr als 4,5 V ist es ratsam, die Stromversorgung mit einer Diode zu schützen) \\ **Reichweite:** 600 m im offenen Bereich, idealerweise 1 km \\ **Datenübertragungsrate:** 1,2 Kbit / s .. 115,2 Kbit / s (Standard 9,6 Kbit / s) \\ **Mindeststromaufnahme:** 16 mA \\ **Frequenzbereich:** 433,4 .. 473,0 MHz, bis zu 100 Kanäle für die Kommunikation verfügbar \\ **Maximale Sendeleistung:** 100 mW (einstellbar) \\ **Empfangsbereich (Leistung):** -117dBm .. -100dBm \\ **Übertragungsbereich (Leistung):** -1 dBm .. 20 dBm \\ **Werkseitige Standardeinstellungen:** FU3-Modus, Datenrate 9600 Bit / s, CH001-Kommunikationskanal (433,4 M) \\ ==== HC-12 Pinbelegung ==== {{:wiki:arduino:si4463_pins.png|HC-12 Pinbelegung}} ^Pin^Name^Beschreibung| |SET|Einstellung|LOW aktiv, siehe "Befehlssatz" unten| |TxD|Senden|output pin| |RxD|Empfangen|Eingangspin| |GND|Grund|grund| |Vcc|Stromversorgung |3.2 .. 5.5 V | |ant1|PCB-Antenne|| |ant2|lötbare Antenne|| ==== HC-12-Verdrahtung ==== {{:wiki:arduino:si4463_wiring.png|HC-12-Verdrahtung}} ==== AT Befehlssatz ==== Die Befehle bleiben auch nach dem Ausschalten erhalten. ^Befehl + Parameter^ Name^Beschreibung| | AT | Test | Wenn ein Modul nur einen AT-Befehl empfängt, muss es mit "OK" antworten. | AT + Bxxx | Geschwindigkeitseinstellung | Optionen: 1200 Bps, 2400 Bps, 4800 Bps, 9600 Bps, 19200 Bps, 38400 Bps, 57600 Bps und 115200 Bps. Werkseinstellung: 9600bps. \\ Befehlsformat, z.B. für 19200 bps: "** AT + B19200 **" | | AT + Cxxx | Funkkanal wechseln | Parameter können zwischen 0 und 127 variieren. Standard: 1 (433,4 MHz). Zwischen den Kanälen besteht ein Abstand von 400 kHz. CH100 ist 473,0 MHz. \\ Befehlsformat "** AT + C021 **" (441,4 MHz) Bestätigungsformat: "** OK + C021 **" | | AT + FUx | Auswahl des Kanalwechselmodus | Der Parameter kann sein: FU1, FU2 oder FU3. Der Standardmodus des Moduls ist FU3. \\ Beispiel: "** AT + FU1 **", die Antwort lautet "** OK + FU1 **" | | AT + Px | Leistungspegeleinstellung | 1: -1 dBm, 2: 2 dBm, 3: 5 dBm, 4: 8 dBm, 5: 11 dBm, 6: 14 dBm, 7: 17 dBm, 8: 20 dBm. Standardmaximalleistung: 8 \\ Beispiel: "** AT + P5 **", die Antwort lautet "** OK + P5 **" | ==== HC-12 Software ==== Github: https://github.com/al177/hc12pj oder ganz einfach: #include SoftwareSerial hc12(6, 5); void setup() { pinMode(7,OUTPUT); digitalWrite(7,LOW); // AT Befehl-mode Serial.begin(9600); hc12.begin(9600); hc12.print(F("AT+C001")); // Erste Kanal setzten (default) delay(100); digitalWrite(7,HIGH);// Übertragungsmodus } void loop() { if(Serial.available()) hc12.write(Serial.read()); if(hc12.available()) Serial.write(hc12.read()); }