# Optionally some environment variables can be set: # # FQBN Fully Qualified Board Name; if not set in the environment # it will be assigned a value in this makefile # # SERIAL_DEV Serial device to upload the sketch; if not set in the # environment it will be assigned: # /dev/ttyUSB0 if it exists, or # /dev/ttyACM0 if it exists, or # unknown # # MDNS_NAME Hostname of the Arduino; if not set in the environment # it will be assigned a value in this makefile. This is # needed for OTA update, the device will be searched # on the local subnet using this name # # OTA_PORT Port used by OTA update; if not set in the environment # it will be assigned the default value of 8266 in this # makefile # # OTA_PASS Password used for OTA update; if not set in the environment # it will be assigned the default value of an empty string PROGNAME = mush CORE = esp8266:esp8266 FQBN = $(CORE):espmxdevkit MDNS_NAME = $(PROGNAME) OTA_PORT = 8266 OTA_PASS = .DEFAULT_GOAL = all init: [ -e /home/d/.arduino15/arduino-cli.yaml ] || arduino-cli config init arduino-cli config set board_manager.additional_urls https://arduino.esp8266.com/stable/package_esp8266com_index.json arduino-cli core update-index arduino-cli core install $(CORE) arduino-cli lib update-index arduino-cli lib install 'DHT sensor library' SERIAL_DEV = $(firstword $(wildcard /dev/ttyUSB* /dev/ttyACM*)) ifneq (,$(wildcard init)) BUILD_DIR != $(cli) compile --show-properties | sed -ne 's/^build.path=//p' PLAT_PATH != $(cli) compile --show-properties | sed -ne 's/^runtime.platform.path=//p' PY_PATH != $(cli) compile --show-properties | sed -ne 's/^runtime.tools.python3.path=//p' MDNS_IP != getent ahostsv4 $(MDNS_NAME).local | (read ip _; echo $$ip) endif cli = arduino-cli -b "$(FQBN)" SRC := CCS811.cpp $(PROGNAME).ino HDRS := CCS811.h ota.h wifiinfo.h BIN := $(BUILD_DIR)/$(PROGNAME).ino.bin ELF := $(BUILD_DIR)/$(PROGNAME).ino.elf all: $(ELF) .PHONY: all compile: $(ELF) .PHONY: compile $(BIN) $(ELF): $(SRC) $(HDRS) $(cli) compile --warnings all upload: $(ELF) $(cli) upload -p "$(SERIAL_DEV)" ota: $(BIN) [ "$(MDNS_IP)" ] "$(PY_PATH)/python3" "$(PLAT_PATH)/tools/espota.py" -i "$(MDNS_IP)" -p "$(OTA_PORT)" --auth="$(OTA_PASS)" -f "$(BIN)"