-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain_to_csv.py
More file actions
133 lines (115 loc) · 3.79 KB
/
main_to_csv.py
File metadata and controls
133 lines (115 loc) · 3.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# This is the main.py micropython program that will run and run while the pico W has power.
# It connects to the internet, collects data, connects to my own private mqtt broker and sends data to it.
import time
from helper import GetTemperature, connect_to_wifi, WifiServer, to_json
import usocket
import socket
from time import time, sleep
import network
import time
from umqtt.simple import MQTTClient
import machine
from picozero import pico_temp_sensor
from machine import Pin
import micropython
import ustruct as struct
import json
import random
import socket
import uos
Self_Name = 'PW_1'
ssidAP = 'CuthbertWifi' #Enter the router name
passwordAP = '999' # Enter the router password
local_IP = '192.168.1.1'
gateway = '192.168.1.1'
subnet = '255.255.255.0'
dns = '8.8.8.8'
sta_if = network.WLAN(network.STA_IF)
ap_if = network.WLAN(network.AP_IF)
adcpin = 4
sensor = machine.ADC(adcpin)
sock = usocket
SSID = 'BB'
PASSWORD = '6KH1jk1mn0s'
USER = "Cuthbert"
wlan = network.WLAN(network.STA_IF)
TOPIC = "test_data"
mqtt = MQTTClient
#sending = broker_address
#BROKER = "192.168.4.16"
#PORT = 1883 # Topic to publish to
#CLIENT_ID = "Cuthbert"
Temperature = GetTemperature()
timestamp = time.time()
json_string = {"name":Self_Name,
"temp":Temperature,
"Timestamp":timestamp,
}
print(json_string)
def collect_sensor_data():
# Collect data from the sensor
Temp = GetTemperature()
# Get the current timestamp
timestamp = time.time()
# Format timestamp to YYYY-MM-DD HH:MM:SS
formatted_time = time.localtime(timestamp)
timestamp_str = "{:04d}-{:02d}-{:02d} {:02d}:{:02d}:{:02d}".format(
formatted_time[0], formatted_time[1], formatted_time[2],
formatted_time[3], formatted_time[4], formatted_time[5]
)
# Create a CSV formatted string
csv_data = "{},{}\n".format(timestamp_str, Temp)
return csv_data
csv_data = collect_sensor_data()
print(csv_data)
def write_to_csv(csv_data, filename="PW_1.csv"):
# Write the CSV data to a file
with open(filename, "a") as file:
file.write(csv_data)
write_to_csv(csv_data)
json_data = json.dumps(json_string)
#data1 = json.loads(json_string)
ip = connect_to_wifi()
# gateway1 = WifiServer('CuthbertWifi', '999')
#client = MQTTClient(CLIENT_ID, BROKER)
start_time = time.time()
duration = 4000
try:
print("Connecting to MQTT broker...")
# client.connect()
print("Connected to MQTT broker.")
while (time.time() - start_time) < duration:
Temperature = GetTemperature()
timestamp = time.time()
csv_data = collect_sensor_data()
write_to_csv(csv_data)
# json_result = to_json(Self_Name, Temperature, timestamp)
print(csv_data)
# client.publish(TOPIC, json_result)
time.sleep(10) # Publish every 5 seconds
Temperature = GetTemperature()
csv_data = collect_sensor_data()
write_to_csv(csv_data)
# timestamp = time.time()
# json_result = to_json(Self_Name, Temperature,timestamp)
print(csv_data)
# client.publish(TOPIC, json_result)
time.sleep(10)
Temperature = GetTemperature()
timestamp = time.time()
# json_result = to_json(Self_Name, Temperature, timestamp)
csv_data = collect_sensor_data()
write_to_csv(csv_data)
print(csv_data)
# client.publish(TOPIC, json_result)
Temperature = GetTemperature()
timestamp = time.time()
# json_result = to_json(Self_Name, Temperature, timestamp)
csv_data = collect_sensor_data()
write_to_csv(csv_data)
print(csv_data)
# client.publish(TOPIC, json_result)
except Exception as e:
print("An error occurred:", e)
# client.disconnect()
# wlan.disconnect()