Avec un Atmega, Créer un Capteur de Température sans fil

Weiterhin das Projekt der Automatisierung mit der Himbeere, der erste wichtige Schritt für mich ist es, einen drahtlose Daten senden Sensor haben. Hier präsentiere ich Ihnen ein Beispiel der Sonde, die Messung von Temperatur und Luftfeuchtigkeit.

Pi Home Connect - temperature humidity sensor atmega 328

Sie akzeptieren die Verwendung von cookies

In diesem Artikel (sehr, sehr lange), Ich warne Sie, dass Sie nicht die beste Sonde in der Welt erstellen können. Viele Websites bieten umfangreiche Methoden um eine optimale Lösung zu finden. Ich stelle hier die Ergebnisse meiner Tests und bietet damit Sie sich. Je compte sur les experts pour proposer des améliorations via les commentaires 🙂

Zur Erinnerung meine Sonde läuft auf zwei AA-Batterien, mit einem Atmega328, eine LED an der Operation und einer 433 Mhz-Sender. Die LED ist optional als Quelle von Energie, sondern Praxis zu bestätigen, dass alles funktioniert.

Nach 16 17 18 19 20 Tage der Operation (das Schreiben des Artikels gedauert), meine Sonde sendet immer die Daten mit einem Abstand von 5 m zwischen dem Sensor und das Gateway (ein Arduino, verbunden mit einer Himbeer-Pi), ohne Wände, aber mit einem Holzmöbel. Hier ist die Entwicklung der das Niveau der Batterien auf zwei Wochen :

Pi Home Connect - temperature humidity sensor atmega 328 - interface

Die Sonde verfügt über die folgenden : alle die 5 Sekunden (Ja das ist für die Prüfung), die DHT11 Sonde wird aktiviert, Temperatur und Luftfeuchtigkeit werden sowie die Akkukapazität gelesen.. Diese Daten bilden die Meldung senden. Die Nachricht wird gesendet 4 Zeitintervall Zugriffszeit. Jeder Zug auf dann Turn off LED senden.

Sie können daher das vorstellen von Verringerung der Zahl der Sendungen, Entfernen Sie die LED und durch Erhöhung der Zeit zwischen jede Messung, die Batterie kann einfach dauern ein Jahr (Ich würde bald einen Artikel zu diesem Thema machen.).

Voraussetzungen

Vor begeben Sie sich auf das Abenteuer, Sie brauchen ein bisschen Material und eine einsatzbereite Arbeitsumfeld.

Ausrüstung

Sie benötigen :

  • Von einem atmega328 (nur den chip) mit oder ohne Bootloader, Egal weil wir installieren unsere. Sie können leicht finden bei Ebay oder chinesischen Standorten in 1,5 € / Stück oder Amazon. Inbetriebnahme können mehrere Sie noch ein wenig den Preis verringern..
    Pi Home Connect - Atmega328P
  • Ein Arduino UNO wo Sie können den Atmega entfernen.. Es wird verwendet zum Senden des Bootloaders und Prüfpunkt-Management-Programm. Sie können diese Arduino (oder anderen) als Empfänger. Zählen Sie in den €10 (offizieller, aber legalen version), ein wenig mehr auf Amazon (schneller). Die Karte kann benutzt werden, zur Herstellung von anderen Prüfpunkten.
    Pi Home Connect - Arduino Uno with Atmega328p
  • Ein Temperatursensor. Ich habe eine DHT11 ich zu Hause hatte. Das ist nicht wirklich, was das beste ist, die DHT22 ist viel besser, aber ich hatte es nur einerseits zum Zeitpunkt. Count 1,40 € der DHT11 oder € 4.5 der DHT22 (aber ca ist den Preis Wert)
    Pi Home Connect - DHT11
  • Widerstand 4.7KΩ für die DHT11-Sonde erforderlich
    Pi Home Connect - resitor 4k7
  • Einem Sender und einem Empfänger 433 Mhz. Der Sender werden für die Sonde, der Empfänger für die Arduino an die Himbeere angeschlossen. Etwas weniger als 1 € das Paar. Aber Vorsicht nicht alle haben die gleiche Qualität … Anschließend werde ich andere Kommunikations-Modulen testen..
    Pi Home Connect - 433Mhz rf kit
  • AA-Batterien. Ich verwende 2 daß ich in einem Körper erholte sich von einer Weihnachten LED-Kranz. Die Kästchen kostet ca. € 3,5 10 Stück (oder Hier für eine schnellere Lieferung).Pi Home Connect - 2x AA battery holder
  • DrähtePi Home Connect - wires
  • Ein Steckbrett. Prototyping-Platten können Sie dann, weniger umfangreich und Wiederverwenden von dem Steckbrett für andere Installationen.Pi Home Connect - Breadboard
  • (Optional, jedoch sehr zu empfehlen !) 22µF Kondensator. Es dauert 2 Wenn Ihre Atmega328 standardmäßig einen externen Oszillator verwenden konfiguriert sind (und ich glaube nicht, dass Sie im Voraus wissen kann)
    Pi Home Connect - 22uF capacitor
  • (Optional, jedoch sehr zu empfehlen !) 8 oder 16 Mhz resonator Wenn Ihre Atmega328 standardmäßig einen externen Oszillator verwenden konfiguriert sind
    Pi Home Connect - 16mhz resonator

Sie sind jetzt ausgerüstet und bereit, Ihre Sonde montieren.

Arbeitsumgebung

Wenn ich spreche Arbeitsumgebung ist im Grunde das tool Arduino IDE. Nehmen Sie die version 1.5.8+, auch wenn es eine Beta-Version, um zu arbeiten !

Es ist jetzt um Ihre Atmega mit seiner internen Oszillator arbeiten konfigurieren zu können (8MHz) Verringerung der Gesamtverbrauch. Dafür empfehle ich Ihnen zum Laden das Zip hier. Das Archiv muss in das Unterverzeichnis entpackt werden Hardware befindet sich in Ihren Arduino-Programmen. Hier ist was Sie brauchen :

Arduino IDE boards.txt folder mac os

Zu Beginn der Arduino IDE sehen Sie neue Karten :

Pi Home Connect - boards atmega328 8Mhz low power

Einen optimierten Bootloader installieren

Hier ist die Verdrahtung den Bootloader laden :

PiHomeConnect-Node bootloader atmega328

Nach ihrer Fertigstellung :

  • Arduino UNO über das USB-Kabel an Ihren Computer anschließen
  • Starten Sie Arduino IDE und bestätigen Sie die Konfiguration
  • Hochladen des Programms, so dass die UNO den Bootloader senden können. Das Programm steht im Menü “Datei > Beispiele > ArduinoISP”. Klicken Sie dann auf “Upload”
    LPi Home Connect - IDE arduino ISP' Arduino UNO ist nun bereit, Ihre Montage einen Bootloader schicken !
  • Wählen Sie den Typ der Karte für Ihre Sonde. Wir wählen daher ein atmega328 auf einem Arduino 3.3V und der Häufigkeit von 8 Mhz
    Pi Home Connect - IDE bootloader 8Mhz 3.3V
  • Wählen Sie nun die Karte, die den Bootloader Programm wird. Es ist unsere Arduino
    Pi Home Connect - IDE bootloader Arduino as ISP
  • Rest den Bootloader mit dem Befehl brennen “Brennen des Bootloaders”

