LoRa Packet Forwarder JSON Daten
25.12.2024
Elektronik | Funk | Software
Der Technik-Blog
Hinweis (9. März 2020): Es gab in den letzten Wochen einige Rückmeldungen, dass der Beispielcode vom Sender nicht mehr funktioniert. Zwar lässt sich das Programm mit der Bibliothek im Arduino IDE ohne Fehler kompilieren, aber der Mikrocontroller reagiert nach kurzer Zeit nicht mehr. Sobald neue Erkenntnisse zur Fehlerursache/Fehlerbehebung vorliegen, wird dieser Beitrag entsprechend aktualisiert.
Update (25. März 2020):Das Thema und ein aktueller Hotfix wurden in der YouTube Fragestunde besprochen.
Das CC1101 Funkmodul ist ein guter Transceiver für das Arduino-Board. Es gibt verschiedene Module mit unterschiedlichen Frequenzen im ISM-Bereich. Die Frequenzen lassen sich auch modifizieren. Das beliebteste und auch am meisten verwendete Band ist das 70 cm ISM-Band. Dank des SMA-Antennenanschlusses ist es auch möglich, größere und gewinnbringendere Antennen zu verwenden. Das Modul wird über das SPI-Interface angesteuert. Auf anderen Webseiten liest man oft, dass man das Modul wegen der 3.3 Volt Betriebsspannung nicht direkt an die SPI-Pins anschließen darf. Grundsätzlich stimmt das auch, jedoch haben wir bei unserem Test das Modul über einige Tage direkt mit dem Arduino verbunden und wir konnten keine Probleme feststellen.
Das Modul wird über die SPI Pins verbunden und mit 3.3 Volt gespeist. Die Pins sind deshalb nicht veränderbar.
Das Modul ist von der Reichweite weit aus besser als die Kombination von RF-5V & FS1000A. Mit der mitgelieferten Antenne erzielt man im Freien eine Reichweite von 300 Metern ohne Probleme. Mit besseren Antennen können Reichweiten von bis zu 5 Kilometern erreicht werden. Es gibt auch kleine Endstufen, mit dem die Sendeleistung um bis zu 5 Watt erhöht werden kann. Mit der Verwendung solcher Amplifier können Distanzen von über 15 Kilometer überbrückt werden. Wer das Modul mit besseren Antennen und Verstärkern betreiben will, muss eine Amateurfunklizenz haben und die gesetzlichen Vorschriften einhalten.
Code für den Sender:
#include <ELECHOUSE_CC1101.h>
int i;
void setup() {
Serial.begin(9600);
ELECHOUSE_cc1101.Init(F_433);
}
void loop() {
i++;
delay(500);
String tx_message = "Nr. of TX attempts: " + String(i);
int m_length = tx_message.length();
byte txbyte[m_length];
tx_message.getBytes(txbyte, m_length + 1);
Serial.println((char *)txbyte);
ELECHOUSE_cc1101.SendData(txbyte, m_length);
}
Code für den Empfänger:
#include <ELECHOUSE_CC1101.h>
byte buffer[100] = {0};
void setup()
{
Serial.begin(9600);
Serial.println("Rx");
ELECHOUSE_cc1101.Init(F_433);
ELECHOUSE_cc1101.SetReceive();
}
void loop()
{
if (ELECHOUSE_cc1101.CheckReceiveFlag()) {
ELECHOUSE_cc1101.ReceiveData(buffer);
String str((char*) buffer);
Serial.println(str);
ELECHOUSE_cc1101.SetReceive();
}
}
PT1000 Sensoren können nicht direkt analog mit einem Mikrocontroller gemessen werden. Wie baut man einen Messwandler mit dem LM358 für den PT1000 und Arduino?
WeiterlesenDer PT100 ist ein sehr präziser industrieller Temperatursensor. In diesem Artikel geht es um den Bau eines Messverstärkers zum Einlesen eines PT100 am Arduino
WeiterlesenAEQ-WEB © 2015-2024 All Right Reserved