{"id":2055852,"date":"2023-08-18T08:57:22","date_gmt":"2023-08-18T15:57:22","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2055852"},"modified":"2024-04-12T01:15:55","modified_gmt":"2024-04-12T08:15:55","slug":"java-maps-sdk-raspberry-pi-weather-station","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-java\/developers\/java-maps-sdk-raspberry-pi-weather-station","title":{"rendered":"How to use the Java Maps SDK in a Raspberry Pi weather station"},"author":30781,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[738191],"tags":[769082,771082,538822,771072],"industry":[],"product":[761642,769162],"class_list":["post-2055852","blog","type-blog","status-publish","format-standard","hentry","category-developers","tag-arcgis-maps-sdk-for-java","tag-embedded","tag-iot","tag-raspberry-pi","product-platform","product-sdk-java"],"acf":{"authors":[{"ID":30781,"user_firstname":"Mark","user_lastname":"Baird","nickname":"mbaird","user_nicename":"mbaird","display_name":"Mark Baird","user_email":"mbaird@esri.com","user_url":"https:\/\/github.com\/mbcoder\/","user_registered":"2020-04-29 09:59:19","user_description":"Mark Baird is the engineering lead for the ArcGIS Maps SDK for Java product. He has worked with GIS for 25 years in both consultancy roles and more recently in product development. This has involved working in many industry areas including environmental science, ecology, insurance risk analysis, public safety and situation awareness systems.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/Mugshot-466x465.png' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"short_description":"An introduction to IoT data collection using the ArcGIS Maps SDK for Java","flexible_content":[{"acf_fc_layout":"content","content":"<p>This blog is the second in a series of articles which aims to demonstrate how the <a href=\"https:\/\/community.esri.com\/t5\/arcgis-maps-sdks-native-blog\/arcgis-maps-sdk-for-java-with-support-for-arm64\/ba-p\/1304914\" target=\"_blank\" rel=\"noopener\">beta release<\/a> of the <a href=\"https:\/\/developers.arcgis.com\/java\/\" target=\"_blank\" rel=\"noopener\">ArcGIS Maps SDK for Java<\/a> (with ARM Linux support) can be used for IoT data recording apps. The <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-java\/developers\/how-to-use-the-arcgis-maps-sdk-for-java-in-a-raspberry-pi-for-recording-gps-tracks\/\" target=\"_blank\" rel=\"noopener\">first blog of the series<\/a> walked through how to create an inexpensive GPS logger using the Java Maps SDK with a Raspberry Pi.<\/p>\n<p><span style=\"font-style: normal !msorm;\"><em>The libraries used in this article are available on request by emailing <\/em><\/span><span style=\"font-style: normal !msorm;\"><em><a href=\"mailto:ARM64LinuxNative@esri.com\">ARM64LinuxNative@esri.com<\/a>.<\/em><\/span><\/p>\n<p>&nbsp;<\/p>\n<p><strong>Introduction<\/strong><\/p>\n<p>In this blog, I&#8217;ll share how to use the Java Maps SDK to build a simple app that can display and then log weather data gathered from a Raspberry Pi to a <a href=\"https:\/\/developers.arcgis.com\/documentation\/glossary\/feature-service\/\" target=\"_blank\" rel=\"noopener\">feature service<\/a>.\u00a0 Hosting the data in a feature service allows for automatic uploads of weather data, and allows for further analysis of the data over a longer period of time.\u00a0 This workflow could also be extended to add more weather stations and host their data in the same feature service to build a live weather map.<\/p>\n<p>There are lots of potential use-cases for this type of sensor data recording and logging such as:<\/p>\n<ul>\n<li>Environmental monitoring for climate change analysis<\/li>\n<li>River monitoring for real-time warnings of flooding events<\/li>\n<li>Air quality or pollution monitoring<\/li>\n<li>Agricultural crop monitoring<\/li>\n<\/ul>\n<p>Having this data written back into a feature service allows for historical analysis to look for changes and patterns over time, but the data can also be used in a control room dashboard where more urgent actions may be required.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2009302,"id":2009302,"title":"RPi","filename":"RPi.png","filesize":2890755,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/RPi.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-java\/developers\/how-to-use-the-arcgis-maps-sdk-for-java-in-a-raspberry-pi-for-recording-gps-tracks\/rpi","alt":"Raspberry Pi PCB","author":"30781","description":"","caption":"Raspberry Pi PCB","name":"rpi","status":"inherit","uploaded_to":2009252,"date":"2023-06-30 15:45:21","modified":"2023-07-03 12:34:35","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1336,"height":1006,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/RPi-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/RPi.png","medium-width":347,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/RPi.png","medium_large-width":768,"medium_large-height":578,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/RPi.png","large-width":1336,"large-height":1006,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/RPi.png","1536x1536-width":1336,"1536x1536-height":1006,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/RPi.png","2048x2048-width":1336,"2048x2048-height":1006,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/RPi-618x465.png","card_image-width":618,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/RPi.png","wide_image-width":1336,"wide_image-height":1006}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>I\u2019m using the Raspberry Pi platform for this blog post series as they are particularly well suited for embedded IoT projects.\u00a0 The Raspberry Pi has a good range of hardware extensions (such as GPS units, weather sensors, cameras) and software libraries making it easy to prototype a wide variety of data collection applications.<\/p>\n<p>A Raspberry Pi can be easily set up as a weather recording station by adding sensors for temperature, humidity, and air pressure.\u00a0 With a little creativeness this could easily be extended to record other environmental information such as windspeed, rainfall or even air quality.\u00a0 The Raspberry Pi platform is well supported with sensors allowing for inexpensive development of IoT applications.<\/p>\n<p>The sensor I\u2019m using in this project is a BME280 made by Bosch which measures 2.5mm square and measures temperature, air pressure and humidity.\u00a0 It is packaged on a PCB made by Pimoroni who made it easy to interface with the Raspberry Pi using the <a href=\"https:\/\/en.wikipedia.org\/wiki\/I%C2%B2C\" target=\"_blank\" rel=\"noopener\">i2c<\/a> interface.<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: normal !msorm;\"><strong>Sett<\/strong><\/span><span style=\"font-weight: normal !msorm;\"><strong>ing up the Raspberry Pi<\/strong><\/span><\/p>\n<p>N.B. I have written a full set of software setup instructions for the Raspberry Pi in GitHub <a href=\"https:\/\/github.com\/mbcoder\/weather-station\" target=\"_blank\" rel=\"noopener\">repository<\/a> for this blog.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2055962,"id":2055962,"title":"BME280","filename":"BME280.png","filesize":2042259,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/BME280.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-java\/developers\/java-maps-sdk-raspberry-pi-weather-station\/bme280","alt":"","author":"30781","description":"","caption":"","name":"bme280","status":"inherit","uploaded_to":2055852,"date":"2023-08-18 13:56:31","modified":"2023-08-18 13:56:31","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1155,"height":1101,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/BME280-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/BME280.png","medium-width":274,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/BME280.png","medium_large-width":768,"medium_large-height":732,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/BME280.png","large-width":1133,"large-height":1080,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/BME280.png","1536x1536-width":1155,"1536x1536-height":1101,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/BME280.png","2048x2048-width":1155,"2048x2048-height":1101,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/BME280-488x465.png","card_image-width":488,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/BME280-1133x1080.png","wide_image-width":1133,"wide_image-height":1080}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p><strong>Parts needed for project.<\/strong><\/p>\n<p>These are the parts I\u2019ve used to make the weather recording station:<\/p>\n<ul>\n<li>Raspberry Pi Model 3b+ or 4b+<\/li>\n<li>7\u201d display (unless you make a headless app)<\/li>\n<li>Case and power supply<\/li>\n<li>16Gb microSD card<\/li>\n<li>Pimoroni BME280 sensor<\/li>\n<li>Male to female 0.1\u201d pitch jumper wires<\/li>\n<\/ul>\n<p>As supplied, the Pimoroni BME280 sensor needs a female right-angle header soldering onto the board, and you need to use the jumper wires to connect to the Raspberry Pi\u2019s GPIO port as shown in the diagram below.\u00a0 The sensor board has been designed so it could be plugged directly into the GPIO port of the Raspberry Pi, but in my view, this will result in elevated temperature readings as the heat generated from the CPU will raise the values.\u00a0 Using short jumper leads will mitigate this problem.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2055972,"id":2055972,"title":"weather-cables","filename":"weather-cables.png","filesize":53226,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-cables.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-java\/developers\/java-maps-sdk-raspberry-pi-weather-station\/weather-cables","alt":"","author":"30781","description":"","caption":"Cabling for weather sensor","name":"weather-cables","status":"inherit","uploaded_to":2055852,"date":"2023-08-18 14:00:39","modified":"2023-08-18 14:01:09","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":852,"height":754,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-cables-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-cables.png","medium-width":295,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-cables.png","medium_large-width":768,"medium_large-height":680,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-cables.png","large-width":852,"large-height":754,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-cables.png","1536x1536-width":852,"1536x1536-height":754,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-cables.png","2048x2048-width":852,"2048x2048-height":754,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-cables-525x465.png","card_image-width":525,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-cables.png","wide_image-width":852,"wide_image-height":754}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>Now we\u2019ve got the electrical connections sorted out (please double check them before you turn anything on) let\u2019s return to the familiar ground of Java development and geospatial data!<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2055982,"id":2055982,"title":"weather-hardware","filename":"weather-hardware.png","filesize":1468787,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-hardware.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-java\/developers\/java-maps-sdk-raspberry-pi-weather-station\/weather-hardware","alt":"","author":"30781","description":"hardware for weather logger","caption":"hardware for weather logger","name":"weather-hardware","status":"inherit","uploaded_to":2055852,"date":"2023-08-18 14:02:36","modified":"2023-08-18 14:03:11","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":842,"height":905,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-hardware-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-hardware.png","medium-width":243,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-hardware.png","medium_large-width":768,"medium_large-height":825,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-hardware.png","large-width":842,"large-height":905,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-hardware.png","1536x1536-width":842,"1536x1536-height":905,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-hardware.png","2048x2048-width":842,"2048x2048-height":905,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-hardware-433x465.png","card_image-width":433,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-hardware.png","wide_image-width":842,"wide_image-height":905}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p><span style=\"font-weight: normal !msorm;\"><strong>Setting up the feature service<\/strong><\/span><strong>\u00a0<\/strong><\/p>\n<p>To display the data from the Raspberry Pi weather station online, I&#8217;ll create a feature service in ArcGIS Online. I&#8217;ll do this in ArcGIS Pro and then publish it to my ArcGIS Online account.<\/p>\n<p>I set the feature service up to contain a point feature layer (to record the locations of the weather station), and a <a href=\"https:\/\/developers.arcgis.com\/documentation\/glossary\/related-table\/\" target=\"_blank\" rel=\"noopener\">related table,<\/a> using a one-to-many relationship class (to contain the data reports from the weather station). To learn more about creating related tables in ArcGIS Desktop visit the ArcGIS Pro related table <a href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/latest\/help\/data\/tables\/view-related-data.htm\" target=\"_blank\" rel=\"noopener\">guide<\/a>.<\/p>\n<p>The design for the data is shown in the entity relationship diagram below. Since the weather station sensors are collecting temperature, pressure, and humidity, I have set the attribute names appropriately along with the record date\/time stamp<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2055992,"id":2055992,"title":"weather-er-diagram","filename":"weather-er-diagram.png","filesize":35982,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-er-diagram.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-java\/developers\/java-maps-sdk-raspberry-pi-weather-station\/weather-er-diagram","alt":"Entity relationship diagram for weather station","author":"30781","description":"Entity relationship diagram for weather station","caption":"Entity relationship diagram for weather station","name":"weather-er-diagram","status":"inherit","uploaded_to":2055852,"date":"2023-08-18 14:08:35","modified":"2023-08-18 14:09:15","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":950,"height":321,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-er-diagram-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-er-diagram.png","medium-width":464,"medium-height":157,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-er-diagram.png","medium_large-width":768,"medium_large-height":260,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-er-diagram.png","large-width":950,"large-height":321,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-er-diagram.png","1536x1536-width":950,"1536x1536-height":321,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-er-diagram.png","2048x2048-width":950,"2048x2048-height":321,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-er-diagram-826x279.png","card_image-width":826,"card_image-height":279,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-er-diagram.png","wide_image-width":950,"wide_image-height":321}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>After the Raspberry Pi with the BME280 sensor and the feature service on ArcGIS Online were set up, I used the Java Maps SDK along with the <a href=\"https:\/\/pi4j.com\/\" target=\"_blank\" rel=\"noopener\">Pi4J<\/a> and JavaFX <a href=\"https:\/\/github.com\/HanSolo\/medusa\" target=\"_blank\" rel=\"noopener\">Medusa<\/a> libraries to build a weather station app that displays live information direct from the sensors and writes weather report data directly to the feature service.<\/p>\n<p>The project for this app is in this <a href=\"https:\/\/github.com\/mbcoder\/weather-station\" target=\"_blank\" rel=\"noopener\">git<\/a> repository.<\/p>\n<p><em>Check out<span style=\"font-style: normal !msorm;\"> Rachael Ellen<\/span>\u2019s <a href=\"https:\/\/dev.to\/rachaele\/how-to-use-the-javafx-library-medusa-to-display-weather-data-10a9\" target=\"_blank\" rel=\"noopener\">blog post<\/a> on <span style=\"font-style: normal !msorm;\">us<\/span>ing<span style=\"font-style: normal !msorm;\"> the <\/span>JavaFX Medusa library to build <span style=\"font-style: normal !msorm;\">the user interface of this application.<\/span><\/em><\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2056012,"id":2056012,"title":"weather-gui","filename":"weather-gui.png","filesize":90648,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-gui.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-java\/developers\/java-maps-sdk-raspberry-pi-weather-station\/weather-gui","alt":"GUI for weather logger","author":"30781","description":"GUI for weather logger","caption":"GUI for weather logger","name":"weather-gui","status":"inherit","uploaded_to":2055852,"date":"2023-08-18 14:12:31","modified":"2023-08-18 14:12:57","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":499,"height":499,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-gui-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-gui.png","medium-width":261,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-gui.png","medium_large-width":499,"medium_large-height":499,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-gui.png","large-width":499,"large-height":499,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-gui.png","1536x1536-width":499,"1536x1536-height":499,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-gui.png","2048x2048-width":499,"2048x2048-height":499,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-gui-465x465.png","card_image-width":465,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-gui.png","wide_image-width":499,"wide_image-height":499}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>I\u2019ve assumed that the weather station has network access, so the app is using the Java Maps SDK to write weather report data directly into the feature service.<\/p>\n<p>There will be instances where IoT data collection devices do not have network connection, so offline data collection techniques will be needed.\u00a0 If you\u2019d like to learn how to handle offline data collection, check out my previous <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-java\/developers\/how-to-use-the-arcgis-maps-sdk-for-java-in-a-raspberry-pi-for-recording-gps-tracks\/\" target=\"_blank\" rel=\"noopener\">blog post<\/a> where I made a GPS data logger that could collect data remotely and then push data when back online.<\/p>\n<p>Writing the sensor data into the feature service is simple, firstly you need a connection to the service as follows:<\/p>\n<div>\n<pre style=\"background: #ffffff; overflow: auto; width: auto; border: solid gray; border-width: .1em .1em .1em .8em; padding: .2em .6em; margin: 0; line-height: 125%;\"><span style=\"color: #888888;\">\/\/ Connect to the service feature table for logging data on public service<\/span>\r\nreportTable <span style=\"color: #333333;\">=<\/span> <span style=\"color: #008800; font-weight: bold;\">new<\/span> ServiceFeatureTable<span style=\"color: #333333;\">(<\/span><span style=\"background-color: #fff0f0;\">\"https:\/\/services1.arcgis.com\/6677msI40mnLuuLr\/ArcGIS\/rest\/services\/Weather\/FeatureServer\/1\"<\/span><span style=\"color: #333333;\">);<\/span>\r\nreportTable<span style=\"color: #333333;\">.<\/span><span style=\"color: #0000cc;\">loadAsync<\/span><span style=\"color: #333333;\">();<\/span>\r\n<\/pre>\n<\/div>\n<p>And once the connection is made, I have a timer in my application which adds the latest sensor data into the service every 30 minutes:<\/p>\n<div>\n<pre style=\"background: #ffffff; overflow: auto; width: auto; border: solid gray; border-width: .1em .1em .1em .8em; padding: .2em .6em; margin: 0; line-height: 125%;\"><span style=\"color: #888888;\">\/\/ create attributes for the weather report<\/span>\r\nMap<span style=\"color: #333333;\">&lt;<\/span>String<span style=\"color: #333333;\">,<\/span> Object<span style=\"color: #333333;\">&gt;<\/span> attributes <span style=\"color: #333333;\">=<\/span> <span style=\"color: #008800; font-weight: bold;\">new<\/span> HashMap<span style=\"color: #333333;\">&lt;&gt;();<\/span>\r\nattributes<span style=\"color: #333333;\">.<\/span><span style=\"color: #0000cc;\">put<\/span><span style=\"color: #333333;\">(<\/span><span style=\"background-color: #fff0f0;\">\"WeatherStationID\"<\/span><span style=\"color: #333333;\">,<\/span> weatherStationID<span style=\"color: #333333;\">);<\/span>\r\nattributes<span style=\"color: #333333;\">.<\/span><span style=\"color: #0000cc;\">put<\/span><span style=\"color: #333333;\">(<\/span><span style=\"background-color: #fff0f0;\">\"ReportTime\"<\/span><span style=\"color: #333333;\">,<\/span> Calendar<span style=\"color: #333333;\">.<\/span><span style=\"color: #0000cc;\">getInstance<\/span><span style=\"color: #333333;\">());<\/span>\r\nattributes<span style=\"color: #333333;\">.<\/span><span style=\"color: #0000cc;\">put<\/span><span style=\"color: #333333;\">(<\/span><span style=\"background-color: #fff0f0;\">\"Temperature\"<\/span><span style=\"color: #333333;\">,<\/span> currentTemperature<span style=\"color: #333333;\">);<\/span>\r\nattributes<span style=\"color: #333333;\">.<\/span><span style=\"color: #0000cc;\">put<\/span><span style=\"color: #333333;\">(<\/span><span style=\"background-color: #fff0f0;\">\"Pressure\"<\/span><span style=\"color: #333333;\">,<\/span> currentPressureMb<span style=\"color: #333333;\">);<\/span>\r\nattributes<span style=\"color: #333333;\">.<\/span><span style=\"color: #0000cc;\">put<\/span><span style=\"color: #333333;\">(<\/span><span style=\"background-color: #fff0f0;\">\"Humidity\"<\/span><span style=\"color: #333333;\">,<\/span> currentHumidity<span style=\"color: #333333;\">);<\/span>\r\n\r\n<span style=\"color: #888888;\">\/\/ create the feature<\/span>\r\nFeature reportFeature <span style=\"color: #333333;\">=<\/span> reportTable<span style=\"color: #333333;\">.<\/span><span style=\"color: #0000cc;\">createFeature<\/span><span style=\"color: #333333;\">(<\/span>attributes<span style=\"color: #333333;\">,<\/span> <span style=\"color: #008800; font-weight: bold;\">null<\/span><span style=\"color: #333333;\">);<\/span>\r\n\r\n<span style=\"color: #888888;\">\/\/ add the feature to the table and apply edits to the feature service<\/span>\r\nvar addFuture <span style=\"color: #333333;\">=<\/span> reportTable<span style=\"color: #333333;\">.<\/span><span style=\"color: #0000cc;\">addFeatureAsync<\/span><span style=\"color: #333333;\">(<\/span>reportFeature<span style=\"color: #333333;\">);<\/span>\r\naddFuture<span style=\"color: #333333;\">.<\/span><span style=\"color: #0000cc;\">addDoneListener<\/span><span style=\"color: #333333;\">(<\/span><span style=\"color: #997700; font-weight: bold;\">reportTable:<\/span><span style=\"color: #333333;\">:<\/span>applyEditsAsync<span style=\"color: #333333;\">);<\/span>\r\n<\/pre>\n<\/div>\n<p>The table below shows an extract of the data I have recorded for my weather station set up in North Berwick on the east coast of Scotland:<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2056202,"id":2056202,"title":"weather-reports","filename":"weather-reports.png","filesize":225276,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-reports.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-java\/developers\/java-maps-sdk-raspberry-pi-weather-station\/weather-reports","alt":"table of weather station data","author":"30781","description":"table of weather station data","caption":"table of weather station data","name":"weather-reports","status":"inherit","uploaded_to":2055852,"date":"2023-08-18 15:40:57","modified":"2023-08-18 15:41:28","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1439,"height":969,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-reports-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-reports.png","medium-width":388,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-reports.png","medium_large-width":768,"medium_large-height":517,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-reports.png","large-width":1439,"large-height":969,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-reports.png","1536x1536-width":1439,"1536x1536-height":969,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-reports.png","2048x2048-width":1439,"2048x2048-height":969,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-reports-691x465.png","card_image-width":691,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/weather-reports.png","wide_image-width":1439,"wide_image-height":969}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>You can explore the data in the following web map:<\/p>\n"},{"acf_fc_layout":"storymap","title":"","description":"","static":false,"storymap_url":"<a href=\"https:\/\/runtime.maps.arcgis.com\/apps\/instant\/basic\/index.html?appid=1b8ddc6b23dc4499a153212302035da8\">https:\/\/runtime.maps.arcgis.com\/apps\/instant\/basic\/index.html?appid=1b8ddc6b23dc4499a153212302035da8<\/a>"},{"acf_fc_layout":"content","content":"<p><strong>Summary<\/strong><\/p>\n<p>In this blog, I\u2019ve demonstrated another way of using the beta release of the ArcGIS Maps SDK for Java as an inexpensive IoT data collection project.\u00a0 Using the Java Maps SDK in an IoT data collection device provides a very easy way to write sensor data directly into the feature service for further analysis of your data.<\/p>\n<p>A GIS or geospatial analyst now has the basic data for creating a <a href=\"https:\/\/doc.arcgis.com\/en\/arcgis-online\/create-maps\/configure-time-mv.htm\" target=\"_blank\" rel=\"noopener\">time aware<\/a> layer, or maybe even exposing this as a heat map which might help urban planners to know where to plant trees to reduce temperatures such as in this Living Atlas <a href=\"https:\/\/www.arcgis.com\/home\/item.html?id=2adfc2a8a552469c8df2b3fa859e7bbe\" target=\"_blank\" rel=\"noopener\">item<\/a>.\u00a0 The data could also be nicely styled when shown in a web map as discussed in this <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/mapping\/a-meaningful-temperature-palette\/\" target=\"_blank\" rel=\"noopener\">blog<\/a> post.<\/p>\n<p>In the next blog post, I will explore the use of the Raspberry Pi camera for collecting image data written into a feature service as attachments.\u00a0 This has lots of potential for use cases such as site security monitoring or nature cameras for example.<\/p>\n<p>If you would like to try these projects out for yourself, please contact us on <a href=\"mailto:ARM64LinuxNative@esri.com\">ARM64LinuxNative@esri.com<\/a> for access to the beta release of the ArcGIS Maps SDK for Java with Arm Linux support.<\/p>\n<p>Please consider following <a href=\"https:\/\/twitter.com\/EsriDevs\" target=\"_blank\" rel=\"noopener\">@EsriDevs<\/a> on Twitter or subscribing to <a href=\"https:\/\/community.esri.com\/t5\/arcgis-maps-sdks-for-native-apps\/ct-p\/arcgis-runtime-sdks\" target=\"_blank\" rel=\"noopener\">Esri Community<\/a> for the latest updates on our products.<\/p>\n<p><em>Note: Raspberry Pi is a trademark of Raspberry Pi Ltd.<\/em><\/p>\n<p>Resident electrical engineer checking the cabling of my projects:<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2056232,"id":2056232,"title":"cat-pi1","filename":"cat-pi1.png","filesize":1839620,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/cat-pi1.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-java\/developers\/java-maps-sdk-raspberry-pi-weather-station\/cat-pi1","alt":"Sprocket checks wiring","author":"30781","description":"Sprocket checks wiring","caption":"Sprocket checks wiring","name":"cat-pi1","status":"inherit","uploaded_to":2055852,"date":"2023-08-18 15:53:43","modified":"2023-08-18 15:54:47","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":927,"height":1019,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/cat-pi1-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/cat-pi1.png","medium-width":237,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/cat-pi1.png","medium_large-width":768,"medium_large-height":844,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/cat-pi1.png","large-width":927,"large-height":1019,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/cat-pi1.png","1536x1536-width":927,"1536x1536-height":1019,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/cat-pi1.png","2048x2048-width":927,"2048x2048-height":1019,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/cat-pi1-423x465.png","card_image-width":423,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/cat-pi1.png","wide_image-width":927,"wide_image-height":1019}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"image","image":{"ID":2056372,"id":2056372,"title":"cat-pi2","filename":"cat-pi2.png","filesize":1777365,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/cat-pi2.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-java\/developers\/java-maps-sdk-raspberry-pi-weather-station\/cat-pi2","alt":"Cables look good","author":"30781","description":"Cables look good","caption":"Cables look good","name":"cat-pi2","status":"inherit","uploaded_to":2055852,"date":"2023-08-18 16:28:25","modified":"2023-08-18 16:29:13","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":920,"height":878,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/cat-pi2-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/cat-pi2.png","medium-width":273,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/cat-pi2.png","medium_large-width":768,"medium_large-height":733,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/cat-pi2.png","large-width":920,"large-height":878,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/cat-pi2.png","1536x1536-width":920,"1536x1536-height":878,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/cat-pi2.png","2048x2048-width":920,"2048x2048-height":878,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/cat-pi2-487x465.png","card_image-width":487,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/cat-pi2.png","wide_image-width":920,"wide_image-height":878}},"image_position":"center","orientation":"horizontal","hyperlink":""}],"related_articles":"","card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/07\/PI-826.jpg","wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/07\/PI-1920.jpg"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to use the Java Maps SDK in a Raspberry Pi weather station<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-java\/developers\/java-maps-sdk-raspberry-pi-weather-station\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to use the Java Maps SDK in a Raspberry Pi weather station\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-java\/developers\/java-maps-sdk-raspberry-pi-weather-station\" \/>\n<meta property=\"og:site_name\" content=\"ArcGIS Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/esrigis\/\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-12T08:15:55+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@ESRI\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-java\/developers\/java-maps-sdk-raspberry-pi-weather-station#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-java\/developers\/java-maps-sdk-raspberry-pi-weather-station\"},\"author\":{\"name\":\"Mark Baird\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/403e5f28824843bb88f7a5b3f7974531\"},\"headline\":\"How to use the Java Maps SDK in a Raspberry Pi weather station\",\"datePublished\":\"2023-08-18T15:57:22+00:00\",\"dateModified\":\"2024-04-12T08:15:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-java\/developers\/java-maps-sdk-raspberry-pi-weather-station\"},\"wordCount\":13,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"arcgis maps sdk for java\",\"Embedded\",\"IoT\",\"Raspberry Pi\"],\"articleSection\":[\"Developers\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-java\/developers\/java-maps-sdk-raspberry-pi-weather-station#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-java\/developers\/java-maps-sdk-raspberry-pi-weather-station\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-java\/developers\/java-maps-sdk-raspberry-pi-weather-station\",\"name\":\"How to use the Java Maps SDK in a Raspberry Pi weather station\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2023-08-18T15:57:22+00:00\",\"dateModified\":\"2024-04-12T08:15:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-java\/developers\/java-maps-sdk-raspberry-pi-weather-station#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-java\/developers\/java-maps-sdk-raspberry-pi-weather-station\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-java\/developers\/java-maps-sdk-raspberry-pi-weather-station#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to use the Java Maps SDK in a Raspberry Pi weather station\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"name\":\"ArcGIS Blog\",\"description\":\"Get insider info from Esri product teams\",\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\",\"name\":\"Esri\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"width\":400,\"height\":400,\"caption\":\"Esri\"},\"image\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/esrigis\/\",\"https:\/\/x.com\/ESRI\",\"https:\/\/www.linkedin.com\/company\/5311\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/403e5f28824843bb88f7a5b3f7974531\",\"name\":\"Mark Baird\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/Mugshot-466x465.png\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/Mugshot-466x465.png\",\"caption\":\"Mark Baird\"},\"description\":\"Mark Baird is the engineering lead for the ArcGIS Maps SDK for Java product. He has worked with GIS for 25 years in both consultancy roles and more recently in product development. This has involved working in many industry areas including environmental science, ecology, insurance risk analysis, public safety and situation awareness systems.\",\"sameAs\":[\"https:\/\/github.com\/mbcoder\/\",\"https:\/\/www.linkedin.com\/in\/mark-baird-5565786\/\",\"https:\/\/studio.youtube.com\/channel\/UC4WdKUaIqjVKNomMycQuOHw\/videos\/upload?filter=&sort=columnTypedatesortOrderDESCENDING\"],\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/mbaird\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to use the Java Maps SDK in a Raspberry Pi weather station","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-java\/developers\/java-maps-sdk-raspberry-pi-weather-station","og_locale":"en_US","og_type":"article","og_title":"How to use the Java Maps SDK in a Raspberry Pi weather station","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-java\/developers\/java-maps-sdk-raspberry-pi-weather-station","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2024-04-12T08:15:55+00:00","twitter_card":"summary_large_image","twitter_site":"@ESRI","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-java\/developers\/java-maps-sdk-raspberry-pi-weather-station#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-java\/developers\/java-maps-sdk-raspberry-pi-weather-station"},"author":{"name":"Mark Baird","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/403e5f28824843bb88f7a5b3f7974531"},"headline":"How to use the Java Maps SDK in a Raspberry Pi weather station","datePublished":"2023-08-18T15:57:22+00:00","dateModified":"2024-04-12T08:15:55+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-java\/developers\/java-maps-sdk-raspberry-pi-weather-station"},"wordCount":13,"commentCount":0,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["arcgis maps sdk for java","Embedded","IoT","Raspberry Pi"],"articleSection":["Developers"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-java\/developers\/java-maps-sdk-raspberry-pi-weather-station#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-java\/developers\/java-maps-sdk-raspberry-pi-weather-station","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-java\/developers\/java-maps-sdk-raspberry-pi-weather-station","name":"How to use the Java Maps SDK in a Raspberry Pi weather station","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2023-08-18T15:57:22+00:00","dateModified":"2024-04-12T08:15:55+00:00","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-java\/developers\/java-maps-sdk-raspberry-pi-weather-station#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-java\/developers\/java-maps-sdk-raspberry-pi-weather-station"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-java\/developers\/java-maps-sdk-raspberry-pi-weather-station#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"How to use the Java Maps SDK in a Raspberry Pi weather station"}]},{"@type":"WebSite","@id":"https:\/\/www.esri.com\/arcgis-blog\/#website","url":"https:\/\/www.esri.com\/arcgis-blog\/","name":"ArcGIS Blog","description":"Get insider info from Esri product teams","publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization","name":"Esri","url":"https:\/\/www.esri.com\/arcgis-blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","width":400,"height":400,"caption":"Esri"},"image":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/esrigis\/","https:\/\/x.com\/ESRI","https:\/\/www.linkedin.com\/company\/5311\/"]},{"@type":"Person","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/403e5f28824843bb88f7a5b3f7974531","name":"Mark Baird","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/Mugshot-466x465.png","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/08\/Mugshot-466x465.png","caption":"Mark Baird"},"description":"Mark Baird is the engineering lead for the ArcGIS Maps SDK for Java product. He has worked with GIS for 25 years in both consultancy roles and more recently in product development. This has involved working in many industry areas including environmental science, ecology, insurance risk analysis, public safety and situation awareness systems.","sameAs":["https:\/\/github.com\/mbcoder\/","https:\/\/www.linkedin.com\/in\/mark-baird-5565786\/","https:\/\/studio.youtube.com\/channel\/UC4WdKUaIqjVKNomMycQuOHw\/videos\/upload?filter=&sort=columnTypedatesortOrderDESCENDING"],"url":"https:\/\/www.esri.com\/arcgis-blog\/author\/mbaird"}]}},"text_date":"August 18, 2023","author_name":"Mark Baird","author_page":"https:\/\/www.esri.com\/arcgis-blog\/author\/mbaird","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/07\/PI-1920.jpg","primary_product":"ArcGIS Maps SDK for Java","tag_data":[{"term_id":769082,"name":"arcgis maps sdk for java","slug":"arcgis-maps-sdk-for-java","term_group":0,"term_taxonomy_id":769082,"taxonomy":"post_tag","description":"","parent":0,"count":3,"filter":"raw"},{"term_id":771082,"name":"Embedded","slug":"embedded","term_group":0,"term_taxonomy_id":771082,"taxonomy":"post_tag","description":"","parent":0,"count":2,"filter":"raw"},{"term_id":538822,"name":"IoT","slug":"iot","term_group":0,"term_taxonomy_id":538822,"taxonomy":"post_tag","description":"","parent":0,"count":7,"filter":"raw"},{"term_id":771072,"name":"Raspberry Pi","slug":"raspberry-pi","term_group":0,"term_taxonomy_id":771072,"taxonomy":"post_tag","description":"","parent":0,"count":2,"filter":"raw"}],"category_data":[{"term_id":738191,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":738191,"taxonomy":"category","description":"","parent":0,"count":426,"filter":"raw"}],"product_data":[{"term_id":761642,"name":"ArcGIS Location Platform","slug":"platform","term_group":0,"term_taxonomy_id":761642,"taxonomy":"product","description":"","parent":36601,"count":215,"filter":"raw"},{"term_id":769162,"name":"ArcGIS Maps SDK for Java","slug":"sdk-java","term_group":0,"term_taxonomy_id":769162,"taxonomy":"product","description":"","parent":36601,"count":24,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=sdk-java","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2055852","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/users\/30781"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=2055852"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2055852\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=2055852"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=2055852"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=2055852"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=2055852"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=2055852"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}