Minor changes
This commit is contained in:
parent
48a4bbe710
commit
b8cb4f6217
@ -4,7 +4,7 @@ created by caliskan at 19.04.2023
|
||||
contains all constants for the backend architecture of the smart garden project
|
||||
"""
|
||||
|
||||
MQTT_BROKER_LOCAL = "lorem ipsum"
|
||||
MQTT_BROKER_LOCAL = "192.168.0.199"
|
||||
MQTT_BROKER_GLOBAL = "mqtt.eclipseprojects.io"
|
||||
RASPI_CLIENT_ID = "smart_farming_raspi"
|
||||
BACKEND_CLIENT_ID = "smart_farming_server"
|
||||
@ -21,27 +21,33 @@ Topics = {
|
||||
"ROBOT_DATA_PICTURE": "ROBOT/DATA/PICTURE",
|
||||
|
||||
"BACKEND_ACTION_DRIVE": "BACKEND/ACTION/DRIVE",
|
||||
"BACKEND_ACTION_DRIVEPALL": "BACKEND/ACTION/DRIVEALL",
|
||||
"BACKEND_ACTION_GETPOSITION": "BACKEND/ACTION/GETPOSITION",
|
||||
"BACKEND_ACTION_GETBATTERY": "BACKEND/ACTION/GETBATTERY",
|
||||
"BACKEND_ACTION_GETALLDATA": "BACKEND/ACTION/GETALLDATA",
|
||||
"BACKEND_ACTION_NEWPLANT": "BACKEND/ACTION/NEWPLANT",
|
||||
"BACKEND_ACTION_CONFIGUREPLANT": "BACKEND/ACTION/CONFIGUREPLANT",
|
||||
"BACKEND_ACTION_DELETEPLANT": "BACKEND/ACTION/DELETEPLANT",
|
||||
"BACKEND_ACTION_PLANTCOUNT": "BACKEND/ACTION/PLANTCOUNT",
|
||||
|
||||
"BACKEND_DATA_SENSORDATA": "BACKEND/DATA/SENSORDATA",
|
||||
"BACKEND_DATA_SENSORDATAALL": "BACKEND/DATA/SENSORDATA_ALL",
|
||||
"BACKEND_DATA_POSITION": "BACKEND/DATA/POSITION",
|
||||
"BACKEND_DATA_BATTERY": "BACKEND/DATA/BATTERY",
|
||||
"BACKEND_DATA_PICTURE": "BACKEND/DATA/PICTURE"
|
||||
"BACKEND_DATA_PICTURE": "BACKEND/DATA/PICTURE",
|
||||
"BACKEND_DATA_PLANTCOUNT": "BACKEND/DATA/PLANTCOUNT",
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
# MQTT Messages:
|
||||
|
||||
# region Robot -> Backend
|
||||
SENSORDATA = {
|
||||
"AirTemperature": 0.0,
|
||||
"AirHumidity" : 0.0,
|
||||
"SoilMoisture" : 0.0,
|
||||
"Brightness" : 0,
|
||||
"AirHumidity": 0.0,
|
||||
"SoilMoisture": 0.0,
|
||||
"Brightness": 0,
|
||||
"PlantID": 0,
|
||||
"ActionID": 0
|
||||
}
|
||||
@ -74,12 +80,13 @@ DRIVE = {
|
||||
|
||||
PLANTDATA = {
|
||||
"AirTemperature": 0.0,
|
||||
"AirHumidity" : 0.0,
|
||||
"SoilMoisture" : 0.0,
|
||||
"Brightness" : 0,
|
||||
"AirHumidity": 0.0,
|
||||
"SoilMoisture": 0.0,
|
||||
"Brightness": 0,
|
||||
"PlantID": 0,
|
||||
"Timestamp": "",
|
||||
"MeasurementID": 0
|
||||
"MeasurementID": 0,
|
||||
"PlantName": ""
|
||||
}
|
||||
|
||||
ALLPLANTDATA = [
|
||||
@ -102,14 +109,29 @@ BATTERY = {
|
||||
"Timestamp": ""
|
||||
}
|
||||
|
||||
PLANTCOUNT = {
|
||||
"CurrenCount": 0,
|
||||
"maxCount": 0
|
||||
}
|
||||
|
||||
# endregion
|
||||
|
||||
# region Frontend -> Backend
|
||||
|
||||
DRIVE = {
|
||||
"PlantID": 0
|
||||
"PlantName": ""
|
||||
}
|
||||
|
||||
NEWPLANT = PLANTDATA
|
||||
|
||||
CONFIGUREPLANT = PLANTDATA
|
||||
|
||||
DELETEPLANT = {
|
||||
"PlantID": ""
|
||||
}
|
||||
|
||||
# DRIVEALL -> no message needed
|
||||
|
||||
# GETPOSITION -> no message needed
|
||||
|
||||
# GETBATTERY -> no message needed
|
||||
|
@ -7,7 +7,7 @@ from defines import Topics, SENSORDATA
|
||||
|
||||
def measure_send_data(plantID, actionID, client: mqtt.Client):
|
||||
"""
|
||||
Reads all sensors and publishes data via MQTT
|
||||
Reads all sensors and publishes data via MQTT in form of SENSORDATA
|
||||
|
||||
Args:
|
||||
plantID (_type_): plant to measure
|
||||
@ -39,21 +39,18 @@ def drive_plant_thread(plantID, actionID, client: mqtt.Client):
|
||||
client (mqtt.Client): current mqtt client for publishing
|
||||
"""
|
||||
# FIXME Change to color code driving
|
||||
# errorCode = os.system(f'sshpass -p maker ssh robot@ev3dev.local python3 /home/robot/Programme/plant_{plantID}.py')
|
||||
# # errorCode = os.system(f'sshpass -p maker ssh robot@ev3dev.local python3 /home/robot/Programme/drive_plant.py {plantID}')
|
||||
errorCode = os.system(f'sshpass -p maker ssh robot@ev3dev.local python3 /home/robot/Programme/plant_{plantID}.py')
|
||||
# errorCode = os.system(f'sshpass -p maker ssh robot@ev3dev.local python3 /home/robot/Programme/drive_plant.py {plantID}')
|
||||
|
||||
# TODO Error Message
|
||||
# if errorCode != 0:
|
||||
# print(f"Robot Error {errorCode} occurred")
|
||||
# print("Drive Plant aborted, Robot at starting position")
|
||||
# return
|
||||
if errorCode != 0:
|
||||
print(f"Robot Error {errorCode} occurred")
|
||||
print("Drive Plant aborted, Robot at starting position")
|
||||
return
|
||||
|
||||
print("Measuring Sensors")
|
||||
|
||||
#FIXME Sensor not working
|
||||
measure_send_data(plantID, actionID, client)
|
||||
|
||||
|
||||
print("Robot driving home")
|
||||
errorCode = os.system(f'sshpass -p maker ssh robot@ev3dev.local python3 /home/robot/Programme/drive_back.py {plantID}')
|
||||
|
||||
@ -74,12 +71,12 @@ def drive_plant_thread(plantID, actionID, client: mqtt.Client):
|
||||
def drive_plant(clients: mqtt.Client, userdata, message: mqtt.MQTTMessage):
|
||||
"""
|
||||
Function to drive to plant according to request
|
||||
Starting Drive in Thread
|
||||
Starting Drive in Thread to not block main programm
|
||||
|
||||
Args:
|
||||
clients (mqtt.Client): current mqtt client
|
||||
userdata (_type_): _description_
|
||||
message (mqtt.MQTTMessage): received message
|
||||
message (mqtt.MQTTMessage): received DRIVE message with PlantID and ActionID
|
||||
"""
|
||||
dictMessage = json.loads(str(message.payload.decode("UTF-8")))
|
||||
plantID = dictMessage["PlantID"]
|
||||
@ -94,7 +91,7 @@ def drive_plant(clients: mqtt.Client, userdata, message: mqtt.MQTTMessage):
|
||||
def get_position(clients: mqtt.Client, userdata, message: mqtt.MQTTMessage):
|
||||
"""
|
||||
Callback function for GPS position request
|
||||
Function to send actual GPS position via MQTT
|
||||
Function to send actual GPS position via MQTT in form of POSITION
|
||||
|
||||
Args:
|
||||
clients (mqtt.Client): current mqtt client
|
||||
@ -112,7 +109,7 @@ def get_position(clients: mqtt.Client, userdata, message: mqtt.MQTTMessage):
|
||||
def get_BatteryStatus(clients: mqtt.Client, userdata, message: mqtt.MQTTMessage):
|
||||
"""
|
||||
Callback function for battery status request
|
||||
Function to read battery status from ev3 and send via MQTT
|
||||
Function to read battery status from ev3 and send via MQTT in form of BATTERY
|
||||
8,5V -> 100%
|
||||
5V -> 0%
|
||||
|
||||
|
@ -10,7 +10,6 @@ Interaction with the EV3 via SSH
|
||||
|
||||
import paho.mqtt.client as mqtt
|
||||
import functions
|
||||
|
||||
from defines import Topics, RASPI_CLIENT_ID, MQTT_BROKER_GLOBAL
|
||||
|
||||
|
||||
@ -26,7 +25,7 @@ def on_connect(client: mqtt.Client, userdata, flags, rc):
|
||||
rc (_type_): _description_
|
||||
"""
|
||||
if rc == 0:
|
||||
#Add callbacks
|
||||
#Add callbacks
|
||||
client.message_callback_add(Topics["ROBOT_ACTION_DRIVE"], functions.drive_plant)
|
||||
client.message_callback_add(Topics["ROBOT_ACTION_GETPOSITION"], functions.get_position)
|
||||
client.message_callback_add(Topics["ROBOT_ACTION_GETBATTERY"], functions.get_BatteryStatus)
|
||||
@ -54,12 +53,8 @@ def main():
|
||||
|
||||
print("Starting Loop")
|
||||
while True:
|
||||
# print("Looping")
|
||||
# time.sleep(1)
|
||||
pass
|
||||
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
@ -14,8 +14,8 @@ def readDHT22():
|
||||
Exception: If DHT22 not connected properly
|
||||
|
||||
Returns:
|
||||
float: air temperature in °C
|
||||
float: air humidity %
|
||||
float: temperature [°C]
|
||||
float: humidity [%]
|
||||
"""
|
||||
try:
|
||||
dht22 = adafruit_dht.DHT22(board.D4, use_pulseio=False)
|
||||
@ -40,7 +40,7 @@ def readTSL2561():
|
||||
Exception: If TSL2561 not connected properly
|
||||
|
||||
Returns:
|
||||
int: brightness in Lux
|
||||
int: brightness [Lux]
|
||||
"""
|
||||
try:
|
||||
tsl2561 = adafruit_tsl2561.TSL2561(board.I2C())
|
||||
@ -118,14 +118,3 @@ def readPosition():
|
||||
"""
|
||||
position = ""
|
||||
return position
|
||||
|
||||
|
||||
# for Testing only
|
||||
def main():
|
||||
sensors = RaspySensors()
|
||||
test = sensors.readSensors()
|
||||
print("Data:" + json.dumps(test))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
Loading…
x
Reference in New Issue
Block a user