Új hozzászólás Aktív témák

  • layerke

    aktív tag

    válasz fecus #437 üzenetére

    Stabil táp nekem úgy van, hogy van egy ams1117 a hozzá tartozó 2 kondenzátorral és egy usb-s töltőről kapja a betápot. Ennyi gyakorlatilag. Vagy még lehet használni az arduinonak a stabilizátorát is, de akkor is kell elé kondenzátor és figyelni kell, hogy a RAW-ra legyen a betáp kötve, de ne legyen túl nagy feszültség, mert nagyon melegszik a nyák stabilizátor.

    Másik, a kód, beillesztem ide, amit én használok:
    // Enable debug prints to serial monitor
    #define MY_DEBUG

    // Enable and select radio type attached
    //#define MY_RADIO_NRF24
    #define MY_RADIO_RFM69

    #include <SPI.h>
    #include <MySensors.h>
    #include <DallasTemperature.h>
    #include <OneWire.h>

    #define COMPARE_TEMP 0 // Send temperature only if changed? 1 = Yes 0 = No

    #define ONE_WIRE_BUS 3 // Pin where dallase sensor is connected
    #define MAX_ATTACHED_DS18B20 16
    unsigned long SLEEP_TIME = 10000; // Sleep time between reads (in milliseconds)
    OneWire oneWire(ONE_WIRE_BUS); // Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
    DallasTemperature sensors(&oneWire); // Pass the oneWire reference to Dallas Temperature.
    float lastTemperature[MAX_ATTACHED_DS18B20];
    int numSensors=0;
    bool receivedConfig = false;
    bool metric = true;
    // Initialize temperature message
    MyMessage msg(0,V_TEMP);

    void before()
    {
    // Startup up the OneWire library
    sensors.begin();
    }

    void setup()
    {
    // requestTemperatures() will not block current thread
    sensors.setWaitForConversion(false);
    }

    void presentation() {
    // Send the sketch version information to the gateway and Controller
    sendSketchInfo("Futes homero", "1.0");

    // Fetch the number of attached temperature sensors
    numSensors = sensors.getDeviceCount();

    // Present all sensors to controller
    for (int i=0; i<numSensors && i<MAX_ATTACHED_DS18B20; i++) {
    present(i, S_TEMP);
    }
    }

    void loop()
    {
    // Fetch temperatures from Dallas sensors
    sensors.requestTemperatures();

    // query conversion time and sleep until conversion completed
    int16_t conversionTime = sensors.millisToWaitForConversion(sensors.getResolution());
    // sleep() call can be replaced by wait() call if node need to process incoming messages (or if node is repeater)
    wait(750);

    // Read temperatures and send them to controller
    for (int i=0; i<numSensors && i<MAX_ATTACHED_DS18B20; i++) {

    // Fetch and round temperature to one decimal
    float temperature = static_cast<float>(static_cast<int>((getConfig().isMetric?sensors.getTempCByIndex(i):sensors.getTempFByIndex(i)) * 10.)) / 10.;

    // Only send data if temperature has changed and no error
    #if COMPARE_TEMP == 1
    if (lastTemperature[i] != temperature && temperature != -127.00 && temperature != 85.00) {
    #else
    if (temperature != -127.00 && temperature != 85.00) {
    #endif

    // Send in the new temperature
    send(msg.setSensor(i).set(temperature,1));
    // Save new temperatures for next compare
    lastTemperature[i]=temperature;
    }
    }
    wait(SLEEP_TIME);
    }

    Javaslom azt, hogy ha lehet töltsd le a myscontrollert a mysensorsról és egy serial gatewayt programozz fel valamint egy temp sensort és mindkettőt dugd be a gépbe és a programokban legyen bekapcsolva a debug. Így teljesen jól látható minden folyamat a rádió indításától kezdve az üzenetekig.
    Még egy tanács, javaslom a 2.0.0 libraryt használni, mert az a legstabilabb és legjobb eddig szerintem. Régebbit nem kezeli jól néha, az újabb meg nem volt stabil legutóbb, mikor még próbáltam.

Új hozzászólás Aktív témák