Jetzt haben Sie Ihre Knoten zum Betrieb in 3,3 v mit der internen Oszillator betreibt bei 8 Mhz konfiguriert. Dies ist der erste Schritt zur Optimierung der Nutzung der Energie !

Sie können jetzt Ihre Sensor und Sender hinzufügen.. Haben Sie ein resonator, Sie können ihn entfernen (sowie die Kondensatoren) :

PiHomeConnect - Arduino node temperature humidity sensor

Die Arduino UNO-Karte kann verwendet werden, um das Programm in Ihre neuen Atmega zu senden. Sie können es verbinden Sie wie in der Zeichnung darüber wo nehmen viele der Atmega-Knoten, Legen Sie es auf die UNO-Karte, Laden Sie das Programm über die IDE, dann ersetzen Sie den Knoten auf dem Steckbrett Atmega. Sie können sehen, personnellement je déplace l’atmega 😉

Das Foto von der Endmontage :

PiHomeConnect - Arduino node temperature humidity sensor

Installation des Programms sensor

In der Arduino IDE müssen Sie die folgenden Bibliotheken installieren :

  • Die DHT-Bibliothek zum Abrufen der Daten Ihre Sonde. Erhältlich hier.
  • Die Narcoleptic Buchhandlung schlafen “tief” Ihre Knoten und so sparen die Batterien. Erhältlich hier.
  • Die Manchester-Bibliothek zum Senden der Daten über den Sender 433 Mhz. Erhältlich hier.

Die Installation von Bibliotheken ist wie folgt :

  • Abrufen der .zip der Bibliothek
  • Mit dem Importtool in Arduino IDE importieren (Skizzen > Importbibliotheken)

Hier ist das Programm an Ihre Knoten mit der Arduino IDE senden :

#include <Narcoleptic.h>
#include <dht.h>
#include <Manchester.h>

#define BLINK_MODE true

#define NODE_ID 1 // On 8bits so 0..255

#define MESSAGE_SIZE 6 // Number of bytes to send
#define SEND_MESSAGE_DELAY 5000 // Delay in ms between each value's extraction
#define SEND_433_COUNT 4 // How many times the message has to be send
#define SEND_433_PAUSE 160 // 16 multiple

// Define connectors used for the node
#define TX_PIN 7
#define LED_PIN 13
#define DHT11_PIN 2

dht DHT;
// Array of bytes to will make the message
// In this node : 2 bytes for voltage, 2 bytes for
uint8_t msgData[MESSAGE_SIZE] = {0, 0, 0, 0, 0, 0};

//--------------------------------------------------------------------------------------------------
// Read current supply voltage
//--------------------------------------------------------------------------------------------------
 long readVcc() {
   bitClear(PRR, PRADC); ADCSRA |= bit(ADEN); // Enable the ADC
   long result;
   // Read 1.1V reference against Vcc
   #if defined (__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__)
    ADMUX = _BV(MUX5) | _BV(MUX0); // For ATtiny84
   #elif defined (__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__)
    ADMUX = _BV(MUX3) | _BV(MUX2);
   #else
    ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);  // For ATmega328
   #endif
   delay(2); // Wait for Vref to settle
   ADCSRA |= _BV(ADSC); // Convert
   while (bit_is_set(ADCSRA,ADSC));
   result = ADCL;
   result |= ADCH<<8; result = 1126400L / result; // Back-calculate Vcc in mV ADCSRA &= ~ bit(ADEN); bitSet(PRR, PRADC); // Disable the ADC to save power return result; // Vcc in millivolts } void setup() { pinMode(LED_PIN, OUTPUT); if (BLINK_MODE) digitalWrite(LED_PIN, LOW); man.setupTransmit(TX_PIN, MAN_1200); msgData[0] = NODE_ID; // Wait 1s to allow DHT11 to initialize Narcoleptic.delay(1000); } void loop() { // Read Vcc value long currentVcc = readVcc(); uint16_t uint16_currentVcc = (uint16_t)currentVcc; // Save millivolts in two bytes to keep high precision. Will be decoded by the gateway uint8_t byteData[2] = {uint16_currentVcc >> 8, uint16_currentVcc & 0xFF};
  msgData[2] = byteData[0];
  msgData[3] = byteData[1];

  // Read data from DHT11 sensor
  int chk = DHT.read11(DHT11_PIN);
  // DHT11 values can be put in a byte value due to the low precision
  msgData[4] = (uint8_t)DHT.humidity;
  msgData[5] = (uint8_t)DHT.temperature;

  // Send message SEND_433_COUNT times with a delay of SEND_433_PAUSE ms for each
  for (int i=0; i<SEND_433_COUNT; i++) {
    msgData[1] = i;
    if (BLINK_MODE) digitalWrite(LED_PIN, HIGH);
    man.transmitArray(MESSAGE_SIZE, msgData);
    if (BLINK_MODE) digitalWrite(LED_PIN, LOW);
    // Wait between each send
    Narcoleptic.delay(SEND_433_PAUSE);
  }
  // Wait before getting new sensor value
  Narcoleptic.delay(SEND_MESSAGE_DELAY);
}

Und danach ?

Der folgende Artikel zeigt, wie Sie Daten empfangen und senden Sie sie an die Himbeer-POI, die (im Prinzip) Was zu tun ist !

Es ist immer noch die allgemeine Verbesserung ! Wie zum Beispiel :

  • Code-Optimierung. Die Idee ist, eine allgemeine Bibliothek, auf GitHub, Das bringt die Funktionen der Verwertung, Konvertierung, etc.. Abhängig von den Sensoren angeschlossen : DHT11, DHT22, LM36, etc..
  • Andere Module der emission : NRF24L01 , ESP8266, etc..
    Die 433Mz-Module sind temperamentvoll, nicht immer von guter Qualität, Ich habe den Eindruck, dass dies die beste Wahl. Also, werde ich die Untersuchung weiter.

Die Fortsetzung der Pi Home Connect Projekt bald !

