laskee ihmisiä
Dependencies: Adafruit-GFX-MbedOS6 Adafruit_SSD1331_MbedOS6
main.cpp@8:5aa78bacd78f, 2020-10-19 (annotated)
- 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?
User | Revision | Line number | New 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 | } |