max6675 + Thermo



  • sorry my english is not good.

    link text
    My Hardware
    Ardunion nano + max6675 + Thermoelement

    Blease Help

    lg
    Wolfgang

    #include <max6675.h>
    #include <MyConfig.h>
    #include <MySensors.h>
    #include <SPI.h>
    
    uint8_t CS0 = 9;              // CS pin on MAX6675
    uint8_t SO = 8;              // SO pin of MAX6675
    uint8_t SCLK = 10;             // SCK pin of MAX6675
    uint8_t units = 1;            // Units to readout temp (0 = ˚F, 1 = ˚C)
    float temperature = 0.0;  // Temperature output variable
    float lastTemperature;
    unsigned long SLEEP_TIME = 30000; 
    boolean metric = true;
    MySensor gw;
    
    MyMessage msg(0,V_TEMP);
    
    // Initialize the MAX6675 Library for our chip
    
    MAX6675 temp0(CS0,SO,SCLK,units);
    
    void setup()  
    { 
    
    
      // Startup and initialize MySensors library. Set callback for incoming messages. 
      gw.begin(); 
    
      // Send the sketch version information to the gateway and Controller
      gw.sendSketchInfo("Max6675 Temperature Sensor", "1.0");
    
      // Present all sensors to controller
     
      gw.present(0, S_TEMP);
      
      Serial.begin(115200);
      
    }
    
    void loop()     
    {     
      // Process incoming messages (like config from server)
      gw.process(); 
      
      temperature = temp0.read_temp();         // Read the temp
      
      if(temperature == -1) {                   // If there is an error with the TC, temperature will be -1
        Serial.println("Thermocouple Error!!"); // Temperature is -1 and there is a thermocouple error
      
      } else {
        Serial.print("Current Temperature: ");
        Serial.println( temperature );          // Print the temperature to Serial 
        if (temperature!=lastTemperature)
          gw.send(msg.setSensor(0).set(temperature,1));
        lastTemperature=temperature;
      }
      
      gw.sleep(SLEEP_TIME);
    }```
    upload error
    MySensors.h:328:2: error: #error No forward link or gateway feature activated. This means nowhere to send messages! Pretty pointless.
    
    
    

    MySensors.h

    /*
     * The MySensors Arduino library handles the wireless radio link and protocol
     * between your home built sensors/actuators and HA controller of choice.
     * The sensors forms a self healing radio network with optional repeaters. Each
     * repeater and gateway builds a routing tables in EEPROM which keeps track of the
     * network topology allowing messages to be routed to nodes.
     *
     * Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
     * Copyright (C) 2013-2015 Sensnology AB
     * Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors
     *
     * Documentation: http://www.mysensors.org
     * Support Forum: http://forum.mysensors.org
     *
     * This program is free software; you can redistribute it and/or
     * modify it under the terms of the GNU General Public License
     * version 2 as published by the Free Software Foundation.
     */
    
    /**
     * @file MySensors.h
     *
     * MySensors main interface (includes all necessary code for the library)
     */
    #ifndef MySensors_h
    #define MySensors_h
    
    #include "core/MySensorsCore.h"
    
    // Detect node type
    /**
     * @def MY_GATEWAY_FEATURE
     * @brief Is set for gateway sketches.
     */
    /**
     * @def MY_IS_GATEWAY
     * @brief Is true when @ref MY_GATEWAY_FEATURE is set.
     */
    /**
     * @def MY_NODE_TYPE
     * @brief Contain a string describing the class of sketch/node (gateway/repeater/sensor).
     */
    #if defined(MY_GATEWAY_SERIAL) || defined(MY_GATEWAY_W5100) || defined(MY_GATEWAY_ENC28J60) || defined(MY_GATEWAY_ESP8266) || defined(MY_GATEWAY_LINUX) || defined(MY_GATEWAY_MQTT_CLIENT)
    #define MY_GATEWAY_FEATURE
    #define MY_IS_GATEWAY (true)
    #define MY_NODE_TYPE "GW"
    #elif defined(MY_REPEATER_FEATURE)
    #define MY_IS_GATEWAY (false)
    #define MY_NODE_TYPE "REPEATER"
    #else
    #define MY_IS_GATEWAY (false)
    #define MY_NODE_TYPE "NODE"
    #endif
    
    // Enable radio "feature" if one of the radio types was enabled
    #if defined(MY_RADIO_NRF24) || defined(MY_RADIO_RFM69) || defined(MY_RADIO_RFM95) || defined(MY_RS485)
    #define MY_SENSOR_NETWORK
    #endif
    
    // HARDWARE
    #if defined(ARDUINO_ARCH_ESP8266)
    #include "core/MyHwESP8266.cpp"
    #elif defined(ARDUINO_ARCH_AVR)
    #include "drivers/AVR/DigitalWriteFast/digitalWriteFast.h"
    #include "core/MyHwAVR.cpp"
    #elif defined(ARDUINO_ARCH_SAMD)
    #include "core/MyHwSAMD.cpp"
    #elif defined(__linux__)
    #include "core/MyHwLinuxGeneric.cpp"
    #endif
    
    // LEDS
    #if !defined(MY_DEFAULT_ERR_LED_PIN) && defined(MY_HW_ERR_LED_PIN)
    #define MY_DEFAULT_ERR_LED_PIN MY_HW_ERR_LED_PIN
    #endif
    
    #if !defined(MY_DEFAULT_TX_LED_PIN) && defined(MY_HW_TX_LED_PIN)
    #define MY_DEFAULT_TX_LED_PIN MY_HW_TX_LED_PIN
    #endif
    
    #if !defined(MY_DEFAULT_RX_LED_PIN) && defined(MY_HW_TX_LED_PIN)
    #define MY_DEFAULT_RX_LED_PIN MY_HW_TX_LED_PIN
    #endif
    
    #if defined(MY_LEDS_BLINKING_FEATURE)
    #error MY_LEDS_BLINKING_FEATURE is now removed from MySensors core,\
    define MY_DEFAULT_ERR_LED_PIN, MY_DEFAULT_TX_LED_PIN or\
    MY_DEFAULT_RX_LED_PIN in your sketch instead to enable LEDs
    #endif
    
    /**
     * @def MY_DEFAULT_LED_BLINK_PERIOD
     * @brief Default LEDs blinking period in milliseconds.
     */
    #ifndef MY_DEFAULT_LED_BLINK_PERIOD
    #define MY_DEFAULT_LED_BLINK_PERIOD 300
    #endif
    
    #if defined(MY_DEFAULT_RX_LED_PIN) || defined(MY_DEFAULT_TX_LED_PIN) || defined(MY_DEFAULT_ERR_LED_PIN)
    #include "core/MyLeds.cpp"
    #else
    #include "core/MyLeds.h"
    #endif
    
    #include "core/MyIndication.cpp"
    
    
    // INCLUSION MODE
    #if defined(MY_INCLUSION_MODE_FEATURE)
    #include "core/MyInclusionMode.cpp"
    #endif
    
    
    // SIGNING
    #if defined(MY_SIGNING_ATSHA204) || defined(MY_SIGNING_SOFT)
    #define MY_SIGNING_FEATURE
    #endif
    #include "core/MySigning.cpp"
    #include "drivers/ATSHA204/sha256.cpp"
    #if defined(MY_SIGNING_FEATURE)
    // SIGNING COMMON FUNCTIONS
    #if defined(MY_SIGNING_ATSHA204) && defined(MY_SIGNING_SOFT)
    #error Only one signing engine can be activated
    #endif
    #if defined(MY_SIGNING_ATSHA204) && defined(__linux__)
    #error No support for ATSHA204 on this platform
    #endif
    
    #if defined(MY_SIGNING_ATSHA204)
    #include "core/MySigningAtsha204.cpp"
    #include "drivers/ATSHA204/ATSHA204.cpp"
    #elif defined(MY_SIGNING_SOFT)
    #include "core/MySigningAtsha204Soft.cpp"
    #endif
    #endif
    
    
    // FLASH
    #if defined(MY_OTA_FIRMWARE_FEATURE)
    #include "drivers/SPIFlash/SPIFlash.cpp"
    #include "core/MyOTAFirmwareUpdate.cpp"
    #endif
    
    // GATEWAY - TRANSPORT
    #if defined(MY_CONTROLLER_IP_ADDRESS) || defined(MY_CONTROLLER_URL_ADDRESS)
    #define MY_GATEWAY_CLIENT_MODE
    #endif
    #if defined(MY_USE_UDP) && !defined(MY_GATEWAY_CLIENT_MODE)
    #error You must specify MY_CONTROLLER_IP_ADDRESS or MY_CONTROLLER_URL_ADDRESS for UDP
    #endif
    
    #if defined(MY_GATEWAY_MQTT_CLIENT)
    #if defined(MY_SENSOR_NETWORK)
    // We assume that a gateway having a radio also should act as repeater
    #define MY_REPEATER_FEATURE
    #endif
    // GATEWAY - COMMON FUNCTIONS
    // We support MQTT Client using W5100, ESP8266 and Linux
    #if !defined(MY_GATEWAY_CLIENT_MODE)
    #error You must specify MY_CONTROLLER_IP_ADDRESS or MY_CONTROLLER_URL_ADDRESS
    #endif
    
    #if !defined(MY_MQTT_PUBLISH_TOPIC_PREFIX)
    #error You must specify a topic publish prefix MY_MQTT_PUBLISH_TOPIC_PREFIX for this MQTT client
    #endif
    #if !defined(MY_MQTT_SUBSCRIBE_TOPIC_PREFIX)
    #error You must specify a topic subscribe prefix MY_MQTT_SUBSCRIBE_TOPIC_PREFIX for this MQTT client
    #endif
    
    #if !defined(MY_MQTT_CLIENT_ID)
    #error You must define a unique MY_MQTT_CLIENT_ID for this MQTT client
    #endif
    
    #include "core/MyGatewayTransport.cpp"
    #include "core/MyProtocolMySensors.cpp"
    
    #if defined(MY_GATEWAY_LINUX)
    #include "drivers/Linux/EthernetClient.h"
    #include "drivers/Linux/EthernetServer.h"
    #include "drivers/Linux/IPAddress.h"
    #endif
    #include "drivers/PubSubClient/PubSubClient.cpp"
    #include "core/MyGatewayTransportMQTTClient.cpp"
    #elif defined(MY_GATEWAY_FEATURE)
    // GATEWAY - COMMON FUNCTIONS
    #include "core/MyGatewayTransport.cpp"
    
    #include "core/MyProtocolMySensors.cpp"
    
    // GATEWAY - CONFIGURATION
    #if defined(MY_SENSOR_NETWORK)
    // We assume that a gateway having a radio also should act as repeater
    #define MY_REPEATER_FEATURE
    #endif
    #if !defined(MY_PORT)
    #error You must define MY_PORT (controller or gatway port to open)
    #endif
    #if defined(MY_GATEWAY_ESP8266)
    // GATEWAY - ESP8266
    #include "core/MyGatewayTransportEthernet.cpp"
    #elif defined(MY_GATEWAY_LINUX)
    // GATEWAY - Generic Linux
    #include "drivers/Linux/EthernetClient.h"
    #include "drivers/Linux/EthernetServer.h"
    #include "drivers/Linux/IPAddress.h"
    #include "core/MyGatewayTransportEthernet.cpp"
    #elif defined(MY_GATEWAY_W5100)
    // GATEWAY - W5100
    #include "core/MyGatewayTransportEthernet.cpp"
    #elif defined(MY_GATEWAY_ENC28J60)
    // GATEWAY - ENC28J60
    #if defined(MY_USE_UDP)
    #error UDP mode is not available for ENC28J60
    #endif
    #include "core/MyGatewayTransportEthernet.cpp"
    #elif defined(MY_GATEWAY_SERIAL)
    // GATEWAY - SERIAL
    #include "core/MyGatewayTransportSerial.cpp"
    #endif
    #endif
    
    // RAM ROUTING TABLE
    #if defined(MY_RAM_ROUTING_TABLE_FEATURE) && defined(MY_REPEATER_FEATURE)
    // activate feature based on architecture
    #if defined(ARDUINO_ARCH_ESP8266) || defined(ARDUINO_ARCH_SAMD) || defined(LINUX_ARCH_RASPBERRYPI)
    #define MY_RAM_ROUTING_TABLE_ENABLED
    #elif defined(ARDUINO_ARCH_AVR)
    // memory limited, enable with care
    // #define MY_RAM_ROUTING_TABLE_ENABLED
    #endif
    #endif
    
    #if defined(MY_REPEATER_FEATURE)
    #define MY_TRANSPORT_SANITY_CHECK
    #endif
    
    
    #if defined(MY_TRANSPORT_DONT_CARE_MODE)
    #error This directive is deprecated, set MY_TRANSPORT_WAIT_READY_MS instead!
    #endif
    
    
    // RADIO
    #if defined(MY_RADIO_NRF24) || defined(MY_RADIO_RFM69) || defined(MY_RADIO_RFM95) ||defined(MY_RS485)
    // SOFTSPI
    #ifdef MY_SOFTSPI
    #if defined(ARDUINO_ARCH_ESP8266)
    #error Soft SPI is not available on ESP8266
    #endif
    #include "drivers/AVR/DigitalIO/DigitalIO.h"
    #endif
    
    #if defined(MY_RADIO_NRF24) && defined(__linux__) && !(defined(LINUX_SPI_BCM) || defined(LINUX_SPI_SPIDEV))
    #error No support for nRF24 radio on this platform
    #endif
    
    #include "core/MyTransport.cpp"
    
    // count enabled transports
    #if defined(MY_RADIO_NRF24)
    #define __RF24CNT 1
    #else
    #define __RF24CNT 0
    #endif
    #if defined(MY_RADIO_RFM69)
    #define __RFM69CNT 1
    #else
    #define __RFM69CNT 0
    #endif
    #if defined(MY_RADIO_RFM95)
    #define __RFM95CNT 1
    #else
    #define __RFM95CNT 0
    #endif
    #if defined(MY_RS485)
    #define __RS485CNT 1
    #else
    #define __RS485CNT 0
    #endif
    
    
    #if (__RF24CNT + __RFM69CNT + __RFM95CNT + __RS485CNT > 1)
    #error Only one forward link driver can be activated
    #endif
    
    #if defined(MY_RADIO_NRF24)
    #if defined(MY_RF24_ENABLE_ENCRYPTION)
    #include "drivers/AES/AES.cpp"
    #endif
    #include "drivers/RF24/RF24.cpp"
    #include "core/MyTransportNRF24.cpp"
    #elif defined(MY_RS485)
    #if !defined(MY_RS485_HWSERIAL)
    #if defined(__linux__)
    #error You must specify MY_RS485_HWSERIAL for RS485 transport
    #endif
    #include "drivers/AltSoftSerial/AltSoftSerial.cpp"
    #endif
    #include "core/MyTransportRS485.cpp"
    #elif defined(MY_RADIO_RFM69)
    #include "drivers/RFM69/RFM69.cpp"
    #include "core/MyTransportRFM69.cpp"
    #elif defined(MY_RADIO_RFM95)
    #include "drivers/RFM95/RFM95.cpp"
    #include "core/MyTransportRFM95.cpp"
    #endif
    #endif
    
    #if defined(MY_PARENT_NODE_IS_STATIC) && (MY_PARENT_NODE_ID == AUTO)
    #error Parent is static but no parent ID defined.
    #endif
    
    // Make sure to disable child features when parent feature is disabled
    #if !defined(MY_SENSOR_NETWORK)
    #undef MY_OTA_FIRMWARE_FEATURE
    #undef MY_REPEATER_FEATURE
    #undef MY_SIGNING_NODE_WHITELISTING
    #undef MY_SIGNING_FEATURE
    #endif
    
    #if !defined(MY_GATEWAY_FEATURE)
    #undef MY_INCLUSION_MODE_FEATURE
    #undef MY_INCLUSION_BUTTON_FEATURE
    #endif
    
    #if !defined(MY_CORE_ONLY)
    #if !defined(MY_GATEWAY_FEATURE) && !defined(MY_SENSOR_NETWORK)
    #error No forward link or gateway feature activated. This means nowhere to send messages! Pretty pointless.
    #endif
    #endif
    
    #include "core/MyCapabilities.h"
    #include "core/MyMessage.cpp"
    #include "core/MySensorsCore.cpp"
    
    #include <Arduino.h>
    
    #if !defined(MY_CORE_ONLY)
    #if defined(ARDUINO_ARCH_ESP8266)
    #include "core/MyMainESP8266.cpp"
    #elif defined(__linux__)
    #include "core/MyMainLinux.cpp"
    #else
    #include "core/MyMainDefault.cpp"
    #endif
    #endif
    
    #endif
    // Doxygen specific constructs, not included when built normally
    // This is used to enable disabled macros/definitions to be included in the documentation as well.
    #if DOXYGEN
    #define MY_GATEWAY_FEATURE
    #define MY_LEDS_BLINKING_FEATURE //!< \deprecated use MY_DEFAULT_RX_LED_PIN, MY_DEFAULT_TX_LED_PIN and/or MY_DEFAULT_ERR_LED_PIN instead **** DEPRECATED, DO NOT USE ****
    #endif```

  • Hardware Contributor


Log in to reply
 

Suggested Topics

1
Online

11.4k
Users

11.1k
Topics

112.7k
Posts