Sie können auch mögen....

  • Zescientist

    Hallo,
    Diese Paare Em/Rec sind nicht ausgezeichnete Qualität.
    Ein Trick, um noch die Kosten zu minimieren : Pflegen Sie diese Em/Rec auf Ihre remote Module (Sensoren und Aktoren) sondern investieren in einem einzigen “gute” Drehmoment für Ihre master-Station im Zusammenhang mit der RPi. Dies wird den Bereich erheblich verbessern..

    Ansonsten sieht die ESP8266 “die Lösung” für kostengünstige Heimautomation, mehr für Atmega Sensoren verwalten müssen, nicht mehr müssen Sie Arduino Übermittlung der RPi und einen Bereich mit Bezug auf die Qualität des Wifi.

    • Tatsächlich ich denke, dass das Wifi gepflückt werden bis alles vorbei das Haus bisher genießen und der Preis ist wirklich angemessen. Je suis pressé de tester en remplaçant mes modules 433Mz 😉

      • mrclem.NW

        Ja aber den ESP8266 Verbrauch ist wirklich schlecht. Es dauert maximal.
        Vielen Dank für Ihr tutorial, Ich wollte meinen Sensor RF mit nur einem ATMega statt der aktuellen Ian wiederholen. aber vor allem Schlaf plötzlich ändern den Bootloader. alles für den Dialog mit RFXCOM Modul- und domoticz

        • Ich werde sehen, was es gibt, zu wissen, denn das Ziel ist, machen Schlaf der Sender-Knoten nicht erhalten sollten Anleitung. Aber die Verbindung mit der SSID wird nicht zu lange dauern … Ich werde testen

          • MrClem

            Also eigentlich ist das nicht zu ernst, wenn wir den Sender jedes Mal geschnitten. Tests, die ich gesehen habe sind ziemlich langsam, wenn es ist ein LUA-Server ausgeführt, aber hey es entwickelt sich mit einer Geschwindigkeit…
            Danke noch einmal interessiert der Anpassung Bootloader Teil mich bcp. Ich werde alles versuchen..

          • MrClem

            arf du coup j’ai des questions 😉 :

            Was sind Ihre Bootloader-Optimierungen ?

            als - optimiert Ton dieser Bootloader müssen für die Verwendung Narcoleptic ? (Es scheint, dass nicht)

            Jedoch merke ich, dass es nicht für meinen Gebrauch. Ich mache sehr wenig warten meine Schleife(), Alles wird geleitet von Zeitintervall : Großhandel, gerade wenn das Intervall übergeben wird, führen Sie eine Akquisition und senden in RF. Es wird mich eine Funktion der beim Einschlafen und wach, eher aber mit der milli() noch aktiv.. Ich verstehe es, Es muss vorhanden sein.

          • Der Bootloader ist Optiboot 5 0.4a für atmega328 3,3V und 8 mhz.

            Narcoleptic ermöglicht die Verwendung von Watchdog, also ca nicht mit dem Bootloader verwandt ist

            Für Ihre Anliegen glaube ich, dass Sie Ihre Atmega basierend auf Unterbrechung aufwecken können (Es gibt 2, die 0 und die 1). Sie haben auch JeeLib, wodurch die verstrichene Zeit zu verfolgen : http://jeelabs.net/pub/docs/jeelib/

  • Sandu

    Endlich eine Anleitung für genau das, was ich Suche. Sieht ähnlich wie die LoFi (Hackaday) Projekt. Warum nicht Sie geringere Leistungsaufnahme MCU wie die ATiny84, 85 etc. berücksichtigen.? auf jeden Fall, der Arduino-Ansatz ist viel besser, dann ESP8266 in Bezug auf echte drahtlose Sensoren ohne Batteriewechsel.

    • Ich weiß nicht, was ist der Unterschied zwischen atiny85 und einem atmega328P (-PU-Version natürlich). Glaubst du, dass die Lebensdauer der Batterie viel länger sein wird ?

      • Sandu

        gut, Sie können einen drahtlosen Sensor basierend auf Attiny für ein Jahr mit einer Knopfzelle ausführen. (CR2032) oder sogar für das Jahr (10 Jahren auf 3 x AA) je nachdem, wie oft Sie übertragen,etc..
        Hast du Verschlüsselung auf die Nutzlast, die Sie übersenden, in Betracht gezogen? eine schöne Zukunft wäre, wenn Sie in Betracht ziehen, dieses Projekt in Zukunft um eine bidirektionale Übertragung zu haben: empfangen und Senden von Befehlen an andere Umweltsensorik.

        Ich warte auch auf einige RFM12B und RFM69HW-Transceiver zu erproben mit einem ähnlichen Projekt in attiny. Sie haben bessere Reichweite und Wand Eindringen als die NRF24L01.

        Viel Glück! waiting for your next part of the tutorial 🙂

  • Galen

    Bravo pour ce tuto 🙂 encore un qui va rejoindre ma collection sur le sujet jusqu’a ce que je me lance
    Ich habe auch eine ci http://labalec.fr/erwan/?p=1534 unter den Ellenbogen hilft sie bei der Suche nach Sender und Empfänger zuverlässig

  • Guillaume

    Hallo,
    Es gibt auch ein Atmega festgelegt, ohne Entfernen des Chips ist von der Spi vorzugehen und den isp auf das Arduino-Programm zu integrieren. Aber ein weiterer angenehmer Weg ist eine Arduino Mini pro, das fast billiger als ein Atmega sowie Komponenten, danach kommt.

    • Die Arduino-Mini und vieles mehr ist sehr kompakt, also Ideal für Sonden (Dies ist der nächste Schritt nach den verschiedenen Sendern ;-))

  • David

    Hallo,

    Vielen Dank für den Artikel ! Sehr interessant ! Zumal im Moment ich den gleichen Ansatz habe werden also ich die Serie mit großer Aufmerksamkeit verfolgen.

    Ich verbrachte einige Zeit versucht, Kokos einen Bootloader installieren, aber ich litt ein wenig …

    Blick auf Dateien, die Sie, dass ich sehe vorgeschlagen, dass im Gegensatz zu anderen Links, die ich fand, dass Sie nicht verwenden einen Bootloader zur Verfügung gestellt direkt mit der IDE. Y' hat Sie dort einen Grund ?

    http://hardware-libre.fr/2014/02/fr-arduino-atmega-programmation-isp/
    http://arduino.cc/en/Tutorial/ArduinoToBreadboard

    Ihnen versucht tatsächlich noch nicht, Ich versuchte zunächst, die anderen aber selbst wenn ich es geschafft, den Bootloader installieren (Nach einer kleinen Korrektur in board.txt) Ich kann keine Skizze dann hochladen.

    Ich sah, dass er benutzt hatte “Hochladen mit einem Programmierer” Statt “Upload”, ist es das gleiche mit Ihren Bootloader ? (pas encore essayé car j’avais dépassé mon quota de bricolage pour la journée 😉

    David.

    • Mir ist irgendwie eine Mischung. Der Bootloader ist, dass der Optiboot die jetzt im Arduino Ide wenn ich mich nicht irre. Das Archiv gehört der atmega 168 Gießen 328 im Bootloader des Verzeichnisses IDE
      Der Bootloader tatsächlich durch einen Programmierer gehen. Mon article essaye de resumer tout ca car j’ai aussi galeré 😉

      • David

        Hallo,

        Okay ich den heute mit Ihren Bootloader versucht und es funktioniert sehr gut. Ich sah, dass Sie auch die platform.txt-Datei geändert hatte ? Dies muss erklären, warum gerade durch die Board.txt des Ursprungs-Datei fügen Sie Ihre Konfiguration ändern und mit Ihren Bootloader funktioniert es nicht …

        Wenn ich zu tun, wie Sie in Ihrem Artikel, dass es Nickel funktioniert sagen, so dass ich weiter für den Augenblick. Ich komme wieder, wenn ich an dem Projekt weiter fortgeschritten haben.
        Dennoch werde ich sehr daran interessiert, zu verstehen, was du getan hast, als Änderung sein. Eine Idee für einen anderen Artikel ?? 😉 Mais pour le moment j’attends avec impatience l’article sur la liaison entre l’arduino de réception et le RPI. Über eine Link-Serie ? SPI ?

        Gute Fortsetzung !

        • L’article est en ligne 😉 il manque le code pour la réception mais il suffit d’ajouter un récepteur 433 auf das Arduino und senden die Daten an die Himbeere

          Für den Boot ist Loader cool, wenn es funktioniert. Aber Änderungen sind vor allem dort ein eigenständiges Paket haben, das leicht installiert.

          • David

            Hallo,

            Bin froh, es geschafft haben, setzen Sie Ihren Bootloader und 8 MHz internen und 3, 3V übergeben werden.

            Plötzlich ist es möglich, verwenden Sie den seriellen Anschluss über dem Arduino UNO nach ? Ich bemerkte bereits die Notwendigkeit, das Zurücksetzen der Karte, sonst Trennen der Atmega startet ständig neu (wahrscheinlich die Potentialdifferenz) Aber auch mit ich nichts über die Link-Serie von FDI nicht mehr gesehen ….

            Du bist unübertroffen ?
            Vielen Dank.

          • Ich werde es nicht garantieren. 100% aber es scheint mir, dass es funktioniert.

  • Pascal

    Es stimmt, dass der Sender/Empfänger 433 Mhz kostengünstige sind nicht schrecklich !! aber es gibt das Mysensors-Projekt, das die NRF24L01 verwendet (2.4GHz Sender/Empfänger) gut funktionierende und verwaltete von Projekt-Haustechnik Jeedom, Es ist wirklich gut!

    • Ich beende mein Arduino-Bibliothek für die Wifi ESP8266-Module und nachdem ich die NRF24L01 getestet. Ich könnte dann einen Vergleich zu helfen, wählen Sie nach ihren Bedürfnissen machen..

  • David

    Hallo,

    Ich habe dank Ihres Artikels in vollem Gange !
    Getestet habe ich 3 Reduzierung der aktuellen Verbrauch-Bibliotheken … Narcoleptic, Jeelib und Low Power.

    Ich könnte nicht mich am Anfang raus und ich hatte einen 1mA sogar Conso-Modus POWER_DOWN …
    Es war an die Switches verbunden, die ich benutze, um die Sensor-Anzahl festzulegen (Sie haben das gleiche Prinzip wie Sie es direkt im Code nicht befolgt. …). Legen Sie mit dem Arduino, die Ausgabe an die Schalter nur init macht Problem.

    Kurze ! Ich wollte den Verbrauch teilen bekomme ich mit drei Bibliotheken.
    8MHz-3v. 4Meine über laufende (Temperatur, Licht und Batterie).

    Im Ruhezustand :
    – Low Power : 0.030Meine (entweder 3648 Tage groß, aber ohne die Selbstentladung)
    – Narcoleptic : 0.190Meine (entweder 623 Tagen über immer ohne die Selbstentladung)
    – JeeLib : 0.014Meine (entweder 6689 solche Tage ohne die Selbstentladung)

    Es gibt noch einen Heiligen Unterschied … Ich weiß nicht, ob Sie versuchte, den Verbrauch zu sehen …

    David.

    • Danke für die Informationen. Ich hatte JeeLib aber nicht Low Power gesehen.. Je vais faire la bascule 😉
      Ich beendete meine Tests mit einer ESP8266, j’attaque bientôt les NRF24L01 😉

    • Aufmerksamkeit auch mit Zahlen. Schlaf mit die WatchDog ist 8 s max so alle 8 s dem Arduino aufwachen wird eine Schleife mit einem Test zu machen und wieder ins Bett gehen.

      • David

        Jeelib akzeptiert einen Wert bis zu 65535 MS … Ich habe 10 Sekunden für den Augenblick und ich nicht den Eindruck haben, die es weckt … Ich weiß nicht, wie sie. Ich plane, eine Maßnahme, die alle tun die 5 Minuten, so dass ich den Befehl in einer Schleife. Dem Arduino ein wenig aufwachen wird, aber es werden keine Maßnahme, damit es nicht zu sich nehmen sollten …
        Wir werden im Laufe der Zeit sehen..

        Haben Sie können eine Rückkehr vergleichen werden..

        David.

  • Arduina

    Hallo Chris!! Vielen Dank für dieses tutorial. Wir haben getestet, den Code auf den Sender und funktioniert perfekt, aber wir nicht, um einen Code, um den Empfänger zu generieren, Wir haben vorgesehen, aber es funktioniert nicht, dass wir.
    Unsere Idee ist, haben zwei Sender mithilfe der Knoten im Code, den Sie getan haben.
    Wir hoffen ungeduldig der nächste Tutorial!

    • Hallo,

      Hier ist ein Beispiel, wie Daten auf einem Arduino empfangen und senden Sie sie an den seriellen port (wo ich Himbeeren Pi eingesteckt) :

      #include

      #define RX_PIN 4
      #define LED_PIN 13

      uint8_t moo = 1;
      #define BUFFER_SIZE 6
      uint8_t buffer[BUFFER_SIZE];

      void setup() {
      Serial.begin(115200);
      pinMode(LED_PIN, OUTPUT);
      digitalWrite(LED_PIN, moo);
      man.setupReceive(RX_PIN, MAN_1200);
      man.beginReceiveArray(BUFFER_SIZE, buffer);
      }

      void loop() {
      if (man.receiveComplete()) {
      uint8_t receivedSize = 0;
      Serial.print(buffer[0]);Serial.print(";");
      Serial.print(buffer[1]);Serial.print(";");
      float voltage = (buffer[2] < < 8 ) | (buffer[3] & 0xff); Serial.print(voltage/1000);Serial.print(";"); Serial.print(buffer[4]);Serial.print(";"); Serial.print(buffer[5]); Serial.println(";");man.beginReceiveArray(BUFFER_SIZE, buffer); moo = ++moo % 2; digitalWrite(LED_PIN, moo); } }

      • Arduina

        Vielen Dank! Wir wollen verbringen den Tag damit arbeiten. Unser Ziel ist es, zwei Sender Node1 zu haben, Node2 Senden von Daten an einen Empfänger, der die Nachricht der einzelnen Sender-Knoten identifizieren können (1 & 2). Mit dem Beispiel habe ich bereitgestellt, Ich denke, dass wir sehen können, wie die Daten wir bekommen von einem Knoten und entscheiden, wie die Trasnmisiones vom Empfänger verwalten. Ich denke, dass uns nützliche Seramuy. Beginnen möchte ich mit einem Arduino für den Zugriff auf die serielle Schnittstelle testen; Aber dann muss es andere Attiny85 versuchen, Das ist, was wir für unser Projekt verwenden.
        Wenn wir die beiden implementieren Sender Knoten teilen den Code an einen Empfänger.
        Nochmals vielen Dank!

        • Mit dem ultra grundlegende Protokoll zu implementieren, können Sie mehrere Knoten verwalten. (Es ist das erste oder zweite Feld, das ich mich gut erinnere, nicht) so sicher, dass Sie das tun können.
          Über den Attiny85, Das Programm ist, dass dasselbe also auch einfach sein sollte
          Viel Glück !

          • Arduina

            Tut mir leid das Chaos!! Der TX-Code habe ich ist nicht korrekt. Meine Antwort hätte:

            Hallo wieder,

            Leider, I haven´t been as successful as I hoped 🙁

            Wir den TX-Code erstellt und in Attiny85 und dem RX-Code auf UNO geladen geladen. Die Manchester-Bibliothek verwendet wird in diesem Tutorial die angegebene https://github.com/mchr3k/arduino-libs-manchester.

            Der TX-Code-Doesn´t scheinen zu wirken, denn es gibt keine blinkenden LED Pin 1. Auch, Ich kann sehen, dass der RX-Code nicht alles empfängt wie die ony Serial.print ich auf die serielle Schnittstelle erhalten die erste "Inicio-Loop".

            Ich werden beide Teile des Codes einfügen, nur für den Fall, dass jemand ist daran interessiert zu schauen und vielleicht Ideen vorschlagen, während wir von unserer Seite Forschung.

            Wir haben erfolgreich mit der Manchester-Bibliothek haben 1 Sender Senden von Daten an 2 Empfänger alle Runing auf Attiny. Das war auch für uns eine Herausforderung, und wir sind stolz, dass es zu Hause mit innen- und außen-Lichter, die Komm, wenn Bewegung erkannt wird. Ich werde alle endgültigen Codes teilen, sobald wir diesen nächsten Schritt abgeschlossen haben!

            Dies ist der TX-Transmitter-Code geladen auf Attiny85:

            /*Este sketch usa la librería Manchester del siguiente enlace 
             https://github.com/mchr3k/arduino-libs-manchester
             
             Gestionar distintos nodos del transmisor que envían datos a un solo receptor
             
            */
            #include <Manchester.h>
            
            #include <Narcoleptic.h>
            
            
            #define BLINK_MODE true
             
            #define NODE_ID 1 // On 8bits so 0..255
             
            #define MESSAGE_SIZE 6 // Number of bytes to send
            #define SEND_MESSAGE_DELAY 5000 // Delay in ms between each value's extraction
            #define SEND_433_COUNT 4 // How many times the message has to be send
            #define SEND_433_PAUSE 160 // 16 multiple
             
            // Define connectors used for the node
            #define TX_PIN 0
            #define LED_PIN 1
            #define SENSOR_T A2
            
            float dato;
            float datoTotal;
            int   bucle;
            
            float y;            //señal de planta sensor dinamo
            float Temp;        //variable de temperatura desde "sensor"
            
             
            // Array of bytes to will make the message
            // In this node : 2 bytes for voltage, 2 bytes for
            uint8_t msgData[MESSAGE_SIZE] = {0, 0, 0, 0, 0, 0};
             
            //--------------------------------------------------------------------------------------------------
            // Read current supply voltage
            //--------------------------------------------------------------------------------------------------
             long readVcc() {
               bitClear(PRR, PRADC); ADCSRA |= bit(ADEN); // Enable the ADC
               long result;
               // Read 1.1V reference against Vcc
               #if defined (__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__)
                ADMUX = _BV(MUX5) | _BV(MUX0); // For ATtiny84
               #elif defined (__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__)
                ADMUX = _BV(MUX3) | _BV(MUX2);
               #else
                ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);  // For ATmega328
               #endif
               delay(2); // Wait for Vref to settle
               ADCSRA |= _BV(ADSC); // Convert
               while (bit_is_set(ADCSRA,ADSC));
               result = ADCL;
               result |= ADCH<<8;
               result = 1126400L / result; // Back-calculate Vcc in mV
               ADCSRA &= ~ bit(ADEN); bitSet(PRR, PRADC); // Disable the ADC to save power
               return result; // Vcc in millivolts
            } 
             
            void setup() {
              pinMode(LED_PIN, OUTPUT);
              if (BLINK_MODE) digitalWrite(LED_PIN, LOW);
              man.setupTransmit(TX_PIN, MAN_1200);
              msgData[0] = NODE_ID;
              // Wait 1s to allow DHT11 to initialize
              Narcoleptic.delay(1000);
            }
             
            void loop() {
              // Read Vcc value
              long currentVcc = readVcc();
              uint16_t uint16_currentVcc = (uint16_t)currentVcc;
              // Save millivolts in two bytes to keep high precision. Will be decoded by the gateway
              uint8_t byteData[2] = {uint16_currentVcc >> 8, uint16_currentVcc & 0xFF};
              msgData[2] = byteData[0];
              msgData[3] = byteData[1];
             
              // Read data from sensor
                 
                    dato = 0;
               datoTotal = 0;
                   bucle = 0;
               while (bucle <=3000){
              
              dato = analogRead (SENSOR_T);
              datoTotal = dato + datoTotal;
            
              delayMicroseconds (10);
              bucle++;
            }
               
                y = (datoTotal / 3000); //sumamos caida de tension en el cable
              
             Temp = (5.12 * y * 100.0)/1024.0;
                 
             
              // Sensor values can be put in a byte value due to the low precision
              msgData[4] = (uint8_t)Temp;
              msgData[5] = (uint8_t)Temp; 
             
              // Send message SEND_433_COUNT times with a delay of SEND_433_PAUSE ms for each
              for (int i=0; i<SEND_433_COUNT; i++) {
                msgData[1] = i;
                if (BLINK_MODE) digitalWrite(LED_PIN, HIGH);
                man.transmitArray(MESSAGE_SIZE, msgData);
                if (BLINK_MODE) digitalWrite(LED_PIN, LOW);
                // Wait between each send
                Narcoleptic.delay(SEND_433_PAUSE);
              }
              // Wait before getting new sensor value
              Narcoleptic.delay(SEND_MESSAGE_DELAY);
            }
            

            Und dies ist der RX Receiver-Code unter UNO (seriellen Anschluss zugreifen können):

            
            /*Este sketch usa la librería Manchester del siguiente enlace 
             https://github.com/mchr3k/arduino-libs-manchester
             
             Gestionar distintos nodos del transmisor que envían datos a un solo receptor
            */
            #include <Manchester.h>
            
            
            #define RX_PIN 4
            #define LED_PIN 13
            
            uint8_t moo = 1;
            #define BUFFER_SIZE 6
            uint8_t buffer[BUFFER_SIZE];
            
            void setup() {
            Serial.begin(115200);
            pinMode(LED_PIN, OUTPUT);
            digitalWrite(LED_PIN, moo);
            man.setupReceive(RX_PIN, MAN_1200);
            man.beginReceiveArray(BUFFER_SIZE, buffer);
            }
            
            void loop() {
            Serial.println ("Inicio loop");
            if (man.receiveComplete()) {
            uint8_t receivedSize = 0;
            Serial.print(buffer[0]);Serial.print(";");
            Serial.print(buffer[1]);Serial.print(";");
            float voltage = (buffer[2] << 8 ) | (buffer[3] & 0xff);
            Serial.print(voltage/1000);Serial.print(";");
            Serial.print(buffer[4]);Serial.print(";");
            Serial.print(buffer[5]);
            Serial.println(";");
            
            man.beginReceiveArray(BUFFER_SIZE, buffer);
            moo = ++moo % 2;
            digitalWrite(LED_PIN, moo);
            }
            }
            

            Danke!

          • Sie den Wert ändern der Standardwerte und ich denke, dass Sie den Anschluss verpasst. Ich sehe A2 als ein Wert, der kein guter Wert ist. Nur ganze Zahlen dürften.
            Bitte schauen Sie auf das Bild : http://fc04.deviantart.net/fs70/f/2013/038/3/7/attiny_web_by_pighixxx-d5u4aur.png
            Ich vermute, dass Arduino Pin-Werte zu verwenden sind (10, 11, 12, 13). Nicht sicher, haben Sie kein attiny85 …
            Versuchen Sie, eine einfache Skizze zu laden, die zu erraten eine led blinkt, welche Werte korrekt sind

  • Marco

    Guten Abend,

    je voudrais savoir si un article a été fait pour la partir réception sur un autre arduino? j’ai cherché mais je n’ai rien trouvé.

    J’espere que l’auteur de l’article pourra m’aider

    J’ai repris excatement sont croquis pour l’emission avec un dht22 et atmega 8Mhz interne

      • Marco

        J avais vu cet article. Durch gegen mich suche ich den Code zu erhalten, die für Arduino mit der Ausgabe dieses Codeabschnitt geht.

        • Keine Entschuldigung. Das Prinzip ist, erklärte er den Abbau Code / Empfang vermisst ich auf meinem Computer zu haben, und ich kann Ihnen schicken, wenn ich ihn finden

          • Marco

            Hallo, ca wenn Sie nichts dagegen im Code nicht ich bin interessiert, ob Sie die Ain desssus setzen können. Sie möchte, dass meine E-Mail?

            Nochmals vielen Dank

          • Kann angepasst werden, sollte aber funktionieren :

            #enthalten

            #definieren RX_PIN 4

            #definieren LED_PIN 13

            uint8_t moo = 1;

            #definieren BUFFER_SIZE 6

            uint8_t Puffer[PUFFERGRÖSSE];

            void setup() {

            Serial.Begin(115200);

            pinMode(LED_PIN, AUSGABE);

            digitalWrite(LED_PIN, muhen);

            man.setupReceive(RX_PIN, MAN_1200);

            man.beginReceiveArray(PUFFERGRÖSSE, Puffer);

            }

            void Schleife() {

            If (man.receiveComplete()) {

            uint8_t ReceivedSize = 0;

            Serial.Print(Puffer[0]);Serial.Print(“;”);

            Serial.Print(Puffer[1]);Serial.Print(“;”);

            Float-Spannung = (Puffer[2] << 8 ) | (Puffer[3] & 0xff);

            Serial.Print(Spannung / 1000);Serial.Print(";");

            Serial.Print(Puffer[4]);Serial.Print(";");

            Serial.Print(Puffer[5]);

            Serial.println(";");

            man.beginReceiveArray(PUFFERGRÖSSE, Puffer);

            moo = ++ moo % 2;

            digitalWrite(LED_PIN, muhen);

            }

            }

          • Marco

            Ich danke es testen.

          • Marco

            Guten Abend,

            Getestet habe ich nur den Empfangscode (j’ai pas pu avant lol)

            voila ce que je recois:

            1;1;4.77;2;1;

            1;2;4.77;2;1;

            1;3;4.77;2;1;

            1;0;4.77;2;1;

            1;1;4.77;2;1;

            1;2;4.77;2;1;

            1;3;4.77;2;1;

            1;0;4.79;2;1;

            1;2;4.79;2;1;

            Avez vous une idée d’ou ça peut venir

            Vielen Dank

          • C’est dans les commentaires de l’émetteur 🙂
            ID du node
            n° de la trame de 0 à SEND_433_COUNT (4 Standardmäßig). Je n’ai pas mis de gestion de ACK donc la trame est émise plusieurs fois pour que ca passe. A charge du Raspberry de faire le tri
            Voltage d’alimentation de m’émetteur
            Humidité du DHT11 (connecté sur le pin 2 Standardmäßig)
            Température du DHT11 (connecté sur le pin 2 Standardmäßig)

            Vu tes dernières valeurs il va falloir revoir la connexion ou les paramètres

          • Marco

            c’est bon j’avais pas changé le dht11 en dht22

            la je recois:

            1.10v – 58% – 26*C

            Sie akzeptieren die Verwendung von cookies.

            Eine andere Frage, nachdem ich allein gelassen.
            wenn ich den Arduino nur mit dem externen alimenttion in 9v verbinden habe ich keine Daten auf dem seriellen Monitorempfänger. Aber wenn ich usb Zweig es funktioniert.

            Ein Parameter hat sich geändert?

            Guten Abend

          • Nein, es ist nicht normal, vor allem in den vorhergehenden teames Sie gute 4,7V hatte. Ein weiterer Parameter ist, um den geänderten

          • Marco

            normalerweise die Spannung Ich finde müssen, ist, wie viel?
            dort fütterte ich mit 9v externe Stromversorgung dann
            zum Zeitpunkt der ersten Messung war ich mit meinem usb (So ein gutes Preis-Maßnahme)
            dann habe ich die dht11 in DHT22 ändern und plötzlich war ich ein 1.10V

            der Rest der Parameter ist identisch mit Ihrem Code

          • Verwendet die gleiche Leistung über Ihr Hub. Si tu mets du 9v direct sur l’arduino alors qu’il attend du 3.3v max normal que ca ne fonctinne pas 😉

          • Marco

            Guten Abend,

            ca y est, alles funktioniert, Durch die Nachteile habe ich immer noch die 1.10V.

            Erzählen Sie mir von diesem Teil der Ton prog, wohl wissend, dass ich die Chip atmega nur, ist das, was muss ich einige Dinge ändern? aber es dreht sich mit diesem Teil der gesamten.

            Ich sehe, dass es eine Linie oder Beobachtung vor geschrieben; // Lesen 1,1V Referenz gegen Vcc
            dies ist die ca ist, dass ich meine 1.10V bei meiner Rückkehr Empfang haben?

            Auf jeden Fall, ich danke Ihnen sehr, Ich Debute wirklich mit Arduino, Ich versuche, das prog C zu verstehen, aber es ist nicht einfach, aber gesagt haben, dass es super interessant

            //————————————————————————————————–

            // Lesen Sie Strom Versorgungsspannung

            //————————————————————————————————–

            lange readVcc() {

            BITCLEAR(PRR, aufnehmen); ADCS |= Bit(ADEN); // Aktivieren Sie die ADC

            lange Ergebnis;

            // Lesen 1,1V Referenz gegen Vcc

            #wenn definiert (__AVR_ATtiny24__) || definiert(__AVR_ATtiny44__) || definiert(__AVR_ATtiny84__)

            ADMUX = _BV(MUX5) | _BV(MUX0); // Für ATtiny84

            #Elif definiert (__AVR_ATtiny25__) || definiert(__AVR_ATtiny45__) || definiert(__AVR_ATtiny85__)

            ADMUX = _BV(MUX3) | _BV(MUX2);

            #sonst

            ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); // Für ATmega328

            #endif

            Verzögerung(2); // Warten Sie auf Vref zu begleichen

            ADCS |= _BV(ADSC); // Konvertieren

            Weile (bit_is_set(ADCS,ADSC));

            Ergebnis = ADCL;

            Ergebnis |= ADCH<<8;

            Ergebnis = 1126400L / Ergebnis; // Zurück zu berechnen Vcc in mV

            ADCS &= ~ Bit(ADEN); BitSet(PRR, aufnehmen); // Deaktivieren Sie die ADC-Energie zu sparen

            Rückgabeergebnis; // Vcc in Millivolt

            }

          • Die 1.1 ist ein Referenzwert, den realen Wert der Nahrung dann berechnen. Sie nähren, wie ?

          • Marco

            Hallo,

            J-Feeds mein Arduino USB und ich bin auf den Boden und 5 V verbunden ist, wie am letzten shema oben (außer, dass ich nicht Draht auf die tx und rx tat) und auf das Programm habe ich gerade, das zu ändern’ m der Werte zeigt, wie oben c sagen:
            Stromspannung – Luftfeuchtigkeit – Temperatur

          • Marco

            c’est bon j’avais pas changé le dht11 en dht22

            la je recois:

            1.10v – 58% – 26*C

            Sie akzeptieren die Verwendung von cookies

  • Alexandre SEROT

    Hallo,

    Getestet habe ich mit Arduino UNO, Ich war auf den Linien zu kommentieren gezwungen 28 und 44

    BITCLEAR(PRR, aufnehmen); ADCS |= Bit(ADEN); // Aktivieren Sie die ADC
    ADCS &= ~ Bit(ADEN); BitSet(PRR, aufnehmen); // Deaktivieren Sie die ADC-Energie zu sparen

    Für PRR wurde nicht erkannt.

    Mit diesen Mods funktioniert es nikel.

    Ich besitze micro pro (Chinesische Kopie kaufen von Aliexpress mit einem ATmega32u4), Ich wollte testen, und es ist das Drama ... nach dem Hochladen, Arduino ist nicht mehr von Windows erkannt und sagt mir, dass das Gerät angehalten wurde, weil er Probleme hat (Code 43).

    Finden Sie die Lösung (bei AC passieren zu anderen):

    – Zum Zurücksetzen des Arduino (rst + gnd)
    – Es wird wieder durch Fenster für eine Weile Gericht erkennen sein, dies ermöglicht es den COM-Port zu sehen, an dem sie erkennen ist.
    – Es wird wieder die Irre gehen
    – Starten Sie eine Prinzipskizze Hochladen (Blink Beispiel)
    – Wiederholen Sie Reset
    – Hochladen geführt, wieder gewinnt es in Betrieb ist.

    der Trick (Ich weiß nicht erklären), ist, dass während des Zurücksetzens, es richtig von Windows für eine kurze Zeit festgestellt (10kaum Sekunden), deshalb sind wir ein wenig vor dem zweiten Upload-Reset starten müssen, Upload beginnend mit dem Prüfungscode.

    Meine Frage ist, warum meine Pro Mikro in diesem Zustand passiert?

    Ich rereading den Code, Ich verstehe nicht, was es in diesem Zustand versetzt, Ich finde nichts Konkretes hat Atmega328

    Vielen Dank im voraus,

    Alex

    • Hallo
      Ist es kommt nicht zu der Bibliothek Narcoleptic ? Indem ausgeschaltet und mit Hilfe der “Schlaf” classic es besser funktioniert nicht ? Ich sehe, dass AC Manipulation machen könnte und registrieren “Pflanze” die uc

  • Jean-Michel SORET

    Hallo,
    Bravo für die Richtigkeit Ihrer Tutorial, das mich wollen mich zu werfen.
    Dies ist meine erste Schritte mit Arduino.

    Ich habe noch nicht die Kondensatoren erhalten, damit ich ohne externe Oszillator getestet.
    In der Arduino IDE, Ich trat die Fehlermeldungen.
    Bezieht sich dies auf das Fehlen von externen Oszillator???

    Danke zu wollen, gut zu reagieren.

    • Hallo
      Keine Anhänge
      Aber ja, es ist möglich, dass die Skizze nicht wegen des Mangels Oszillator nicht geladen wird die Uhr richtig zu drehen. Aber es ist möglich, ohne dass es zu tun, aber in diesem Fall müssen wir die Upload-Geschwindigkeit anpassen

  • Jean-Michel SORET

    Hallo,

    Ich habe den Oszillator und Kondensatoren (20 nF und nicht 20 ΜF) aber ich habe den unten Fehlermeldung, wenn der Bootloader brennen:

    Arduino : 1.6.7 (Windows 10), Karte : “(PiHomeConnect) ATmega328 – 3.3V – 8 MHz interne Uhr”

    java.io.IOException: Kann nicht Programm ausführen “{Pfad}/bin / avrdude”: Create error = 2, Die angegebene Datei wurde nicht gefunden

    bei java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)

    bei processing.app.helpers.ProcessUtils.exec(ProcessUtils.java:26)

    bei cc.arduino.packages.Uploader.executeUploadCommand(Uploader.java:123)

    bei cc.arduino.packages.uploaders.SerialUploader.burnBootloader(SerialUploader.java:359)

    bei processing.app.Editor.lambda $ handleBurnBootloader $ 42(Editor.java:2754)

    bei java.lang.Thread.run(Thread.java:745)

    Verursacht durch: java.io.IOException: Create error = 2, Die angegebene Datei wurde nicht gefunden

    bei java.lang.ProcessImpl.create(Native-Methode)

    bei java.lang.ProcessImpl.(ProcessImpl.java:386)

    bei java.lang.ProcessImpl.start(ProcessImpl.java:137)

    bei java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)

    … 5 Weitere

    Wenn Sie eine Spur…

    Vielen Dank im voraus

    • Wie in der log avrdude dem Programm angegeben ist, nicht in dem Pfad. Wenn Sie installiert haben, müssen Sie den Pfad Variable

      • Danston Sac

        Hallo, Ich Mac OS X und ich nicht ernst Bootloader ich nicht Programm ausführen kann “{Pfad}/bin / avrdude”: error = 2, Nr. Datei oder Verzeichnis.

        also ich habe das gleiche Problem, aber nicht verstehen, wie die Variable Pfad anzupassen danke

        • Es wird in den Speicher der IDE-Schnittstelle ausschließen

          • Danston Sac

            so machte ich die Mods des Weges, aber jetzt habe ich einen anderen Fehler,
            avrdude: stk500_recv(): Programmierer nicht reagiert
            avrdude: stk500_getsync() versuchen 1 der 10: nicht synchron: bzw. = 0x00

            ist dies ein Fehler auf meiner Verkabelung ? Ich bezahlte noch Aufmerksamkeit. Ich habe einen Zweifel über die Bedeutung der Polarität 2 sind Kondensatoren in der gleichen Richtung !!.

          • Ich denke, ja einen Fehler in der Verbindung. Ich erinnere mich, auch die Vermögenswerte halten für die Reset-atmega erkannt wird. Es hing Chips

  • Jean-Michel SORET

    Hallo,

    Ich verwende Windows 10. Ich änderte den Pfad und neu gestartet meinem PC, aber ich habe immer den gleichen Weg Fehler.
    Ich verstehe nicht, was geschieht.
    Ich habe die neueste Version der Arduino IDE (1.7).

    Wenn Sie eine Idee haben,…

    Vielen Dank

  • Julien Geneste

    Yop,

    Ich sah auf das Bild, sobald das fertige Projekt, das Sie nicht haben Quarz auf Ihrem Atmega. Die Uhr ist intern oder sie ist abhängig von der Version des Mikrocontrollers ?

    Vielen Dank !

    • Hallo,
      Wie erkläre ich, ich bin mit dem internen Oszillator mit 8 MHz. weniger “schnell” aber meistens verbraucht weniger

  • sidwin9

    Hallo,

    Ich vermisse Details Ihrer Bearbeitung, insbesondere im Hinblick auf die Stromversorgungen. Offenbar, Sie nähren es mit allen 2 1.5volts Batterien für den Betrieb des Atmega zu 3,3Volts aber was tun Sie für TX-Leistung 433 Mhz arbeitet in 5Volts.

    Danke mir ein wenig zu erleuchten alles.

    • Guten Abend. Ich verband sie direkt. Das Modul arbeitet in einem Bereich 3,3 V-12V. Durch die Nachteile in 3,3 V la.portée begrenzt

      • sidwin9

        Vielen Dank für Ihre schnelle Antwort.
        Die 2 Batterie 1.5 Volt sind daher ausreichend für die gesamte Baugruppe. Sie wollen, wie viel Zeit ohne Batteriewechsel ?

        • Ich spreche zu Beginn des Artikels mit einem Diagramm, das die Entwicklung der Belastung zeigt der 2 Batterien. In diesem Tutorial mißbraucht ich ein wenig auf der Frequenz um den Vorgang zu erläutern. Durch die Nachteile haben, gemessen ich keine Entlastung “natürliche” Batterie

    • Gael Dirig

      hallo sidwin9 j versucht vergeblich, Sie auf dem Mini-Meteostation mit Display auf der Website forumarduino Forum zu kontaktieren, um weitere Informationen von Ihrem Wetterstation mit Arduino und Bildschirm 480 bekommen×320 .Sie könnten Ihre Brutto-Apfel-Code zu sehen, teilen, wenn ich verstehen kann, und zum Weiler-Code und meine Funktion anpassen. I t wurde Kontakt auch auf einem anderen Forum. Vielen Dank

  • Ken Addams

    Hallo,
    Es ist toll, all diese montages, aber in einem echten Hausinstallation, Sie installieren Ihre Brettchen mit captuers Temperaturen und Widerstand in Ihrem Wohnzimmer ? In der Tat stimme ich völlig mit dem Grundsatz, aber ich habe noch nicht Implementierung gefunden “nicht Geeks” dh eine diskrete Box für die Integration in ein harmonisches Interieur trägt. Bitte Ideen ?

    • Hallo. Für die nicht-Aussenseiter auf dieser Seite gibt es ein Projekt mit Gehäusen erklärt, dass alle darüber hinwegtäuschen, dass
      Wenn nicht für diesen Artikel, der erklärt, wie man sich selbst zu machen. Der nächste Schritt ist die gedruckte box 3d. Jeder Blick für Ästhetik

  • Valerie Stephane Vdb Cresp
    • superb ! nice work !
      Welche Komponenten verwendet werden und was das Leben geschätzt für die Batterie ?

  • Pingback: Avec un Atmega, Créer un Capteur de Température sans fil | RoboTechno()

  • Toto

    Hallo,

    Je suis sur un montage analogue avec virtualwire ou radiohead pour le 433Mhz. j’envoie du JSON et ca passe bien (j’ai bien le message de recu sur le moniteur arduino du recpteur), seul probleme, quand je connecte mon arduino au raspberry je recois plus les println sur le serial dans ma boucle de lecteur de message radio.

    Plus etrange encore, en dehors de ma boucle ce code

    void Schleife(){
    //reception msg 433
    {…}
    Serial.println(“Test”);
    If (msg.length()>0){
    Serial.println(msg);
    }
    }

    me genere bien “Test” en boucle mais jamais le msg. Les capteurs / emmeteur sont alimenté par un circuit a part, j ai juste ma data sur l arduno.
    Dans l’ide arduino niveau du moniteur jtout est ok, juste ce serial.println dans ma boucle de lecture qui remonte pas sur raspberry -_-. Ni dans un script python, ni sur nodered.

    Je pense avoir tres clair :/

    Une idée 😀

Unterstützen Sie mich !: Hallo! Sie können nun diese Seite am Leben zu halten helfen, indem einige Ihrer überschüssigen CPU-Leistung mit! Sie können aufhören, wenn Sie brauchen! Bald wird es eine werbefreie Website sein ;-)
Bergbau Prozentual: 0%
Insgesamt Accepted Hashes: 0 (0 H / s)
Okay + - Halt