laskee ihmisiä

Dependencies:   Adafruit-GFX-MbedOS6 Adafruit_SSD1331_MbedOS6

Committer:
koodimuikku
Date:
Mon Oct 19 13:42:55 2020 +0000
Revision:
8:5aa78bacd78f
Parent:
7:d6cbb33f21fd
Child:
9:b18fe306d952
lednayttovalmis

Who changed what in which revision?

UserRevisionLine numberNew contents of line
koodimuikku 0:8d549d45642e 1 #include "mbed.h"
koodimuikku 3:55afdc7fb4f2 2 #include "ESP8266Interface.h"
koodimuikku 3:55afdc7fb4f2 3 #include <MQTTClientMbedOs.h>
koodimuikku 7:d6cbb33f21fd 4 #include "Adafruit_SSD1331.h"
koodimuikku 7:d6cbb33f21fd 5 #include "Adafruit_GFX.h"
vaeries 6:e5fdc96a8310 6
koodimuikku 3:55afdc7fb4f2 7 //Miten pistän kiinni
vaeries 6:e5fdc96a8310 8
koodimuikku 3:55afdc7fb4f2 9 //sensori
koodimuikku 3:55afdc7fb4f2 10 //r = virta 5v
koodimuikku 3:55afdc7fb4f2 11 //b = ground
koodimuikku 3:55afdc7fb4f2 12 //w = D6
vaeries 6:e5fdc96a8310 13
koodimuikku 3:55afdc7fb4f2 14 //wifi
koodimuikku 3:55afdc7fb4f2 15 //L432KC D5=PB6=UART1TX --- 3 RXD
koodimuikku 3:55afdc7fb4f2 16 //L432KC D4=PB7=UART1RX --- 4 TXD
koodimuikku 3:55afdc7fb4f2 17 //L432KC 3V3 --- 1 3.3V
koodimuikku 3:55afdc7fb4f2 18 //L432KC GND --- 2 GND
vaeries 6:e5fdc96a8310 19
koodimuikku 0:8d549d45642e 20 DigitalOut led1(LED1);
koodimuikku 3:55afdc7fb4f2 21 InterruptIn alarm(D6, PullUp);
koodimuikku 7:d6cbb33f21fd 22 Adafruit_SSD1331 OLED(D9, D8, D10, D11, NC, D13);
koodimuikku 7:d6cbb33f21fd 23 DigitalOut VCCEN(D3);
koodimuikku 7:d6cbb33f21fd 24 DigitalOut PMODEN(D5);
koodimuikku 7:d6cbb33f21fd 25 #define Black 0x0000
koodimuikku 7:d6cbb33f21fd 26 #define Blue 0x001F
koodimuikku 7:d6cbb33f21fd 27 #define Red 0xF800
koodimuikku 7:d6cbb33f21fd 28 #define Green 0x07E0
koodimuikku 7:d6cbb33f21fd 29 #define Cyan 0x07FF
koodimuikku 7:d6cbb33f21fd 30 #define Magenta 0xF81F
koodimuikku 7:d6cbb33f21fd 31 #define Yellow 0xFFE0
koodimuikku 7:d6cbb33f21fd 32 #define White 0xFFFF
vaeries 6:e5fdc96a8310 33
vaeries 6:e5fdc96a8310 34
koodimuikku 4:a814f6735023 35 int main() {
koodimuikku 0:8d549d45642e 36
koodimuikku 8:5aa78bacd78f 37 //Tässtä led näyttö kun ohjelma käynnistyy
koodimuikku 8:5aa78bacd78f 38 OLED.begin();
koodimuikku 8:5aa78bacd78f 39 OLED.clearScreen();
koodimuikku 8:5aa78bacd78f 40 OLED.fillScreen(Black);
koodimuikku 8:5aa78bacd78f 41 OLED.setTextColor(White);
koodimuikku 8:5aa78bacd78f 42 OLED.setCursor(30,25);
koodimuikku 8:5aa78bacd78f 43 OLED.setTextSize(1);
koodimuikku 8:5aa78bacd78f 44 OLED.printf("Booting up");
koodimuikku 8:5aa78bacd78f 45
koodimuikku 4:a814f6735023 46 //Tästä alkaa wifi ja mqtt hörjöilyt
koodimuikku 4:a814f6735023 47
koodimuikku 4:a814f6735023 48 ESP8266Interface esp(MBED_CONF_APP_ESP_TX_PIN, MBED_CONF_APP_ESP_RX_PIN);
koodimuikku 3:55afdc7fb4f2 49
koodimuikku 3:55afdc7fb4f2 50 //Store device IP
koodimuikku 3:55afdc7fb4f2 51 SocketAddress deviceIP;
koodimuikku 3:55afdc7fb4f2 52 //Store broker IP
koodimuikku 3:55afdc7fb4f2 53 SocketAddress MQTTBroker;
koodimuikku 3:55afdc7fb4f2 54
koodimuikku 3:55afdc7fb4f2 55 TCPSocket socket;
koodimuikku 3:55afdc7fb4f2 56 MQTTClient client(&socket);
koodimuikku 3:55afdc7fb4f2 57
koodimuikku 3:55afdc7fb4f2 58 int ret = esp.connect(MBED_CONF_APP_WIFI_SSID, MBED_CONF_APP_WIFI_PASSWORD, NSAPI_SECURITY_WPA_WPA2);
koodimuikku 3:55afdc7fb4f2 59
koodimuikku 3:55afdc7fb4f2 60 esp.get_ip_address(&deviceIP);
koodimuikku 3:55afdc7fb4f2 61
koodimuikku 3:55afdc7fb4f2 62 esp.gethostbyname(MBED_CONF_APP_MQTT_BROKER_HOSTNAME, &MQTTBroker);
koodimuikku 3:55afdc7fb4f2 63 MQTTBroker.set_port(MBED_CONF_APP_MQTT_BROKER_PORT);
vaeries 6:e5fdc96a8310 64
koodimuikku 3:55afdc7fb4f2 65 MQTTPacket_connectData data = MQTTPacket_connectData_initializer;
koodimuikku 3:55afdc7fb4f2 66 data.MQTTVersion = 3;
koodimuikku 3:55afdc7fb4f2 67 char *id = MBED_CONF_APP_MQTT_ID;
koodimuikku 3:55afdc7fb4f2 68 data.clientID.cstring = id;
koodimuikku 3:55afdc7fb4f2 69
koodimuikku 3:55afdc7fb4f2 70 char buffer[64];
koodimuikku 3:55afdc7fb4f2 71 sprintf(buffer, "TykkäänMuikuista");
koodimuikku 3:55afdc7fb4f2 72
vaeries 6:e5fdc96a8310 73
koodimuikku 3:55afdc7fb4f2 74 MQTT::Message msg;
koodimuikku 3:55afdc7fb4f2 75 msg.qos = MQTT::QOS0;
koodimuikku 3:55afdc7fb4f2 76 msg.retained = false;
koodimuikku 3:55afdc7fb4f2 77 msg.dup = false;
koodimuikku 3:55afdc7fb4f2 78 msg.payload = (void*)buffer;
koodimuikku 3:55afdc7fb4f2 79 msg.payloadlen = strlen(buffer);
vaeries 6:e5fdc96a8310 80
koodimuikku 3:55afdc7fb4f2 81 socket.open(&esp);
koodimuikku 3:55afdc7fb4f2 82 socket.connect(MQTTBroker);
koodimuikku 4:a814f6735023 83 client.connect(data);
koodimuikku 7:d6cbb33f21fd 84
koodimuikku 7:d6cbb33f21fd 85 //Tässtä led näyttö alku
koodimuikku 8:5aa78bacd78f 86 int counter;
koodimuikku 8:5aa78bacd78f 87 counter = 0;
koodimuikku 7:d6cbb33f21fd 88 OLED.clearScreen();
koodimuikku 7:d6cbb33f21fd 89 OLED.fillScreen(Black);
koodimuikku 8:5aa78bacd78f 90 OLED.setTextColor(Red);
koodimuikku 8:5aa78bacd78f 91 OLED.setCursor(30,25);
koodimuikku 8:5aa78bacd78f 92 OLED.setTextSize(3);
koodimuikku 8:5aa78bacd78f 93 OLED.printf("%d", counter);
vaeries 6:e5fdc96a8310 94
koodimuikku 4:a814f6735023 95 //Tästä alkaa sensori sensuroinnit
koodimuikku 4:a814f6735023 96
koodimuikku 4:a814f6735023 97 while(true) {
koodimuikku 4:a814f6735023 98 if (alarm){
koodimuikku 5:fbb8f4417298 99 counter++;
koodimuikku 5:fbb8f4417298 100 printf("Toimii! Jippii! '%d' \r\n", counter);
koodimuikku 7:d6cbb33f21fd 101 OLED.fillScreen(Black);
koodimuikku 8:5aa78bacd78f 102 OLED.setCursor(30,25);
koodimuikku 8:5aa78bacd78f 103 OLED.printf("%d", counter);
koodimuikku 4:a814f6735023 104
koodimuikku 4:a814f6735023 105 //Tässä laite lähettää mqtt paketin
vaeries 6:e5fdc96a8310 106
koodimuikku 3:55afdc7fb4f2 107 client.publish(MBED_CONF_APP_MQTT_TOPIC, msg);
koodimuikku 7:d6cbb33f21fd 108 //client.yield(100);
koodimuikku 3:55afdc7fb4f2 109 client.disconnect();
koodimuikku 4:a814f6735023 110 }
koodimuikku 4:a814f6735023 111 }
koodimuikku 0:8d549d45642e 112 }